commit ae6e887eb3b09629a5e45b827ac0ca366c3100ea
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Oct 7 10:57:38 2013 -0700

    (packaging) Update PUPPETVERSION for 3.3.1

commit d26a0f0b639bba42734fc7327bbb153fe10351e1
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Wed Sep 25 16:45:29 2013 -0700

    (maint) Move constant outside shared_examples_for to avoid "already initialized" warning

commit c936342ef63e0b046e63364f2372974f18d47898
Merge: b802dd3 fc505e2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 3 18:17:21 2013 -0700

    Merge branch 'fix/stable/windows-spec-fixes' of git://github.com/Iristyle/puppet into stable
    
    * 'fix/stable/windows-spec-fixes' of git://github.com/Iristyle/puppet:
      (maint) Windows failing spec fixes

commit b802dd3fa60e18f5c25cd1c80c338cfc3bf5db03
Merge: 3d6df4a 513d8b5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Oct 3 17:12:05 2013 -0700

    Merge pull request #1969 from pcarlisle/ticket/22772-empty-filebucket-save
    
    Fix saving empty files to filebucket

commit 513d8b519d9b22aa7a80af6e29c3d2370be81f58
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Oct 3 14:50:35 2013 -0700

    (#22772) Add error checking to yaml format
    
    This will raise a FormatError if asked to intern invalid YAML instead of an
    unintelligible ruby error.

commit 5a4feef6b71f04f77a54e315d3cb8f56b95326c7
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Oct 3 14:08:06 2013 -0700

    (#22772) Allow a PUT with an empty body

commit 7f4f0b97a563166248ac8eff14b228304deda56c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Oct 3 11:27:24 2013 -0700

    (#22772) Fix test for saving empty data
    
    This test was failing due to a bug in the test, which didn't show up because
    it was checking for too broad of an error.

commit 3d6df4a6cdfa10994b7d378705dde296ca912d41
Merge: 9296dad f47a4b7
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 3 13:58:06 2013 -0700

    (doc) Merge branch 'nibalizer-patch-1' into stable
    
    * nibalizer-patch-1:
      Doc cleanup on create_resources example
    
    Documentation only update, merging into stable.

commit f47a4b7c9c0c7bee10cc80ba73d5c60e18815f3f
Author: Spencer Krum <krum.spencer@gmail.com>
Date:   Thu Oct 3 12:40:20 2013 -0700

    Doc cleanup on create_resources example
    
    The two items in the hash must be separated by a comma and group isn't a valid parameter to the user resource.

commit 9296dad026b5491b7dca98280bdc4d02a8237ce3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 30 17:23:04 2013 -0700

    (#21971) Add test for accessing based on master being at root
    
    The master process, when it daemonized, switches the current working
    directory to /. This means that all paths are easily knowable by a user
    and no directory traversal is needed to get to any file on the file
    system. The type loading code does not protect from this by making sure
    that any types that are requested only appear in the known-good
    directories (the manifest dirs in the modulepath) and so can be caused
    to load code from anywhere on the system.

commit 37d1ba6ab2506d78de5b5a290e92985ae6b2aac9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 29 18:32:03 2013 -0700

    (#21971) Create test to show exploit of resource_type
    
    This test creates a file in the tmp directory on the master, opens up
    access to the resource_type endpoint, and then makes a request that
    causes the file placed in tmp to be evaluated. If the exploit works,
    then a file is placed in /tmp on the master.

commit 976e05109378a3f0178e2377789d600c923785b1
Author: Melissa Stone <melissa@puppetlabs.com>
Date:   Wed Oct 2 10:23:09 2013 -0700

    (packaging) Update PUPPETVERSION for 3.3.1-rc3

commit 26c1db1b3ad58a9b4048d5db69f549de3877a813
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue Oct 1 18:55:32 2013 -0700

    (maint) Test of resource package does-not-exist checks stderr
    
    The acceptance test validated stdout, but did not validate absence of
    errors logged on stderr.  This fixes that.

commit 23500fb79eca1c2740693f302f1e3be5095cf71b
Merge: 133fd3b a912111
Author: kylo <kylo@puppetlabs.com>
Date:   Tue Oct 1 15:24:18 2013 -0700

    Merge pull request #1960 from jpartlow/issue/stable/22529_package_query_should_not_warn_for_later_versions_of_dpkg_query
    
    (#22529) Handle no package message for different dpkg-query versions

commit a912111c027774742f227968e212e3a03cd2371f
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue Oct 1 14:33:08 2013 -0700

    (#22529) Handle no package message for different dpkg-query versions
    
    dpkg-query changes it's notification of missing package between versions
    1.15 and 1.16.  We were testing for the earlier variant 'No packages
    found matching'.  This change also handles the later variant of
    'dpkg-query: no packages found matching'.
    
    Also, sigh.

commit 133fd3ba20c78aced773266dd7e906a1921702f7
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Sep 30 15:32:40 2013 -0700

    Revert "Merge pull request #1939 from adrienthebo/maint-rename_urpmi_spec"
    
    This reverts commit a168defc0e2f50ad3011de2178771f2b876ba1ea, reversing
    changes made to 891fce7bcefb59ff6082d2b234f3078ac1df9158.

commit a168defc0e2f50ad3011de2178771f2b876ba1ea
Merge: 891fce7 e75e9f3
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Sep 30 12:50:19 2013 -0700

    Merge pull request #1939 from adrienthebo/maint-rename_urpmi_spec
    
    (maint) rename urpmi spec to be run by default

commit 891fce7bcefb59ff6082d2b234f3078ac1df9158
Author: Rob Braden <bradejr@puppetlabs.com>
Date:   Fri Sep 27 14:56:46 2013 -0700

    (packaging) Update PUPPETVERSION for 3.3.1-rc2

commit 7414660e1bfaee0715924357de169c4da59aaf5a
Merge: f4ce874 391c5c4
Author: kylo <kylo@puppetlabs.com>
Date:   Thu Sep 26 14:29:55 2013 -0700

    Merge pull request #1946 from kylog/ticket/stable/22652-multi-valued-param
    
    (#22652) multi valued parameter support for rack

commit 391c5c4689ae4215b83c89240adb041c80468844
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Thu Sep 26 14:01:58 2013 -0700

    (#22652) Tighten up spec for multi-valued params in a POST body

commit 8ff491fa5c672853c05484daed5a98fd27677616
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Thu Sep 26 14:01:31 2013 -0700

    (#22652) Add be_one_of matcher (copped from pcarlisle)

commit c0817e33eb21ba617ba8a1ffb81eff23802c35f9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Sep 26 11:36:35 2013 -0700

    (#22652) Restore rack parsing of POST body parameters
    
    The first pass at the fix for #22652 fixed ignore handling by fixing
    support for multi-valued parameters in a GET query_string (i.e. by returning
    them as an array); however, it inadvertently broke parsing of parameters
    in a POST body, e.g. as found in the catalog endpoint POST.
    
    This patch addresses parameters in either case.  As a footnote however,
    note that multi-valued parameters in a POST body (which we don't use) would not
    return them as an array.
    
    This patch also adds two specs tests, one to catch the issue in the first pass fix
    (POST parameters not parsed), and one to flag the state of POST multi-valued param
    parsing (does not return array).

commit 8f2967eaca67fa24184ceea28aad95df8ed36929
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Sep 25 07:03:14 2013 -0700

    (#22652) Parse query strings in rack w/o rack
    
    Rack does not actually support parsing multiple valued query strings
    into an array of values (see https://github.com/rack/rack/pull/519).
    This is not going to be supported before rack 2.0, but we need this
    behavior in order to not have to deal with YAML query parameters.
    
    This changes the rack based query parameter parsing to use CGI.parse
    instead of the built in rack semantics (which also has a large number of
    other semantics, which we weren't using). As a note, it does not appear
    that the behavior of rack's query parameter parsing is documented
    anywhere.

commit e75e9f30d17cf69ea38508bcc601557bb054f7a6
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Sep 25 14:16:30 2013 -0700

    (maint) rename urpmi spec to be run by default

commit f4ce874309ac61b59405eeb82645119481fc0515
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Sep 23 13:48:10 2013 -0700

    (packaging) Update PUPPETVERSION for 3.3.1-rc1

commit 8e7d76ff8d67ae43e1240a64af3ec6b2417b3856
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Sep 19 19:52:41 2013 -0700

    (Maint) Fix typo in method name
    
    Acceptance test was failing trying to call confine_block, which doesn't
    exist, need to call confine instead.

commit d7e1ee38563c3da6e11d38c7de837c949f5fb411
Merge: 5dedacd de65c66
Author: Josh Partlow <jpartlow@glatisant.org>
Date:   Thu Sep 19 16:48:23 2013 -0700

    Merge pull request #1919 from joshcooper/ticket/stable/22608-accept-pson-file-backups
    
    (#22608) Accept pson file backups

commit de65c663d8480c7df2207c284f61aa9752b5b8d1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Sep 19 12:38:13 2013 -0700

    (#22608) Restore the ability for master to accept pson file backups
    
    Commit 769dcdf for #22375 removed the ability for newer masters to
    accept pson encoded file backups from older agents.
    
    This commit ensures that masters can deserialize `s` or `pson` encoded file
    backups, while agents will serialize using `s` by default.
    
    It also restores the ability to serialize to pson, but adds a
    deprecation warning if that happens. Since pson is not the
    `default_format` the agent will never serialize file bucket files to
    pson.

commit 5dedacd6360d6677d42343579881096e185d800f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Sep 19 15:49:36 2013 -0700

    (Maint) Remove spurious subproject commit line
    
    This should not be here.

commit 217c163f02659b7b8d11500ed09bd2a409a8ca05
Merge: f0884b3 74d4d9c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Sep 19 14:41:34 2013 -0700

    Merge branch 'issue/stable/22529_fix_acceptance_regex' into stable
    
    * issue/stable/22529_fix_acceptance_regex:
      (Maint) Fixup whitespace
      (#22529) Update acceptance test for regex fix and solaris

commit 74d4d9cbde2cd3b9f59d4ffdebc440fbcf5d996c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Sep 19 14:40:49 2013 -0700

    (Maint) Fixup whitespace
    
    Remove whitespace issues

commit 54f6da4eca7c6b75f0da668dc57d1bf8c21a9ad3
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu Sep 19 09:16:30 2013 -0700

    (#22529) Update acceptance test for regex fix and solaris
    
    Confine solaris provider which does not implement purgeable, and place
    the confine around the whole agents apply block so that it actually runs
    on a confined subset of hosts.
    
    Also fix the too restrictive regex which was missing host names with
    hyphens and was insensitive to escape sequences (escape sequences are
    very sensitive by nature and easily offended).

commit f0884b34206bed3e7f18339a36d0979d1fbd8457
Merge: 34b5add 70a18ef
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Sep 18 17:05:22 2013 -0700

    Merge pull request #1915 from kylog/issue/stable/22535-new-agent-old-master-file-ignore-list-is-ignored
    
    (#22535) Use a response header for version

commit 70a18ef4d3b1dc9c52c04356bf77b55a9d12195a
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Wed Sep 18 14:06:50 2013 -0700

    (#22535) Use a response header for version
    
    The initial fix for #22535 used a new field in the status endpoint hash
    to return the puppet master version.  The status endpoint has been
    enabled in authconfig.rb since 2.6, so this seemed safe.  However,
    acceptance tests are based on conf/auth.conf (as is the default PE
    auth.conf), which was never updated to enable the status endpoint.
    So the status endpoint is not a good choice for returning the puppet
    master's version.
    
    This patch adds a response header containing the puppet version and
    uses that to control yaml backward compatibility mode.
    
    This also required updating spec tests, including several that have
    a simple mock up of the http response object.

commit 34b5add0e665fa84ed9e765f9434e65cc8a46345
Merge: a318ce8 78623a3
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Sep 17 17:42:58 2013 -0700

    Merge pull request #1909 from jpartlow/issue/stable/22529_package_query_should_not_warn_if_package_not_found
    
    Issue/stable/22529 package query should not warn if package not found

commit 78623a3030cfdc8d4d83165bb43c7f6a521ec696
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue Sep 17 12:21:34 2013 -0700

    (maint) Convert from should to expect syntax
    
    Since I was touching the dpkg/rpm_spec...

commit 3751a83f78f62abfe9e3b5612249bd2fd21d1ba7
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue Sep 17 11:50:01 2013 -0700

    (#22529) Acceptance test for puppet package resource behavior
    
    Checking expected output for packages that do not exist.

commit 3d779a7fb8c6ee3b1456e914844113791ac12be0
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue Sep 17 11:41:28 2013 -0700

    (#22529) Rpm provider does not parse 'package foo is not installed' as a package
    
    Rpm provider previously parsed 'package foo is not installed' as if that
    was valid package info returned by an rpm -q call.
    
    In line with changes to dpkg provider, this commit also skip rpm's
    'package ... is not installed' message without logging or returning an
    erroneous package hash.

commit 73348b738eeded24971e2bf17eaf8ee1f989002e
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue Sep 17 11:32:58 2013 -0700

    (#22529) Dpkg provider does not warn on package not found
    
    e96ac6 (#19875) extended the dpkg and rpm providers to obtain package
    descriptions, and the change in the regex meant that dpkg-query's 'No
    packages found matching foo' output for non-existent packages was no
    longer being silently swallowed, and instead began triggering the
    warning log.
    
    In this commit we explicitly guard against dpkg-query's package not
    found message triggering a warning.

commit a318ce8e03f62626ebf339c992b3e8828bc74268
Merge: cc3341e 76889b4
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Sep 17 17:23:02 2013 -0700

    Merge pull request #1910 from kylog/issue/stable/22535-new-agent-old-master-file-ignore-list-is-ignored
    
    (#22535) new agent old master file ignore list is ignored

commit 76889b4cf0c2fadcf00be11412f9da0aab46c31e
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Tue Sep 17 16:36:23 2013 -0700

    (#22535) Make a full status object the default in agent spec tests.
    
    Prior to this patch, the default stubs for the find indirection returned
    a bare Puppet::Status object, i.e. without setting any version field in the hash,
    and the one test that needed a version field overrode that stub with one
    providing a status object with a version field.
    
    This is the opposite of what happens in the code, where by default one would
    expect Puppet::Status to include the current puppet version, and it's an unusual condition
    (older master) for it to omit the version field.  So this patch reverses things
    so that the default stub of Puppet::Status includes a version field, and the
    two tests with specific expectations about the version field override the stub.

commit f97829bf743a9ccef01cbdc0f51438049472ebf5
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Tue Sep 17 15:52:42 2013 -0700

    (#22535) Fix support for agent's status endpoint
    
    Without this patch, if the agent's status endpoint were accessed,
    it would report the master's version.  This would happen because
    the status indirection terminus was set to :rest for the duration of
    an agent's lifetime.
    
    This patch removes the puppet setting for status_terminus, and restores
    the default terminus of local.  It also moves the check for master version
    out of Puppet::Configurer (where it was shared with, say, apply) and into
    Puppet::Agent.  And in the agent, the check *temporarily* changes the
    endpoint to rest, queries the master's status endpoint, then restores the
    original setting for the endpoint.
    
    This patch also updates the corresponding spec tests, moving tests from
    configurer_spec.rb to agent_spec.rb, and adding a stub to local_spec.rb.

commit c48a9b384058608ac5834bfa31b352453c510951
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Sat Sep 14 12:07:07 2013 -0700

    (#22535) Fix an exception msg; cosmetic.

commit 3be9d117e3d74d2c9852171a7b75e2a0f9fa8fac
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Tue Sep 17 13:42:47 2013 -0700

    (#22535) Add test for legacy yaml serialization of arrays in query string

commit 53e22ccd4572ff37be49a52ce45434f64729ad8b
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Tue Sep 17 12:03:07 2013 -0700

    (#22535) Add tests for backward compatibility settings
    
    Ensure that the 2 yaml backward compatibility settings are set when
    the master version is unknown (hence older), and that they are not set when
    the master version is known.

commit 58cb39c9ffe7fdadfc0d9c30b3519f7c723309fd
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Tue Sep 17 11:44:39 2013 -0700

    (#22535) Improve notice message for backward compatibility

commit c290dc523e38080d5fdd1a6df9c87ff5f245d150
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Tue Sep 17 11:41:52 2013 -0700

    (#22535) Cleanup of desc/hook for new settings
    
    For both new backwards compatibility settings, add a note to the desc
    that these are set automatically by the agent when needed, so no need
    to set them explicitly.
    
    Remove hook with warning message for report_serialization_format as the
    agent now emits notice-level messages when it drops into backward compatibility
    mode to work with an older master.

commit 8679795d86bf2f3c50f50df7560c7cd7dad43e3a
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Sep 16 21:58:51 2013 -0700

    (#22535) Fix apply/etc by setting the status_terminus per application

commit bd618e67925efb5c8c889a9afcc448cc83ea62f5
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Sep 16 20:33:56 2013 -0700

    (#22535) Revert to yaml when a new agent talks to old master
    
    With the 3.3.0 release yaml was deprecated.  However, a 3.3 agent
    talking to an older master wasn't fully operational.  This change
    causes a 3.3.1+ agent to drop back to yaml when talking with an
    older master.  It also issues cautionary messages since the Right
    Thing to do in this situation is to upgrade the puppet master.

commit 9ea33d25b060d24ca767c494ddf3fdc9c443a92e
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Sep 16 19:57:10 2013 -0700

    (#22535) Add puppet version to status indirector
    
    Without this change, there was no way to query a puppet node for
    what version of puppet code it was running.  This change adds a version
    field to the status hash.
    
    This allows either a local or rest find on the status indirection
    to return the version of puppet code.  This is especially useful
    for a client communicating via the REST API.

commit 0b999499431ee44534893c40beb12c34621de624
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Sep 16 16:56:17 2013 -0700

    (maint) Fix misspellings in spec tests

commit cc3341e524e3a74cf7ac3b98cbd21fa42ab7b0ac
Merge: 3e23370 18f4a2e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 16 23:51:37 2013 -0700

    Merge branch 'issue/stable/22471-cleanup-tests' into stable
    
    * issue/stable/22471-cleanup-tests:
      (Maint) Stop asserting nothingness
      (Maint) Don't keep Tempfile open while specs are running
      (Maint) TestHelper already clears global state

commit 18f4a2e08afdefdbe9fb5a46102d340c31c2b27e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 16 23:36:43 2013 -0700

    (Maint) Stop asserting nothingness
    
    Previously, we were asserting that nothing was raised, when in this
    case is not very useful.
    
    Also changed the spec to use tmpfile, to ensure it is cleaned up after
    the test runs.

commit 564ecd16b3e8e52e6dc1ca74bf0c9117dcc9e6fd
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 16 23:32:48 2013 -0700

    (Maint) Don't keep Tempfile open while specs are running
    
    Previously, the specs were creating a Tempfile instance in a before
    block, writing to the file, but keeping the handle open, until the
    after each block ran. This was done to ensure the Tempfile wasn't
    deleted while the test was running.
    
    Also the test for `File.rename` behavior would fail on Windows, because
    a file cannot be renamed while any open handles to the file remain.
    
    This commit changes the tests to use the PuppetSpec::Files methods for
    generating a unique, temporary, and non-existent filename, and ensures
    that any file/dir created during the test will be deleted, even if the
    test fails during the run.

commit 3ca760440a6fbdbb15ed1bf92d98ea4eeb91cc8f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 16 23:23:31 2013 -0700

    (Maint) TestHelper already clears global state
    
    Previously, the specs were attempting to clear settings and storage
    global state before/after each test, but this logic is now handled by
    Puppet::Test::TestHelper, since specs often forget to do so, and leak
    global state across specs.

commit 3e233703a35e6fcbdda951026ff48af3bdf36687
Merge: ba2cc66 f308d1e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 16 15:23:26 2013 -0700

    Merge remote-tracking branch 'patrick/ticket/21975-monkeying-around' into stable
    
    * patrick/ticket/21975-monkeying-around:
      (#21975) Don't monkey patch Object#instance_variables

commit ba2cc66edf446b0b096f5a9d433e3022028586dc
Merge: 27af034 65ce0ea
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 16 14:51:38 2013 -0700

    Merge branch 'issue/stable/22471-corrupt-state-yaml' into stable
    
    * issue/stable/22471-corrupt-state-yaml:
      (#22471) Finish removing duplication of yaml exceptions
      (#22471) Remove duplication by using Puppet::Util::Yaml
      (#22471) Extract YAML interaction into shared code
      (Maint) Stop asserting nothingness
      (Maint) Simplify code
      (#22471) Rescue errors specific to the YAML parser
      (Maint) Convert to new block expects

commit 65ce0ea4c8f05bf5267fe70387ad32d9ae6e3a52
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 16 14:50:33 2013 -0700

    (#22471) Finish removing duplication of yaml exceptions
    
    Remove a bit of code wasn't cleaned up but was no longer used.

commit f308d1e75bd2c8020e26a03f0b52dbd72661f7f4
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 16 12:16:10 2013 -0700

    (#21975) Don't monkey patch Object#instance_variables
    
    We were monkey patching Object#instance_variables to return symbols instead of
    strings on ruby 1.8 which broke the use of SOAP. The patch was only used to
    make it easier to do set operations when determining attributes to serialize
    in zaml. This narrows the behavior of converting to symbols into the zaml code
    so we don't have to override Object#instance_variables.

commit 27af034f1a013bf02e5c0e3a48871e08c84c55e5
Merge: 0e552f0 8b3670f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 16 11:23:32 2013 -0700

    Merge pull request #1895 from zaphod42/issue/stable/22384-excessive-logging
    
    (#22384) Log 404 and 406 responses at info

commit 0e552f070ec1553503e142ff2e038da213b7ed26
Merge: 8611496 e1dcea4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Sep 13 17:28:13 2013 -0700

    Merge pull request #1898 from pcarlisle/ticket/19994-parsedfile-flush-failed
    
    Ensure failed ParsedFile operations are not retried for other resources

commit e1dcea49518d0992ab533aa2b9c337f6177d0ece
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Sep 10 10:36:28 2013 -0700

    (#19994) Ensure that failed ParsedFile operations are marked flushed
    
    Since ParsedFile maintains a global queue of records to be flushed and
    attempts to flush all outstanding operations each time a resource is flushed,
    any failed operations would be retried for each resource. This lead to
    unrelated resources failing.

commit d3f263b60a2009dd20903225ff049b17eb6823b9
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 9 17:00:24 2013 -0700

    (maint) Don't use subject in parsedfile spec

commit 86114960a0af2ccec016ed42dd96f707983aef5b
Merge: d5568d2 e603ed1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Sep 13 13:51:31 2013 -0700

    Merge remote-tracking branch 'andy/issue/stable/22530-master-with-older-agent-sending-reports' into stable
    
    * andy/issue/stable/22530-master-with-older-agent-sending-reports:
      (#22530) Support both YAML and PSON

commit e603ed1efa1aa7ed9cbc2d57d3f3ffae55e03153
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Sep 13 13:48:02 2013 -0700

    (#22530) Support both YAML and PSON
    
    The problem with the previous version of this code was that it only
    allowed the report to support exactly what the user had selected. This
    is alright (for the most part) for the agent, but is incorrect for the
    master since the master needs to understand both formats at once. The
    remedy this the default_format is now selected based on the
    report_serialization_format setting whereas the supported_formats are
    always both PSON and YAML.

commit 8b3670f2b2aec6d93c7a92e4bdd99fbb9f1ce295
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Sep 12 17:36:52 2013 -0700

    (#22384) Log 404 and 406 responses at info
    
    When the specific exception classes for HTTP control flow were
    introduced, they ended up changing the logging from info to notice.
    Notice is a much more severe level, which doesn't warrant having simple
    file not found errors showing up at it. This changes the level back to
    info.

commit a2f73e250350f5c66230d98f23a88eb6ce53a21f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Sep 12 16:06:08 2013 -0700

    (#22471) Remove duplication by using Puppet::Util::Yaml
    
    The new Puppet::Util::Yaml provides a common way of dealing with YAML
    differences across ruby versions. This changes to two places in the
    codebase that cared about these differences to use this common code.

commit c98f21d2b29dccaa22436cb62bae27b134f8070c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Sep 12 15:59:27 2013 -0700

    (#22471) Extract YAML interaction into shared code
    
    The extra logic that is needed to interact with both Psych and Syck was
    duplicated in the Puppet::Util::Storage and Puppet::Indirector::Yaml
    classes. This pulls out a common module that wraps YAML and provides
    consistent, and safe, semantics for using YAML for reading and writing.
    
    This also removes the check ofr ::ArgumentError in addition to
    ::StandardError because it seems that ::ArgumentError is a sublcass of
    ::StandardError.

commit 82c2574027e23838459148261196b7781d3098dc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Sep 12 15:13:49 2013 -0700

    (Maint) Stop asserting nothingness
    
    Assertions that something doesn't raise an error, are not normally very
    useful. In the case of these tests they only served to obscure the test
    that was actually being done.

commit aaa94d53eee3d7f78488d86dc72907c02a1cd10d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Sep 12 13:50:51 2013 -0700

    (Maint) Simplify code
    
    There was some unused code, overly complicated conditionals, and a use
    of YAML that didn't use the built in writing to a stream.

commit 33b08a320ec44f114f0896e6217f3eddbf4f3c36
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Sep 12 13:39:09 2013 -0700

    (#22471) Rescue errors specific to the YAML parser
    
    The different yaml parsers, which are used in different versions of
    ruby, end up throwing incompatible errors when loading data. The
    Psych::SyntaxError that is thrown by the ruby 1.9 Psych parser is not
    catchable by a generic `rescue => detail` block. Instead it needs to
    explicitly call out the errors that need to be rescued.
    
    This duplicates the error logic in Puppet::Indirector::Yaml.

commit dbf515a0f3a9efd4bb0d40eac01de14445aee7aa
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Sep 12 12:16:20 2013 -0700

    (Maint) Convert to new block expects

commit d5568d2960eacddc5b3fe852e44b7a4977bff564
Merge: 1188879 b983664
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Sep 12 11:39:25 2013 -0700

    Merge branch 'release/stable/3.3.0' into stable
    
    * release/stable/3.3.0:
      (packaging) Update PUPPETVERSION for 3.3.0

commit b9836647d08336bddaae7ecdbd5407121c0af10f
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Sep 12 11:37:56 2013 -0700

    (packaging) Update PUPPETVERSION for 3.3.0

commit 118887982e2e5a2de7f0c5553514691f1885bf6f
Merge: cbe44df bbdafe5
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Sep 11 10:44:52 2013 -0700

    Merge pull request #1886 from haus/ticket/stable/22474_conditionally_require_zlib
    
    (#22474) Update forge/repository.rb to conditionally include zlib

commit bbdafe5f3f4e829fafb7f3a0fc168174eecbce0c
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Sep 9 23:17:59 2013 -0700

    (#22474) Update forge/repository.rb to conditionally include zlib
    
    Previously using the --no-zlib flag or using puppet on a ruby without zlib
    support would result in a load error and stacktrace, because
    lib/puppet/forge/repository.rb requires zlib and uses a constant defined by
    Zlib. This commit updates repository.rb to only require zlib and use its
    constant if the zlib feature is available and the --no-zlib flag was not passed
    (zlib is enabled by default in defaults.rb).
    With this commit running puppet on a ruby without zlib does not throw a
    stacktrace or other error related to zlib.

commit cbe44df1dfde896752612184e4975d54e163ac8e
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Sep 9 14:21:38 2013 -0700

    (packaging) Update PUPPETVERSION for 3.3.0-rc3

commit fd6d76f51b21879ed5852c118a0480701bb8567b
Merge: a5c537b f0aa122
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 9 10:35:51 2013 -0700

    Merge pull request #1885 from ferventcoder/stable
    
    (maint) ignore Gemfile.local

commit f0aa122db7e06b4121264ba5422705457c0df272
Author: Rob Reynolds <ferventcoder@gmail.com>
Date:   Mon Sep 9 12:11:22 2013 -0500

    (maint) ignore Gemfile.local

commit fc505e2051e184a3c2d222351d412751abb58366
Author: Iristyle <Iristyle@github>
Date:   Fri Sep 6 09:14:00 2013 -0400

    (maint) Windows failing spec fixes
    
     - The usage of Dir.getwd in tests has been simplified to
       File.expand_path to properly handle mixed case CWD
     - util_spec.rb ensures 'FOO' Env var cleared before test starts
     - Windows SID checks should be performed as a regex match to
        properly handle all accounts starting with S-1-5-*, which denotes
        accounts with an identifier authority of SECURITY_NT_AUTHORITY
        instead of hardcoding S-1-5-32-544, the Administrators group

commit a5c537baa5e622380a49fca4a735451b760dd3ec
Merge: 0d877f0 c06eb57
Author: Ethan J. Brown <ethan_j_brown@hotmail.com>
Date:   Thu Sep 5 19:04:18 2013 -0700

    Merge pull request #1879 from zaphod42/issue/stable/22383-mount-no-longer-allows-true-for-atboot
    
    (#22383) Allow all boolean values for atboot

commit c06eb57923eb09b66f349202a2613bc91f1cb54c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Sep 5 16:24:26 2013 -0700

    (#22383) Allow all boolean values for atboot
    
    The previous restrictions placed on the atboot property for mount caused
    some previously valid manifests to begin to fail. The problem stems from
    the fact that atboot is only used on solaris, but can always be
    specified by users. It used to be able to be nearly anything, but only
    yes and no meant anything on solaris. This fixes the problem by
    expanding the allowed values to include all of the "boolean" values as
    expressed in the Puppet::[Parameter|Property]::Boolean type and using a
    munge method to convert the boolean to the correct yes or no value.

commit 0d877f0d670454dd77f22962bd94eef2c8e4ba45
Merge: cfe704e 61669e3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Sep 5 15:32:43 2013 -0700

    Merge branch 'ticket/stable/22258-create-new-console' into stable
    
    * ticket/stable/22258-create-new-console:
      (#22258) Create new console for each puppet run

commit 61669e3bca0ebd80341c0b645b0aed6d4a8ef895
Author: Eric Badger <badgerea@hotmail.com>
Date:   Thu Aug 29 07:56:15 2013 -0500

    (#22258) Create new console for each puppet run
    
    Powershell apparently has some issue trying to share the Windows
    service's console when running under ruby.exe (as opposed to rubyw.exe).
    This patch causes the service to create a new console for each puppet
    child it kicks off, which resolves the issue.

commit cfe704eb11b4d76f450dd8a256adccdcafcd98e3
Merge: 8194092 07291ea
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Sep 5 13:42:31 2013 -0700

    Merge pull request #1876 from nfagerlund/330-setting-descriptions
    
    Docs: Clarify descriptions of "ordering" and "report_serialization_format" settings

commit 8194092c74d11ea380aeb95198dd3011dc8be69d
Merge: c73ad5a 547b0a6
Author: kylo <kylo@puppetlabs.com>
Date:   Thu Sep 5 11:41:04 2013 -0700

    Merge pull request #1870 from joshcooper/ticket/stable/22375-filebucket-serialization
    
    (#22375) File bucket serialization

commit 07291eab9ec4675e1a596dd56ca8995a6d68e3f6
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Wed Sep 4 17:38:51 2013 -0700

    Docs: Clarify descriptions of "ordering" and "report_serialization_format" settings

commit c73ad5a33899c3b9aa6562a92e2eb3af34a25846
Merge: 90c0c38 3574208
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Sep 4 17:27:57 2013 -0700

    Merge pull request #1874 from kylog/issue/21427-fixup
    
    (#21427) make supported_formats return an array of symbols

commit 35742082027a50d221dd589beab59ad2bc64024e
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Wed Sep 4 17:10:38 2013 -0700

    (#21427) make supported_formats return an array of symbols
    
    Prior to this commit, supported_formats was returning an array of
    strings, which violated the contract for FormatHandler's
    most_suitable_format_for method.  This commit fixes supported_formats
    to return an array of symbols.

commit 90c0c3846deed9230c5f4cf789b6d501e8b77676
Merge: eb3d9fd dabfd50
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 4 11:32:07 2013 -0700

    Merge branch 'issue/stable/21427-select-report-serialization-format' into stable
    
    * issue/stable/21427-select-report-serialization-format:
      (#21427) Handle loss of precision during YAML serialization
      (#21427) Make report format selectable

commit dabfd50545d21c81b9075ff30354006f9bb6e085
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 4 11:18:51 2013 -0700

    (#21427) Handle loss of precision during YAML serialization
    
    Previously, when round-tripping a report using YAML, the
    Puppet::Resource::Status#time object could lose precision (depending on
    the ruby version and platform), so it did not match the expected value. For
    example, the expected value was:
    
        "time"=>"2013-09-04T17:01:38.510604415+00:00"
    
    But the round-tripped value was:
    
        "time"=>"2013-09-04T17:01:38.510604000+00:00"
    
    This commit changes the test to explicitly compare status fields, and
    handles the `time` field specially to avoid loss of precision during
    YAML serialization.

commit e9e9d9de1350d39a9d235d3b5d17e685d95ca654
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 3 15:59:30 2013 -0700

    (#21427) Make report format selectable
    
    Without making agents able to select the format to serialize reports, a
    newer agent would be unable to submit reports to an older master.
    Although we ask users to upgrade masters first, that is not often done
    in practice. In order to allow those kinds of setups to work, this makes
    the report format selectable.
    
    Puppet 3.2.2 and later support reports as pson, so only older, insecure
    masters need to have the agent's change this new setting.

commit 547b0a6896a993393db2e95a631274d372698140
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 3 22:20:05 2013 -0700

    (#22375) Don't echo the backed up file to the caller
    
    Previously, when the agent backed up a file to the master, the master
    would inadvertently echo the file back to the agent in the body of the
    HTTP response.
    
    This is because the terminus' save method returned the file contents
    as the 'result', and when invoked via REST, the {webrick,rack} REST
    handlers automatically write the result into the response body.
    
    Also puppet masters prior to 3.3 did not respect the Accept HTTP
    header (#21427), so the master would always YAML encode the response,
    which for binary content, large files, etc could result errors like
    the following on the master:
    
        Error: Stack overflow in regexp matcher: /\A(?: # ?: non-capturing group (grouping with no back references)
                     [\x09\x0A\x0D\x20-\x7E]            # ASCII
                   | [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte
                   |  \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs
                   | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte
                   |  \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates
                   |  \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
                   | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
                   |  \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
                   )*\z/mxn
    
    This commit changes the Puppet::FileBucketFile::File terminus to
    return a new model instance whose content is empty. This is a change
    from previously when we were returning a string, but I think it's
    clearer that the result needs to be serializable using one of the
    Accept content-types that the client specified, e.g. `:s`.
    
    Originally filed as #8229

commit 769dcdf8d257acba4dae70545cdd83b2baa36dd8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 3 21:38:00 2013 -0700

    (#22375) Prefer raw-like serialization format
    
    Previously, agents would backup files using PSON serialization, which is
    not reliable for binary content, and incredibly inefficient due to the
    applying a regexp to the entire in-memory file content.
    
    Ideally, I would like to switch the Puppet::FileBucket::File class to
    just use the `:raw` serialization format as is done for
    Puppet::FileServing::Content. But this cannot be done in a minor series
    without breaking compatibility between newer 3.x agents talking to older
    3.x masters.
    
    However, we can achieve the same effect by using the `:s` serialization
    format, and we don't have the same compatibility problem because
    the `from_s` method has been defined since 2.6.0 in commit e5a78009f.
    
    If a newer master receives a file bucket request from an older agent
    that sends a PSON encoded file, then the master will generate a
    deprecation warning to update the agent.
    
    Originally filed as #8229.

commit eb3d9fddddcc7a5df766298e98df100064b45b73
Merge: 41d56d7 155427f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Sep 3 10:29:53 2013 -0700

    Merge pull request #1863 from zaphod42/issue/stable/22358-improper-handling-of-accept-headers
    
    (#22358) Interpret */* as anything is accepted

commit 155427fc490febf7eb37bc4a27f10a1fd17d41e0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 30 12:18:19 2013 -0700

    (#22358) Interpret */* as anything is accepted
    
    The changes to how we process Accept headers left out the case of being
    asked for anything (*/*), which the puppet dashboard will do. This
    expands */* to mean the client accepts any format the the requested
    endpoint can support.
    
    In addition, this also adds logic to ignore quality specifiers.

commit 41d56d75d08793f74f0a51c8d158fbae87ec08d0
Merge: 288155d 23d672b
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Aug 29 16:32:04 2013 -0700

    Merge pull request #1763 from djmitche/bug19056
    
    (#19056) strip trailing space while parsing AIX password file

commit 23d672b9556e95980431af03a03a25259a522572
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Sat Jul 13 13:49:24 2013 -0400

    (#19056) strip trailing space while parsing AIX password file

commit 288155d8cec083448854a42574074082ff2643a2
Merge: a04ec25 e5c93af
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Aug 29 11:25:35 2013 -0700

    Merge pull request #1844 from melissaanne/maint/stable/re-141_rm-eol-f17
    
    (Bug #22237) Remove EOL Fedora 17

commit a04ec2559cd48341cff05b0e87753fcf94e38bb3
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Aug 29 11:11:33 2013 -0700

    (packaging) Update PUPPETVERSION for 3.3.0-rc2

commit f783ee8b205ee5d622d0db7637cbcfb9454a5139
Merge: 56d6e61 3522f20
Author: Josh Partlow <jpartlow@glatisant.org>
Date:   Wed Aug 28 19:40:37 2013 -0700

    Merge pull request #1860 from jpartlow/issue/stable/22319-constrain-integration-spec-on-windows
    
    (#22319) Constrain settings watchedfile integration on windows

commit 3522f20aafaac25672f9ff5e6331967ca05a0b46
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed Aug 28 19:24:15 2013 -0700

    (#22319) Constrain settings watchedfile integration on windows
    
    File.ctime provides creation time on Windows, and shows no change in
    WatchedFile.  But we have no long running processes in Windows, so we
    would not be reloading configs, and this test can be skipped.

commit 56d6e6118b3be5d9a5be5e263c4a4941a8dbed4a
Merge: ea26b84 479cd1c
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Wed Aug 28 10:53:28 2013 -0700

    Merge branch 'master' into stable to prepare for 3.3.0.

commit ea26b84aed93b39c7b6d072f3c713b3995087af2
Merge: dbbde65 d0dc2be
Author: kylo <kylo@puppetlabs.com>
Date:   Wed Aug 28 10:39:44 2013 -0700

    Merge pull request #1857 from jpartlow/issue/stable/22319-puppet-settings-misuses-watchedfile
    
    (#22319) Correct Puppet::Setting's use of WatchedFile

commit 479cd1c087099c481009a68e57b6e0f617b790f3
Merge: dce2f61 e4b9798
Author: kylo <kylo@puppetlabs.com>
Date:   Wed Aug 28 09:21:35 2013 -0700

    Merge pull request #1855 from zaphod42/issue/master/22229-ensure-generated-resources-contained
    
    (#22229) Ensure generated resources contained

commit d0dc2beb52b8b62e477a5c020d91a0dd1f3b2676
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed Aug 28 09:14:23 2013 -0700

    (#22319) Correct Puppet::Setting's use of WatchedFile
    
    WatchedFile was introduced after 3.2.0 as a new method of checking for
    changes to file.  Puppet::Settings was calling a non-existent method on
    the new WatchedFile, and would cause a daemonized Puppet to abort if one
    of its watched configuration files was changed.
    
    This is a minor change to call #to_str instead.

commit e4b97986a5e434e1fa765c986674502b92e618dd
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 27 15:39:25 2013 -0700

    (#22229) Provide way of getting the container
    
    The catalog tracks the relationship between the container and the
    contained resource but did not provide any clear way to query for the
    containment information. This adds a new method #container_of(resource)
    that will return the container of the given resource, when one exists.
    This removes some duplication around understanding what the container
    is.

commit 21107e87dfed03b90777eb2bdb3663eb0df45205
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 27 12:06:45 2013 -0700

    (#22229) Ensure generated resources contained
    
    The generated resources were left out in the cold with respect to
    containers: they had none at all. This changes that to make sure that
    the generated resources (via #generate and #eval_generate) have the same
    container as the resource that generated them.

commit 24c2c17ad92e6caaa4cc9c67f3bd07a1d65bdf61
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 27 11:13:04 2013 -0700

    (Maint) Mark AdditionalResourceGenerator as private

commit dce2f6118089896f4853b618e5908671db662caf
Merge: c7eb3db eea93dd
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 26 16:39:52 2013 -0700

    Merge pull request #1845 from kylog/issue/22250-reports-inconsistent
    
    (#22250) ensure a failed resource status always has an event

commit eea93dd872856a7a3bf70d21f87473f091071a12
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Aug 26 16:24:51 2013 -0700

    (#22250) refactor previous and add spec tests

commit c7eb3db283dfbc6d9ae92cd5fa1eeb6c6629f5e7
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Fri Aug 23 08:55:32 2013 -0700

    (maint) Limit ignore to root doc/ directory
    
    'doc' was ignoring other 'doc' dirs elsewhere in the tree such as
    acceptance/test/docs.  This should ensure we only ignore the
    <repo-root>/doc directory.

commit 44782535addc034364d7eef35ba490570d7c0365
Merge: 285b771 dbbde65
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Aug 21 15:12:54 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (packaging) Update PUPPETVERSION for 3.3.0-rc1

commit dbbde656c5535e8846272273adab408b9ed1a407
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Aug 21 14:49:37 2013 -0700

    (packaging) Update PUPPETVERSION for 3.3.0-rc1

commit 5d5f9b4faaf82319832ea43c50fed0d47110539b
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Tue Aug 20 22:49:20 2013 -0700

    (#22250) ensure a failed resource status always has an event
    
    Typically, a Puppet::Resource::Status.failed is set to true
    when an event is added whose status is 'failure' (this is done
    in Puppet::Resource::Status.add_event).  However, there is also
    a case where Puppet::Transaction::ResourceHarness.evaluate
    directly sets the status failed field to true.
    
    Generate an event for this latter case, so that report parsers
    can rely on an event accompanying any failed resource status.

commit d4d15048ac0bd9d59995a75fd49b67ea3934f3f2
Merge: 6d5ec95 285b771
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Aug 20 21:15:57 2013 -0700

    Merge master onto stable to prepare for 3.3 release
    
    Merge remote-tracking branch 'origin/master' into stable
    
    * origin/master: (478 commits)
      (Maint) Add docs for #relationship_graph
      (#22205) Reinstate relationship_graph as a factory method
      (#22205) Select manifest ordering for ordering test
      (#22191) Rename cancelled to canceled
      (#22191) Always process internal catalogs
      (#22191) Mark ready, but unevaluated resources, as skipped
      (#22191) Add cancelled resource handler
      (#22205) Extract common Prioritizer code into a superclass
      (#22205) Chose a Prioritizer based on Puppet[:ordering]
      (#22205) Re-introduce old ordering as a Prioritizer
      (#22205) Provide setting to control manifest ordering
      (#22205) Add enum setting type
      (Maint) Restructure requires for settings
      (Maint) Removed commented out settings
      (#22205) Extract class for generating resource priorities
      (22021) Implement (un)install_options for OpenBSD package provider.
      (Maint) Move most graph related code to Puppet::Graph
      (#18508) Ensure that no two resources have the same priority
      (#18508) Handle duplicate generated resources correctly
      (#18508) Ensure eval_generated resources apply at the right time
      ...

commit 285b771a4ba8a354d3bbc12aceb7abdebfd16b64
Merge: e9253ec 6baa57b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Aug 20 12:29:59 2013 -0700

    Merge pull request #1766 from zaphod42/issue/master/21409-create_resources-differs-from-real-resource
    
    (#21409) Ensure that create_resources acts the same as a resource decl

commit e5c93afd82798f9a9fa4f1dedf3107081f20dcb2
Author: Melissa <melissa@puppetlabs.com>
Date:   Mon Aug 19 18:39:43 2013 -0700

    (Bug #22237) Remove EOL Fedora 17
    
    Since Fedora 17 is now EOL, it's time to remove it from our mock list

commit e9253eceeefe984113b34c65c8966cc3e12bedb3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 19 11:43:24 2013 -0700

    (Maint) Add docs for #relationship_graph

commit 20f13f0150a34b6d284999e3e31b757e4afe458c
Merge: d3a98e7 d804baa
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Aug 19 11:37:24 2013 -0700

    Merge pull request #1843 from zaphod42/issue/master/22205-revert-relationship_graph-to-being-factory-method
    
    (#22205) Reinstate relationship_graph as a factory method

commit d804baad9c2d76ebf76e5d6fe22d5eef6bfa09a3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 19 11:23:43 2013 -0700

    (#22205) Reinstate relationship_graph as a factory method
    
    The Puppet::Catalog#relationship_graph method used to be a factory for
    the Puppet::Graph::RelationshipGraph. That was removed when the
    prioritizer was added in an attempt to remove some of the
    responsibilities of catalog. Inside puppet, all of the consumers were
    updated. Unfortunately many tests of types rely on the old behavior in
    order to test eval_generate, which may be implemented using
    introspection of the relationship graph. This reverts back to the old
    behavior of the relationship_graph being a factory method and instead
    memoizes the prioritizer so that the same instance can be used for the
    relationship_graph as well as the transaction.

commit d3a98e7d46895bfec01e1638cfad8ef7b9353656
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 19 09:14:44 2013 -0700

    (#22205) Select manifest ordering for ordering test
    
    This test was missed when the manifest ordering was changed to being a
    setting. The test, of course, fails without having the manifest ordering
    being selected.

commit 3f666c22ff790be62e1696a7ff8971d3ba57a10b
Merge: 21b65cb dada7dc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 16 16:10:13 2013 -0700

    Merge branch 'ticket/master/22191-mark_skipped_resources'
    
    * ticket/master/22191-mark_skipped_resources:
      (#22191) Rename cancelled to canceled
      (#22191) Always process internal catalogs
      (#22191) Mark ready, but unevaluated resources, as skipped
      (#22191) Add cancelled resource handler

commit dada7dcd1334f49fcd3ff58004d3dd73144c23d8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 15 15:10:09 2013 -0700

    (#22191) Rename cancelled to canceled
    
    Prefer the current American spelling from the past 30 years.

commit 883922740987d130f71bd4d55393e0c8990621dd
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 15 14:09:07 2013 -0700

    (#22191) Always process internal catalogs
    
    Puppet generates and applies several catalogs during a single run. There is
    the main (host_config) catalog, either downloaded from the master, or locally
    applied. However, there are several other internally generated catalogs used
    to manage internal state, such as file permissions from defaults.rb. Basically
    anytime `Puppet::Settings.use` is called.
    
    Previously, if puppet was asked to stop, `Puppet::Application.stop!`, then it
    would cancel the current transaction, as well as any future transaction. As a
    result, we may intentionally cancel the main (host_config) catalog, but then
    unintentionally skip the transactions that follow, e.g. writing the rrdgraph
    report.
    
    This commit modifies the transaction to only cancel the evaluation loop if we
    are evaluating the main (host_config) catalog and a stop has been requested.
    All other internal catalogs will always be processed.

commit 3bbf2368920d71493ac605064c18b72fd05f617e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 14 17:40:27 2013 -0700

    (#22191) Mark ready, but unevaluated resources, as skipped
    
    Previously, if a transaction was cancelled while processing resources, the
    report did not contain any information about the skipped resources.
    
    This commit modifies the transaction to supply a cancelled_resource_handler
    callback, which if invoked, will generate a resource status object for the
    resource, and mark the status as skipped.
    
    This commit also updates the test helper to clear the run_status global
    state before each test.
    
    Paired-with: Patrick Carlisle <patrick@puppetlabs.com>

commit fa21e687940f32e7fdfd60622e0cf435aaca48fe
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 14 16:08:34 2013 -0700

    (#22191) Add cancelled resource handler
    
    This commit adds the ability to pass a cancelled resource handler callback
    to the traverse method such that if the traversal is cancelled, then the
    callback is invoked once for each resource that is ready, but not yet
    evaluated.
    
    In addition, the resource is "finished", which unblocks its dependents, so
    that the callback can handle those as well.
    
    While writing tests for this, we found a bug in the main while loop.
    Previously, the loop was removing the next ready resource, and then checking
    if the loop had been cancelled. But if the loop was ever cancelled, the removed
    resource was effectively lost. This commit reverses the order so that we only
    remove the next ready resource if we intend to evaluate it.
    
    Paired-with: Patrick Carlisle <patrick@puppetlabs.com>

commit 21b65cbf66eaf5f083d88cc336985b9911bd9e33
Merge: 7fd567a 149f9e1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Aug 16 14:33:12 2013 -0700

    Merge pull request #1840 from zaphod42/feature/master/22205-setting-to-control-default-ordering
    
    (#22205) Provide setting to control manifest ordering

commit 149f9e1e76853336472292348d3f3e785888f597
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 16 14:02:01 2013 -0700

    (#22205) Extract common Prioritizer code into a superclass
    
    All of the prioritizers had the same code to track priorities already
    produced. This pulls that into a superclass.

commit 63d1a643ab4ce82a451bc7175e9643316b36679f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 16 13:38:56 2013 -0700

    (#22205) Chose a Prioritizer based on Puppet[:ordering]
    
    This ties the selection of the Puppet::Graph::Prioritizer to the
    Puppet[:ordering] setting. In order to make it easier to ensure that all
    of the uses of the prioritizer use the same one (because it needs to
    track state) this also moves around the relationship of the catalog and
    the transaction. Previously the catalog was responsible for converting
    itself into a relationship graph. This now puts that responsibility on
    the transaction, which much now be constructed with the desired
    Prioritizer. The selection is still done in the catalog (because that is
    where #apply lives, which is the public starting point of applying a
    catalog).
    
    Additionally this adds a random prioritizer.

commit 8bdf1b90bd61147d2a80284a59c24333471a12a0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 15 16:26:51 2013 -0700

    (#22205) Re-introduce old ordering as a Prioritizer
    
    This creates an old prioritizer for resources as it existed in commit
    f51e967b73ff0154801f514aff40ca524bdd8ab1.

commit 0ffb629d3d305517264f80698f3a4ee444a0c463
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 15 15:56:20 2013 -0700

    (#22205) Provide setting to control manifest ordering
    
    The default ordering for manifests is something that is useful to be
    able to control. This provides an setting that will be used to select
    between the pre-#18508 and post-#18508 ordering mechanism.

commit ac9b0a7421c48dd491fe47f4e92df63d8e3ac3b9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 15 15:55:00 2013 -0700

    (#22205) Add enum setting type
    
    It is often useful to be able to restrict the valid values for a setting
    to a known set. This adds an :enum setting type that can take a :values
    array, which defines the allowed values. If the value given for the
    setting is now found in the list of allowed values, then it will throw
    an error.

commit a42f65ea0bdd58eb589454cfbc5d409ba54663cf
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 15 15:24:28 2013 -0700

    (Maint) Restructure requires for settings
    
    The settings classes were not loaded in a robust manner. Some required
    other files with the knowledge that the right modules would be created.
    This caused a duplication of requires (which can cause a small slowdown
    as ruby looks up whether the code has already been loaded). By requiring
    the settings *after* the settings class has been opened, we can avoid a
    lot of this extra work and overhead.

commit f99a759db2c8a79ca7c0bf7a36330ab0b6a83b27
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 15 15:08:58 2013 -0700

    (Maint) Removed commented out settings
    
    These settings were commented out. I think we have already done
    something else to support those use cases, and if we haven't...well,
    that is what version control is for.

commit 0b777d35627480511326089ec10788fad35959be
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 15 14:57:18 2013 -0700

    (#22205) Extract class for generating resource priorities
    
    Previously the code for generating priorities was scattered throughout
    the places that needed to add vertices to the relationship graph. This
    pulls out that logic into a class that can generate the priorities for
    resources, and those contained in other resources. This is needed to be
    able to make this strategy pluggable.

commit 7fd567a5ee6b3cf1a884e7381f79c714b97c4098
Merge: 04a60fb 6d5ec95
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Aug 15 14:53:24 2013 -0700

    Merge remote-tracking branch 'origin/stable'
    
    * origin/stable:
      (Bug #22164) remove hardcoded hostname dependencies

commit 6d5ec9552922d36e2e71c509b53479225a73a040
Merge: 375de54 d634c99
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Thu Aug 15 14:52:40 2013 -0700

    Merge pull request #1836 from melissaanne/maint/stable/re-144_rm-hardcoded-dependencies
    
    (Bug #22164) remove hardcoded hostname dependencies

commit 04a60fbff5dbc0d2a5818c671cecc20032b0fae7
Merge: 3ee62ab 375de54
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu Aug 15 13:38:54 2013 -0700

    Merge branch 'stable'
    
    * stable: (21 commits)
      (packaging) Update PUPPETVERSION for 3.2.4
      (maint) Correct type in speeeeling of pl-fedora-18-i386 mock in ext/build_defaults.yaml
      (packaging) Move systemd BuildRequires into conditional
      (Bug #21768) Update puppet for F19
      (maint) Remove rspec requires from the Rakefile
      (maint) Fix module_utils regex tests for module file perms
      (maint) Fix windows test for embedded '..' in path
      Improving testing around PMT module install permissions.
      Ensure that PMT uses the correct group membership.
      (#21971) Allow paths that contain .. as part of a name
      Fixing a missed test for minitar.
      (Maint) Reinstate check for manifest dir
      (#21953) Add test to verify module permissions
      (#14333) Ensure module permissions are sane.
      (#21971) Fixes PathPattern's usage of Dir.glob for Windows
      (#21971) Fix TypeLoader#import_all on Ruby 1.8.7
      (#21971) Create system for safely dealing with path patterns
      (#21971) Split import and autoloading code paths
      (#21971) Check for possible directory traversal
      (Maint) Clean up specs
      ...

commit 375de54a6098c0494e9c1134bb40cb0f8737a6f6
Merge: d093955 f55814d
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu Aug 15 13:25:04 2013 -0700

    Merge branch 'release_3.2.4' into stable
    
    3.2.4
    
    * tag '3.2.4': (21 commits)
      (packaging) Update PUPPETVERSION for 3.2.4
      (maint) Correct type in speeeeling of pl-fedora-18-i386 mock in ext/build_defaults.yaml
      (packaging) Move systemd BuildRequires into conditional
      (Bug #21768) Update puppet for F19
      (maint) Remove rspec requires from the Rakefile
      (maint) Fix module_utils regex tests for module file perms
      (maint) Fix windows test for embedded '..' in path
      Improving testing around PMT module install permissions.
      Ensure that PMT uses the correct group membership.
      (#21971) Allow paths that contain .. as part of a name
      Fixing a missed test for minitar.
      (Maint) Reinstate check for manifest dir
      (#21953) Add test to verify module permissions
      (#14333) Ensure module permissions are sane.
      (#21971) Fixes PathPattern's usage of Dir.glob for Windows
      (#21971) Fix TypeLoader#import_all on Ruby 1.8.7
      (#21971) Create system for safely dealing with path patterns
      (#21971) Split import and autoloading code paths
      (#21971) Check for possible directory traversal
      (Maint) Clean up specs
      ...
    
    Conflicts:
    	lib/puppet/parser/type_loader.rb
    	spec/unit/parser/type_loader_spec.rb
    
    Conflicts were between changes Patrick Carlisle made in stable between
    3.2.3..3331528, mostly refactoring the type_loader_spec to be
    independent of parser implementation:
    
    * 0c6060f Patrick Carlisle 5 weeks ago (maint) Refactor type_loader,
     mostly specs
    * 27a69f2 Patrick Carlisle 5 weeks ago (#21653) Skip modules with no
     manifest directory when loading resource types
    
    And the above security work.

commit 3ee62ab849fcc1e28bd55b14b4a3db5faa307aec
Merge: e6c9454 1b672b5
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Aug 15 12:18:44 2013 -0700

    Merge pull request #1816 from jasperla/openbsd/install_options
    
    (#22021) Implement (un)install_options for OpenBSD package provider.

commit e6c9454ed09d7e2167c92c190795a1c72ad43cb8
Merge: d85a9aa d093955
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Aug 15 10:57:28 2013 -0700

    Merge branch 'stable' into pl_master

commit d093955c418e389ddba3cb721b36e36ea6416c0d
Merge: 3331528 e080064
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Aug 15 10:40:33 2013 -0700

    Merge branch '2.7.x' into stable

commit e080064615e80343f9d638d864563afd260792ac
Merge: 0b1389e 2471c0f
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Aug 15 10:38:19 2013 -0700

    Merge tag '2.7.23' into 2.7.x
    
    2.7.23

commit d85a9aacc0bc9058a63fc1da4a6c4752542c9482
Merge: c1f340f ee2715d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Aug 15 09:37:21 2013 -0700

    Merge remote-tracking branch 'jeffmccune/ccaviness-6017-mcx-should-overwrite-existing-data'
    
    This closes GH-1796

commit c1f340fd02949d9ab7a73c3f86c0f1b5edc01726
Merge: 989276e 5c38864
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Aug 14 20:09:02 2013 -0700

    Merge pull request #1829 from dalen/21170_skeleton_dir
    
    (#21170) Allow specifying module tool skeleton dir directly

commit f55814df60333d45d7c09c432c098fa151db6c50
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Aug 14 10:25:38 2013 -0700

    (packaging) Update PUPPETVERSION for 3.2.4

commit 019e4430f26c48cdd90a6b99a2af9a35f23e4ded
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Jul 19 16:30:43 2013 -0700

    (maint) Correct type in speeeeling of pl-fedora-18-i386 mock in ext/build_defaults.yaml

commit a754bc8c788e190f15e1ab4ea76f9ee71e7db361
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Jul 19 12:11:21 2013 -0700

    (packaging) Move systemd BuildRequires into conditional
    
    Previously either systemd or systemd-units were BuildRequires on all rpms.
    These packages are not available on el5 or el6, which would break rpm building
    on those platforms. This commit moves those BuildRequires into an already
    existing systemd conditional, so they are only required on systems that support
    systemd.

commit ecb0f927dc1483258373789fbbf6d1434709ed4a
Author: Melissa Stone <melissa@vali.delivery.puppetlabs.net>
Date:   Tue Jul 16 11:39:55 2013 -0700

    (Bug #21768) Update puppet for F19
    
    Prior to this commit, there was no support for Fedora 19. This
    commit modifies build_defaults to include F19 in the mocks,
    and removes the ruby(abi) requirement. This is because F19 no
    longer provides ruby abi.

commit 05d20ff0afe569d791da0b2a5a0a2c5058feeff4
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Jul 31 14:18:29 2013 -0700

    (maint) Remove rspec requires from the Rakefile
    
    In the Rakefile, we no longer use Rspec methods or classes, but instead shell
    out to rspec, so requiring rspec serves no purpose in the rakefile. The require
    was also incorrectly placed within an unrelated begin/rescue block, which
    caused deprecated rake libraries to be loaded when rspec was not present. This
    commit removes it from the Rakefile.

commit 1b672b5d6c7e8976b3a79d52e8db5d0823f61144
Author: Jasper Lievisse Adriaanse <jasper@humppa.nl>
Date:   Wed Jul 31 11:33:58 2013 +0200

    (22021) Implement (un)install_options for OpenBSD package provider.

commit 989276e29b296fa7e28a5a7b9484615980c849f2
Merge: 5150d7f 4b15466
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Aug 13 17:29:31 2013 -0700

    Merge pull request #1838 from zaphod42/feature/master/18508-handle-generated-resources-on-agent
    
    (#18508) Ensure eval_generated resources apply at the right time

commit 4b15466ed5e7132504b3f1d5e92c2c65b534ca13
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 13 17:24:01 2013 -0700

    (Maint) Move most graph related code to Puppet::Graph
    
    We often talk about "the graph", but until now there hasn't been a clear
    graph that we were talking about. The relationship graph that is used
    for evaluation is the best candidate to fill this role, since it
    contains all of the ordering information that is needed.
    
    This also removes Puppet::Util::Graph, which was unused.

commit 69a8ff10192841225698b41068defdb2897c9d22
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 13 17:02:26 2013 -0700

    (#18508) Ensure that no two resources have the same priority
    
    The underlying red-black tree that is used as the priority queue for
    tracking what resources to evaluate will only allow a single value per
    key. This means that when generated resources are added they need to get
    unique priority keys. However there could be an arbitrary number of
    these resources added in between existing resources. This commit
    provides a Puppet::Graph::Key that behaves like the numbering scheme of
    an outline so that priorities can be arbitrarily nested and the nested
    priorities are between the priorities at the outer level.
    
    The integration tests for the file type caught this error. It only
    showed up when 2 unique, new resources are generated.

commit 7ed9025f19617b34e4c78ee0b6cb5d365e5f27fc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 13 14:41:14 2013 -0700

    (#18508) Handle duplicate generated resources correctly
    
    When a generated resource duplicates a resource already in the catalog,
    we want to avoid adding it a second time, but we still want to create
    dependencies between the resource and the generating resource. For
    example, we may have a recursive file resource, but explicitly model one
    of the files that will be generated. We still want the explicit file
    resource to depend on its generated parent directory.
    
    This also refactors the resource generation methods, splitting them up
    into smaller methods.

commit 49b2bd3b9b68576ef879eb0b5974d561c69c5dc7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 12 17:54:25 2013 -0700

    (#18508) Ensure eval_generated resources apply at the right time
    
    Resources created with eval_generate need to apply with the same
    priority as their parent resource.

commit 2d3eca6be56f3b35eb971bfa3c9072c34d75f9c3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 12 16:32:05 2013 -0700

    (#18508) Extract class to control generating resources
    
    The logic for determining how to add generated resources into the
    catalog was tightly bound with the rest of the transaction code. This
    makes it hard to test the exact logic around that. By extracting a class
    it exposes that logic in a much more testable form.

commit d634c9979e648a7221d7fd1b23d8f44dcb3d8301
Author: Melissa <melissa@puppetlabs.com>
Date:   Tue Aug 13 11:42:15 2013 -0700

    (Bug #22164) remove hardcoded hostname dependencies
    
    Prior to this commit, burji.puppetlabs.com was hardcoded in different
    points of puppet. Since we're in the process of migrating off burji and
    onto burji2, we realized this probably is not a good thing to have in
    place. This commit removes that hardcoded dependency on burji.

commit 5150d7fce026ccd3fb0d8ddf10d360c19118c527
Merge: 7127cb9 fb2f551
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 13 13:26:15 2013 -0700

    Merge pull request #1837 from jpartlow/issue/master/22128-yum-prefetch-failure-solaris-spec-fix
    
    (#22128) Yum prefetch spec ensures use of yum provider

commit fb2f5511409e01a6aaab780f3d6f4ff418796e6c
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue Aug 13 11:23:14 2013 -0700

    (#22128) Yum prefetch spec ensures use of yum provider
    
    The prefetch spec for the Yum package provider was failing on platforms
    whose default providers did not have the same capabilities (definitely
    on Windows for msi), because the previous implementation was generating type
    instances of Puppet::Type::Package without setting their providers.
    Consequently these instances were being generated with references to the
    platform's default providers, and might fail to set :ensure =>
    :latest due to missing capabilities.
    
    The spec is changed to associate instances of yum providers with the
    package type instances being passed into prefetch.  Also removed the
    confine for Windows.
    
    This also clears up a typo that got through in the original patch, which
    was failing on only some platforms.

commit 7127cb90d661db494fb40200688963923b73b1ff
Merge: 266abdc 5dc26d1
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Aug 13 09:58:26 2013 -0700

    Merge pull request #1835 from zaphod42/maint/master/fix-path-on-windows
    
    (Maint) Fix testing path on windows

commit 5dc26d1896b18a98007f602fd15310d45adc9640
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 13 09:35:50 2013 -0700

    (Maint) Fix testing path on windows
    
    A file resource needs to have absolute paths, but a drive relative path
    doesn't qualify as an absolute path on windows. This fixes the path used
    for testing to be "absolutized" before use.

commit ee2715d9551108767d14b33e509c8be065f03d73
Author: Clay Caviness <clay@boobah.com>
Date:   Mon Jul 22 12:07:52 2013 -0400

    (#6017) Purge MCX data before import
    
    Without this patch settings linger in the MCX system because old
    settings are not always overwritten by the data import.  This patch
    addresses the problem by purging all MCX data prior to the import.

commit 266abdcc009d5a384a7b16effbfcd5617a724b6a
Merge: 17da3d6 0a400e4
Author: Josh Partlow <jpartlow@glatisant.org>
Date:   Mon Aug 12 15:29:03 2013 -0700

    Merge pull request #1834 from jpartlow/issue/master/22128-yum-prefetch-failure-spec-confined-on-windows
    
    (#22128) Confine yum provider prefetch spec from running on windows

commit 0a400e4a43815225e811ab68a5fcc74719753389
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Aug 12 15:00:20 2013 -0700

    (#22128) Confine yum provider prefetch spec from running on windows
    
    The new yum prefetch spec was failing on windows:
    
    Puppet::Type::Package::ProviderYum prefetching injects latest provider
    info into passed resources when prefetching
        Failure/Error: myresource = package_type.new(:name => "myresource",
    :ensure => :latest)
        Puppet::ResourceError:
          Parameter ensure failed on Package[myresource]: Provider must have
    features 'upgradeable' to set 'ensure' to 'latest'
    
    possibly because the windows default package provider does not provide
    the same features.  Since this test is specific to yum, confining it from
    running on windows.

commit 17da3d6e4e65119482a1289315875956de103039
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 12 14:55:21 2013 -0700

    (#18508) Create explicit dependencies before implicit
    
    All of the explicit dependencies need to be added before any of the
    implicit (autorequire) dependencies are processed. This is because we
    skip an implicit dependency if it would interfere with an expicit one,
    and if we don't have all of the explicit dependencies available the
    system will end up creating implict ones that cause dependency cycles.

commit 0ef4ac0186a312558022e27c75b6d2def19e7814
Merge: af475f9 3331528
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Aug 12 14:30:55 2013 -0700

    Merge branch 'stable'
    
    Conflicts:
    	lib/puppet/resource/type_collection.rb

commit af475f9c2920fc1ab10fe0c171ceb6d5c81605a7
Merge: af0b498 a8d9f0b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 12 13:06:15 2013 -0700

    Merge pull request #1833 from jpartlow/issue/master/22128-yum-prefetch-failure
    
    Issue/master/22128 yum prefetch failure

commit 33315289af05eb0ec0c48024e62eafff4e2c22ef
Merge: f8d65a3 363e79d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Aug 12 13:02:20 2013 -0700

    Merge pull request #1820 from Sharpie/21835-silence-ignoremissingtypes
    
    (#21835) Remove missing type optimization warning

commit a8d9f0bc43ee6cb69d919451a1e1368b497c56c4
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Aug 12 10:44:10 2013 -0700

    (maint) Load puppetx for yaml_backend_spec
    
    Depending on order of specs, dependencies might or might not be loaded
    for Puppet::Pops::Binder::Hiera2::YamlBackend to resolve.
    
    Ensures that YamlBackend's prerequisites are loaded in the spec.
    PuppetX will only load the PuppetX::Puppet::Hiera2Backend that
    YamlBackend extends if binder is true.
    
    This is not a particularly lovely way of doing this in a spec, but the
    YamlBackend implementation is intended to be lazily loaded by the
    binding system.  There may be a better way of ensuring YamlBackend is
    available for testing.

commit ff3ee67b503ff09f9f6b3a3191f0aad7e9b247b3
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Aug 12 10:23:29 2013 -0700

    (#22128) Fixes rpm provider's nevra regex to work in yum prefetch
    
    Work done for #19875 changed the rpm provider's regex for parsing
    package information.  The yum package provider's prefetch method relied
    on the earlier version of this regex and was broken by this change,
    resulting in a failure to set latest_info when using yum and a series of
    warning messages in the logs.
    
    This change adjusts the rpm NEVRA_REGEX such that the added description
    info is an optional capture.

commit af0b498e39afc252880ca5087d4bbf9a99db203b
Merge: 53140d1 7d0a559
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Aug 12 10:39:52 2013 -0700

    Merge pull request #1828 from Sharpie/21839-stringify-timestamp-fact-name
    
    (#21839) Stringify the :_timestamp fact name

commit 53140d1eefe75ded1d0daae05ac341291ee072cb
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Aug 10 05:30:25 2013 +0200

    (maint) Remove unused Hiera2::Backend class
    
    This class is no longer used. It contained a very simple Hiera2 backend
    loader that was replaced with an extension using the same loader as
    for other extensions.

commit 4d2e0fe5b714872bca13635fe2b7ec0b6a718bcf
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Aug 10 05:20:56 2013 +0200

    (maint) Fix problem reading empty file with safe yaml
    
    Safe yaml always chokes on an empty file with a TypeError
    (nil cannot be converted to an integer).

commit 41f00dca91361e87f6a029e44fa4a879b79341e1
Merge: d2acfbd 2c9d789
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Aug 9 17:28:18 2013 -0700

    Merge pull request #1832 from zaphod42/agent-ordering
    
    (#18508) Apply resources in the order they are added to the catalog

commit 2c9d789860034f5cd79453c0a70f2b36ca51c660
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 9 17:23:35 2013 -0700

    (#18508) Fix acceptance test for manifest ordering
    
    The test was missing the autosign argument and did not set up
    permissions correctly.

commit 9062f419f98fb6f0c20369b53eed8edb265493ac
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 9 14:58:02 2013 -0700

    (Maint) Move creation of relationship graphs to RelationshipGraph
    
    Previously the catalog had all of the logic for how to put together the
    relationship graph, but that code is better encapsulated in the
    Puppet::RelationshipGraph class. This moves all of the logic to that
    class.

commit 093ccf54e8a913d890df86db7347079998510ba3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 9 12:49:59 2013 -0700

    (#18508) Fix order of apply for resources in containers
    
    When the Whits are created for a container in the relationship graph, we
    need to maintain the priority of the original container for both of the
    Whits or else they will end up being pushed to a later point in evaluation.

commit 2f435358f2716f4c060244f1fe7242526cbca630
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 8 18:03:37 2013 -0700

    (#18508) Ensure resource ordering in interesting cases
    
    From the the accepted proposal for this functionality some of the
    example cases have been captured as test cases.

commit ed62ee7ac15ec104f5352a503a31ea124e6f7d46
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 8 17:14:06 2013 -0700

    (Maint) Collapse classes for relationship graphs
    
    Since the introduction of the Puppet::RelationshipGraph the
    Puppet::Transaction::RelationshipGraphWrapper seemed a bit out of place.
    This changes the interface for the #traverse method so that all of the
    transaction specific and interacting portions are injected in, which
    decouples the RelationshipGraphWrapper from the Transaction. Once that
    was done, then it was clear that the two graph classes could be brought
    together.
    
    This provides a single class that represents the final relationship
    graph and the semantics of traversal that that graph has.

commit 56b7af6b1b67b7236955cbb06cb894f398dde18d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 7 17:07:54 2013 -0700

    (#18508) Add failing test case for ordering issues

commit bd36071a836184961e9072c7cd86c91da351e704
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 7 13:33:59 2013 -0700

    (#18508) Add acceptance test for ordering when using master and agent setup
    
    We want to make sure nothing in the network layer changes things.

commit 6694a4d6bb07a194a605a5a6ccc40afd1dfb7429
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 7 13:27:48 2013 -0700

    (#18508) Promote working acceptance test for ordering

commit 46d3f26273bc9bd980b4e33ef9e099989c4d25d7
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Aug 5 14:28:40 2013 -0700

    (#18508) Test that the relationship graph gets built in order
    
    The relationship graph needs to be built to preserve the order that
    resources are in the catalog. This ensures that we do that.

commit 86bdd1a141b48c2f0383d17c2cbdac74d5a71795
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 1 17:29:26 2013 -0700

    (Maint) Delete transaction specs that were testing implementation and not behavior
    
    Many of the specs had intimate knowledge of the implementation of the
    transaction and made changing it difficult. They added little value
    themselves, so just remove them.

commit d4ae8933cf037bef275826d2ab978c017e5a71a8
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 1 16:24:45 2013 -0700

    (Maint) Avoid creating unneeded Status objects in Transaction
    
    When querying whether a resource was scheduled, we were unnecessarily creating
    a Status for the resource even though it was unused.

commit 38b373f932461e692fb0815f150de4ca6b06481e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 1 16:20:06 2013 -0700

    (Maint) Parenthesize
    
    Parens are nice :)

commit 0f365a155e81d80bcbdf9de74b1428dd7c5f8949
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 1 15:29:45 2013 -0700

    (Maint) Fix some docs in Puppet::Type

commit ea1331a5372359450db3650d0fbea1289285eb0c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 1 14:40:48 2013 -0700

    (Maint) Simplify conditional in aliasing
    
    Only Type and Parser::Resource respond to isomorphic, and they both implement
    name and title so we can eliminate these unneeded checks.

commit 85d6f91273531ce7705fa2c4661740e6a2a8d9a0
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 31 17:07:05 2013 -0700

    (Maint) Make methods private in Transaction
    
    Many methods in Transaction were public but should not reasonably be
    considered public. This narrows Puppet::Transaction down to a
    reasonable, and small, public interface.

commit 9ae7c69ceb2695b07fc954d8a0b3b645c5fa5ddc
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 31 16:04:34 2013 -0700

    (Maint) Remove weird thing in transaction tests
    
    Can't understand what this does, but removing it had no noticable effect
    on the tests.

commit 699b85b04b37afe5051002b4876de8fe0d5abb8b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 31 14:57:28 2013 -0700

    (Maint) Remove commented code

commit 8046f12a53430aa9b5d361dcf7146f843014c05e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 30 18:41:30 2013 -0700

    (Maint) Decouple reports for logging from catalogs
    
    Previously the catalog had to track if a report had been given for
    logging. This encapsulates that relationship so that only the report
    knows how to control the logging destinations.

commit 0d5a560db34d728e35e2b3885060bec0c0611882
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 30 18:08:26 2013 -0700

    (Maint) Move reporting catalog retrieval duration to the transaction
    
    This is another step in removing dependencies between catalogs and
    transactions.

commit 30da178d774bb58f23490b99a68874f345a0abd2
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 30 17:53:42 2013 -0700

    (Maint) Add preliminary YARD to Catalog#apply

commit 5506db8a9bede6bf5b8cfb440ca572b20d74fc6b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 30 17:34:04 2013 -0700

    (Maint) Extract create_transaction

commit 71009efb398c4885c703fa9ea69b06bda83929b4
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 30 17:12:16 2013 -0700

    (Maint) Remove unused #applying? from Catalog
    
    There don't appear to be any uses of this api private method anywhere in
    the codebase. It wasn't technically marked as private, but it has no
    clear purpose.

commit 0b545b82318d4757911b05ed3fc48314b5ee0b1e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 1 13:48:29 2013 -0700

    (Maint) Move Relationship_graph_wrapper into its own file and slightly refactor
    
    Relationship_graph_wrapper stuck out like a sore thumb in the middle of
    Puppet::Transaction. This is the first step to cleaning it up.

commit 042f6dcb302bb0e23249b5b1c2a08eb1ed552d46
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 30 15:09:30 2013 -0700

    (#18508) Add acceptance test for basic resource ordering

commit d2acfbd7ff3635bca1991f6ec62322f43ac21ad0
Merge: 3482518 2cb57bf
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Aug 8 20:13:24 2013 -0700

    Merge pull request #1773 from dalen/forge_relative_url
    
    (#21785) Module tool should include path part of URI

commit 3482518c8463e2c834cddb3e901d617f5d513187
Merge: 539ffa4 19b0e78
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Aug 8 20:09:44 2013 -0700

    Merge pull request #1812 from jasperla/openbsd/flavor
    
    Fix regex for retrieving flavor.

commit 539ffa460f77f7c2a98785a5ce62c5427b9a0bf4
Merge: 2b93dda 40801c0
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Aug 8 20:07:02 2013 -0700

    Merge pull request #1751 from dalen/generic_srv_records
    
    (maint) make SRV record lookup more generic

commit 2b93ddad3e01a70916d3d0d762ce5be4e122c07d
Merge: d0b9aef ee14796
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Aug 8 20:04:37 2013 -0700

    Merge pull request #1817 from jasperla/openbsd/purge
    
    (#22023) Implement :purgeable feature for OpenBSD package provider

commit d0b9aef253c92cef4f1ff411bc1dc53fe07a131b
Merge: e3c7964 a5b8b96
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Aug 8 20:02:21 2013 -0700

    Merge pull request #1798 from jasperla/pkgconf
    
    Enchance OpenBSD pkg.conf handling

commit 5c38864723b4297218db911463959c91ef667ddf
Author: Erik Dalén <dalen@spotify.com>
Date:   Thu Aug 8 14:51:37 2013 +0200

    (#16214) Allow specifying module tool skeleton dir directly
    
    Allows specifying the module tool skeleton directory directly instead of
    always having is as $module_working_dir/skeleton.

commit e3c79642fb15b49d58b37773c15d43372743694f
Merge: d2d7993 b6de574
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Aug 7 17:21:04 2013 -0700

    Merge branch 'maint/master/fix-bad-timestamp-check'
    
    * maint/master/fix-bad-timestamp-check:
      (Maint) Improve check for the timestamp

commit b6de574da3ba08625719e8b2d376c2c64b0a0578
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Aug 7 17:17:43 2013 -0700

    (Maint) Improve check for the timestamp
    
    Since the test cannot control how much time elapses between getting a
    time and the timestamp being created, the test was brittle as written
    (that the timestamp should be within 1 second of the time at the start
    of the test). The right way to check this is to assert that the
    timestamp is from some time between the start of the operation and the
    end of the operation.

commit d2d799314da663e91b1920e32a38d10a2ddb2e76
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 7 17:03:31 2013 -0700

    Remove tests depending on json-schema
    
    This was causing specs to fail on windows, due to interactions with
    json-schema and uri handling. This leaves the schema itself so that we can use
    it again in the future.

commit 1d99c2bccb88e751b3dd1835deca88759f27904a
Merge: 33c4c00 d245bb3
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed Aug 7 15:36:09 2013 -0700

    Merge branch 'maint/master/readme-spelling'
    
    * maint/master/readme-spelling:
      (maint) Minor spelling fix in README.md

commit d245bb32ec98d3b4b0b9f5c0bbaea89b6c126202
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed Aug 7 15:29:36 2013 -0700

    (maint) Minor spelling fix in README.md

commit 7d0a559b7ae1ea4d00f003fbd758ec0d20c89298
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Wed Aug 7 12:23:31 2013 -0700

    (#21839) Stringify the :_timestamp fact name
    
    Change all instances of the `:_timestamp` fact to `_timestamp`. Symbols can be
    converted to strings during a round-trip through a simple terminus such as
    JSON. If the Fact is then updated using the symbol, there will be two names for
    the same data.
    
    After 5ac681f, in the 3.0 rc series, all varible names are explicitly
    stringified when added to compiler scopes. This means that facts named
    `:_timestamp` and `_timestamp` will end up mapping to the same scope variable
    which violates static single assignment.

commit 33c4c009f0098cb8fb28c3a3de56722eb5440626
Merge: 1c0a2c1 f8d65a3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Aug 7 11:59:21 2013 -0700

    Merge remote-tracking branch 'upstream/stable'
    
    * upstream/stable:
      Docs: Slight tweak to description of the alias metaparameter
      (maint) Remove rspec requires from the Rakefile
      (maint) Typo fixes for code comments
      (maint) Spelling fixes for code comments
      (maint) Various fixes (whitespace, etc)
      (doc) Clarify a couple of comments under lib/puppet/
    
    Conflicts:
    	lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb

commit 1c0a2c14e6ca8aff795418c1e846eae23da5d96b
Merge: 56564aa 725c3f9
Author: kylo <kylo@puppetlabs.com>
Date:   Wed Aug 7 11:24:06 2013 -0700

    Merge pull request #1827 from kylog/feature/binder-rebased-2
    
    (#16856) Add support for Data-in-Modules

commit 725c3f9c0cacb66c771e9825e5e03865fb79b376
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Wed Aug 7 11:12:26 2013 -0700

    (#16856) replace the _Foo idiom with expanded namespaces

commit 1fcec065901e5b604ed31407e49a356d9452a846
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Tue Aug 6 21:15:40 2013 -0700

    (#16856) fix hiera2 yaml backend for empty/invalid yaml files

commit 2471c0fc83ed394db052cac242f6b90d0df07289
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Jul 31 14:18:29 2013 -0700

    (maint) Remove rspec requires from the Rakefile
    
    In the Rakefile, we no longer use Rspec methods or classes, but instead shell
    out to rspec, so requiring rspec serves no purpose in the rakefile. The require
    was also incorrectly placed within an unrelated begin/rescue block, which
    caused deprecated rake libraries to be loaded when rspec was not present. This
    commit removes it from the Rakefile.

commit b2a77e004e71f84f6fd2650560b58b5544bffc8b
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Aug 6 13:47:40 2013 -0700

    (packaging) Remove oneiric from ext/build_defaults.yaml

commit 1e5fc903c17d9831c6ef115a8cbb4fb9b99c0775
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Aug 6 13:24:56 2013 -0700

    (packaging) Update CHANGELOG, PUPPETVERSION for 2.7.23

commit ddd8b59f2149934c45029a3c7e2d3a863c5a562b
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Aug 5 23:38:22 2013 -0700

    (maint) Fix module_utils regex tests for module file perms
    
    Corrects a few bugs in the assert_module_installed_on_disk method.
    
    Also specifically rejects '..' files from the test, since moduledir
    itself, as seen by "#{moduledir}/#{module_name}/..", may have
    different permissions.
    
    And finally tests 644 for any non-directory file, and allows for a non
    space character following the symbolic mode list, because SELinux
    (rhel6) may have a '.' rather than a space here.

commit c9f871789387a0b8e2c43f99515ba26fbb8f1dc6
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 5 17:52:04 2013 -0700

    (Maint) Update test to reflect chown using the gid too
    
    When the gid control code was backported, the spec tests were not
    updated to reflect this. This changes the expectation to match the code.

commit 78be1de57484891107fbd2a5c10a61ae5d5aba73
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 5 17:47:26 2013 -0700

    (Maint) Update expectations for older rspec
    
    These tests were backported from a commit that was for a newer version
    of rspec. The older version of rspec used for this branch does not
    support the expect().to syntax.

commit 27abe7e2c13ccb334756ba4d3e5d22b279f47e96
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Mon Aug 5 14:18:21 2013 -0700

    Improving testing around PMT module install permissions.
    
    Previously, the tests simply asserted that certain files had correct permissions
    and belonged to the appropriate users and groups.  This worked well enough in common
    cases, but could also yield a number of false positives.  This change works to remove
    a great deal of the ambiguity by specifically assigning an unusual group to the modules
    directory, and by asserting the permissions for every file in the installed module.

commit b7a0d2971ff713ec16aaf195992f7ea158dc26b9
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Mon Aug 5 12:37:03 2013 -0700

    Ensure that PMT uses the correct group membership.
    
    Previously, modules installed by the root user would retain the
    original group membership information.  This change ensures that the
    group will match the module directory being installed to.

commit 94cedf7353d79ae643861e3e9c3943e19dd2f701
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Aug 5 11:45:59 2013 -0700

    (#21971) Allow paths that contain .. as part of a name
    
    The PathPattern code was incorrectly flagging paths like /tmp/foo..bar
    as being directory traversals. This updates that to exclude those names
    by checking each path component separately instead of looking at the
    path as a whole.
    
    In addition this fixes up the error reporting about these kinds of
    errors in Puppet::Module by creating the absolute PathPattern for the
    manifests directory of the module at initialization time, so that any
    errors from it are not swallowed by the error handling for the relative
    path searching of manifests.
    
    This also removed some duplicate handling of init.pp and init.rb where
    in the case of having no pattern to search for the init files were
    returned twice and also seemed to be loaded twice. This does not remove
    the behavior in which the init.pp and rb files are *always* returned
    when they exist, because that seems to be explicit behavior added for
    issue #4220.
    
    Conflicts:
    	lib/puppet/module.rb
    	spec/unit/module_spec.rb
    
    Had to move absolute path to manifests back into wanted_manifests_from
    because module initializes with a path optionally.

commit 4e0089579ce35709afb7df78d08ebe8a648b5d80
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 2 17:49:50 2013 -0700

    (Maint) Confine module tool tests off of windows
    
    The module tool on puppet 2.7 isn't supported on windows. The tests
    shouldn't run there.

commit 23bdf22c9cbc4c293e96721577a9cab7d354c7eb
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Fri Aug 2 16:19:10 2013 -0700

    Fixing broken requires in the acceptance tests.
    
    Three acceptance tests were improperly backported, and as such couldn't require some dependencies they had; this change fixes the requires and backports the
    helpers.

commit 13a3048994b19e22c13ac32da8eb15af5cfea954
Merge: 33ae3405 18379b6
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 2 13:45:46 2013 -0700

    Merge branch 'security/2.7.22/21971-remote-execution-through-resource_type-backport' into release_2.7.23
    
    * security/2.7.22/21971-remote-execution-through-resource_type-backport:
      (#21971) Fixes PathPattern's usage of Dir.glob for Windows
      (#21971) Fix how import_all loads files
      (#21971) Create system for safely dealing with path patterns
      (#21971) Split import and autoloading code paths
      (#21971) Add test for accessing based on master being at root
      (#21971) Check for possible directory traversal
      (Maint) Clean up specs
      (Maint) Use dirname instead of regexes
      (#21971) Create test to show exploit of resource_type

commit 18379b6d75658cb1419c1701e1185ad117c335ff
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu Aug 1 18:20:43 2013 -0700

    (#21971) Fixes PathPattern's usage of Dir.glob for Windows
    
    Dir.glob seems to perform an impilicit to_s on what is passed.  Except
    on Windows.  This change explicitly converts Pathname to a String, so we
    don't have any surprises.

commit c0d0339d9639d534c5fa46989412e9cf7dc240f7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 1 17:28:31 2013 -0700

    (#21971) Fix how import_all loads files
    
    The backport of changes had an incorrect import_all that called
    load_files with a single string, when an array is expected. This mistake
    would not be obvious since ruby 1.8 implements #each on String.

commit ee80db0bbb3427e1107b0ec90be7e5f15b6801d9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 1 15:22:48 2013 -0700

    (#21971) Create system for safely dealing with path patterns
    
    Correctly checking that a given string is safe to use for looking for
    files on the filesystem is tricky. This adds a class called
    Puppet::FileSystem::PathPattern that encapsulates a validated path
    pattern free of defects such as directory traversal '..' entries and
    zero byte delimeters. This is then used to protect finding manifest
    files in modules.

commit 24b18deb87d54174da140a835c8e526e4158a949
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jul 31 12:18:41 2013 -0700

    (#21971) Split import and autoloading code paths
    
    The codepaths for import and autoloading of manifest files were combined
    at many levels, which made them share behaviors that were not wanted.
    The import ability to load absolute paths leaked through into how
    autoloading would try to find files for a particular class name, which
    resulted in a possible vulnerability to injected class names (ENC
    values, hiera data, etc). This splits those code paths to ensure that
    the one used for autoloading only will ever look in modules that are
    registered on the modulepath, while still allowing the import path to
    look at absolute and relative file paths.

commit 88da2ab20560cf4f65c174e5bc3e1a88caec235a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 30 15:35:38 2013 -0700

    (#21971) Check for possible directory traversal
    
    The class name that is being looked for is translated to the directory
    structure to search. In order to prevent directory traversal attacks we
    need to make sure that the requested class name is valid and therefore
    doesn't contain any directory traversal shortcuts.

commit b0924a3ce113c3d02c63417a260a9144580e878c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 30 15:12:52 2013 -0700

    (Maint) Clean up specs
    
    The specs were distractingly bad. There was usage of instance variables
    that were created in a loop, but caused the final value, which was used
    by the tests, to not be what the author expected. This also pulls out
    specific tests around how add() behaves in very important circumstances,
    which the previous way of automatic test generation did not make clear.

commit e9b54a0d105783c263cbef93df84be045e7c1c05
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 30 11:28:23 2013 -0700

    (Maint) Use dirname instead of regexes
    
    A sequence of substitutions to strip off the trailing filename from a
    path. This is actually just File.dirname in disguise.

commit adff11c0525b5bd566bef84cd1e211c12ae2f4aa
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Aug 5 23:38:22 2013 -0700

    (maint) Fix module_utils regex tests for module file perms
    
    Corrects a few bugs in the assert_module_installed_on_disk method.
    
    Also specifically rejects '..' files from the test, since moduledir
    itself, as seen by "#{moduledir}/#{module_name}/..", may have
    different permissions.
    
    And finally tests 644 for any non-directory file, and allows for a non
    space character following the symbolic mode list, because SELinux
    (rhel6) may have a '.' rather than a space here.

commit c0234fe6e9a07a0452ac3c3bb96ad2112d8efb49
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Aug 5 17:49:40 2013 -0700

    (maint) Fix windows test for embedded '..' in path
    
    Was calling relative with an absolute url.  Moved to the absolute
    section.

commit afc9859bc21df2be2e4fb01d844ebe7f54804d71
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Mon Aug 5 14:18:21 2013 -0700

    Improving testing around PMT module install permissions.
    
    Previously, the tests simply asserted that certain files had correct permissions
    and belonged to the appropriate users and groups.  This worked well enough in common
    cases, but could also yield a number of false positives.  This change works to remove
    a great deal of the ambiguity by specifically assigning an unusual group to the modules
    directory, and by asserting the permissions for every file in the installed module.

commit f8a9eec7b14f05218faf974e1d39c7de9dd3f4d5
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Mon Aug 5 12:37:03 2013 -0700

    Ensure that PMT uses the correct group membership.
    
    Previously, modules installed by the root user would retain the
    original group membership information.  This change ensures that the
    group will match the module directory being installed to.

commit 987c4d54a25f54f850c75d73c17b3a5c4248fdb7
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Aug 5 11:45:59 2013 -0700

    (#21971) Allow paths that contain .. as part of a name
    
    The PathPattern code was incorrectly flagging paths like /tmp/foo..bar
    as being directory traversals. This updates that to exclude those names
    by checking each path component separately instead of looking at the
    path as a whole.
    
    In addition this fixes up the error reporting about these kinds of
    errors in Puppet::Module by creating the absolute PathPattern for the
    manifests directory of the module at initialization time, so that any
    errors from it are not swallowed by the error handling for the relative
    path searching of manifests.
    
    This also removed some duplicate handling of init.pp and init.rb where
    in the case of having no pattern to search for the init files were
    returned twice and also seemed to be loaded twice. This does not remove
    the behavior in which the init.pp and rb files are *always* returned
    when they exist, because that seems to be explicit behavior added for
    issue #4220.

commit 01c69eb635d03b9ead1592b1980926ae983d268d
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Fri Aug 2 14:55:53 2013 -0700

    Fixing a missed test for minitar.
    
    This test wasn't updated when the signature of #unpack was changed, which was
    causing the tests to fail. The test now sends appropriate arguments to
    the method.

commit 214d42e49b95e16aecd83cdac8056ac65a672e87
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 2 12:42:38 2013 -0700

    (Maint) Reinstate check for manifest dir
    
    The check that a manifest directory exists seems to have been lost
    during a merge at some point. This puts the check back in for import_all

commit d70b7e087e7ef85d1bc522de7840d704ead29ad5
Merge: 56444c4 c9473a6
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 2 12:25:07 2013 -0700

    Merge branch '21953_PMT_Permissions' into release_3.2.4
    
    * 21953_PMT_Permissions:
      (#21953) Add test to verify module permissions

commit 56444c4706fdb39fb41e6be7cacb92baa65400d9
Merge: a177c9d fe7b9f0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 2 12:22:39 2013 -0700

    Merge branch 'PF-166' into release_3.2.4
    
    * PF-166:
      (#14333) Ensure module permissions are sane.

commit c9473a64c668bec74c0cadf657db0fe1ca465f74
Author: John Duarte <john.duarte@puppetlabs.com>
Date:   Tue Jul 30 16:33:42 2013 -0700

    (#21953) Add test to verify module permissions
    
    This patch adds a call to the helper method
    assert_module_installed_on_disk
    in the basic module install test.
    
    The module helper module_utils.rb is added to support it. The
    criteria for validating that the module has been properly applied
    to disk are as follows:
    
        * The containing directory for the module has a mode of 755
        * The Modulefile for hte module has a mode of 644
        * The owner of the containing directory for the module is
          the same as the `moduledir` that it is installed into.
        * The group of the containing directory for the module is
          the same as the `moduledir` that it is installed into.
    
    The assert_module_installed_on_disk validates the above criteria.

commit a177c9d333b052c4d81d09ae2538bd5393612c69
Merge: a23fd4e a0f8a32
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 2 12:16:27 2013 -0700

    Merge remote-tracking branch 'cve/security/3.2.3/21971-remote-execution-through-resource_type' into release_3.2.4
    
    * cve/security/3.2.3/21971-remote-execution-through-resource_type:
      (#21971) Fixes PathPattern's usage of Dir.glob for Windows
      (#21971) Fix TypeLoader#import_all on Ruby 1.8.7
      (#21971) Create system for safely dealing with path patterns
      (#21971) Split import and autoloading code paths
      (#21971) Add test for accessing based on master being at root
      (#21971) Check for possible directory traversal
      (Maint) Clean up specs
      (Maint) Use dirname instead of regexes
      (#21971) Create test to show exploit of resource_type
    
    Conflicts:
    	lib/puppet/parser/type_loader.rb
    	spec/unit/parser/type_loader_spec.rb

commit fe7b9f0e0376cd17f12d4512f2cbf4519b3aa1ef
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Tue Jul 30 12:30:47 2013 -0700

    (#14333) Ensure module permissions are sane.
    
    Prior to this change, tarballs unpacked by the root user would be unpacked
    with the permissions and the ownership information present in the tarball.
    In the best case, this made some modules fail to function after installation
    since the newly installed module was owned by a different user. In the worst
    case, this could be seen as a fairly serious security vulnerability.
    
    This change ensures that the module's permissions are always owner-writable,
    world-readable, and that the owner is always the same as the module's parent
    directory.

commit a0f8a327d295adf919bcad71d416901a7a6b2c2b
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu Aug 1 18:20:43 2013 -0700

    (#21971) Fixes PathPattern's usage of Dir.glob for Windows
    
    Dir.glob seems to perform an impilicit to_s on what is passed.  Except
    on Windows.  This change explicitly converts Pathname to a String, so we
    don't have any surprises.

commit 3932e785e913cd5f2dfeb145cd07056e6112d27d
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu Aug 1 17:27:31 2013 -0700

    (#21971) Fix TypeLoader#import_all on Ruby 1.8.7
    
    Ruby 1.8.7's Find.find requires a block and returns nil.  This changes
    the import_all implementation to insert acceptable files into a separate
    list.

commit d689513360e72111146bd40a7f22256704207676
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 1 15:22:48 2013 -0700

    (#21971) Create system for safely dealing with path patterns
    
    Correctly checking that a given string is safe to use for looking for
    files on the filesystem is tricky. This adds a class called
    Puppet::FileSystem::PathPattern that encapsulates a validated path
    pattern free of defects such as directory traversal '..' entries and
    zero byte delimeters. This is then used to protect finding manifest
    files in modules.

commit 654765154200f3ab10ba7cedb458fa37d0a01da0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jul 31 12:18:41 2013 -0700

    (#21971) Split import and autoloading code paths
    
    The codepaths for import and autoloading of manifest files were combined
    at many levels, which made them share behaviors that were not wanted.
    The import ability to load absolute paths leaked through into how
    autoloading would try to find files for a particular class name, which
    resulted in a possible vulnerability to injected class names (ENC
    values, hiera data, etc). This splits those code paths to ensure that
    the one used for autoloading only will ever look in modules that are
    registered on the modulepath, while still allowing the import path to
    look at absolute and relative file paths.

commit e7e1be1c16eb3339cdd3fb9425f28092ef86ee94
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 30 15:35:38 2013 -0700

    (#21971) Check for possible directory traversal
    
    The class name that is being looked for is translated to the directory
    structure to search. In order to prevent directory traversal attacks we
    need to make sure that the requested class name is valid and therefore
    doesn't contain any directory traversal shortcuts.

commit 4b8d0a119fa346c78d50ea10119eb116e260665b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 30 15:12:52 2013 -0700

    (Maint) Clean up specs
    
    The specs were distractingly bad. There was usage of instance variables
    that were created in a loop, but caused the final value, which was used
    by the tests, to not be what the author expected. This also pulls out
    specific tests around how add() behaves in very important circumstances,
    which the previous way of automatic test generation did not make clear.

commit 98e3a38f818e3880ab067ca1f4c1266337802dfe
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 30 11:28:23 2013 -0700

    (Maint) Use dirname instead of regexes
    
    A sequence of substitutions to strip off the trailing filename from a
    path. This is actually just File.dirname in disguise.

commit 56564aa46d36f45679eb7677420715f0f07e01ee
Merge: 12761d2 3656893
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Aug 6 15:14:02 2013 -0700

    Merge branch 'maint-windows_specs_unix_paths'

commit 36568933b7686c72264c151b463b117e481a45db
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Aug 6 15:13:35 2013 -0700

    (maint) Refactor http pool specs, expand windows path

commit 12761d282661d1b24f29aa877da1d3a20a38cfba
Merge: b20b2d6 4da10c3
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Aug 6 14:54:22 2013 -0700

    Merge branch 'fix-json-validation'
    
    * fix-json-validation:
      (#21881) Handle reading the schema ourselves
      Revert "Merge branch 'remove-json-schema'"

commit 4da10c3bcd5faa3b1ca787ad6d8c6c6d7f4d7679
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Aug 6 14:50:52 2013 -0700

    (#21881) Handle reading the schema ourselves
    
    If we bypass the weird file loading code in json-schema then this works.

commit 78fa4703dface699a695129a23c501e95525c8e9
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Aug 6 14:32:45 2013 -0700

    Revert "Merge branch 'remove-json-schema'"
    
    This puts back the code to check a json schema in resource_type specs.

commit b20b2d6c0b7caecc574c7e0b3163241a5d45b113
Merge: 5443c5d a1b7b10
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 6 14:24:39 2013 -0700

    Merge pull request #1826 from adrienthebo/maint-windows_path_spec_failures
    
    Refactor network/http/connection peer verify specs

commit 516c1f5d921a1d28524e35507a111eddc3dfa8c6
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Tue Aug 6 13:35:40 2013 -0700

    (#16856) add caveat that the binding system is experimental

commit fb505f8ed6b3eaaa1224d9dba5c5f4ce1bab0205
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Tue Aug 6 12:21:36 2013 -0700

    (#16856) remove unused method (b/c re-implemented below)

commit 16bad03b6282f782f12638b905a8a538583541ee
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Tue Aug 6 12:20:37 2013 -0700

    (#16856) comment cleanup

commit a1b7b1003d6906ee7a31040560a215eb39625b8e
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Aug 6 11:46:56 2013 -0700

    (maint) expand fixture paths in specs for windows

commit e8527b7bdddb2c29699ab083e8d1468a0a8db7c8
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Aug 6 11:45:07 2013 -0700

    (maint) extract reusable helper methods

commit d637f31701422e9efce359426b32160f21366a35
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Aug 6 11:37:21 2013 -0700

    (maint) extract test into setup and test cases

commit 19b0e78df7e010f0af111fda083fd7f87499f952
Author: Jasper Lievisse Adriaanse <jasper@humppa.nl>
Date:   Wed Jul 31 12:20:15 2013 +0200

    (22004) Fix regex for retrieving flavor.
    
    Previously a flavor like 'no_x11' would be truncated to 'no_x'.
    https://projects.puppetlabs.com/issues/22004

commit 363e79dbf1e54036f1e1cbe5687f678e483d217e
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Mon Aug 5 16:41:20 2013 -0700

    (#21835) Downgrade missing type optimization warn
    
    For some catalogs, enabling `ignoremissingtypes` can produce a lot of noise in
    the logs. This change downgrades the warning to a debug message and debounces
    the logger so that messages appear only once per missing class or definition.

commit 5443c5d3558f085c1d4e48eca1b223e066dac675
Merge: b47e7ac 9b16ff8
Author: Josh Partlow <jpartlow@glatisant.org>
Date:   Mon Aug 5 16:37:17 2013 -0700

    Merge pull request #1825 from jpartlow/issue/master/22079-fix-hash-array-access
    
    (#22079) Fix HashArrayAccess produces :undef when value is false

commit 9b16ff8e50daf91292f5a40294520944542660d2
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 19 03:44:39 2013 +0200

    (#22079) Fix HashArrayAccess produces :undef when value is false
    
    It should naturally have produced false. The test for "having value" was
    wrong and equated nil with false.

commit b47e7ac256ec4c77bad1730f10805c84a9c4242d
Merge: 8b180e7 93ecaf8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 5 16:24:45 2013 -0700

    Merge pull request #1824 from kylog/issue/21970-document-certificate
    
    (#21970) document response when master != ca

commit 93ecaf8f567c0202a1c01fe7034c999e2832f9ff
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Aug 5 16:22:27 2013 -0700

    (#21970) document response when master != ca

commit 8b180e776ccd418bd2c59969be8a9ca008a41da6
Merge: ccaad9c 571cd1f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 5 16:13:17 2013 -0700

    Merge pull request #1823 from kylog/issue/21970-document-certificate
    
    (#21970) document certificate endpoint

commit 571cd1f8518789e27ac5535c78a1ee59ec89fb40
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Aug 5 16:05:28 2013 -0700

    (#21970) add 'Supported HTTP Methods' section

commit a0c795598dfc00758ab49cb33a1e3c170daf283c
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Mon Aug 5 16:00:13 2013 -0700

    Add debug_once to util/warnings
    
    This function provides debounced logging for `Puppet.debug` similar to
    `notice_once` and `warnonce`.

commit 1c3baed5d897ff76c85643d350effc5c0aabb9a5
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Aug 5 16:02:35 2013 -0700

    (#21970) note that the certificate is in pem format

commit 74cca4202e7be663ce852163e4c1d7bee721176c
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Aug 5 15:29:07 2013 -0700

    (#21970) Correct markdown and add explanatory text

commit f8d65a38ea7c01699edf41a36903b6018a4ca321
Merge: 8e14323 161dd2f
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Aug 5 13:11:23 2013 -0700

    Merge pull request #1822 from nfagerlund/alias_metaparameter
    
    Docs: Slight tweak to description of the alias metaparameter

commit ccaad9cf43e062a63abe815dc13681f25a717569
Merge: 5c097f9 4647f23
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Aug 5 12:45:28 2013 -0700

    Merge branch 'remove-json-schema'
    
    * remove-json-schema:
      Revert "(#21881) Validate ResourceType against a json schema in tests"
      Revert "Encode the path passed to json-schema as a URI"

commit 4647f2355b3c68da3b463695145acce420cadfa2
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Aug 5 12:43:30 2013 -0700

    Revert "(#21881) Validate ResourceType against a json schema in tests"
    
    This reverts commit cc464f012f5c254c204dab97290da1795fbed031. There have been
    too many issues so far trying to make this library work on our test systems.

commit a265a72b1ac8ce368d1bd826be5216ca06f15e2a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Aug 5 12:43:25 2013 -0700

    Revert "Encode the path passed to json-schema as a URI"
    
    This reverts commit 5c097f9e0b89debc3923b4cfeba0730a68cfb210.

commit 161dd2f9a280fb5fd9634385a4cb24a9b6fbf07e
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon Aug 5 12:25:59 2013 -0700

    Docs: Slight tweak to description of the alias metaparameter
    
    - Delete the link to the old language guide; there's no "more information" in there.
    - Explain effects in practical terms instead of expecting the reader to know the
      diff between the parser and the "library."
    - Adjust quoting.
    - Fix technically-correct-but-not-what-we-were-trying-to-show syntax.

commit 5c097f9e0b89debc3923b4cfeba0730a68cfb210
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Aug 5 12:05:39 2013 -0700

    Encode the path passed to json-schema as a URI
    
    Json-schema expects a URI and fails if given a path with unencoded spaces.

commit ee14796e05bb05a6829644827e510b2b8e8076d4
Author: Jasper Lievisse Adriaanse <jasper@humppa.nl>
Date:   Thu Aug 1 17:32:46 2013 +0200

    (22023) Implement :purgeable feature for OpenBSD package provider

commit 693aec10793075bd1fb023260f04e5a8d11fee7b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Aug 3 01:57:45 2013 +0200

    (#16856) Fix failing test for Ruby 2.0.0 (different YAML exception)
    
    YAML in 2.0.0 is a different implementation and throws a different type
    of SyntaxError than in earlier Rubies. This fix uses the same mechanism
    as the Yaml Ruby indirector for handling exceptions from YAML
    loading/parsing.

commit 9bd0c7da2e8533422d5bc9c26cd9011a4a3bd4dc
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Aug 3 01:31:35 2013 +0200

    (#16856) Fix failing lookup function test (missing setting of --binder)
    
    The lookup function test was missing because the setting --binder
    was missing, and lookup only works when this feature is turned on).

commit 33ae3405190bf5bc85b52ac20aaa287043731237
Merge: e160e99 f02f186
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 2 13:45:33 2013 -0700

    Merge pull request #1815 from pvande/PF-166-2.7.x
    
    (#14333) Ensure module permissions are sane – 2.7.x backport.

commit f02f186919f73e063f287530b9565431ee479239
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Fri Aug 2 11:40:20 2013 -0700

    Backporting acceptance tests.

commit 90d41809f9d8283fd1dcd9e516d051e5d4d58067
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Wed Jul 31 14:30:25 2013 -0700

    (#14333) Ensure module permissions are sane.
    
    Prior to this change, tarballs unpacked by the root user would be unpacked
    with the permissions and the ownership information present in the tarball.
    In the best case, this made some modules fail to function after installation
    since the newly installed module was owned by a different user. In the worst
    case, this could be seen as a fairly serious security vulnerability.
    
    This change ensures that the module's permissions are always owner-writable,
    world-readable, and that the owner is always the same as the module's parent
    directory.

commit 341661df76648709d69d80724e78406a0cff2457
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Aug 2 06:46:18 2013 +0200

    (#16856) Improve reporting of syntax errors in interpolations in binder_config
    
    Before this fix, the information was Syntax error line, pos, but no
    file. This fix uses the file (or a reference to the ruby file that
    defined the defaults), and sets that in a syntax error exception if file
    information is not already set.

commit 5110e30111022bf96d7e656b1c612c23d97298fb
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Aug 2 05:48:38 2013 +0200

    (#16856) Improve comments, remove dead code, and increase readability
    
    A series of small fixes to readability in comments and logic in
    bindings_composer.

commit 2a6801c84f212757cef01cbc0f8bc237ec1e58fd
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Aug 2 05:21:43 2013 +0200

    (#16856) Make the lookup function raise appropriate error on inactive bindings
    
    When bindings are not activated (with --binder, or --parser future), the
    lookup function tried to use classes in the Pops name space and fails on
    uninitialized constant.
    
    This fix changes that to raise a more meaningful message.

commit a01816a2962ec79973e38fae89ed81f66e8ea9cc
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Aug 2 05:08:47 2013 +0200

    (#16856) Fix lookup of ::x in topscope when topscope is not fully evaluated
    
    When the scope gets a request for e.g. ::fqdn it goes on a search along
    the milky way galaxy to find the scope for the class named "" (which is
    the special "top scope class"), as the compiler is evaluating
    expressions before having evaluated all of the things that eventually
    contributes variables to the top scope, it can not find the scope for
    the class named "". The class "" still exists at this point, but there
    is no maping from name "" to the scope (and it cannot be registered
    until it is fully evaluated since the registration also means that the
    class has been evaluated (CATCH-22).
    
    To overcome the problem, scope now identifies the special corner case
    of request is for ""::name, "" exists, but there is no scope for it, and
    the request for ""::name was made to topscope, it is safe to then
    perform the lookup as a local scope lookup.
    
    At the same time this is fixed, there is a performance difference
    between lookup of $::fqdn, and $fqdn and the defaults is changed to use
    $fqdn.

commit cd637059e1e9e092e432c01eddd81faf4bc07f8f
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Aug 1 18:56:44 2013 +0200

    (#16856) Fix problem with YAML spec test on Ruby 1.8.7
    
    In Ruby 1.8.7, the YAML implementation does odd things on syntax
    errors in yaml source input (it is not reported and ends up being
    interpted the wrong way). The test that checks for YAML syntax error is
    now modified to handle RUBY 1.8.7 braindead YAML by checking for a
    different issue code from the validator.

commit 408cfc2fb9f3f4dbe4a78d29cd563a99c75ebf98
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Aug 1 17:25:28 2013 +0200

    (#16856) Make use of Puppet Binder optional (and thus also rgen)
    
    The Puppet Binder a.k.a "Data-in-Modules" is based on Rgen, and is
    required to be able to use the data-in-module/hiera2 features.
    
    The setting :binder must be set to true, or :parser set to 'future' for
    the bindings system, data-in-modules, and hiera2 to be in effect.
    
    The bindings system is now "booted" by the compiler on demand if the
    settings dictate this.
    
    Implicit lookup of undefined class parameters will not use injector
    unless active.
    
    Explicit lookup using lookup will raise an error unless the bindings
    system is active.
    
    Tests toggle the activation

commit 30ae48f3c798eb5cee611966f25fee017ebc7a39
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Aug 1 06:01:46 2013 +0200

    (#16856) Fix issue with failing integration tests (caching problems)
    
    The problem was that the bindings system switched to the future
    parser when evaluating puppet logic by modifying the Puppet[:parser]
    setting back and forth. This caused the compiler to (somewhere) be made
    aware of a change "in the environment" - this caused tests to fail as
    the environment was cleared as a consequence.
    
    The fix is a simple change, the ast_transformer now creates an
    ArithmeticOperator2 instead of ArithmeticOperator. Only future parser
    creates those instances. The ArithmeticOperator2 naturally allows
    concatenation. With that change, all switching of Puppet[:parser] could
    be removed.
    
    This is a much better solution because the settings are kept unchanged.

commit 005239625344e2ece21fe3f214a35bbb01c44716
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Aug 1 03:47:44 2013 +0200

    (#16856) Make a hiera.yaml in confdir be ignored if it not version 2.
    
    The confdir-hiera scheme no has logic to skip a hiera-1 hiera.yaml
    if it cannot be loaded.
    
    This commit also fixes a problems with re-registration of injector
    boot extensions. They were made in a static way causing the next
    run to again register a duplicate set of bindings which caused a
    conflicting bindings error. The boot bindings (for the request) should
    not be system wide, and should therefore be associated with the
    environment and overwritten on each request. The new mechanism changes
    how the bindings from the binder_conf.yaml gets contributed to the boot
    injector.

commit df1e62240d229d728c1d3fec5d039e326af53b2a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 31 18:34:20 2013 +0200

    (#16856) Improve formatting of error messages.
    
    Also adds tests for some exceptional cases.
    Adds ability to specify override and abstract in the BindingsFactory.

commit d43cb01066091b4cc38c2ebb6a529eb0be5d1b42
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 31 04:43:49 2013 +0200

    (yardoc) Correct and amend yardoc for the central clsses in binder.

commit 518b0fc7368ba1ace55a6067979852b7cd12591a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 30 23:40:17 2013 +0200

    (#16856) Add setting binder_conf to control which binder configuration to load.
    
    A setting of nil is the default which optionally loads
    $confdir/binder_config.yaml, and a default internal config if this file
    is missing. If set it must point to an existing file.

commit 441d6b78ba2de4d8291d9f09a1aab670811196b9
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 30 23:22:05 2013 +0200

    (#16856) Fix test failing because lookup returns :undef instead of nil.

commit 336a99ede3dd68b6c9b1447b365f57efd1122a70
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 30 04:23:32 2013 +0200

    (#16856) Add extension capability to binder_config.yaml
    
    This makes it possible to specify scheme_handlers and hiera_backends by
    binding scheme/symbolic name to a runtime class name.
    
    These are loaded by the injector when required.
    
    Adds tests, and fixes issues.

commit 03556adc99aadd8c62e1af51ee98cc15333df154
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 29 17:21:27 2013 +0200

    (#16856) Refactor bindings scheme handlers, fix issues with type as hash key.
    
    The scheme handler support is now done via injection. This is good
    because it reuses existing functionality rather than providing yet
    another way of loading user code. A special injector only used while
    creating the real injector is created (called boot_injector).
    
    The scheme handlers are now broken out into separate ruby files (they
    were earlier in the BindingsComposer). The broken out handlers are now
    lazily loaded by an injector.
    
    A flaw was found in the type system; types where not usable as hash
    keys. This commit also fixes this by adding hash and eql methods to
    the types.

commit b5c5bf36d04e90fe87542cfa7e3833a3e341b1f0
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Jul 28 03:07:25 2013 +0200

    (#16856) Correct API of BindingsFactory, add/correct yardoc.
    
    Contains small API adjustments wrt. using varargs intead of requiring
    that arguments were wrapped in an array.
    
    Also adds ability to use a ruby lambda for producer transformer option.

commit ba25f8fcc226dd9edcbbd26d1b4246a1d849ed4b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jul 27 17:39:41 2013 +0200

    (#16856) Add version to binder_config.yaml
    
    This also makes it possible to leave out sections of the hash to
    get the default values.

commit 5c8e9af50d51005dcf02b36d6ece3287d163dab3
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jul 27 17:35:54 2013 +0200

    (#16856) Improve error reporting when something is wrong with an Issue
    
    This helps to detect what is wrong with the issue. Before this it was
    not possible to see which issue caused the exception and debugging was
    always required. Now the output contain the issue code.

commit 87d4af0a450b758513593dcbfbd66eea8c58e941
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jul 27 01:06:11 2013 +0200

    (#16856) Add support for multibinding multibinds.
    
    There was a design flaw in the model that made it impossible to bind a
    multibind in another. This prevented setting up complex structures
    inside the data.
    
    This fix makes any binding be a potential MultibindingContribution by
    simply setting its multibind_id.

commit fc81d5184c522f348846bafc4ce4e96c10bea6c6
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 26 02:45:18 2013 +0200

    (#16856) Make lookup return :undef if nothing is found.
    Nil does not work when returned to puppet logic.

commit 1df59f967e40c28af3f3f2819821bf7ecbc2b739
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 25 23:36:39 2013 +0200

    (#16856) Add ability to call lookup function with a lambda.
    
    This adds the ability to call lookup with a lambda that gets the looked
    up result for futher processing. The lambda gets undef when nothing was
    found. This enables a convenient way to define a default when value is
    missing.

commit e98ba3f24e581ab1233e540c9e43a915cef718cc
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 25 23:30:38 2013 +0200

    (#16856) Add ability to specify type string for Hash with single argument.
    
    This adds the ability to write 'Hash[T]' where 'T' is the type of the
    element. Default 'Literal' is then used for key.

commit 6b0052fb71001292b0fd008da465b0ea5d975397
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 25 20:05:09 2013 +0200

    (#16856) Fix problems with confdir scheme (typos and broken)
    
    The confdir scheme was broken, and it was not missing in the defaults.
    Problems found when adding it are now fixed.
    
    The functionality now is that confdir:/default?optional is included.

commit d9731e4d4eccd04a32954bcea36b2df73a3932ce
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 25 18:49:21 2013 +0200

    (#16856) Fix errors in diagnostics output from BindingsComposer
    
    It was issuing diagnostics to acceptor instead of diagnostics

commit 9f8c61242ebcbd6981de10f7a95b5afef8735fed
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 25 18:48:30 2013 +0200

    (#16856) Make osfamily have higher prio than environment

commit 35165da6056774d7073c212bf21a000621a3fbd8
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 25 17:21:59 2013 +0200

    (#16856) Rename hiera_config.yaml to hiera.yaml
    
    This is what hiera1 also uses by default. The hiera_config is the name
    of the setting, not the file in hiera1.

commit 0576b6b5f8bba2cea49f387c5d629210f2e14412
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 25 05:17:27 2013 +0200

    (#16856) Improve handling of Ruby based bindings
    
    This improves the support for Ruby based bindings by:
    - doing late evaluation of the named bindings (when included) instead
      of when loaded.
    - scope is available as parameter to the block given to newbindings.
    - Access to evaluating parser in BindingsFactory to allow convenient
      binding of late evaluating expressions (as opposed to producing
      the result while defining the binding). #puppet_string, and
      #puppet_expression.
    
    Contains test that exercises the full scope (generating a puppet
    interpolation expression and binding that).

commit acbfee1963fe60bfa79763350554e1649e3f3105
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 24 06:24:57 2013 +0200

    (#16856) Improve error messages and add defaults
    
    This makes the hiera2 bindings producer not give up when hierarchy or
    backends are missing (it now uses default values).
    
    Improves error messages by providing details when bindings are
    conflicting.
    
    Makes use of the IssueReporter to output collected diagnostics.
    
    Fixes loading of hiera2 backends

commit 9e9547826b19d6663c00586f1e1c2d2dee003d6e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 24 06:22:20 2013 +0200

    (#16856) Add missing require of issue reporter in pops.rb

commit 3e686e7e74ac3962f84ae55870b9031835056a56
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 24 06:21:32 2013 +0200

    (#16856) Add a reuseable issue reporter
    
    This issue reporter emits errors and warnings in a configurable way.

commit 34f0599a5f79b8acbd6bfcc28e2c50ef97d54fb2
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 24 03:00:58 2013 +0200

    (maint) Make DiagnosticFormatter handle diagnostics without source pos.
    
    The problem was that DiagnosticFormatter has only been tested with the
    parser (which always includes a source position even if source pos has
    not information). When dealing with other forms of diagnostics there may
    not be a source pos.
    
    This fixes the formatter to not query the detailed source_pos unless it
    is available.

commit 06b261434102fbeb42ee287fdb015b33cdb8543b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 24 01:28:19 2013 +0200

    (#16856) Improve error message when there is a bindings conflict.
    
    This commit outputs detailed information about layer and name of
    bindings that contributed conflicting bindings.

commit b8a316eeb2105de5ec70b6668dac706a06a7831c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 23 10:29:17 2013 -0700

    (#16856) Add support for unparameterized Hash and Array
    
    Previously users would have to specify all of the parameter types of
    Array and Hash, which may not be friendly to those that either don't
    care or are not familiar with parameterized types. This allows them to
    specify a loose type that will default to a sane value.

commit 0a661dbe265aeaf1705b65aec7c9deda91f33192
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 23 19:32:57 2013 +0200

    (#16856) Add missing fixture file

commit f8b795bcfb5fb17e7c1f213a989074369c4e49ec
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 23 19:25:04 2013 +0200

    (#16856) Make test of looking up data bound via ruby Bindings work.

commit b5f0af04821fc91a7a19cd39a26e9030521183b3
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 23 19:22:07 2013 +0200

    (#16856) Add module and confdir to checkers allowed binding schemes

commit d4af9deaf07be24e8c35b1a5d7da23c79f0a9ca3
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 23 19:21:40 2013 +0200

    (#16856) Fix accepting SYNTAX ERROR in bindings config

commit ad1ea7eb2f4b87ad31e39a0ef37b30d0bf93ec9e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 23 19:21:10 2013 +0200

    (#16856) Add missing issue

commit 4b103a93ca98529feb3513176c51ad53759036bb
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 23 09:47:53 2013 -0700

    (#16856) Add error handling for more invalid forms of type specifications
    
    Since changing to using the full puppet parser the type specifications
    would be able to parse, but not interpret, arbitrary puppet expressions.
    The error messages in those cases would however only be about not being
    able to handle a particular method. This adds checks for those cases and
    improves the error messages.

commit df7872c5825e5c21855d820937d93ed192a8f19a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 23 16:13:50 2013 +0200

    (#16856) Improve BindingsFactory
    
    Improves BindingsFactory by accepting blocks evaluated with instace_eval
    w.i.p Puppet::Binder and bindings via Ruby (no tests yet).

commit fd17049fb96c3fc96c3e5d1a450fc7e1bc44f17e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 22 17:33:08 2013 -0700

    (#16856) Support parameterized collection types in type specifications
    
    The previous support for type specifications in the language did not
    allow for parameterized collection types. This adds support for those
    types.

commit 34f871f6f3f40ff9b597dc2efc21542e0acc51af
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 22 17:31:56 2013 -0700

    (#16856) Remove support for constructing object types
    
    The previous support for constructing object types from the factory was
    incorrect and stemmed from my confusion about how Object fit into the
    type system of puppet. Object should not be available to most users of
    the type system and so is being removed. If this changes in the future,
    then it can be put back in.

commit a7a013c791bb62c6d59670082880a6d1083ef7a7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 22 14:20:24 2013 -0700

    (#16856) Check looked up type against provided type in lookup()
    
    The lookup() function can now enforce the type that the caller of the
    function is expecting to receive by being provided a type specification
    as a second argument. If no argument is provided it will default to
    needing "Data", which is the supertype of all of the data types (Object
    is a supertype, but doesn't not result in getting a looked up value
    because the type is also part of a namespace for the injection system
    and it holds object separate from data).

commit 16a985e5355583e1701c53d2614e3019e4b49712
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 22 10:48:05 2013 -0700

    (#16856) Add type spec parser
    
    This adds a parser for type specifications. At the moment it only
    supports unparameterized types (so no collections, only scalar types).
    It converts a string of the type specification into the type model.

commit d2c2727aa6a06afec02c11fb8a93f22ebdd04518
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 22 10:34:09 2013 -0700

    (#16856) Stringify puppet Booleans as "Boolean"
    
    The stringification logic missed out on the case of Booleans and was
    instead stringifying the type as "Literal". This adds boolean support in
    the stringification so that it is now stringified as "Boolean".

commit 1ae64a53c99f54763e25db04c53fd22325a43b88
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 22 15:26:33 2013 +0200

    (#16856) Delete obsolete lib/puppet/binder*
    
    Cleanup of unused logic.

commit 187ed26a479545581074ac84e80671b76a0330b5
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 22 03:33:13 2013 +0200

    (#16856) Add tests for implicit injection.
    
    This adds tests that host class parameters are looked up in the
    injector.
    Also adds a NullInjectorImpl intended to use in future tests.

commit ac4386a8bf023eeb20b54d70312d530e7f2b95bb
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 22 02:40:42 2013 +0200

    (#16856) Add implicit parameter lookup for hostclass resources.
    
    This adds implicit lookup of host class parameters via injector.
    Checks DataBindings (i.e. Hiera) if there is no bound value.
    
    Fixes tests that were mocking scope and did not expect calls to
    compiler. Also adds accessor method that creates an injector if none was
    created.

commit 71ed762fbd3eadbe1b2c377137261dddee725c75
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Jul 21 17:53:41 2013 +0200

    (#16856) Fix Pupet typo

commit 8ca1b206626aa9d96693adb80e8b294ed4569935
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Jul 21 02:55:39 2013 +0200

    (#16856) Ensure that binder evaluates using Puppet[:parser] = 'future'
    
    This ensure more correct evaluation.

commit 8107fad6f41610fa6fea774761567439512ba001
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jul 20 16:45:24 2013 +0200

    (#16856) Replace use of StringEvaluator with EvaluatingParser
    
    This makes the hiera2 backend more powerful; it can now parse
    and evaluate full Puppet Expressions.
    The quote method is now Ruby 1.8.7 compliant.
    
    Removes StringEvaluator.

commit 7133785461c380b899acd8844930886991618acb
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jul 20 03:00:34 2013 +0200

    (yardoc) Add yardoc to added logic in compiler.

commit 97ed1c8a55bae1a20d32165c7af06b3bd2464d79
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jul 20 02:45:43 2013 +0200

    (#16856) Add EvaluatingParser, and create injector in Compiler.

commit 88d6562a0a2c915361838b90dacc74fd99682bb5
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jul 20 02:43:04 2013 +0200

    (maint) Prevent error when 'common' is given in the categories.
    
    The category common is predefined and if included in the input
    an "attempt to redefine" was raised. Now it ignores the last category if
    it is named common. This means that if common is placed at some other
    precedence a wanted errors is raised, but never when it is placed last).

commit 0aba7f0e32d06c7f8c0195bfcebef4bcb1089114
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 19 15:51:05 2013 -0700

    (#16856) Add a lookup() function for injected values
    
    The lookup() function will use the configured bindings and injector to
    lookup a value. If one is not found, then nil is returned (which is
    undef in the puppet language). Any errors from the injector are
    propogated out to the caller.

commit 5229d9a6b5fd4535c073ba43c40d51b980a140b1
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 19 15:49:01 2013 -0700

    (maint) Small docs fixups
    
    The docs for how to use the BindingsFactory where slightly wrong and
    indicated you had to create an instance. The factory methods are all
    class methods on the BindingsFactory and so instance is needed.

commit 939f0597dfcccaf1c5790434cf27400d5909aaeb
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 19 18:30:53 2013 +0200

    (#16856) Fix problems with loading Array and Hash in Hiera2 backend.
    
    The code was untested and had several problems.

commit 8d847da6965aca6c4cdd723fa50c0622bcd54a3f
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 19 02:23:45 2013 +0200

    (#16856) Add class loader, system and default bindings, and extensions.
    
    This adds new functionality.
    - class loader loads classes sing the autoloader
    - puppetx defines extensions
    - syntax checker makes use of puppetx
    - Json syntax checker as example and for Heredoc/Templates support
    - Fixes in composer
    - Fixes and tweaks to supporting classes

commit 40057df8e42d8df6b44323aa7bb321fc1ba17a86
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 16 02:26:58 2013 +0200

    (#16856) Add BindingComposer
    
    This adds a BindingComposer (contributions from modules and the site
    level).

commit 4ef09abd27868a3b6eaf8162764d7904455302f9
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 16 02:15:49 2013 +0200

    (maint) Fix missing space separator in tree dumper
    
    If string contained a space, the regexp that prevented a space
    entry to not have a space separator also triggered on strings containing
    a space. This is bad because formatted dump output then sometimes has no
    spacing between values.

commit bdd82ec4bb3258485407469b987e80bdfbc75459
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jul 13 03:44:01 2013 +0200

    (#16856) Add w.i.p on BinderConfig

commit b448f589222891ad3fa7210947a0bffd0632dfe4
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 12 00:35:46 2013 +0200

    (#16856) Change hiera2 config reader to read categories as array instead of hash
    
    The config was read as a hash of category names to value/path. This
    is bad because a Ruby Hash does not guarantee the order in all versions
    of the Ruby runtime. The order here is important as the precedence order
    must be preserved.
    
    This commit also changes what the hiera2 bindings provider returns from
    a load; it is now a ContributedBindings instance which contains both
    the named bindings, and the effective categories.
    
    Tests and fixture data updated as a consequence.

commit 74ace21abcc7abfdc5a08471fb2a612cfbcb805c
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 11 02:13:28 2013 +0200

    (yardoc) Make yardoc not crash for the Types classes

commit 18b1abf5ef746e3ce96fdcbb57aeb71f6e62ef89
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 11 02:05:51 2013 +0200

    (#16856) Fix yardoc for the central Binder classes
    
    This makes a first pass at fixing yardoc for the central binder classes
    (at least to the point that they do not crash yard). Expect more
    complicated things to have more and better documentation.
    
    Also includes fixes of some typos in code.

commit 00d4ef3196fe77746c9cd50de0046ac8da61dc4f
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 11 00:50:55 2013 +0200

    (#16856) Fix issue with missing type check for multibind type.
    
    The type check was never invoked because of misnamed method.

commit 1a673306a86309b13e72c3e18164a8be3afe49d2
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 10 23:53:26 2013 +0200

    (maint) Remove a couple of lines of commented out dead code.

commit 0a1a4dbc7fb38c90fd1991ae099ec74d5ddc82b9
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 10 20:26:43 2013 +0200

    (maint) remove TODO

commit 71d264a9f42b0c99381d230b5379e2bb675a84e3
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 10 20:24:28 2013 +0200

    (#16856) Add test for binding transformer lambda and fix related issues
    
    This fixes issues found when specifying a producer lambda:
    - options from the binding were not passed on when there were
      internal options set. Fixed by merging options.

commit f3d6d969383a98adfa4b9814209c1732091f7f36
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 10 20:04:53 2013 +0200

    (#16856) Make hash and array multibind handle flatten the same way
    
    Hash only had flatten as boolean, not a level.

commit c35eadf38ef1891a05c9b75899084832601d2439
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 10 19:58:04 2013 +0200

    (#16856) Add test of hash multibind :merge conflict resolution

commit 94d3a57b08a22ecac3357c11d2456023b80a0e69
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 10 19:37:12 2013 +0200

    (#16856) Fix issue in multibind hash :priority conflict resolution
    
    The problem was that priority compare was done the wrong way.
    Tests improved.
    Sorting speeded up by using sort instead of sort_by

commit c59386ffbeed438547173c375786330e41a6d1e6
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 10 18:28:28 2013 +0200

    (#16856) Fix issues with assisted inject and improve testing of injector
    
    This changes the rules for assisted inject (and instance production) by
    selecting a more specific zero args :initialize over an :inject for
    assisted inject, and (possibly argumented :initialize) for
    InstanceProducer injection.

commit 034b3a83551565bb6c76ea337ae73c7dc3161c92
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 10 04:18:35 2013 +0200

    (#16856) Clean up injector_spec some more
    
    Previous commit missed the last test

commit 86e10c21e08f184bdf77ced4d1f606cfc04f74b5
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 10 03:29:41 2013 +0200

    (#16856) Clean up injector_spec by using let
    
    This greatly reduces the repeated overhead in each test.

commit a2464adbb89d2fd4a29c0cc98ce94c8499ef00f0
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 10 03:29:02 2013 +0200

    (#16856) Make binder return self in configuration methods.

commit ea223d0a4b6612c30b85825feda762c50b35f59e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 10 01:35:14 2013 +0200

    (#16856) Add merge to hash multibind producer.
    
    Adds more tests
    Start of cleaning up injector_spec

commit 334b75ffc7ef9372a42d29b8dddc160d7fac978d
Author: Thomas Hallgren <thomas@tada.se>
Date:   Tue Jul 9 14:40:59 2013 +0200

    (#16856) Adds Hiera2 bindings with backends for YAML and JSON
    
    This commit contains the initial work on the Hiear2 bindings producer.
    It is W.I.P. at this point as some concepts still remains to be
    fully designed. In particular, this commit only contains whats needed
    in order to read bindings from one module. The code that finds and
    then combines modules is not included.

commit 10234525af2f3daea92a1bf0984420fce05096f9
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 9 09:51:23 2013 -0700

    (#16856) Improve checking of Hash multibind options
    
    Adds checks for flatten, uniq and 'append' conflict resolution.
    Also adds test.
    Improves producer documentation.

commit 8efd6aafa896eda4ad2ef9af34b366370504df44
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 9 09:50:29 2013 -0700

    (#16856) Fix issue when a multibind has no contributions.

commit 2e855373f011d5afd53766adb35bab8b4a13492d
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 8 19:46:46 2013 -0700

    (#16856) Improve formatting and documentation of Producers.

commit 409955acadddf649257a4c04cfa66652d4e438e3
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 8 19:24:01 2013 -0700

    (#16856) Improve documentation of injector and do cleanup
    
    This cleans up the logic and improves the documentation.

commit 4b06e6d1fbdf3d0490c4e1fe02c7599cfc8b21f6
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 8 19:05:54 2013 -0700

    (#16856) Remove the defunct multibind_combinators.rb file

commit eda434db680983514dced40293370cc0177970fa
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 8 19:04:43 2013 -0700

    (#16856) Improve Multibinding (drop combinators, improve options, and errors)
    
    - Removes the Combinator logic.
    - Adds options to multibinding producers
    - Improves detailed error message regarding type errors in multibind
    - Improves documentation
    - Adds test cases

commit 974f8366697cfd04d55c39072d2810317befcdea
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 8 10:52:54 2013 -0700

    (#16856) Remove unused LambdaProducer
    
    All producers are now explicit classes.

commit a860215fdba70f95c36b483e4d296c42627ef7de
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 8 10:50:46 2013 -0700

    (#16856) Move Producer classes to a Producers module
    
    They were inconveniently located in the Binder namespace, and are
    now in Puppet::Pops::Binder::Producers

commit d26aa60814a45069585be59c62d3dd3ac74b3919
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 8 09:57:24 2013 -0700

    (#16856) Refactor producers
    
    This commit contains a refactoring of producers, from being nested
    lambdas holding state on the stack (in true Functional Monad style) to
    explicit instances with explicit intance variables.
    
    It started to become very messy to work with features as well as
    debugging, and the injector class started to be very cluttered with all
    sorts of lambda producing methods nesting each other.
    
    This commit also makes the multibind producers smarter, instead of using
    a lambda combinator (with limited power), they now instead support
    things like merge/append, priority. (To be properly documented).
    
    This also means that the Combinator part of the model and support will
    be deprecated (it is not functional after this commit).

commit 8006ba448e437fbaaea727caa9d918d9c40e19c9
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 5 19:17:28 2013 -0700

    (#16856) Make Assisted Inject pass arguments to inject method.
    
    This is needed if the producer is looked up and asked to produce with
    arguments. (This would otherwise not be possible). For a class that gets
    injected with assisted inject because it has a zero args constructor
    zero args should naturally be passed or an error is raised.

commit eca5ead8786c96e0527241f3f544d9cce1d3ef48
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 5 18:19:19 2013 -0700

    (#16856) Make instantiating producer work like assisted inject
    
    Assisted inject and instance producer now works the same way; if there
    is a class method :inject this has higher precedence when creating the
    instance. Assisted inject now also passes arguments to the #inject
    method.
    
    Assisted inject refactored to handle this.
    
    It was not logical that instance production did not use the #inject
    class method if one was present.

commit 3feaacc3f68f672158a9263c072ce47a149075a5
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 5 17:04:50 2013 -0700

    (#16856) Makes multibind default producers singletons.
    
    They were not sinlgetons earlier. Since it is possible to set the
    producer also for multibinds, it can be made non singleton by wrapping
    it in a non-caching producer descriptor.

commit fe0254e66b02c075465c273dc8d809a3c9e670e9
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 5 16:35:41 2013 -0700

    (#16856) Add support for explicit Combinator
    
    This commit adds testing of using an explicit combinator.
    Adds a combinator for array that stores unique values.

commit a92f90c666daf93fdea9b75551909cad829495a1
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 5 13:32:40 2013 -0700

    (#16856) Add tests and fix issues with bindings requiring evaluation
    
    This adds:
    - tests that test Evaluating Producer
    - turns on future parser during evaluation to get access to array/hash
      concatenation/merge operator
    - refactors injector_spec duck (test) classes
    - fixes issues with Combinators
    - makes BindingsFactory capable of creating a combinator for a lambda
      or for a Combinator class.

commit 1b0780d042e30858615c1c8ea8f4fc2a763fb4ff
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 5 09:39:55 2013 -0700

    (#16856) Add yardoc for assisted inject

commit 8bc3195f9f8ea31548a5ab30ff3bc04c250958cb
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 5 09:22:28 2013 -0700

    (#16856) Add additional test for assisted inject

commit b80a90228d4dfbaa84d3bdfd55e459dbcfbb97b4
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 5 09:07:43 2013 -0700

    (#16856) Add support for assisted inject
    
    This adds support for lookup of instances of classes that are
    not explicitly bound. If a lookup of a type is a non data type, and
    anonymous, a check is made if that class has either a class method with
    signature inject(injector, scope), or a zero args initialize(). If so an
    entry as automatically made for that class that produces an instance.
    If a class has both an inject class method it wins over the zero args
    constructor.
    
    Nothing is injected if a class is created with new. This is only when
    injector.lookup(SomeClass) is used.

commit cfc2b8a27a5b49b146f0224f6be4cb783e1368a4
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 4 18:50:04 2013 -0700

    (#16856) Refactor create_combinator into two methods.
    
    It was already known if a hash or array combinator was needed.
    Not efficient to again compute this. Common method replaced by two
    special methods.

commit 9b1e2ffd4e695be67dbeebcf753c77eb7af28507
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 4 18:43:53 2013 -0700

    (#16856) Add support for Multibind combinators and refactor to make use of them
    
    This adds multibind combinatators as separate classes (instead of
    having nested logic inside of the producers). An instance of
    a combinator is always used in the refactored implementation.
    
    This commit also adds support for a puppet dsl lambda defined
    combinatator, and a combinator that is produced by injection.
    (These two remain untested at this point).

commit 68f6e2f2067ebb7ff701bd78041195ed68151a4b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 4 15:22:30 2013 -0700

    (#16856) Fix Yardoc and some internal cleanup of dead code/comments

commit 5b7fbb8311b88d5d4e762f36293f379598538f87
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 4 14:42:00 2013 -0700

    (#16856) Adds check that array multibind gets array[T] or T as contribution.

commit 93450d16a39fa83142586f0dfd52a6e228f95c7e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 4 14:28:33 2013 -0700

    (#16856) Add lookup loop detection
    
    Almost any lookups can potentially lead to a recursion. All calls
    pass through either lookup_key. or lookup_producer_key and these protect
    endless lookup loop of the same key.

commit 3eebb63fb57c92bc10bef853e19b74ced9e7962a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 4 09:26:43 2013 -0700

    (#16856) Add more tests and checks
    
    Adds more checks to hash multibind contributions and tests for these
    cases. Improves test structure.

commit dee630497b048a609a23d19ebfbd3ad1e1e1a77e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 4 08:01:34 2013 -0700

    (#16856) Add test and fix issues with HashLookupProducer
    
    This adds support for HashLookupProducer that was missing in the
    factory, fixes typos and other small issues to make HashLookupProducer
    work (it looks up a hash, and then a key in the produced hash).

commit dd9e208496ed9040c22eed44177f34356d4fc8b7
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 4 07:45:31 2013 -0700

    (#16856) Rename MultiLookupProducerDescriptor to HashLookup...
    
    Name was bad. The producer looks up a hash, and then a key in the hash.
    This also changes the attribut 'detail_name' to 'key' and adjust error
    checking / issue text.

commit 5eeabbc51def8b9a4d0d5b96c83afb34da91f45e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 4 07:43:34 2013 -0700

    (#16856) Add missing name in one injector test

commit 4e3cd54aaa8476483972be4402ba1c3ed0418fa5
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jul 4 07:29:28 2013 -0700

    (#16856) Add test and fix issues with array multibind

commit ed36bdcbe5eb121a68e156f6a2f7f99750574e50
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 3 19:34:14 2013 -0700

    (#16856) Complete implementation of multibind hash
    
    This adds a test for multibinding of hash. Several small typos and
    minor issues fixed to make test run.

commit 2501de8e46fa6ec495d4c943da81931b1ca8ccc6
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 3 18:26:05 2013 -0700

    (#16856) Fix issues with producer producer
    
    This concludes the work on producer producer. The semantics were
    unclear. This commit fixes these issues:
    - a singleton producer producer will create one producer that is used
      to produce the value. If this value is singleton or not is up to the
      created producer (typically not).
    - a non singleton producer (series of), creates a new producer for each
      request to lookup, or lookup_producer. A looked up producer does
      not create yet another producer on each call to its #produce.
    
    This enables having a producer that produces a new series of values
    for each lookup_producer.

commit 865daedafba8279c3de8fa6af8dff6a039036d9a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 3 10:45:43 2013 -0700

    (#16856) Refactor one test dealing with producer producer

commit f2997f4f668329359b999e233a194de6474fe0a0
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 3 10:41:11 2013 -0700

    (#16856) Add test that lookup of value and producer are consistent
    
    This also fixes a problem where scope was not passed when getting a
    producer via key

commit e35c129599e206ab26b02e9e59ea6fe2f967c06a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jul 3 10:25:48 2013 -0700

    (#16856) Add support for ProducerProducer:
    
    This adds support for producer producer:
    - a custom producer can be used
    - the custom producer can be instantiated once, or on each
      lookup

commit 644738258be975494caaeb936daa732e8a3f2c4b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 2 18:39:55 2013 -0700

    (#16856) Add support for InstanceProducer
    
    This adds logic to enable producing an instance of an arbitrary class:
    - factory method (overloading of the #to, and #to_series_of methods
    - added tests (with and without arguments to constructor)
    - fixed issues with logic (class by string)

commit 519308d89eaf1742f6b9d514537e1331774e7fc6
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 2 15:35:31 2013 -0700

    (#16856) Add support for first_found producer.
    
    This commit adds:
    - factory method that accepts an array of [type, name], [name] or name.
    - implementation of producer
    - a test

commit 3d901d18193b1afdc2fd53d8d51b74f0a102da1e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 2 13:50:44 2013 -0700

    (#16856) Refactor Injector internally
    
    Logic was getting messy with too many if-then and method caching? which
    had to be mentally turned around to singleton? (logic now reversed).

commit 9982013211892b71109a075ef3e072192e001630
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 2 09:47:58 2013 -0700

    (#16856) Add support for LookupProducer
    
    This adds:
    - a transform method for LookupProducerDescriptor
    - a factory method #to_lookup_of(type, name) / #to_lookup_of(name)
    (implies data type)
    - a test that checks that lookup works.

commit 41128b8a589eb701a3a2eb9f9409f1b545780ba3
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jul 2 09:20:45 2013 -0700

    (#16856) Add support for non caching producer
    
    This adds support for the NonCachingProducerDescriptor:
    - a factory method "to_series_of(producer)"
    - a transformer from descriptor to actual producer
    - tests that constant producer produces new instances when not singleton
    
    Also refactors injector method names ("produce" to heavily overloaded).
    The polymorph visitor renamed transform as it transform from Descriptor
    form to actual Producer.

commit f37ab5b05e246e8137451d29aa57198ec4b81901
Author: Thomas Hallgren <thomas@tada.se>
Date:   Tue Jul 2 10:27:33 2013 +0200

    (#16856) Fix issues and improve design of the bindings_checker
    
    The following is addressed in this commit:
    1. Consistent use of x.nil? instead of x == nil
    2. Missing bindings in container is a warning instead of error
    3. Missing layers in a layered bindign is a warnign instead of error
    4. Model is traversed using a tree iterator

commit 26afdac7acf68b0bd2e94e23e8557559c0db7b8a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 1 20:30:50 2013 -0700

    (#16856) Tweak some logic to be more ruby-ish

commit 85a5d8d6d252f5653b22106cdb37c2993d22c848
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 1 19:55:54 2013 -0700

    (#16856) Add missing model objects to LabelProvider.
    
    Also adds category.value to the Category label on the format
    "Category 'categorization/value' e.g. Category 'environment/dev'.

commit b242b8f69bd377714a311c9037e4158357d748be
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 1 19:45:14 2013 -0700

    (#16856) Add FirstFoundProducerDescriptor to the bindings model.
    
    This producer is useful to perform a first found lookup sequence which
    can be used to describe a lookup with default value and similar use
    cases.

commit 77354e48ab25d76f93959e5dd09cb5efe1a1c3e9
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 1 19:31:25 2013 -0700

    (#16856) Improve API and documentation of Injector.
    
    This adds the ability to optionally give a block to
    or just result. The lookup returns what the block returns if block is
    present.
    
    This is good because it make it easier to handle default values when
    a value is missing, or to conveniently invoke a custom producer method
    without requiring a temporary variable.
    
    Includes tests.

commit 7a93fcb892669138de0481fd814276a7f3687bcc
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 1 18:09:51 2013 -0700

    (#16856) Add test and fix issue with lookup_producer
    
    lookup_producer was overridden by a method with the same name
    that created a lookup-producer instead of looking one up.
    There were typos in the lookup_producer that were also fixed.

commit 2e5ed7db38d5ec32d611b2f8c401f43f0daebb1f
Author: Thomas Hallgren <thomas@tada.se>
Date:   Mon Jul 1 23:58:49 2013 +0200

    (#16856) Add validator, checker, issue markers, and tests for the binding model
    This commit adds the initial implementation of the following classes:
    
    BindingsChecker
    Checks the validity of a bindings model
    
    BindingIssues
    Contains all declaration of all issues that the BindersChecker can
    report
    
    BindingsLabelProvider
    String representation of all binder model elements
    
    BindingsValidatorFactory
    The factory for creating the checker and associate it with the
    correct support classes.
    
    Unit tests are provided for the checker and factory. They do in turn
    use the label provider and issue.

commit e13dd12be3e6db5b8e8fea1eb8ca9b7e984b4241
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 1 13:57:08 2013 -0700

    (#16856) Add injector tests (and code that passes them)
    
    This adds more injector tests and corrects several small things to make
    them run.
    
    key factory was given a method to return its type calculator, when a key
    factory is used, it is important to use the same type calculator.

commit 0db39b365e522e04954f0e98ef981e616e52ee18
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 1 09:14:26 2013 -0700

    (#16856) Add support for custom producer
    
    This adds support for a custom producer. In the model the producer is
    defined with a ProducerProducerDescriptor which references another
    ProducerDescriptor responsible for producing an instance of
    Puppet::Pops::Binder::Producer (typically an InstanceProducerDescriptor
    that references a class derived from Pupet::Pops::Binder::Producer).
    
    This enables custom producers with custom instantiation protocol. This
    is of value when each production requires a different set of arguments,
    or where the producer needs to be setup (establish a connection or
    similar).

commit f6784f033ae62c3b1cc815767c5f3c4666fb8fd8
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jul 1 08:28:46 2013 -0700

    (#16856) Refactor producer to use a class instead of just a lambda.
    
    In order to support custom producers it was not enough to just
    return a lambda as the producer. This is now instead an instance of
    Puppet::Pops::Binder::Producer.

commit b08010a20d427799d2035ff271ba11a0ff7f55e4
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Jun 30 17:42:08 2013 -0700

    (#16856) Add binder and injector with first smoketests passing.
    
    In this commit, the injector and binder are completed up to the point
    where a binder can be configured, and injector created based on the
    binder, and a single value be looked up!
    
    Adds binder and injector spec tests with a few test cases.

commit 1ab78443b40e71d824500395d97abc175c2948d5
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jun 28 19:18:15 2013 -0700

    (#16856) Add work that has the wanted design of producers (incomplete).

commit 11058620c228847bedef01284f16b45645313617
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jun 28 16:47:36 2013 -0700

    (#16856) Improve documentation of Factory and typographic code changes.

commit 512c641620681da89df4e66b5f1ab3661526c2e7
Author: Thomas Hallgren <thomas@tada.se>
Date:   Sat Jun 29 00:32:03 2013 +0200

    (#16856) Fix structure of require statements to make binder package loadable
    
    With this commit, all pops related files are required in the
    pops.rb file. The types.rb was removed since it was no longer
    needed.

commit f0ba09536e540ab4f2774f2c58cbea719e8dea83
Author: Thomas Hallgren <thomas@tada.se>
Date:   Sat Jun 29 00:22:19 2013 +0200

    (#16856) Move reusable validation factory semantics to a common super class
    
    This is in preparation for creating a BindingsValidatorFactory. The
    common super class removes the need for copying behavior from the
    current ValidatorFactory.

commit 83134cf7360c337322700142eb79e5046422d5b5
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jun 28 10:23:32 2013 -0700

    (#16856) Corrects typos and renames classes in Bindings model.

commit 3e4d2991ceb071895f741a7c0c09a38468d3f137
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jun 28 09:27:07 2013 -0700

    (#16856) w.i.p bindings model and injector (stash)

commit 4a4e378a0f6255d3af283a194dfaa79c2ccb5585
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jun 27 16:27:23 2013 -0700

    (#16856) Add w.i.p on injector

commit 3d53ccc5bb8920d83fd96b1abd4e64a4afa4d442
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jun 26 20:04:58 2013 -0700

    (#16856) Add first cut of Binder.
    
    This is the first cut of the Binder which is configured from bindings
    data. Once configured it is used to instantiate an Injector (t.b.d).

commit 5967eb35c339ce37144b29a4673172a61c0edbcc
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jun 26 16:01:16 2013 -0700

    (#16856) Add the first cut of the Binder.
    
    This implementation processes:
    - effective categories
    - bindings in layers
    
    and produces a Hash[Key, InjectorEntry] that can be fed to an Injector.

commit f87549a076e30e0ca7cd4ed8319d1b3de1105d7f
Author: Thomas Hallgren <thomas@tada.se>
Date:   Wed Jun 26 19:29:39 2013 +0200

    (#16856) Treat all Ruby Integer values as PIntegerType
    
    The Puppet Type System will treat all Ruby Integers as PIntegerType
    regardless of if they are Fixnum or Bignum since the boundary between
    those two depends on the architecture. A fixnum might be limited to
    31 bits in which case anything larger than that will be bignum.
    
    A bignum may potentially be larger than 64 bit. Integers that large
    are currently not supported.

commit a945bbf73baba3f87ae605dfe7fe5b7af2fb12db
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jun 26 09:42:25 2013 -0700

    (#16856) Update TypeFactory to use TypeCalculator.type(c) for class.
    
    The previous implementation did the wrong thing for classes that are
    mapped to distinct Puppet types. It now relays to the
    TypeCalculator.type when calling TypeFactory.ruby(o) with a class (as
    this is the most common case).

commit 45c0aedbb25021a35473fb1c10a0d69e7d95f8f0
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jun 26 09:33:22 2013 -0700

    (#16856) Rename #from_ruby_class to #type
    
    The name "type" reads better with the other method names. Later it will
    be able to produce the type of a PType (which plays the same role in the
    puppet typesystem).

commit a5b65e77839e30efa243d8c028664904ca0c27ae
Author: Thomas Hallgren <thomas@tada.se>
Date:   Wed Jun 26 13:24:32 2013 +0200

    (#16856) Make a clear distinction between types and instances of types
    
    This commit adds two public methods to the TypeCalculator and a slew
    of more unit tests. It also changes the behavior of the assignable?
    method slightly to make it more stringent about types and instances.
    
    The new method instance?(t, o) answers the question "is the object o
    an instance of the Puppet Type t". This method is necessary since
    the assignable?(t, t2) method no longer infers the type of its
    second argument. Instead it will always assume that both arguments
    are either Puppet types or ruby classes and it will convert any ruby
    class into its corresponding Puppet Type using the new method
    for_ruby_class(c).
    
    This new method returns the Puppet Type for the given Ruby class. It
    will return PType for the ruby class 'Class' and 'Array' and 'Hash'
    are assumed to be array of data and hash with literal keys and data
    values.

commit 9ff8e38adf8134cb0974f0735193c45f2cf8000f
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jun 25 18:59:32 2013 -0700

    (#16856) Add skeleton of BindingsChecker.
    
    This adds w.i.p on a BindingsChecker - a validator of a bindings
    model. It contains:
    - Issue module
    - Checker/Validator
    - TypeFactory method to create a PCollectionType (used in checker)
    - Additions to Bindings model (multibind producers)

commit 12e76af7c0ca85f3dcdaf2e79e5f08c2e8d4daf9
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jun 25 18:37:03 2013 -0700

    (#16856) Add infer_Class to remove requirement to pass an instance.
    
    Without this it is more difficult to create a type for a class.

commit a63e7678f2755666ccb7b94c939fcab775ca356c
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jun 25 16:48:08 2013 -0700

    (#16856) Make type calculator infer PType for types and PType
    
    The infer method did not handle inference of a type (it resulted
    in a Ruby type with reference to the type class).
    
    This commit updates the type calculator with an infer of PObjectType.
    This means that all types, including the meta-type PType is typed
    as PType. Tests added.
    
    (This is all esoteric, but needs to be done correctly).

commit 5bb798700de6a3c0e22bcf07cc3cb4c86902bf0b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jun 24 14:14:48 2013 -0700

    (#16856) Add w.i.p on binder

commit 597275edd9ee650c4306afbf38f08bc79076b9fb
Author: Thomas Hallgren <thomas@tada.se>
Date:   Mon Jun 24 13:05:53 2013 +0200

    (#16856) Adds unit tests to Puppet::Pops::Types

commit 9b9bda8e68201f203b52b118a5ece49a0fced894
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jun 20 14:52:38 2013 -0700

    (#16856) Add bindings model and bindings factory.
    
    This is w.i.p and only somewhat tested code.

commit 899dd4520c4077c1d7277129ffe284e71615a8be
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jun 19 17:54:05 2013 -0700

    (#16856) Add type model, factory, and calculator.
    
    This is the initial check in of a type model, a factory and
    a type calculator that can answer question about types (assignable?,
    commonality), and infer type given an instance.
    
    The type model is required by the bindings model.

commit f0295df5c228894d818d693d492c947f762eec1b
Merge: 2169289 51357cd
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 2 13:41:35 2013 -0700

    Merge pull request #1819 from hlindberg/issues/issue-22052
    
    (#22052) Fix future parser false error on invoke with call as arg.

commit 51357cd18ae8b8bbe641575890587da04bb6df73
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Aug 2 17:35:51 2013 +0200

    (#22052) Fix future parser false error on invoke with call as arg.
    
    Previously an expression like `notice fqdn_rand(30)` generated an
    error because the rvalue requirement was not modified for the fqdn_rand
    call (it was believed to be a separate statement).
    
    The problem was caused by the opposite status change being applied to
    all calls (rvalue producing calls that appear as statements should have
    the rvalue required status turned off).

commit 3cf849798b21ee6339bda8d4523babfd6ee197fd
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Jul 29 15:43:26 2013 -0700

    (#21970) Add markdown doc for certificate endpoint
    
    Add markdown doc and add link from index markdown page.

commit 4fae7fd5756c5db0438fe5b1a1ef107293e809e9
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Wed Jul 31 22:10:16 2013 -0700

    (#21970) Move supported formats into the per-endpoint md

commit 73b421ccba0788aaca881ef822623816ad57e8f8
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Jul 29 15:42:44 2013 -0700

    (#21970) Comment fixup
    
    The REST certificate endpoint supports only find, not save.

commit 2169289b125e526a4ac1462d52fd46f68bd5d825
Merge: bf6f8fa 036951d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Aug 1 10:25:12 2013 -0700

    Merge pull request #1609 from dalen/17183_static_compiler_recursive_copy
    
    (#17183) Pass on parameters to recursive children in static_compiler

commit bf6f8fa66b29212a017586ba12d76acf31765b3a
Merge: 1041018 f064ef7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 1 09:12:43 2013 -0700

    Merge pull request #1809 from mruzicka/ticket/master/21961_ssl_connections_without_peer_verification
    
    (#21961) Tests for ssl connections without peer verification

commit f064ef76c98205037cb94c30dfbc21d6ee504641
Author: Michal Růžička <michal.ruza@gmail.com>
Date:   Tue Jul 30 17:19:59 2013 +0200

    (#21961) Tests for ssl connections without peer verification
    
    This patch adds tests for the newly introduced support
    for ssl connections without peer verification.

commit 10410180e697961858ddf45e9f8cda290394d252
Merge: 0c7c47e 03ba4ef
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jul 31 16:45:21 2013 -0700

    Merge branch 'pull-1783'

commit 0c7c47e398834d5a15e05f279fe041d7de85e989
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jul 31 16:44:50 2013 -0700

    Revert "Merge remote-tracking branch 'pr/1783'"
    
    I had a fixed up branch for this PR but accidentally merged the original
    branch. Reverting and merging the fixup branch.
    
    This reverts commit 4ab527176aa7aa30c37b34b70757eae314da778f, reversing
    changes made to 646ef27ff29920317fb9de03ba4af78ddaaf11c1.

commit 03ba4efed21e4a6f30321af6d73b09a6daeec911
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jul 31 15:51:14 2013 -0700

    (maint) Add test for GH-1783

commit 48c5ee0ec0d7c0d258ad3ed6eeafa47317e9db2b
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jul 31 15:44:56 2013 -0700

    (maint) refactor node local facts into describe block

commit 5b2489e4513a5ce2769227e072df55dab157ed1d
Author: Mathieu Parent <math.parent@gmail.com>
Date:   Thu Jul 18 11:04:06 2013 +0200

    (#6847) Propagate client noop value as a fact
    
    This fixes: http://projects.puppetlabs.com/issues/6847 by adding
    `clientnoop` as a local fact.
    
    (which is also a workaround for: projects.puppetlabs.com/issues/20679)

commit 4ab527176aa7aa30c37b34b70757eae314da778f
Merge: 646ef27 750a2f1
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jul 31 16:29:28 2013 -0700

    Merge remote-tracking branch 'pr/1783'
    
    This closes GH-1783

commit 8e143231f1a3d0997b979f42340fbffffbffbf2d
Merge: 71a7bf8 dace599
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Wed Jul 31 15:54:39 2013 -0700

    Merge pull request #1814 from haus/maint/stable/move_rspec_requires
    
    Remove rspec requires from Rakefile

commit dace599d7eeb18fad2b5bfb33a3a56ea318a940e
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Jul 31 14:18:29 2013 -0700

    (maint) Remove rspec requires from the Rakefile
    
    In the Rakefile, we no longer use Rspec methods or classes, but instead shell
    out to rspec, so requiring rspec serves no purpose in the rakefile. The require
    was also incorrectly placed within an unrelated begin/rescue block, which
    caused deprecated rake libraries to be loaded when rspec was not present. This
    commit removes it from the Rakefile.

commit 646ef27ff29920317fb9de03ba4af78ddaaf11c1
Merge: 4be5bbf ec40cc7
Author: kylo <kylo@puppetlabs.com>
Date:   Wed Jul 31 13:46:34 2013 -0700

    Merge pull request #1803 from jpartlow/issue/21881-document-resource-type
    
    (#21881) document resource type

commit ec40cc7b2221fe9e37e9adca1610de013eb60b63
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed Jul 31 13:19:40 2013 -0700

    (21881) Adds explantory text and fixes for YARD
    
    From Nick Fagerlund:
    
    Add explanatory text; modify the manifest to not throw an error. Add
    node definitions.
    
    Rename files (and any references to them).
    
    Use indented code blocks instead of fenced ones
    
    Our docs toolchain can't handle fenced code blocks yet, and we're going to need
    to put this content in multiple places, so it must use least-common-denominator
    markdown syntax.
    
    Anchor links are not reliable in YARD
    
    ...so we should avoid them and describe anchor positions with English.

commit 4be5bbfbfc1cb3f5c0ea88ac63ece8c15ec41fd1
Merge: 9ed8375 2004863
Author: kylo <kylo@puppetlabs.com>
Date:   Tue Jul 30 14:03:09 2013 -0700

    Merge pull request #1808 from adreyer/pmt-metadata-update
    
    (#21985) puppet module build includes existing metadata.json

commit 2004863ac6b4fc71d0d1cf557803bb7de26239c7
Author: Alex Dreyer <alex@puppetlabs.com>
Date:   Mon Jul 29 17:12:29 2013 -0700

    (21985) pmt should include exsiting metadata.json when building
    
    pmt currently will only include specific fields from the ModuleFile when
    building a module. This means that as we add features to forge that rely on new
    fields those won't be available to users with older versions of PMT. By allowing
    metadata.json to be written to directly we ensure that module authors can take
    advantage of all forge features without updating puppet. All existing workflows
    continue to work for those who do not want to leverage these features.

commit 9ed8375a7ca4e37bc6a087e6398a1edc0e4140e1
Merge: 9c37a56 3f04206
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 29 17:14:34 2013 -0700

    Merge pull request #1807 from dalen/maint
    
    indentation fixes and dead code removal

commit 3f04206a3a28542e9b9e28e6e1092bd8eb0f5689
Author: Erik Dalén <dalen@spotify.com>
Date:   Tue Jul 30 01:49:39 2013 +0200

    (maint) remove unused methods

commit 816ffe523a5b5914a77e7a60e555f6adaf744ed3
Author: Erik Dalén <dalen@spotify.com>
Date:   Tue Jul 30 01:48:38 2013 +0200

    (maint) fix indentation

commit 9c37a5671aca30e73b0722f314dc8dc84cb0820e
Merge: 257871d 5b0cbe3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 29 16:21:01 2013 -0700

    Merge pull request #1806 from kylog/maint/remove-subclass-loader
    
    (maint) Remove lib/puppet/util/subclass_loader.rb

commit 5b0cbe3e137a73d4c97ee40d618a08f7d1aefedc
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Jul 29 16:08:47 2013 -0700

    (maint) Remove lib/puppet/util/subclass_loader.rb
    
    This appears to be unused. From git log, it was added in 2007,
    and the dependent code was removed in 2011 along with XMLRPC support.

commit 257871dbe20eda900cdcf27f307621ea2db6bad0
Merge: 6cc37d9 4a3b7ab
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 29 14:57:47 2013 -0700

    Merge pull request #1795 from mruzicka/ticket/master/PE-834
    
    (#21961) Support ssl connections without peer verification

commit 4a3b7aba891610f4793836a47c9c741df29bda44
Author: Michal Růžička <michal.ruza@gmail.com>
Date:   Mon Jul 29 21:19:53 2013 +0200

    (#21961) streamlined option hash content validity checking

commit a5b8b96f703d932b90ce7461b18076bb32ee85b3
Author: Jasper Lievisse Adriaanse <jasper@humppa.nl>
Date:   Tue Jul 23 16:55:55 2013 +0200

    Enhance OpenBSD pkg.conf handling
    
    This moves the pkg.conf parsing into it's own method which allows for better
    re-use. While here, support for parsing '+=' lines has been added. This allows
    for appending to PKG_PATH, instead of merely setting it with '='.
    
    (#21930) Enchance OpenBSD pkg.conf handling

commit 122b4838e2ae51c0ae3f8ead06ac52e61885719e
Author: Michal Růžička <michal.ruza@gmail.com>
Date:   Mon Jul 22 16:25:02 2013 +0200

    (#21961) Support ssl connections without peer verification
    
    This patch extends the functionality of the
      Puppet::Network::HTTP::Connection
    class to support ssl connections without peer verification.
    The signature of the initialize method of the class is changed
    to take the "options" hash argument instead of a list of individual
    arguments for easier use as well as easier addition of possible
    additional parameters in the future.
    The patch also changes the
      Puppet::Network::HttpPool.http_instance
    method, but in a way which ensures the method signature remains
    backwards compatible by only adding one parameter with a default
    value.

commit 6cc37d9eb39a22c800e28615f6b7022e8ec84e6f
Merge: 123f79a b9e6e1d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 29 11:46:21 2013 -0700

    Merge pull request #1805 from zaphod42/feature/master/18508-preserver-resource-ordering-from-manifest-to-application
    
    (#18508) Preserve order of insertion for resources

commit b9e6e1dd1d694c81adea38b18489fc84abf6f65c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 29 10:29:03 2013 -0700

    (Maint) Remove some unneeded complexity
    
    The compiler held onto an attribute that it didn't need
    (@exported_resources) and some of the failure checking used
    constructions that were a little more complicated than needed.

commit e1be712a8632703758b3fc29700674aebced1253
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 26 22:57:21 2013 -0700

    (Maint) Rename catalog integration spec
    
    The catalog integration spec was originally intended as just to be about
    the order in which some elements appeared in it, but it has evolved to
    be about the general invariants and properties of the catalog as it is
    transmitted between the master and the agent.

commit 44b927fe03e4fa970f34293747e80de431bbf228
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 26 22:56:32 2013 -0700

    (#18508) Assert kinds of resources sent to agent
    
    This adds assertions that the virtual resources are not sent to the
    agent, and neither are exported resources.

commit a54ac10ea755653ab06182c2e2c05ecf010e488e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 26 20:52:14 2013 -0700

    (#18508) Preserve order while translating catalog
    
    The catalog is translated in several different places into several
    different forms. Each one of these transformations needs to preserve the
    order of the resources that they contain.

commit fe7f50d7a1034b6ee6c83d86c7abb8dbfbd93b73
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 26 14:30:13 2013 -0700

    (Maint) Remove unnecessary alias in Component.new
    
    From our understanding, any resource alias should already exist at this point.

commit df707b667accea69841ed6b9bcbb7779ad17fce8
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 26 14:26:09 2013 -0700

    (Maint) Remove unneeded array code in type
    
    Iteration across an array with only one element isn't needed. Just
    flatten it out and make it simpler.

commit 6dcbd3cef66a7b223136be12c4bc0a1f1ffeebfc
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 26 11:42:50 2013 -0700

    (#18508) Preserve order of insertion for resources
    
    The order that resources are added into the catalog is needed in order
    to ensure a less surprising order when applying resources on the agent.
    This ensures that the order that resources are transmitted to the agent
    preserves that insertion order.

commit 167354e333a03a98ab3b20ecef3d4c73af97d7ae
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jul 25 12:30:11 2013 -0700

    (#18508) Specify the order of resources in the catalog
    
    This adds a specification to the order in which resources appear in the
    catalog. They must appear in the order in which they are added to the
    catalog.
    
    In order to make this kind of assertion easier this commit also brings
    in Ramcrest.

commit 123f79ae6c27dda47325e21e0c7b9eb429bb42e4
Merge: dd75c82 395814f
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jul 29 09:49:01 2013 -0700

    Merge pull request #1788 from jpartlow/feature/master/utility-scripts
    
    (maint) Checks in a pair of useful dev tools

commit dd75c8296da55130b33faad7c0b751593cd0dbe3
Merge: c96e0a9 feb8528
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jul 27 08:41:07 2013 -0700

    Merge pull request #1804 from hlindberg/issues/issue-21947
    
    (#21947) Add missing error message for ILLEGAL_NAME

commit feb85287a24894d30130afe7c954af7f19c72b97
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jul 27 02:07:53 2013 +0200

    (#21947) Add missing error message for ILLEGAL_NAME
    
    The faulty behavior was triggered by interpolation of an illegal name.
    e.g. "Contains $CONTRABAND".

commit c96e0a90275539a69a0dab945ea32e0ea9175456
Merge: 28bcb8f 6ff702a
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jul 25 13:37:20 2013 -0700

    Merge pull request #1767 from dalen/moduletool_dependency_attrs
    
    (#21749) Make attributes readable on Puppet::ModuleTool::Dependency

commit 8ef69313a7fe7ecb3a250df2843fe426412085e5
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu Jul 25 13:10:19 2013 -0700

    (#21881) Add error responses to resource_type http api
    
    Adds responses seen for general cases of bad request or resource not
    found when using the http api for resource_type.

commit 28bcb8f21c69ed8b388ed9aa89e369dd44e9e52e
Merge: 9afa9fc 0e1e517
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jul 25 10:34:30 2013 -0700

    Merge pull request #1784 from nhemingway/bug_11133_node_regex_captures
    
    (#11133) If a node definition uses a regex, make its capture variables a...

commit 71a7bf85e3c43279a1e5a7c9eb7e45cc39bb1e67
Merge: 101774c fba51b8
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jul 25 10:31:50 2013 -0700

    Merge pull request #1801 from floatingatoll/patch-3
    
    various documentation fixes

commit 9afa9fc849e79d0b02514ab79771f392ba3363ae
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 24 15:19:04 2013 -0700

    Deserialize time in Status objects the same way as everywhere else
    
    In other classes when initializing from a hash we allow time to be either a
    string or a time object. This makes it work with both YAML and PSON. This
    fixes this for Puppet::Resource::Status.

commit fba51b89c053dd3ba36fb0de68937ab2ee0917fd
Author: Richard Soderberg <rsoderberg@gmail.com>
Date:   Wed Jul 17 18:41:50 2013 -0700

    (maint) Typo fixes for code comments

commit 2ff76468f3bb9125c58d8878ec7bfb90161f49d0
Author: floatingatoll <rsoderberg@gmail.com>
Date:   Wed Jul 17 18:32:00 2013 -0700

    (maint) Spelling fixes for code comments
    
    'acutal' to 'actual'
    'allowal' to 'allowable'
    'cahe' to 'cache'
    'corrosponding' to 'corresponding'
    'dafault' to 'default'
    'defauls' to 'defaults'
    'defualts' to 'defaults'
    'follwing' to 'following'
    'manageing' to 'managing'
    'managhome' to 'managehome'
    'matchin' to 'matching'
    'pupet' to 'puppet'
    'repositry' to 'repository'
    'terminii' to 'termini' (per Oxford, 'termini' or 'terminuses')
    'ths' to 'this'

commit 8259b12f34086a79df581ba540b2dcecadec2d85
Author: Richard Soderberg <rsoderberg@gmail.com>
Date:   Wed Jul 17 18:43:03 2013 -0700

    (maint) Various fixes (whitespace, etc)

commit 524de14a8f119eabcbb8d5be0f6f8a99b39aa81c
Author: Richard Soderberg <rsoderberg@gmail.com>
Date:   Wed Jul 17 19:37:45 2013 -0700

    (doc) Clarify a couple of comments under lib/puppet/
    
    - 'should not be used in preference to' as 'should be avoided in favor of'
    - '25K to 300 symbols to strings' as '25K symbols vs. 300 strings'

commit 395814fd48159e6de3f5e3f80ea87e9f15b327a0
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue Jul 23 17:51:43 2013 -0700

    (doc) Notes on curl with dev-puppet-master script
    
    And a change to dev-puppet-master to automatically copy auth.conf if not
    already present.

commit f51b1f5821f521619ae7fc209f7f59f7a9dc57cd
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 23 16:26:10 2013 -0700

    (#21881) Add API docs to YARD
    
    This adds an api_docs directory with static markdown files which get included
    in YARD output. The first thing documented is the resource_type http endpoint.

commit bb0f7da78e9576c9b9306ae9f3ad2e6be8a13e23
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 23 11:57:39 2013 -0700

    (doc) Add other markdown files to YARD

commit 31e1b74f74f40ee4c468f419a228ba1f82b9b6d2
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 19 14:45:58 2013 -0700

    (#21881) Add documentation for Puppet::Indirection::ResourceType::Parser
    
    This clarifies the use of this indirection somewhat and conforms better to
    YARD syntax.

commit cc464f012f5c254c204dab97290da1795fbed031
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 19 13:43:45 2013 -0700

    (#21881) Validate ResourceType against a json schema in tests

commit 579e691b387559bc741f567d0b5f52c85713654f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 19 13:59:02 2013 -0700

    (#21881) Add YARD docs for the format used by Puppet::Resource::Type

commit 6d7d529f140ed9ed90bab578f1a831e361ade040
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 19 13:58:44 2013 -0700

    (maint) Clean up comments for Resource::Type

commit 56ed42d97ac83f98e26b9eacc77d4131d1528964
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 23 11:46:53 2013 -0700

    (doc) Fix YARD output
    
    Removed comments before any declaration of 'module Puppet' so that only the
    one in lib/puppet.rb would be used by YARD.

commit 212042c923693c2e78d4eeaa2a0b3042c4599f7b
Merge: 2350ed0 ed499f6
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue Jul 23 09:42:34 2013 -0700

    Merge pull request #1793 'kylog/issues/master/21831-txn-uuid'
    
    * kylog/issues/master/21831-txn-uuid:
      (#21831) Add/use get_transaction_uuid method
      (#21831) Generate a UUID to allow matching a report to a catalog
      (#21831) Ensure SecureRandom.uuid is available

commit ed499f602ff372e03db8788f3307d8089af0c29c
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Jul 22 16:59:57 2013 -0700

    (#21831) Add/use get_transaction_uuid method
    
    Rather than inline insertion of the transaction uuid, factor
    out a method, get_transaction_uuid, which returns a hash containing
    the transaction_uuid and merge that into the catalog query_options
    hash.

commit e1884907675963883e49625f2eb06125b46c11fe
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Jul 22 17:30:11 2013 -0700

    (maint) Clarify comments and link to puppet-master issue

commit 2350ed0db1264040864ad4dfc9908429d6298eb1
Merge: de40ad0 101774c
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Jul 22 15:46:09 2013 -0700

    Merge remote-tracking branch 'upstream/stable'
    
    * upstream/stable:
      (maint) Correct type in speeeeling of pl-fedora-18-i386 mock in ext/build_defaults.yaml

commit de40ad010113a848a825c669cc4aa03af4d6d09c
Merge: cf09858 40bba75
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jul 22 10:48:17 2013 -0700

    Merge pull request #1778 from ahpook/21801_rack_http_headers
    
    (#21801) Normalize headers that come through Rack

commit cf09858978f0f04053fa8b7fda88f9d6ea8529c0
Merge: 2cd00b8 fb88f6b
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Mon Jul 22 09:12:30 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (Docs) Point out that setting "user" in an exec does not automatically set $HOME
      (Docs) Add Debian/Ubuntu-appropriate package name to RRD report info

commit 101774cdd611c6e62513a2a602da7abea85ab279
Merge: fb88f6b 83ea101
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Mon Jul 22 09:11:42 2013 -0700

    Merge pull request #1794 from haus/fix_typo
    
    (maint) Correct type in speeeeling of pl-fedora-18-i386 mock in ext/buil...

commit fb88f6b436cd02409dc381fe91409155bd532425
Merge: 0eaa1c0 e50e56c
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Mon Jul 22 09:10:05 2013 -0700

    Merge pull request #1786 from nfagerlund/debian_rrd
    
    (Docs) Minor documentation updates

commit 83ea101fc595df78adeac99281dd48ba55f200d7
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Jul 19 16:30:43 2013 -0700

    (maint) Correct type in speeeeling of pl-fedora-18-i386 mock in ext/build_defaults.yaml

commit 1858cc632b38a8e1b8021fdf34e0b231afc8235d
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Tue Jul 16 11:41:09 2013 -0700

    (#21831) Generate a UUID to allow matching a report to a catalog
    
    In Puppet::Configurer, generate a 'transaction_uuid' using SecureRandom.uuid.
    For the catalog retrieval, pass that uuid into the 'fact_options' hash which
    generates the query string for the catalog request.  For the report, set the
    report's variable, also named 'transaction_uuid,' and serialize that to_pson.
    
    Also:
    - In configurer.rb, rename fact_options to query_options since the hash ends
      up including more than just the facts.
    - Add spec tests for transaction uuid modelled on those for configuration version

commit fc96d8d5b99072ce681828683129fa16dd907b2a
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Fri Jul 12 10:01:25 2013 -0700

    (#21831) Ensure SecureRandom.uuid is available
    
    Background:
    Ruby's stdlib includes SecureRandom.  As of 1.9.3 SecureRandom
    includes a uuid method, which is essentially a convenience
    wrapper around the base random number generation.  1.8.7 did not
    provide the uuid method.
    
    Changes:
    - Monkey patch SecureRandom to add the uuid method if it's not there
     (copy-paste of the code from 1.9.3)
    - Add test to verify that there is a uuid method and that it returns a
      properly formatted uuid string.

commit e50e56ca779d2de6d6fe484a8889e3aaf4b0ea62
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Fri Jul 19 15:28:01 2013 -0700

    (Docs) Point out that setting "user" in an exec does not automatically set $HOME
    
    Users were sometimes expecting this to happen, so we should point out that it
    doesn't.

commit 2cd00b8e8fe6bcdcf71cc6ba8303a172d98c7329
Merge: 449e1f4 a983b69
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jul 19 14:25:19 2013 -0700

    Merge pull request #1791 from zaphod42/issues/master/issue-21252
    
    (#21252) Fix problems with false/nil args and returns in lambda

commit 449e1f40800c073a00cbae69f5fd3efb4537b4eb
Merge: 2357ff1 0eaa1c0
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Fri Jul 19 13:05:20 2013 -0700

    Merge remote-tracking branch 'upstream/stable'
    
    * upstream/stable:
      (packaging) Move systemd BuildRequires into conditional

commit 0eaa1c02bac3dd0469631f101a4ca565619e2df9
Merge: ee021f2 d50e20f
Author: Josh Partlow <jpartlow@glatisant.org>
Date:   Fri Jul 19 13:04:12 2013 -0700

    Merge pull request #1790 from haus/update_redhat_spec
    
    (packaging) Move systemd BuildRequires into conditional

commit d50e20fbd1c849a22ca3d54b78d3baa9e23f7d57
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Jul 19 12:11:21 2013 -0700

    (packaging) Move systemd BuildRequires into conditional
    
    Previously either systemd or systemd-units were BuildRequires on all rpms.
    These packages are not available on el5 or el6, which would break rpm building
    on those platforms. This commit moves those BuildRequires into an already
    existing systemd conditional, so they are only required on systems that support
    systemd.

commit a983b69547e7c1205d53c630448f9e450503ff8d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 19 12:34:40 2013 -0700

    (#21252) Define behavior around undef and nil arguments
    
    The behavior for an argument that was :undef (from an undefined
    variable) and nil (from a function returning a nil in a data structure)
    was different. This fixes that inconsistency by making them both the
    same. It also clarifies that passing undef to a lambda does not result
    in the default value for that parameter.
    
    In addition some of the variables have been renamed to clarify their
    purpose and extra code for a 1.8.7 difference that we were unable to
    reproduce has been removed.

commit 66041d84b48cab9a730b7e9663c754c1e8d3e556
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu Jul 18 17:43:44 2013 -0700

    (maint) Checks in a pair of useful dev tools
    
    These are two scripts (not mine) which have been floating around, which
    have proved useful for setting up a local puppet-master daemon for
    testing, and for bisecting spec order failures.
    
    I don't know that util is the best subdirectory for them to live in.

commit 300757d54cffaedc99372b60690c211b687ab1c8
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jun 15 01:21:57 2013 +0200

    (#21252) Fix problems with false/nil args and returns in lambda
    
    The issue 21252 was triggered by a documentation error but should
    have produced a different result than the error that was presented.
    
    This was caused by a series of problems. It was not possible to
    pass `false` as a parameter value as this was taken as missing parameter
    value.
    
    Also, it was not possible to return the value `false` as this was
    translated to `nil` due to defective work around for missing initialized
    variable on return.
    
    The fix changes the handling of making sure that the variable that is
    returned exists (by setting value explicelty to `nil` before the start
    of the exception handling block.
    
    This commit also modifies how a lambda call matches arguments to
    parameters and checks what is missing (now with `false` as a valid value
    in mind).
    
    A test is added to `collect` that checks that a value of `false` can
    both be passed and returned.

commit 2357ff109d5f6ea7413a03660c25ec9800d2db4c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jul 18 16:46:28 2013 -0700

    Maint: Fix absolute path issue on Windows
    
    The log_spec did not account for the absolute path on Windows. Refactored
    the test to use `File.expand_path` instead of `make_absolute`.

commit 50d70e30af1eaae13af3f5e209786b0a463d0c9c
Merge: 4b06092 9064eee
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jul 18 16:39:44 2013 -0700

    Merge pull request #1787 from jpartlow/feature/master/use-systest-templates
    
    (maint) Use systest's dynamic provisioning instead of backline

commit 9064eeeaf04d9b0f6230d00dd860c499cacad496
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 16 17:37:40 2013 -0700

    (maint) Use systest's dynamic provisioning instead of backline
    
    Use vcloud hypervisor with redhat template, and track puppet-acceptance
    master HEAD.  Also fixed test/external_ca/fixtures file locations.
    
    Changed the certificate validation setup step because the dynamically
    provisioned hosts have an fqdn, but the reference to the hosts in
    systest resolves to just the hostname which caused the master's
    certificate to be only its hostname and not the fqdn.

commit a21d6c6e8830f63a94f68a722d9965f0c55a70e7
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Thu Jul 18 16:10:43 2013 -0700

    (Docs) Add Debian/Ubuntu-appropriate package name to RRD report info

commit 4b0609216917091cd5db36884eebcc40aee8af84
Merge: f64525c 86cded6
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jul 18 14:20:29 2013 -0700

    Merge pull request #1771 from CumulusNetworks/master
    
    Bug #21769

commit f64525c56a410cb200d4ba3afb5394db232728c7
Merge: ea9a63e cd9135f
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jul 18 14:04:41 2013 -0700

    Merge pull request #1728 from deanwilson/yumrepo_s3_enabled
    
    Add the s3_enabled property to the yumrepo type (#21452)

commit ea9a63e4dbb105f4e30520ac786ac8013fe486bc
Merge: 9783806 db7cf0d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jul 18 14:01:33 2013 -0700

    Merge branch 'pull-1732'
    
    This closes GH-1732.

commit db7cf0d1737781c23fbf61433c2adb2652aa056a
Author: joshrivers <josh@radianttiger.com>
Date:   Thu Jun 27 12:32:23 2013 -0700

    (#18295) add title to start call in windows exe package provider
    
    When called without a title parameter, the windows 'start' function
    collects any additional command line switches to itself rather than
    passing them along to the command to be started.
    
    The existing exe_package.rb, in it's initial and only commit
    07931e63c7d76fcec331946921b304438c38b469, had the "Title" parameter set
    for uninstalls. It did not have the "Title" parameter set for installs.
    Since uninstalls almost always require parameters, but install do not,
    I assume this was an unintentional omission.
    
    This resolves the issue by adding a title bar description with the
    string 'puppet-install' to windows executed for installing .exe
    packages.

commit 978380601d1e5acfe8c1804f0509356581710c86
Merge: 9ea6b78 179ee76
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jul 18 11:38:40 2013 -0700

    Merge pull request #1785 from pcarlisle/remove-deprecated-ruby-support
    
    Remove support code for ruby < 1.8.7

commit 9ea6b7816503dd89863358df74bcb9d776f831fd
Merge: 968113f 5275b17
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jul 18 11:23:38 2013 -0700

    Merge pull request #1738 from hlindberg/issue/issue-21470
    
    (#21470) Change validation of "storeconfigs" to reflect runtime state.

commit 968113f5f9511cdc06cde40a3a2f3786489565fa
Merge: 6bb7004 f44cc55
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu Jul 18 11:19:55 2013 -0700

    Merge remote-tracking branch 'zaphod42/issue/master/21307-missing-files-treated-as-changed'
    
    * zaphod42/issue/master/21307-missing-files-treated-as-changed:
      (#21307) Pull apart many parts of logic for WatchedFile
      (#21307) Refactor WatchedFile class
      (maint) re-indent file
      (maint) Remove unused exception class

commit 6bb7004e506b9cbe4c790f6f0f10aeeb933a51ad
Merge: c1b344c 90c2c42
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jul 18 11:04:46 2013 -0700

    Merge pull request #1774 from jpartlow/issue/master/6112-generate-specs
    
    Issue/master/6112 generate specs

commit 179ee76297db50cce38ce3d1ffb73831c9c91f1b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 17 17:04:08 2013 -0700

    Remove support code for ruby < 1.8.7
    
    We stopped supporting running puppet under ruby 1.8.5 in 3.0 (ticket #15734).

commit f44cc55253658bb015ae105841c2b30e4d45b8ae
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 12 14:09:58 2013 -0700

    (#21307) Pull apart many parts of logic for WatchedFile
    
    The WatchedFile class had several intertwined pieces of logic: when to
    update, what a changed file is, when a changed isn't yet known. This
    unravels it into individual parts. Overall the code got larger, but the
    pieces are more specialized now and have a name that calls out what is
    being done.

commit 0e1e5172a6e1b37bd76a3f86a97b5020ffbca746
Author: Neil Hemingway <neil.hemingway@netbanx.com>
Date:   Fri Dec 2 16:10:36 2011 +0000

    (#11133) If a node definition uses a regex, make its capture variables available in the node's scope

commit c1b344c0da9243f052bbdd4f5ec1f603250b45bf
Merge: bd4038a 7e973f5
Author: kylo <kylo@puppetlabs.com>
Date:   Thu Jul 18 06:36:54 2013 -0700

    Merge pull request #1779 from cprice404/feature/master/21805-add-class-containment-path-to-resource-status
    
    - Refactor to remove 'LogPath' module
    - (#21805) Add containment path to report resource_status
    - Improve documentation for pathbuilder methods

commit 750a2f1b582cef6d299fb37b12e37bf41b94e5a8
Author: Mathieu Parent <math.parent@gmail.com>
Date:   Thu Jul 18 11:04:06 2013 +0200

    Propagate client noop value as a fact
    
    This fixes: http://projects.puppetlabs.com/issues/6847
    
    (which is also a workaround for: projects.puppetlabs.com/issues/20679)

commit bd4038aadc3f59ba263804711b2aa6cc964358f8
Merge: 2f22127 ee021f2
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Jul 17 17:33:35 2013 -0700

    Merge branch 'stable'

commit 90c2c422ff3c5bf6244894b16e5dd31cb4d86b7c
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed Jul 17 17:29:42 2013 -0700

    (#6112) Memory indirector for cert generate specs
    
    This second test case is an attempt to begin re-writing the
    CertificateAuthority specs in a style which does not rely so heavily on
    mocking the internals of methods, particularly for initialization.
    
    Many of the specs in the proceeding test case end up looking like inverse
    descriptions of the methods under test (expect this call, then that call,
    then this other call), because there are so many side effects to
    CertificateAuthority methods and dependencies on other SSL components which
    are themselves indirected.  It is unclear whether we are really
    testing the code.
    
    Based on Patrick Carlisle's suggestion of using memory indirectors for the
    various SSL endpoints, this new test case worries less about unhooking
    CertificateAuthority from all its dependencies, and more about testing the
    results of methods.  CertificateAuthority initialization still requires some
    mocking but I've tried to isolate it more from the tests.
    
    If we like this approach, we should begin moving tests from the first test
    case into this one.
    
    It would probably also be good to create an integration test for the SSL
    library that more rigorously tests the interaction between SSL components
    through CertificateAuthority.

commit ee021f2a3e8a4a72a029dc1d204847ee2ce8f3b3
Merge: 498bbf5 9f96414
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Wed Jul 17 17:17:07 2013 -0700

    Merge pull request #1781 from haus/remove_package_info_plist
    
    (packaging) Remove PackageInfo.plist, it is no longer used by packaging.

commit 9f964149642a0f37b604bf9b3b8a23c3cbf98bc3
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Jul 17 17:04:41 2013 -0700

    (packaging) Remove PackageInfo.plist, it is no longer used by packaging.

commit 498bbf587ea0f09d5f8ac8ddc932f7b2893bda98
Merge: 7a30568 9e23a28
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Wed Jul 17 16:58:58 2013 -0700

    Merge pull request #1775 from melissaanne/maint/stable/f19-updates
    
    (Bug #21761) Update puppet for F19

commit 2f22127b90fe3c42106f2397160bab3777856553
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 17 15:28:31 2013 -0700

    (maint) Remove publicize_methods from specs
    
    This was a bad idea.

commit 7e973f5cd190c4a3333094b339a2879a5c560a62
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed Jul 17 14:57:15 2013 -0700

    Improve documentation for pathbuilder methods

commit 7a30568ad7ec765f3ae3f868148ba2597e6bf69c
Merge: efcae1a cafdfd1
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Jul 16 22:03:29 2013 -0700

    Merge pull request #1768 from haus/remove_create_package_sh
    
    (packaging) Remove createpackage.sh from puppet

commit 65e53f44568436156c2bcc0ecea3a3e17efa323c
Merge: 746dfb3 3f1e944
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Jul 16 21:56:24 2013 -0700

    Merge pull request #1765 from phinze/21087-no-debug-logging-when-augeas-lens-is-incorrect
    
    (#21087) Debug output for all augeas error nodes

commit 661d8f05041f79bea5c8630f3d2b58473b60605b
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Jul 16 16:01:02 2013 -0700

    (#21805) Add containment path to report resource_status
    
    This commit adds a new attribute the `Puppet::Resource::Status`
    class, called `containment_path`.  The value is an array of
    strings that indicates the types and classes that the resource
    is contained within.  (The format is the same as what we show
    in the log messages during an agent run.)
    
    This data will be used by PuppetDB to allow queries by class,
    which will return resources that are contained within the
    specified class.

commit ab2c2e03a46ad82e3fad9d7867b407f684fcf472
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Jul 16 15:22:48 2013 -0700

    Refactor to remove 'LogPath' module
    
    In preparation for #21805, I stumbled across some coded that
    seemed unnecessarily complex.  Since my changes for #21805
    will end up interacting with some of this code, I decided
    it was worth a quick refactor.  This commit removes the
    `Puppet::Util::LogPaths` module and simplifies all of the
    code that was interacting with it.

commit 40bba756b945b7cee33c18c26ec12c9f4e6302b1
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Tue Jul 16 16:47:51 2013 -0700

    (#21801) Normalize headers that come through Rack
    
    Previously, although we stripped the leading `HTTP_` from
    HTTP headers which Rack turned into environment variables,
    we did not restore hyphens from underscores.
    
    The user-visible consequence of this was that the match
    to detect whether profiling was request from an agent would
    not work when running under Passenger, but did work under
    Webrick.
    
    This commit updates the translation routine to turn underscores
    back into hyphens. It also fixes an erroneous test fixture; the
    sample header 'HTTP_X-Custom-Header' would never been seen in
    the wild because environment variables are not allowed to have
    hyphens.

commit 9e23a28bcb275c45c4e60358ed008f1f3d33963f
Author: Melissa Stone <melissa@vali.delivery.puppetlabs.net>
Date:   Tue Jul 16 11:39:55 2013 -0700

    (Bug #21768) Update puppet for F19
    
    Prior to this commit, there was no support for Fedora 19. This
    commit modifies build_defaults to include F19 in the mocks,
    and removes the ruby(abi) requirement. This is because F19 no
    longer provides ruby abi.

commit 746dfb38a2fbb725ddc4a91e28d8a93c0c7749fd
Merge: 19a54fa efcae1a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 16 12:56:51 2013 -0700

    Merge branch 'stable'
    
    * stable:
      Pin redcarpet gem to the last version that supported Ruby 1.8
      (#7911) Simplified libs section of installer
      (packaging) Update PUPPETVERSION for 3.2.3

commit efcae1a6194ebd47787d6a79ea69aed05e219500
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 16 12:56:10 2013 -0700

    Pin redcarpet gem to the last version that supported Ruby 1.8

commit 19a54fa9bcc57c1a791485fb043f3f5ec387c238
Merge: a2fa626 8646dfd
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Jul 16 12:24:14 2013 -0700

    Merge branch 'pull-1762'
    
    This closes GH-1762

commit 2cb57bfaca827de9f1a09816ae069d9fd4642b05
Author: Erik Dalén <dalen@spotify.com>
Date:   Tue Jul 16 16:52:49 2013 +0200

    (#21785) Module tool should include path part of URI
    
    The module tool ignored the path part of the URI when specifying a
    custom module_repository setting.
    
    Example:
    puppet module install foo-bar --module_repository=‘http://forge.example.com/forge’
    
    fetched http://forge.example.com/api/v1/releases.json?module=foo/bar
    instead of
    http://forge.example.com/forge/api/v1/releases.json?module=foo/bar
    
    Same issue when it tries to fetch the file itself.

commit a2fa626340944ae024fc99fb7f9295f273842a12
Merge: 0a82417 94bf1a8
Author: Josh Partlow <jpartlow@glatisant.org>
Date:   Mon Jul 15 17:02:12 2013 -0700

    Merge pull request #1772 from jpartlow/issue/master/6112-fixing-windows-acceptance-test
    
    (#6112) Confine puppet cert generate case 3 test on windows

commit 94bf1a8fc874f655191058e45de0d36e0a027a84
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Jul 15 15:05:56 2013 -0700

    (#6112) Confine puppet cert generate case 3 test on windows
    
    Windows machines are not supported as puppet master, and so should not
    have puppet cert commands run on them, since they run in :master mode
    and attempt to generate CA ssl infrastucture.  In particular the
    ssl/ca/serial file cannot currently be handled on windows machines due
    to how Puppet::Settings#readwritelock attempts to overwrite the lock
    file.
    
    This change confines this portion of the acceptance test not to run on
    Windows.

commit 8646dfdea6720e703679d6c87b15a260f7c24eb7
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jul 15 14:42:02 2013 -0700

    (maint) Expect unused filebucket to be absent
    
    In Ruby 1.8.7 `Find.find` will ignore all given paths that are not
    present, while Ruby 1.9.1+ `Find.find` will raise an exception if any of
    the given paths are not present.
    
    Before 6ed43ec a test could create an empty filebucket hierarchy, which
    was then inspected to ensure it had no files. 6ed43ec fixed the
    underlying cause which stopped creating the filebucket, and trying to
    call Find.find on the absent directory on Ruby 1.9.1+ will fail.
    
    This commit replaces the `Find.find` invocation with an assertion that
    the filebucket directory is absent.

commit 6ed43ecf518279a8415d91ebc9062d95cd47fccf
Author: arnoudj <arnoud@de-jonge.org>
Date:   Sat Jul 13 19:36:31 2013 +0200

    (#21659) Links are seen as files and get bucketed.
    
    Links are seen as files and get bucketed.jThe code that checks the
    filetype uses File.stat(file).type. This for some reason returns that it
    is a file:
    
      irb(main):001:0> File.stat(‘wellthisisembarrasing’).ftype => "file"
    
    File.lstat(file) return the correct value:
    
      irb(main):002:0> File.lstat(‘wellthisisembarrasing’).ftype => "link"
    
    File.lstat(file) should be used instead.

commit 0a82417ea86d00ccb1f712df31ffde2183f354c5
Merge: 9557b51 b3022fa
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 15 11:05:50 2013 -0700

    Merge pull request #1735 from hlindberg/issue/issue-21508
    
    (#21508) Make local variables available to templates as instance vars

commit 86cded632eccb8a34c788fb0d7a63f5d0cdd7a4a
Author: Sergey Sudakovich <sergey@cumulusnetworks.com>
Date:   Mon Jul 15 11:00:02 2013 -0700

    properly handle max version on ppc debian

commit 9557b51a854143df3b856e3ecf4d864c7c054a15
Merge: fc78774 d63a9a3
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jul 15 10:56:11 2013 -0700

    Merge pull request #1730 from deanwilson/yumrepo_restrict_enabled
    
    Restrict the regex to only allow 0 or 1. Not 10.

commit 422c8be4736fd88f3d100d51b0f882830e1bdd4a
Merge: 896a601 73d5742
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jul 15 10:55:09 2013 -0700

    Merge pull request #1712 from jjulien/missing_config_7911
    
    (#7911) Simplified libs section of installer

commit fc787742e9ae32902a1122152bc116d77aea0004
Merge: 8b3b90a 0e04186
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jul 15 10:52:48 2013 -0700

    Merge pull request #1731 from JamJar/fix/master/add_plymouth-ready_to_excludes
    
    (#21478) Add plymouth-ready to excludes list

commit 8b3b90a864360bbda44262df9ef1521ec2dd557b
Merge: 7229732 d2e3cf3
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jul 15 10:48:21 2013 -0700

    Merge pull request #1729 from masterzen/tickets/master/6561
    
    #6561 - Better looking puppetdoc CSS for rdoc mode

commit 72297324fa40742ed4c101a6070546818f20921a
Merge: 51cdaa3 60f22eb
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jul 15 10:46:48 2013 -0700

    Merge pull request #1721 from masterzen/tickets/master/18255
    
    (#18255) - Follow http redirections

commit 51cdaa3e52559df34d0460a0b8f1d563d1ab6658
Merge: ba9f27a c0e861c
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jul 15 10:45:57 2013 -0700

    Merge pull request #1748 from zaphod42/maint/master/fix-many-yard-warnings
    
    (Maint) Fix warnings issued by yard

commit cafdfd13592bb805d0ae95768a7b3b433c97db82
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Jul 15 09:47:34 2013 -0700

    (packaging) Remove createpackage.sh from puppet
    
    This shell script has been replaced and superceded by the packaging rake tasks.
    Running `rake package:bootstrap` followed by `rake package:apple` will build a
    dmg locally in a similar manner to this script.

commit 6ff702ae1681b20f34d1e23169db51505da60c33
Author: Erik Dalén <dalen@spotify.com>
Date:   Mon Jul 15 16:23:54 2013 +0200

    (#21749) Make attributes readable on Puppet::ModuleTool::Dependency
    
    Make it possible to read the attributes of these objects
    without turning them to PSON and parsing that back again.

commit 6baa57b807e66b94c9e9825888e5e68f3deb082b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Sat Jul 13 15:50:31 2013 -0700

    (#21409) Ensure that create_resources acts the same as a resource decl
    
    The previous implementation of create_resources duplicated most of the
    logic of Puppet::Parser::AST::Resource, but had variations which meant
    that it didn't actually behave the same. This lead to the possibility
    that what should have been equivalent statements in the language did not
    always result in the same catalog. This re-implements create_resources
    to construct the AST that is needed to create the requested resources
    and evaluate the resulting structure. This should only be able to
    differ from actual resource declarations in the language if the
    constructed AST is wrong.

commit cde4d6e2a86ed4754c12edf997cf02651f7ebf48
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Sat Jul 13 15:46:59 2013 -0700

    (#21409) Preserve original error when propogating
    
    Previously the original error was lost when some of the error handling
    routines dealt with it (such as Puppet::Util.exceptwrap). This allows
    the original error to be propogated out along with it.

commit 3f1e944ab67d70c110b5b1a906e5551fe0b72920
Author: phinze <paul.t.hinze@gmail.com>
Date:   Sat Jul 13 22:40:47 2013 +0000

    (#21087) Debug output for all augeas error nodes
    
    Adds debug output in cases where augeas has error nodes without children. This
    specifically addresses the case where an incorrect lens name is specified, and
    may provide better output for other cases as well.
    
    Thanks to Jan Vansteenkiste for the implementation of the fix.

commit ba9f27a5c59b9df6d9e1f351048ee16bfeaed7c0
Merge: ee03775 9fc1543
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Sat Jul 13 13:17:34 2013 -0700

    Merge pull request #1764 from superseb/superseb/19906-modulefacerendererror
    
    (#19906) Wrong error from "upgrade" with JSON output when module already installed

commit ee03775ab35e51638ee79d2b35072d891dfddda1
Merge: 4f22d30 6bd0456
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Sat Jul 13 12:57:12 2013 -0700

    Merge branch 'pull-1760'
    
    This closes GH-1760

commit 4f22d309f5a4668e261042240dc7620c05512670
Merge: 9dbbacc 539d54b
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Sat Jul 13 12:50:17 2013 -0700

    Merge pull request #1759 from superseb/superseb/21709-masterlogging
    
    (#21709) Master no longer logs catalog compilation time

commit 6bd0456eadbf66ae8e3151e6ad3b0b73ec62a06b
Author: Alexander Fortin <alexander.fortin@gmail.com>
Date:   Sat Jul 13 16:52:44 2013 +0200

    (#19675) Debian service provider uses bad enable check
    
    The regular expression in the Debian service provider used to see if a
    service is enabled is too loose, and can cause a service to be disabled
    on every run. This commit restricts that regex to properly match the
    exact service name for the given resource.

commit 9fc1543358f0445e5acd77f77974ffe210f6cbf3
Author: superseb <mail@superseb.nl>
Date:   Sat Jul 13 20:05:40 2013 +0200

    (#19906) Wrong error from "upgrade" with JSON output when module already installed

commit 539d54baef9e0e1bfed75d436f55dc49f1cf8dec
Author: superseb <mail@superseb.nl>
Date:   Sat Jul 13 16:40:28 2013 +0200

    Redmine #21709
    Discussed with jamesturnbull to submit this as a workaround.

commit b3022fa43b708e2112f4cef425afa4ad99b0f680
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jun 27 17:32:20 2013 -0700

    (#21508) Make local variables available to templates as instance vars
    
    The problem was that templates reference scope variables using
    instance variables e.g. @myvar, these were configured from the
    hash returned by Scope#to_hash. That method did not consider
    ephemeral scopes.
    
    The solution was to add collection of the emphmeral scopes' (that
    represent local scopes) variables and include them in the hash.
    
    As before, the match scopes (i.e. for $0 - $n) are not included in
    the result.

commit 9dbbacc8b94522179fffffc2ad0b3eb10617c5c6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 12 12:11:36 2013 -0700

    (maint) Fix calling wrong should method on properties
    
    Puppet::Property defines #should, which conflicts with rspec #should. This
    fixes several cases where tests were calling #should directly on a Property
    instance.

commit c113c6568742f9774bfd1f0c3954a26996875bfa
Merge: 1af25f6 400b4aa
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 12 11:37:35 2013 -0700

    Merge pull request #1757 from jpartlow/issue/master/6112-fixing-acceptance-test
    
    (#6112) Acceptance test handles host with uninitialized ssl

commit 1af25f62c57cd8a96966135f0db943247592013e
Merge: 46e3fa6 4ea0efd
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 12 11:30:21 2013 -0700

    Merge pull request #1754 from adrienthebo/maint_setting_type_constant
    
    (maint) Extract puppet setting types to constant

commit 46e3fa6fbf385331614c12fea05933e1b4aa6290
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Jul 12 11:27:41 2013 -0700

    Revert "Merge pull request #1756 from jpartlow/issue/master/6112-fixing-acceptance-test"
    
    This reverts commit 77aa6f61ba2d4d5d85eb4ae967322a9d41d11e5f, reversing
    changes made to c0d1eafa19da0a783fec8670500ef08fb7c23d5c.
    
    Joshua Partlow @finch, we just passed each other on #1756; andy and kylo had some
    changes they wanted. Sorry for not getting that in the pr. There must be
    a better way to coordinate on these things
    
    Adrien Thebo @jpartlow I was too eager to merge that
    Adrien Thebo should I revert it for now?
    
    Joshua Partlow yeah if you would

commit 400b4aaf6bd8fc4e675aca03e7cdc9da4c56cac1
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu Jul 11 15:26:00 2013 -0700

    (#6112) Acceptance test handles host with uninitialized ssl
    
    Running the acceptance test on Jenkins discovered a third case, and
    helped use clarify behavior for the expected cases on an initialized
    master/agent.  The third case is a host which has not initialized yet
    (has no ssl info created or cached) which is similar to what happens
    when a master initializes through a 'puppet master' call, but this is
    through a 'puppet generate' call and what the node should be capable of
    as a master or agent afterwords is ambiguous.
    
    Acceptance test now checks this case, showing that a cert does generate
    in this instance, and leaves the host in an ambiguous state of ssl
    configuration where they cannot authenticate with the master afterwords.

commit 77aa6f61ba2d4d5d85eb4ae967322a9d41d11e5f
Merge: c0d1eaf 5829f66
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Jul 12 11:19:26 2013 -0700

    Merge pull request #1756 from jpartlow/issue/master/6112-fixing-acceptance-test
    
    (#6112) Acceptance test handles host with uninitialized ssl

commit c0d1eafa19da0a783fec8670500ef08fb7c23d5c
Merge: 06b4479 c58a8bc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 12 09:15:53 2013 -0700

    Merge pull request #1753 from pcarlisle/rspec-deprecations
    
    (maint) Fix rspec warnings

commit 73d574210c8db8a2a57567eb73cacde8e239f850
Author: John Julien <john@julienfamily.com>
Date:   Thu Jun 13 21:24:43 2013 -0500

    (#7911) Simplified libs section of installer
    
    This will make sure that all files in the source lib directory
    make it into the ruby sitelib directory
    
    As the type of files being included in the lib directory has
    grown, rather than call each filetype out specifically in the
    installer (ie globs like lib/**/*.rb, lib/**/*.py), it seems
    easier to just move everything from the source lib directory
    to the the sitelib directory during installation.
    
    The new glob lib/**/* now includes directories in the glob
    list.  This caused an error in do_libs because File.install
    would be called on a directory resulting in a 0 byte file being
    placed where a directory should have been.  The error is generated
    on the second pass of the loop when File.makedirs is called, and
    the file exists and is NOT a directory.  This is the reason for
    skipping directories in the do_libs section.

commit 5829f661ca4fc2030cf00fd4cdf6ab2ab4190083
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu Jul 11 18:06:26 2013 -0700

    (#6112) Clearing test of whether puppet agent fails
    
    Whether a puppet agent -t fails after a puppet cert generate in a bare
    host (no ssl setup) seems to have platform specific issues which need to
    be figured out.  It fails for me locally in Ubuntu, and the Lucid
    Jenkins job failed, but RHEL did not.
    
    Commenting this portion out and marking pending until we have more time
    to investigate.

commit 896a6014294554f0b35a90d0bf64a28a8f8df7d6
Merge: 0987281 a23fd4e
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Jul 11 16:15:09 2013 -0700

    Merge branch 'release/3.2.3' into stable
    
    * release/3.2.3:
      (packaging) Update PUPPETVERSION for 3.2.3

commit a23fd4eea403e8fbbec07ff6fac9e8687a4d5fb2
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Jul 11 16:14:12 2013 -0700

    (packaging) Update PUPPETVERSION for 3.2.3
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 5d24b192467f3171e40a33128d719068bf5e0860
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu Jul 11 15:26:00 2013 -0700

    (#6112) Acceptance test handles host with uninitialized ssl
    
    Running the acceptance test on Jenkins discovered a third case, and
    helped use clarify behavior for the expected cases on an initialized
    master/agent.  The third case is a host which has not initialized yet
    (has no ssl info created or cached) which is similar to what happens
    when a master initializes through a 'puppet master' call, but this is
    through a 'puppet generate' call and what the node should be capable of
    as a master or agent afterwords is ambiguous.
    
    Acceptance test now checks this case, showing that a cert does generate
    in this instance, and leaves the host in an ambiguous state of ssl
    configuration where they cannot authenticate with the master afterwords.

commit 4ea0efd9074f899d1b6c657f4d02f6d1bbe0cf06
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jul 11 12:01:24 2013 -0700

    (maint) Extract puppet setting types to constant

commit 06b4479533372f6046a6b4b892eceea149f1c3a0
Merge: a7d3202 0987281
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jul 11 11:51:26 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Refactor type_loader, mostly specs
      (#21653) Skip modules with no manifest directory when loading resource types

commit 09872812bfed9ccab482e111c5eaa5493da026ca
Merge: 35bf229 0c6060f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jul 11 11:40:18 2013 -0700

    Merge pull request #1752 from pcarlisle/ticket/21653-resource-type-cant-find-file
    
    (#21653) Skip modules with no manifest directory when loading resource t...

commit c58a8bcf69017e87a61bb925ef12996508144124
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 11 11:35:50 2013 -0700

    (maint) Fix rspec warnings
    
    Running specs with rspec 2.13 caused a lot of warnings. Many of them actually
    exposed preexisting bugs, the most common being a syntax error when expecting
    an Exception. These are worth fixing even if we don't bump to rspec 2.13.

commit 0c6060f2d34f3ac335cbdb6f7eadc076000ad153
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 10 16:16:04 2013 -0700

    (maint) Refactor type_loader, mostly specs
    
    This cleans up the specs for type_loader a lot and slightly refactors a few
    methods in type_loader.

commit a7d320273d93bceac1df1fb8546f4a9a20e338a7
Merge: 40e4346 2ff1cb7
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jul 10 11:35:12 2013 -0700

    Merge pull request #1743 from thallgren/master
    
    Add ignore entry for Eclipse specific .project file

commit 27a69f2455fc5c7b40cd6011aace4d474ff7b6c2
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 9 16:49:59 2013 -0700

    (#21653) Skip modules with no manifest directory when loading resource types
    
    The resource_type face tries to parse all manifests from modules, but was
    failing if a module didn't have a manifest directory. This is not an error
    condition so we just skip those modules.

commit 40e434609ad7d4b92f90fe0ef7e1cd9375bf9b2a
Merge: 4540584 35bf229
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 9 15:53:33 2013 -0700

    Merge remote-tracking branch 'upstream/stable'
    
    * upstream/stable:
      (Maint) Don't prefetch from /tmp/test
      (#19727) Collapse multiple leading slashes
      (packaging) Update PUPPETVERSION for 3.2.3-rc1
      (packaging) Remove Ubuntu Oneiric from build targets
      (#21264) Update rgen dependency to 0.6.5
      (packaging) Use the packaging loader for tasks

commit 45405847ead6f4b73eddebec9145a311044e0b98
Merge: 6e38889 81cdc7a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 9 15:48:48 2013 -0700

    Merge branch 'issue/master/6112-puppet-cert-generate-clashes-with-autosigning'
    
    * issue/master/6112-puppet-cert-generate-clashes-with-autosigning:
      (maint) Stub further out in csr signing tests
      (#6112) Only attempt to sign a certificate once.

commit 81cdc7af72779da0bdd033dd4d2bd991762a44db
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 9 15:48:11 2013 -0700

    (maint) Stub further out in csr signing tests

commit 35bf2296b8cc1ac605da21b98e159e9598eec448
Merge: bda23af d5fdadf
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 9 15:36:23 2013 -0700

    Merge branch 'ticket/stable/19727-double-slash' into stable
    
    * ticket/stable/19727-double-slash:
      (Maint) Don't prefetch from /tmp/test
      (#19727) Collapse multiple leading slashes

commit d5fdadff61320c100feafc457c4afa517be9d12b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 9 15:26:49 2013 -0700

    (Maint) Don't prefetch from /tmp/test
    
    Previously, the parsed file provider was prefetching and reading from
    /tmp/test, which failed if you happened to have a directory /tmp/test.
    
    This commit updates the test to use a temporary and empty file from it
    prefetches.
    
    Paired-with: Rob Reynolds <rob@puppetlabs.com>
    Paired-with: Kylo Ginsberg <kylo@puppetlabs.com>

commit f25036b85c42ffabc5a70ae4df1309139edac9d7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 9 15:00:00 2013 -0700

    (#19727) Collapse multiple leading slashes
    
    Puppet 2.6.5 to 2.7.19 collapsed multiple leading slashes. This behavior
    was changed in 2.7.20 in commit 912ed346 as a result of no longer
    calling `File.split`.
    
    This commit reinstates the behavior that existed previously and adds
    tests for both double and triple leading slashes.
    
    Paired-with: Rob Reynolds <rob@puppetlabs.com>
    Paired-with: Kylo Ginsberg <kylo@puppetlabs.com>

commit c0e861cc22e7609e0d9b5775fb32f43c9105ca92
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jul 3 15:37:37 2013 -0700

    (Maint) Fix warnings issued by yard
    
    There were many uses of incorrect tags (@returns instead of @return),
    unnamed params (@params without specifying which param) and inccorect
    use of multiple variations (@params for the same param many times
    instead of using @overload). This fixes many, but not all of the
    warnings issued by yard when it generates documentation.

commit 5da6150fc8650f8f4ee45213e74faf8ec0110490
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Jul 8 12:03:27 2013 -0700

    (#6112) Only attempt to sign a certificate once.
    
    Prior to this patch, autosigned certificates would see a second call to
    CertificateAuthority#sign which would result in an extraneous error
    message being logged.
    
    This patch short circuits and returns the signed certificate if
    available prior to attempting to sign.
    
    It also clears a duplicate host assignment in
    CertificateAuthority.generate, and logs autosigning attempts.
    
    A new acceptance test has been added to document the current puppet cert
    generate behavior (with the above change) on a host that is the CA, on
    one that is not, with and without autosigning, with and without
    submitting --dns_alt_names.

commit 40801c0657e95326bccb2ec07efc54f2dfbd9d32
Author: Erik Dalén <dalen@spotify.com>
Date:   Tue Jul 9 17:55:08 2013 +0200

    (maint) make SRV record lookup more generic

commit 6e388890eda667f21f0d835de4ff6c220ee39954
Merge: 3ff51c8 9536d51
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Jul 8 15:34:40 2013 -0700

    Merge pull request #1746 from cprice404/bug/master/resource-status-pson-missing-timestamp
    
    PSON serialization for `Resource::Status` missing time field

commit 3ff51c817eb85a6aeb86a7bd05fa8b9f5a418eba
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Sat Jul 6 21:45:00 2013 -0700

    Revert "Merge pull request #1711 from electrical/rename_generate_dir"
    
    This change breaks a number of acceptance tests that are expecting
    `puppet module generate author-module` to create the directory
    `author-module`. In order to merge the behavior supplied in GH-1711
    these tests will need to be fixed.
    
    Example test failure:
    https://jenkins.puppetlabs.com/job/Puppet%20Acceptance%20(master)/label=acceptance,platform=rhel/843/#showFailuresLink
    
    This reverts commit 99485b015d61d7bc9a43c4e31de6ae7a7e22d8a3, reversing
    changes made to becada3917f08f738a0b4ca5878949964e41df0f.

commit d2e3cf37c9fb3db021a63fc872812a4a1c5873c0
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jul 6 15:57:02 2013 +0200

    (#6561) increase rdoc output font size and fix facts display
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 69ea46bdcad5134ebb4445f798aa61e7faa3ed06
Merge: 9a67810 fa2fb95
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jul 4 22:55:17 2013 -0700

    Merge pull request #1749 from jasperla/flavors
    
    OpenBSD has had flavors since the early 2000s at least; sync comment.

commit 694fa0dd01d82de5171ceffda0d4cb0956ecf873
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jun 17 17:02:21 2013 -0700

    (#21307) Refactor WatchedFile class
    
    The watchedfile class was extracted from another location but had some
    remnants of old behavior. In addition it would treat missing files as
    always changed, which could lead to undesired behavior around trying to
    reload missing files.
    
    This commit refactors the WatchedFile to use a single timestamp value
    and assume that the file is unchanged if the file timeout period has not
    elapsed.
    
    In addition this commit also treats file absence as a valid state.  If a
    file is missing between two checks it will be treated as unchanged.

commit 9a67810738fb2334a172406aa9337b52aa02a75c
Merge: 99485b0 06fe48b
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jul 4 18:38:15 2013 -0700

    Merge branch 'pull-1719'
    
    This closes GH-1719

commit 06fe48ba5a6e93ae77b4fb73d947539477ef1981
Author: Clay Caviness <crc@google.com>
Date:   Fri Jun 21 17:27:47 2013 -0400

    (#16635) Respect http_proxy environment and settings in pkgdmg
    
    In 3.x, the pkgdmg provider no longer honors http_proxy_host or http_proxy_port
    settings or environment variables. This takes the methods to do this from
    puppet/forge/repository and puts them in puppet/util/http_proxy, and updates
    repository.rb and pkgdmg.rb to use it.

commit 99485b015d61d7bc9a43c4e31de6ae7a7e22d8a3
Merge: becada3 b917b1d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jul 4 17:31:20 2013 -0700

    Merge pull request #1711 from electrical/rename_generate_dir
    
    (#21272) Refactor created directory from 'puppet module generate'

commit fa2fb954b53926e6983192700360a25614830923
Author: Jasper Lievisse Adriaanse <jasper@humppa.nl>
Date:   Thu Jul 4 14:29:23 2013 +0200

    OpenBSD has had flavors since the early 2000s at least; sync comment.

commit b2fbda383d7dfd17f16cc34bf4ab3d50bff297f8
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jun 17 14:23:12 2013 -0700

    (maint) re-indent file

commit 314a6f6ce26fc94154235c35e137a8d3c6b020c6
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jun 17 14:22:37 2013 -0700

    (maint) Remove unused exception class

commit becada3917f08f738a0b4ca5878949964e41df0f
Merge: 0c1ad5b f51e967
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jul 3 16:26:16 2013 -0700

    Merge pull request #1723 from masterzen/tickets/master/11317
    
    (#11317) - Do not ever skip resources appliable to both host and device

commit 0c1ad5baad3de1a7dfa6595549b3a4e197895a63
Merge: 862ef73 6ecf3be
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jul 3 15:52:19 2013 -0700

    Merge pull request #1714 from adrienthebo/doc-mocha_version_requirements
    
    (doc) Add documentation on rspec and mocha versions

commit f51e967b73ff0154801f514aff40ca524bdd8ab1
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Jul 3 20:44:07 2013 +0200

    (#11317) - Do not ever skip resources appliable to both host and device
    
    Since the puppet device feature introduction some types are labelled
    as usable on host only, device only or both.
    
    The schedule type is the only type that was labelled 'both'. Unfortunately
    the logic in the Transaction#skip? was flawed and this resulted in all
    the 'both' kind of resources to always being skipped, which essentially
    meant that the Schedule type was non-working for a long time.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 60f22eb112be7f16f357b51459d8564868cedf21
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Jul 3 20:36:59 2013 +0200

    (#18255) - Follow http redirections
    
    This patch adds support for HTTP redirection in the Puppet HTTP
    client.
    
    The http client includes a redirection limit, and recreate the
    redirected connection with the same certificates and store as the
    original (as long as the redirect new location is ssl protected).
    
    This patch allows redirection following for all HTTP methods, which
    in the Puppet ecosystem shouldn't be an issue.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
    
    Use a loop - temp commit

commit 6ecf3be093a5493fb77f47ff1da038df325cee12
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jun 20 10:46:38 2013 -0700

    (maint) Move testing deps into Gemfile group

commit 146c15970e4a3ee5cec05c0252c719ea16a27f60
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jun 19 10:14:42 2013 -0700

    (doc) Add documentation on rspec and mocha versions
    
    Community members frequently experience issues running the specs because
    of mismatched versions of RSpec and Mocha. This adds documentation to
    the README_DEVELOPER.markdown and Gemfile to indicate the version
    requirements and the reasons why those requirements are in place.

commit 9536d51efae947b6fccbbe63d6e058d6c4ed1584
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed Jul 3 06:09:38 2013 -0700

    Specify precision when serializing resource status time
    
    The previous code for serializing the resource status' `time` field
    to pson was not specifying the precision, and apparently Ruby's
    default implementation truncates some of the value.  This minor
    change allows us to keep the full precision.

commit f24562d69209e8c8a85f8eab55b772612d19e330
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Jul 2 19:46:49 2013 -0700

    PSON serialization for `Resource::Status` missing time field
    
    Prior to this commit, the PSON serialization for the class
    `Puppet::Resource::Status` was missing the `time` field.  This
    would result in `nil` values in reports, which was causing
    failures in the PuppetDB report processor.  This commit
    simply adds in the field to the serialization, and adds
    corresponding test coverage.

commit 862ef737d9eb4ce95839cfef071d1da942fdd168
Merge: b10f417 2266846
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue Jul 2 11:15:10 2013 -0700

    Merge pull request #1744 from 'kylog/feature/testing-against-packages'
    
    * kylog/feature/testing-against-packages:
      [maint] Remove el6.tar.gz before recreating it
      [maint] Add missing fixtures directory to el6/external_ca_support
      [maint] Add missing helper libs
      (maint) Adds acceptance tests into el6 configuration
    
    Closes #1744

commit 2ff1cb72dbe1ce82268a1ec597cb04a0be6ef64e
Author: Thomas Hallgren <thomas@tada.se>
Date:   Tue Jul 2 12:45:55 2013 +0200

    Add ignore entry for Eclipse specific .project file
    
    The Eclipse IDE adds a .project file to the root of each project.
    This commit ensures that the file is ignored and doesn't get
    inadvertently committed.

commit 226684668cbf4f9d65313b5995093a5d5c64038c
Author: Kylo Ginsberg <kylo@debian-7-x64.acctest.dc1.puppetlabs.net>
Date:   Mon Jul 1 23:57:38 2013 +0000

    [maint] Remove el6.tar.gz before recreating it
    
    If the tarball exists and tar recreates it, and if the new tarball
    size is smaller, tar succeeds but reports:
        tar: el6.tar.gz: File shrank by 93002 bytes; padding with zeros
    and exits with a '1' which causes the job to report failure.
    
    Removing the file first ensures this false positive won't happen.

commit bda23af31acc5d8a3326783745dfbba936fbf087
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Jul 1 16:15:17 2013 -0700

    (packaging) Update PUPPETVERSION for 3.2.3-rc1
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit fe7d2b8889dd0ebe1a717f889d8282290b2027f1
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Jul 1 13:44:47 2013 -0700

    [maint] Add missing fixtures directory to el6/external_ca_support

commit 32583e20548ac5ddbada7a6ad2399903f9118724
Author: Kylo Ginsberg <kylo@puppetlabs.com>
Date:   Mon Jul 1 11:12:20 2013 -0700

    [maint] Add missing helper libs

commit b10f4176fe9a69cb4971b8df860de229462880d9
Merge: d3cf34c be0a396
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 28 16:06:46 2013 -0700

    Merge pull request #1742 from pcarlisle/ticket/21427/run-fix
    
    (#21427) Fix Puppet::Run pson implementation

commit d3cf34c1580dede7a8500a420015580d1f2ccbeb
Merge: 23ea8ab d5679d4
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Fri Jun 28 13:34:32 2013 -0700

    Merge pull request #1739 from zaphod42/issue/master/21427-fix-param-reading-in-webrick
    
    (#21427) Properly deal with facts again

commit a85d59250bc4c3e3da55880342009850b01a241e
Merge: 9f5fc92 bc68f4a
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Fri Jun 28 13:20:00 2013 -0700

    Merge pull request #1740 from MosesMendoza/maint/stable/remove_oneiric
    
    (packaging) Remove Ubuntu Oneiric from build targets

commit 9f5fc92a0d39ae30edea4ae7ffedd122c9818ef2
Merge: 409e8f8 a258901
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Fri Jun 28 13:19:34 2013 -0700

    Merge pull request #1741 from MosesMendoza/maint/stable/update_for_packaging_loader
    
    (packaging) Use the packaging loader for tasks

commit bc68f4a994222fad97af8f4a22433593fc58f08e
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Jun 24 18:00:53 2013 -0700

    (packaging) Remove Ubuntu Oneiric from build targets
    
    Oneiric is EOL, and we are no longer building for it. This commit removes the
    Oneiric target from the build list for puppet.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit d5679d43c123d438efb9524ff243dbb0d40d8857
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 28 12:32:53 2013 -0700

    (#21427) Unescape values when decoding facts
    
    When puppet sends facts to the master it doubly encodes the data
    structure. This happens because both the facts_handler encodes that
    serialized facts and the http request functionality encodes the value
    again for the query string. Although this happens, the compiler, when
    deserializing the facts does not decode the data. This is because
    decoding was handled by decode_params, although it never should have
    been (the underlying library already has decoded the data), which
    disguised this problem.
    
    This changes the compiler to unescape the data that it gets to be
    symmetric with the fact sending code.

commit be0a3969a34756eb203656df501bc893c7cd44cf
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jun 28 11:47:28 2013 -0700

    (#21427) Fix Puppet::Run pson implementation
    
    The pson format for Puppet::Run did not include the status, which caused the
    kick command to display an error.

commit c616a9307992049dbfa96105f492da2c2a91db00
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 28 12:04:06 2013 -0700

    (#21427) Parse WEBrick multi valued params
    
    We had previously converted to trying to parse the query string
    directly, because it looked like WEBrick didn't handle multivalued
    parameters. This had the effect of not being able to deal with POST
    parameters correctly. After investigating WEBrick some more, it turns
    out that it actually does support multivalued parameters, but that is
    fairly hidden if you just look at the value returned from #query. The
    WEBrick::HTTPRequest#query method actually returns a Hash{String,
    FormData}. FormData is a subclass of String and adds a linked list of
    Strings, which is used to represent the multiple values. Because it is a
    subclass of String, it isn't clear what you are dealing with unless you
    specifically look at the class that you have. It also looks like a
    string because its #to_s returns the head of the linked list.
    
    This changes the #params method for webrick to understand this structure
    and correctly return multivalued parameters as individual strings or an
    array of strings.

commit 23ea8ab598141e877244045bdd3e73da68591fc1
Merge: 6b49f63 bab50c2
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Jun 28 10:40:43 2013 -0700

    Merge pull request #1685 from adrienthebo/maint-constant_lookup
    
    (maint) Don't try to invoke a constant as a method

commit 409e8f8f8ffed5b93fbb9d76956b3560e3c71f12
Merge: 5ddda5b 5b9fe3a
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Fri Jun 28 10:22:18 2013 -0700

    Merge pull request #1733 from haus/ticket/stable/21264_update_rgen_depends
    
    (#21264) Update rgen dependency to 0.6.5

commit 5275b174801c6609327a6df2d6ec041f93e4a09e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jun 28 09:47:01 2013 -0700

    (#21470) Change validation of "storeconfigs" to reflect runtime state.
    
    The problem was that the validator is written with static validation
    in mind - not considering if storeconfigs are on or not.
    Since we are currently only using the validator to validate for the
    current runtime, this commit changes the behavior to consider the
    runtime storeconfigs state and marking the related issues as :ignored if
    storeconfigs is on.
    
    A user that wants to use Puppet as a library will need to configure the
    validation / issue options accordingly (the manifests will be validated
    as per the settings of the puppet runtime used to run the validation).
    
    This is easily done by using a different severity producer.

commit 6b49f6320f8e2c7821801eed78432325ad1fcfbd
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jun 28 08:40:00 2013 -0700

    (#20607) Fix mode test on windows
    
    File.stat on MRI ruby on windows can only distinguish between readable and
    readonly files (0644 vs 0444), causing the test to fail, since it's
    expecting 0664.
    
    This commit updates the test to use Puppet's Security.get_mode method on
    Windows, which preserves the file mode fidelity.
    
    It also removes the expect { .. }.to_not raise_error, since we can just
    execute the statement. Also made sure we actually fail due to an invalid
    file mode, and not some other error.

commit 387c694f8786fade02fd929df59966b22e370807
Merge: 6a9bf8c 6eb6797
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jun 28 08:31:19 2013 -0700

    Merge pull request #1736 from thallgren/master
    
    Fix faulty test for Puppet::Pops::Parser::Parser

commit 6eb6797070addd024789912ec67445c7e8c0a34e
Author: Thomas Hallgren <thomas@tada.se>
Date:   Fri Jun 28 14:12:37 2013 +0200

    Fix faulty test for Puppet::Pops::Parser::Parser
    
    The reference to Model was unqualified which caused an "uninitalized
    constant Model" failure when running rspec explicitly on the
    spec/unit/pops/parser package. This commit adds the needed
    qualification.

commit 6a9bf8c4a336130a449d52991f1858daf19cd0b5
Merge: 12a634a 6353ebb
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Thu Jun 27 16:57:54 2013 -0700

    Merge pull request #1734 from zaphod42/deprecate-yaml
    
    (#21427) Deprecate YAML and stop sending it from the agent

commit 5b9fe3a65073cd7c4da97dee0055d99412ff094f
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Jun 27 14:13:16 2013 -0700

    (#21264) Update rgen dependency to 0.6.5
    
    Commit ec6b51a8ded9245df9606a57d53674c62bddc11e updated the rgen dependency in
    the Gemfile. This commit makes the same dependency explicit in the various
    packages (deb, rpm, gem). We pin the version hard at 0.6.5 to prevent potential
    breakages with future versions of rgen.

commit 6353ebbbc0d3804e30e9961559b01c9a69a74a93
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jun 27 16:29:16 2013 -0700

    (#21427) Do not send arrays as YAML in query params
    
    Previously, when the REST requests were constructed and one of the
    parameters was an Array, the Array was encoded as YAML and then
    identified on the master and parsed as YAML. This was used specifically
    to send the list of "ignores" when making file metadata requests.
    
    This changes the system to now use multi-valued query parameters instead
    of YAML. Both the agent and master have been updated to support this,
    however existing masters will not be able to understand the new requests
    correctly since they will either:
    
      * in webrick only choose the first value as the value of the parameter
      * in rack fail because the decode_params method does not understand
        arrays as values

commit 8398ec3b6ad0bdf50872ef7a53e285937c528b45
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jun 27 11:52:00 2013 -0700

    (Maint) Test that the query string is parsable
    
    Rather than relying on all sorts of string checks, it is better to check
    that a parameter parsing library is able to parse the generated string
    back into the expected data. This changes the tests to use CGI::parse to
    parse the query_string and then can check that the resulting hash has
    the data that is expected.

commit 7393364479c177395e1ac2114f04b49c8eaff94a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jun 27 11:39:54 2013 -0700

    (Maint) Remove stubbing from query_string tests
    
    The tests for the Puppet::Indirector::Request#query_string method were
    relying on stubbing methods on the class under test. There is no need
    for that since the required data is trivially passed in via the
    constructor. This replaces the stubbing with simply constructing the
    correct object to test.

commit 12a634a250e961346aff73a7b52e652c652ea6b7
Merge: 9744456 03ba9db
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jun 27 10:41:03 2013 -0700

    Merge pull request #1727 from jpartlow/maint/added-missing-spec-helper
    
    (maint) Includes missing spec_helper in three specs.

commit 9744456fe64964b2fc68ec54dedcc14ca3888e67
Merge: 29e0faf 98a1ca5
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jun 27 10:32:57 2013 -0700

    Merge pull request #1722 from masterzen/tickets/master/20607
    
    (#20607) - do not fail saving lastrunfile when mode is specified

commit 0e0418620fd3dce67f549b35b4303ee3ef7626f9
Author: Richard Stevenson <richard.stevenson@youview.com>
Date:   Thu Jun 27 11:58:26 2013 +0100

    (#21478) Add plymouth-ready to excludes list
    
    An update to Ubuntu 12.04's plymouth package, version 0.8.2-2ubuntu31,
    introduces a new upstart service, plymouth-ready in order to fix
    the bug detailed here:
    https://bugs.launchpad.net/ubuntu/+source/lightdm/+bug/982889
    
    This new service uses instances, which puppet does not yet fully
    support, and attempting to retrieve the status of this job causes
    puppet to fail (for example when running "puppet resource service").
    
    Adding plymouth-ready to the excludes list allows puppet to output
    the status of services that it can handle competently while avoiding
    the service introduced by this package.

commit 6f31b930e0156141b7801238bea03aae2b4971d2
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jun 26 17:19:28 2013 -0700

    (#21427) Submit reports in PSON format
    
    This changes the agent to submit reports in PSON. An effect of this
    change is that reports will not be able to submit to masters that do not
    have the changes for CVE-2013-3567 which allow the master to parse
    PSON formatted reports.

commit b0db4bfed3ca1710dd3d855eeca6b0767270b170
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jun 26 15:18:00 2013 -0700

    (#21427) Deprecate YAML over the network
    
    Issue a deprecation warning whenever YAML is encoded or decoded in the
    http handler.

commit 50a76d54b9089793c602d17263d3f0986fdcdb9a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jun 26 12:42:02 2013 -0700

    (#21427) Remove duplicate handling of accept headers
    
    When the save and destroy actions started respecting the accept header
    we duplicated how accept headers were handled for selecting the response
    format. This removes that duplication and in putting specific tests in
    place, cleans up the tests to work mainly through the public interfaces
    as well as putting in place an HTTP error handling mechanism that allows
    the request handlers to more specifically control the HTTP responses.
    Invalid Accept headers will now cause a 406 response instead of the
    previous 400.
    
    Since all of this is tested with the memory terminus, it needed to be
    expanded to also handle search and head actions.

commit dfa1c40cb68e00f97dca64848b65ba2c07268570
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed Jun 26 11:53:43 2013 -0700

    (maint) Adds acceptance tests into el6 configuration
    
    Copies acceptance/tests which do not use with_master_running_on into
    config/el6/tests.  This set of tests should run in the new testing with
    packages Jenkins jobs.

commit d63a9a3878d1498cce84bc1288d80a2ef40d2b41
Author: Dean Wilson <dean.wilson@gmail.com>
Date:   Wed Jun 26 18:42:53 2013 +0100

    Restrict the regex to only allow 0 or 1. Not 10.

commit cd9135f68b13912e2b5cefe684d1c8a6d9e43551
Author: Dean Wilson <dean.wilson@gmail.com>
Date:   Wed Jun 26 13:55:05 2013 +0100

    Add the s3_enabled property to the yumrepo type
    
    This allows you to access S3 repos using the yum-s3-iam plugin

commit 9fb4bcad9aa33e63170f91ff96f7ce422efde3b7
Author: Duncan Phillips <duncan@yola.com>
Date:   Wed Mar 2 20:27:36 2011 +0100

    Fix #6561 - Better looking puppetdoc CSS for rdoc mode
    
    From: Duncan Phillips <duncan@yola.com>
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ff0daf49624bc2f7932016280f01a7f966e31d98
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 25 17:17:54 2013 -0700

    (#21427) Respect Accept header for destroy
    
    The REST destroy action will now respect the formats that are requested in
    the Accept header. In order to retain backwards compatibility for
    clients that have never been required to specify an Accept before this
    it will also default to :yaml when no Accept is provided. If an Accept
    is provided but none of the wanted formats are suitable an error is
    raised, just like find and search.

commit 7915997cbe6e0f0b4464e78fd7e552b4e180c463
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 25 15:48:26 2013 -0700

    (#21427) Respect Accept header for save
    
    The REST save action will now respect the formats that are requested in
    the Accept header. In order to retain backwards compatibility for
    clients that have never been required to specify an Accept before this
    it will also default to :yaml when no Accept is provided. If an Accept
    is provided but none of the wanted formats are suitable an error is
    raised, just like find and search.
    
    In order to report the status of an unkown Accept header correctly this
    also adds the capability of raising web related exceptions that contain
    the HTTP response code that needs to be used.

commit 03ba9db23c4be36e50697de736c94606e130b7b2
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue Jun 25 15:14:34 2013 -0700

    (maint) Includes missing spec_helper in three specs.
    
    spec/spec_helper was missing from three of the specs. This showed up
    because spec/unit/pops/containment_spec.rb just happened to come first
    in the order of specs to be executed on our Solaris build, and began
    causing failures because puppet/pops was being loaded prior to
    spec_helper and puppet.  It was also causing rspec/mocha setup and
    teardown failures, presumably because of rspec configuration being
    called after this initial spec was loaded.
    
    This commit ensures that each of these specs requires spec_helper first
    so that spec and the puppet environment initialize properly regardless
    of whether these specs run first or come later in the spec ordering.

commit 08d7f8b5a1d94a9ff0d52f874db41dfaa30a9c97
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 25 13:58:08 2013 -0700

    (Maint) Cleanup do_save specs
    
    This replaces the excessive mocking in the do_save specs with using
    actual implementations and removes mocking on the class under test. By
    doing so there are many fewer tests required and the remaining tests are
    more directly related to externally observable behavior. This has only
    been done for the do_save method.

commit 98a1ca5a34731ab24db6c89342ea3cf0eb44dfa3
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jun 23 16:48:30 2013 +0200

    (#20607) support symbolic file mode in Puppet::Util#replace_file
    
    In order to fix #20607 (where incorrect 'settings specified' file
    permissions were crashing P::U#replace_file), this patch enhance
    P::U#replace_file default_mode behavior.
    
    Now P::U#replace_file supports symbolic file mode, along with
    octal numerical string, and pure octal integers. It also now fails
    if the given mode is incorrect.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 85bb5ebf7e1207a1bdcd01b0a41fd095f38e85d1
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 25 11:40:23 2013 -0700

    (#21427) Improve deprecation warning for yaml params
    
    Previously we were not informed what parameter and value was being
    transmitted as YAML, which made debugging and correcting the problem
    nearly impossible. This outputs the offending request parameter and
    value as a debug message to aid in fixing the issue.

commit 8235471ee4c900c41208c83bd24d765a44c2fb06
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 25 11:38:56 2013 -0700

    (#21427) Issue deprecation warning for b64_zlib_yaml

commit a25890112d2871154cf3328dd4bffaf06b50da34
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Jun 24 17:51:12 2013 -0700

    (packaging) Use the packaging loader for tasks
    
    The packaging repo now uses an explicit loader which handles loading the
    various rake tasks in packaging. This commit updates the puppet Rakefile to use
    the loader instead of a blind glob of the ext/packaging/tasks directory. We
    move this load into the rescue LoadError block because the packaging repo won't
    always be there, and define RAKE_ROOT and use it since its used in more than
    one place in the Rakefile.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 29e0faf886a1db82e707e3f3ef21a7b0eefad8e6
Merge: 7594e36 5ddda5b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jun 24 17:23:07 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (#21043) Use ruby.exe instead of rubyw.exe
      (#21264) Update rgen dependency to 0.6.5
      (Maint) Cleanup specs
      (#21320) Use sleep in the daemon loop instead of select

commit 5ddda5bfc605b7f1b748f6b5321d864ba9bd471a
Merge: e4f3ab3 ec6b51a
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Jun 24 17:20:53 2013 -0700

    Merge pull request #1724 from zaphod42/issue/stable/21264-implicit-array-conversions-break-because-of-rgen
    
    (#21264) Update rgen dependency to 0.6.5

commit add942b596aed014d2e69ab07078df37df05170b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 24 17:13:43 2013 -0700

    (#21427) Send facts to master as pson
    
    This changes the format of facts being sent to the master from
    b64_zlib_yaml (base 64 encoded compressed yaml) to pson, in preparation
    for deprecating all YAML sent over the network. This should be backwards
    compatible as facts are tagged with the format and the master already
    supports pson.

commit e4f3ab359605a2c7b818c16e886c623cc93e42cf
Merge: 08e5326 ed9dd65
Author: Josh Partlow <jpartlow@glatisant.org>
Date:   Mon Jun 24 16:38:33 2013 -0700

    Merge pull request #1725 from joshcooper/ticket/stable/21043-runinterval-broken
    
    (#21043) Use ruby.exe instead of rubyw.exe

commit ed9dd65b3344264e8ccc3a41f2b77811136d8e25
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jun 24 15:09:52 2013 -0700

    (#21043) Use ruby.exe instead of rubyw.exe
    
    Previously, if you set a custom runinterval setting in puppet.conf, puppet
    running on ruby 1.9 would ignore it, whereas it would work in ruby 1.8.
    
    The root cause is due to http://bugs.ruby-lang.org/issues/7239. In ruby 1.9,
    rubyw.exe is unable to read the stdout of any child process using ruby's
    built-in process methods, e.g. %x. This affects us, because the windows
    service, running as rubyw.exe, executes:
    
        `%x{ puppet agent --configprint runinterval}`
    
    to obtain the current runinterval setting.
    
    The bug is fixed in ruby 2.0, so for now, we just switch to using
    `ruby.exe` instead of `rubyw.exe`.

commit 6a81929d10282a98ec58e6ea3c20dd863d4848d1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jun 13 12:01:36 2013 -0700

    Deprecate sending YAML over the network
    
    I'm not sure if this covers all the corners. I didn't want to do it in the
    Format itself because that can be used in other places.

commit ec6b51a8ded9245df9606a57d53674c62bddc11e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 24 14:07:02 2013 -0700

    (#21264) Update rgen dependency to 0.6.5
    
    There is an error in rgen < 0.6.5 that causes it to incorrectly handle
    Array#to_str via its monkey patching of Array#method_missing. This adds
    a check for this incorrect behavior and updated our Gemfile dependency
    on rgen. The package dependencies are already specified in a manner that
    will pick up 0.6.5 once it is packaged.

commit f19c8f22f1685cc1dbfa1cb9acddaeb31475c440
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 24 13:29:06 2013 -0700

    (Maint) Cleanup specs
    
    This cleans up the specs to make them a little more expressive of the
    behavior of the fqdn_rand function's real functionality. One surprising
    result that came out of this was that the tests tried to assert that the
    fqdn_rand function was callable without any arguments. However the test
    for this passed simply because it asserted that a particular error was
    *not* raised, when in fact a different exception that expressed what it
    was trying to catch (ArgumentError vs. Puppet::ParserError). The docs
    indicate that calling with no arguments is not actually supported and so
    that test has been removed.

commit 08e5326eff4ad5abc13eeec20830be1a00cf1ddd
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jun 24 11:25:42 2013 -0700

    (#21320) Use sleep in the daemon loop instead of select
    
    This fixes a bug on Ruby < 2.0 where the daemon might sleep for a very long
    period after being interrupted with a signal. The implementation of select on
    these ruby versions has an improper cast which resulted in a corrupted value
    given to select on 64 bit systems. It is patched in Ruby 2.0 in
    https://github.com/ruby/ruby/commit/b10c3136b0163536a679b10fecbc2992f3b5fa64 .
    
    Sleep does not attempt to restart after being interrupted and does not have this bug.

commit 7594e36068ae3efcea34f1bb016364c34be0f836
Merge: c2349bd 8012528
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 21 16:01:28 2013 -0700

    Merge pull request #1720 from joshcooper/maint/master/testing-against-packages
    
    (Maint) Run tests from installed packages

commit 80125289dda87e7841192e66bd6f80684b153e49
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 14 14:37:50 2013 -0700

    (Maint) Run tests from installed packages
    
    This creates the basic structure for running tests from packages. It
    includes a Rakefile for fetching the appropriate artifacts and executing
    systest, the setup steps for installing the repos and packages, and a
    basic test that makes sure that puppet is installed.
    
      bundle install
      bundle exec rake test SHA=COMMITISH
    
    where COMMITISH corresponds to the SHA of a package built via the
    puppetlabs-packaging job.

commit c2349bd8e579b311155397172f027e73266e3ed4
Merge: ce32f55 df5d6a8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 21 09:46:08 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (#21376) Sequence BlockExpressions without nesting

commit df5d6a8138007156dda1af4ac67c866538f6f21c
Merge: 9145576 107cc2a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 21 09:45:29 2013 -0700

    Merge pull request #1717 from pcarlisle/ticket/21376-stack-overflow
    
    (#21376) Sequence BlockExpressions without nesting

commit 107cc2a38148364a168fd3ecd933c3e25d76ab1d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jun 20 17:18:13 2013 -0700

    (#21376) Sequence BlockExpressions without nesting
    
    When merging Puppet::Resource::Type instances the code attribute was merged in
    a way that caused a deep tree of BlockExpressions. This could cause stack
    overflows when evaluating this tree, since evaluation is recursive. This
    changes the merge method so that they are sequenced as a flat array.

commit ce32f55e920181622b66ca86d765fdaf07baa334
Merge: a74d122 7f919dd
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jun 20 16:41:45 2013 -0700

    Merge pull request #1715 from loe/21324-pip-should-be-case-insensitive
    
    Pip provider query should be case insensitive.

commit 7f919dde07b84c49e4feb4b080488c36ac19252a
Author: W. Andrew Loe III <andrew@andrewloe.com>
Date:   Wed Jun 19 12:09:29 2013 -0700

    (#21324) Pip provider query should be case insensitive.
    
    The `pip` provider will repeatedly install a package if the case does not match
    what is in `pip freeze`.

commit a74d122b21485861a29da533afd78300e6889c26
Merge: c4bf060 501f8f1
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jun 20 16:04:44 2013 -0700

    Merge pull request #1716 from Sharpie/6808-warn-about-symlink-noops
    
    (#6808) Warn about file content sync no-ops

commit 501f8f1fc10f30c0a99a34e1c8856fa22db02a87
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Mon May 20 17:16:15 2013 -0700

    (#6808) Warn about file content sync no-ops
    
    Normally, a declaration of both `target` and `content` for a File resource in a
    manifest will cause a compile error.  However, if a File resource is ensured to
    be `present`, it is possible to specify `content` for a path that turns out to
    be a symlink on the agent.  Currently, since this situation is not discoverable
    untill the agent is applying the catalog, the resource will silently fail to
    apply `content` changes.
    
    This patch adds a warning indicating that no sync of `content` will occur.

commit c4bf060ce76fcd91b212b561d34737c7f8586412
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jun 20 12:29:42 2013 -0700

    (maint) Remove incorrect spec in format_handler
    
    This spec wrongly expected a guaranteed order returned by FormatHandler::formats.

commit 3f9360a643cfff315e5b4c4225985fa4bd5079e8
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jun 19 15:49:02 2013 -0700

    (maint) Don't use protected_format in indirector

commit f6b4d01c544be115caa3464abc9874adb4a3b396
Merge: 53657b9 1a88d40
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jun 19 15:41:55 2013 -0700

    Merge branch 'refactor/formathandler'
    
    * refactor/formathandler:
      Move FormatSupport into its own file
      Extract the mixins for FormatHandler to a separate module
      Remove FormatProtector
      Don't directly test FormatProtector as it's an implementation detail
      consolidate block evaluation on format creation
      Clean up FormatHandler specs

commit 53657b96854c5006af7065375a0cc3a42589d0ba
Merge: 9ee0aa9 447d244
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jun 19 11:46:17 2013 -0700

    Merge pull request #1702 from adrienthebo/doc-puppet_node_environment
    
    (doc) Add yardoc for Puppet::Node::Environment

commit 9ee0aa93476764d2dd8df9715777595ae55686f7
Merge: 48d0d3c f3304f6
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jun 19 11:42:18 2013 -0700

    Merge pull request #1705 from jpartlow/maint/readme-developer-bundler
    
    (maint) Update developer readme for bundler setup.

commit 447d24403f461743c02ab58a11aed57a9b110082
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jun 10 10:37:05 2013 -0700

    (doc) Add yardoc for Puppet::Node::Environment

commit 48d0d3c396b72b0850f9f4430c228f45fd4a6b23
Merge: 2a5e84f 12f3c38
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jun 19 10:37:46 2013 -0700

    Merge pull request #1707 from Sharpie/21023-fix-preferred-run-mode
    
    (#21023) Flush caches on preferred_run_mode change

commit 1a88d40642114537d802d4cfa102712c4275d17c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jun 10 16:17:14 2013 -0700

    Move FormatSupport into its own file

commit fa391c19bac57b2d4d25d8aff9e75316742ebe03
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jun 10 15:58:49 2013 -0700

    Extract the mixins for FormatHandler to a separate module

commit 21511c8ba359d661e52f628de82430039dd80e69
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jun 10 15:44:18 2013 -0700

    Remove FormatProtector

commit bb9af4d7b87a2de5c580a734d0315c8fa8cce080
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jun 10 14:56:37 2013 -0700

    Don't directly test FormatProtector as it's an implementation detail

commit f22af4519d161d9a9a38a9da4b50734c5e2dca17
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jun 10 14:46:40 2013 -0700

    consolidate block evaluation on format creation

commit 14ec6d007e261b00576a04174c88676815b65312
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jun 10 14:42:12 2013 -0700

    Clean up FormatHandler specs

commit 2a5e84f4c5f4df86be0302cc4f30692e5380ea51
Merge: a9a2a95 9145576
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Jun 18 10:25:20 2013 -0700

    Merge branch 'stable'
    
    Conflicts:
    	spec/unit/file_serving/metadata_spec.rb

commit 9145576f7cb5e84414c6c6af5f24c5a5d07a2b7d
Merge: 50770da a6c08f9
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Jun 18 10:23:29 2013 -0700

    Merge branch 'release_3.2.2' into stable

commit 50770da89473f6236ca224d1d8b9da1889118cb0
Merge: a006734 0b1389e
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Jun 18 10:23:01 2013 -0700

    Merge branch '2.7.x' into stable

commit 0b1389e62244166a4a782c15e974e01125cca71c
Merge: a1664c1 e160e99
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Jun 18 10:00:40 2013 -0700

    Merge branch 'release_2.7.22' into 2.7.x
    
    Conflicts:
    	ext/build_defaults.yaml

commit a9a2a95f46c03fb3d8685db10b5406d19b511783
Merge: ac95811 a006734
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jun 17 15:00:00 2013 -0700

    Merge remote-tracking branch 'upstream/stable'
    
    * upstream/stable:
      (#21280) Don't create C:/dev/null on Windows

commit a006734888f62996b8b31c05c2e1497a2aa2f8e3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jun 17 09:54:15 2013 -0700

    (#21280) Don't create C:/dev/null on Windows
    
    The puppet apply application uses the "store" report processor by default.
    Its process method calls mkdir_p on Puppet[:reportdir]. When executing in a
    spec test, Puppet[:reportdir] is '/dev/null/reports'. On Unix, the call to
    mkdir_p raises an error, which is ignored (since the test is exercising
    apply functionality, not the store report processor). But on Windows, the
    call to mkdir_p succeeds.
    
    The existence of the c:/dev/null directory causes bundler to fail, and is
    why the windows spec jobs do `rmdir /S /Q C:\dev\null`.
    
    This commit updates the tests to use the "none" report processor, which
    skips report processing altogether, since it's not germane to the test.
    
    Cherry-pick of bc92db0b

commit b917b1dfb7c0444bb22405e720611f76305a0695
Author: Richard Pijnenburg <richard@ispavailability.com>
Date:   Mon Jun 17 22:36:24 2013 +0200

    (#21272) Refactor created directory from 'puppet module generate'
    
    Currently the created directory is 'username-modulename'.
    This patch changes this to 'modulename' because that's mostly used.

commit 12f3c3812992921e385b4a0d11da2e1ec717863f
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Thu Jun 13 11:17:51 2013 -0700

    (#21023) Flush caches on preferred_run_mode change
    
    `Setting.preferred_run_mode` affects a lot of settings values -- such as the
    modulepath that gets used for environments. Prior to f4e229e the `run_mode` was
    an actual setting rather than an attribute of the settings class. This meant
    that changing the value of the `run_mode` would trigger a cache flush on
    Settings objects so that things like `modulepath` would be updated.
    
    This patch:
    
      - Moves cache flushing out of the `Settings.set_value` method and into a new
        method `flush_cache`.
    
      - Adds tests to ensure that `flush_cache` is called by both `set_value` and
        `preferred_run_mode=`.

commit f3304f6a0ad7fb47f5243998ca735d3b6c6874c4
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Sat Jun 15 14:36:06 2013 -0700

    (maint) README_DEVELOPER emphasizes bundler only.
    
    Because bundler is now the recommended method of setting up a development
    instance of Puppet, this commit removes the alternative, more complicated
    method of setting up the source repository as a gem, and emphasizes use of
    bundle exec for all command line interaction.

commit ac95811e101c07767006f097f49469bbd71ab284
Merge: 67e1ff6 7723748
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 14 08:56:38 2013 -0700

    Merge pull request #1708 from jjulien/remove_rundir_patch
    
    (maint) Removing unneeded patch from %install in RPM spec

commit 772374857fc64ab1bd692cc7a9c57a588a25da0f
Author: John Julien <john@julienfamily.com>
Date:   Thu Jun 13 21:17:41 2013 -0500

    (maint) Removing unneeded patch from %install in RPM spec
    
    Removing patch rundir-perms.patch from RPM spec as it is no longer needed.
    The patch was to dynamically change the rundir mode from 01777 to 0755 for Redhat.
    The rundir mode was changed to 0755 in lib/puppet/defaults.rb in commit a05d613751335fd16a222bf2e2300e7ccf41dc8a

commit 67e1ff680b32ec6a3c934f678a0f78fe617582ee
Merge: 937faed 0f9434c
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jun 13 14:01:25 2013 -0700

    Merge pull request #1699 from stschulte/ticket/master/mount_fixes
    
    Various mount fixes

commit 0f9434ce274998a598312702632717be9aa81664
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jun 9 20:56:02 2013 +0200

    (#15837) Do not pass options explicitly when mounting
    
    The mount provider explicitly passes the mountoptions to the mount
    command with the "-o" parameter. While this works in most cases it fails
    when the option property contains an option that needs to be unique as
    the default behaviour of the mount command seems to be to merge fstab
    options with explicitly definied options via the commandline.
    
    Since the mountprovider always updates the /etc/fstab file before
    attempting to mount we should not need to pass the options explicitly.
    The current code mentions some weired behaviour on MacOSX so we keep the
    original behaviour on MacOS and drop the explicit options on
    all other platforms.
    
    This also fixes #7791

commit b6ce5883b710ca614f31e37280bebe0a4cdf046b
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jun 9 20:03:08 2013 +0200

    (#21168) Set default pass property to "-" on Solaris
    
    The current default value of "0" for the pass property has a different
    meaning on Solaris than on other systems. A value of 0 actually depends
    on the filesystem type: It will cause the system to not fsck the device
    if it is an UFS filesystems and will fsck the device if it is not an UFS
    filesystem
    
    (http://docs.oracle.com/cd/E19455-01/805-6331/fsadm-59727/index.html)
    
    I never actually saw a value of "0" in any /etc/vfstab and it seems to
    be common to use "-" instead. This will always deactivate filesystem
    checking and is also used in many examples (see link above).
    
    Change the default value of the pass property to "-" on Solaris and keep
    the default value of zero on other systems.

commit d9d23ad423ad4cf573b27b91b71a551955022f6d
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jun 9 18:22:03 2013 +0200

    (#6793) Remove trailing slashes from mount resource
    
    The mount system command always displays mount points without trailing
    slashes so if a user defines a mount resource with a trailing slash,
    puppet will always see the mount resource as unmounted and as a result
    will keep remounting the device on every puppet run.
    
    Munge the name and strip away any trailing slashes but make sure that we
    do not remove the slash if the mount describes the root directory `/`.
    This way the munged name will always equal the mount output and puppet
    is able to find it.

commit da6a0e9b9744d82acf2d01af8ccac0fe0fcda510
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jun 9 18:08:23 2013 +0200

    (#4689) Set correct blockdevice for nfs mounts
    
    Solaris vfstab has an extra field "blockdevice". The Puppet
    Documentation claims that the blockdevice should default to the correct
    value and you do not have to set it explicitly. While this may be true
    for regular devices the user has to set blockdevice explicitly if the
    mount resource describes an NFS share.
    
    The correct entry for NFS shares in /etc/vfstab is to set blockdevice
    to "-"

commit c823802ba7afd292b4e0e267b7b922eadbd1c33e
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Jun 10 23:44:21 2013 +0200

    (#6409) Dont use invalid values in type_spec
    
    The type_spec uses the mount type as an example in a lot of spec tests.
    Unfortunately it uses example values that are now invalid for the mount
    type.
    
    The atboot property only accepts :yes and :no now, because these are the
    only valid options in /etc/vfstab [1].
    
    [1] http://docs.oracle.com/cd/E19455-01/805-7228/6j6q7uev3/index.html

commit c64ba6c394078402dcb317177104b494439b462f
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jun 9 18:02:02 2013 +0200

    (6409) Reject spaces in mount type
    
    The puppet mount provider is unable to handle fstab entries with spaces
    so it should not try to write such entries.
    
    The accepted solution in redmine ticket #6409 is for the mount type to
    reject property values that contain spaces.

commit 1c5fc3c40dc03f5122c2817316c701ad3b091b6b
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jun 9 17:44:45 2013 +0200

    maint: Refactor mount specs
    
    Reduce the number of describe blocks and use real object instances
    instead of mocks. This way it should be easier to extend the specs in
    the future

commit 937faedbff232200a2d1bd2e38e306532fbd6f88
Merge: d0282fa 2068772
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jun 13 11:31:28 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Fix Facter stubs in redhat service spec
      (#20383) Provide location of duplicate resource in error
      clean up docs for new parser functions

commit a6c08f994b7244cc6f0f07caad93d70f3f9787a3
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Jun 13 11:01:18 2013 -0700

    (packaging) Update PUPPETVERSION to 3.2.2

commit e160e9945b1809cac66b7d6a0f6224aa9cca6a29
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Jun 13 10:59:49 2013 -0700

    (packaging) Update CHANGELOG, PUPPETVERSION for 2.7.22

commit d0282fafcb68497b32066d5e8bf0b957e4158a71
Merge: a33ec84 fe99c72
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jun 12 16:06:20 2013 -0700

    Merge pull request #1701 from hunner/fix/master/rgen_assert_check
    
    (#21193) Fix rgen assertion check

commit a33ec84a241282a0ae9fe025c0ec9c0bd878fb57
Merge: 3fa9323 f918734
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jun 12 15:46:16 2013 -0700

    Merge branch 'maint/agent-logger-specs-on-windows'
    
    * maint/agent-logger-specs-on-windows:
      Maint: Update comments
      (maint) Expects eventlog when testing on windows.
      (maint) Simplifies agent logging spec setup.
      (maint) Agent logger specs account for lack of daemonize on windows.

commit d06e1df47a6ddb9bacebf0e0fe6e0ffae568fc74
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri May 31 13:43:35 2013 -0700

    Remove acceptance test for yaml parsing that was no longer valid

commit f9187345b60c876d1b78b9b541b98f0418b6cc7f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jun 12 15:26:54 2013 -0700

    Maint: Update comments
    
    Update comment and white space.

commit 3fa9323adb84c24b6f25214030757900c4c667c2
Merge: d258e06 de44f41
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Jun 12 11:30:20 2013 -0700

    Merge pull request #1694 from ab/fix/master/improve_string_parse_errors
    
    Improve error messages for non-string variable names

commit 357feecead1fae0a583f14ddc577aaa0eee8e37d
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed Jun 12 09:01:37 2013 -0700

    (maint) Update developer readme for bundler setup.
    
    The README_DEVELOPER.md instructions had some out of date notes
    regarding gemspec and initial setup.  While setting up a puppet checkout
    with the structure of a locally installed gem is possible, it is more
    complicated and requires generation of a puppet.gemspec since this is no
    longer included in the repository.
    
    Given that a bundle install/bundle exec puppet cycle now works fine,
    this commit updates the readme to provide simple instructions for a
    bundler checkout and setup, and includes the steps for generating a
    gemspec if a local gem style setup is preferred.

commit d258e0605d48378de7cdb58c67b78cd9d866e2fa
Merge: 097da9d 757b693
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jun 11 16:05:32 2013 -0700

    Merge branch 'issue/master/14652-self-require-does-not-cause-error'
    
    * issue/master/14652-self-require-does-not-cause-error:
      (Maint) Remove unneeded checks for no error raised
      (#14652) Add check for self-dependency cycles

commit 757b693cb70588b71f80aea7d1f6f502e6565fbc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 11 15:51:32 2013 -0700

    (Maint) Remove unneeded checks for no error raised
    
    There is no need to check for no error being raised because the test
    would fail if any error is raised.

commit f152878fe645998ec73e52baa2f3d4c57999508e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 10 15:12:52 2013 -0700

    (#14652) Add check for self-dependency cycles
    
    With some changes that were made to how the graph is processed, puppet
    2.7.0 lost the ability to detect dependency cycles where a resource
    requires itself. Instead of erroring, the resource ended up being
    silently ignored. This restores the behavior that existed in 2.6 where
    this was considered a cyclic dependency.
    
    The erroneous code had considered any single vertex, strongly connected
    component to not be a cycle. This was done because by definition any
    single vertex is a strongly connected component, no matter what edges
    are involved. By always excluding those vertices, the case of a
    self-referencing vertex was not handled. This adds a check for a single
    vertex SCC that is adjacent to itself in order to find dependency cycles
    of a single resource.
    
    Paired-with: Josh Cooper <josh@puppetlabs.com>

commit d26ece51c0f13fc174c610a40f12fa6ec017a02d
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Jun 10 16:26:40 2013 -0700

    (maint) Expects eventlog when testing on windows.
    
    On Windows, eventlog is used by default rather than syslog.
    
    Also an explicit --logdest=syslog is silently ignored, but must
    be expected.
    
    Accounts for both issues.

commit 097da9de11fefb219c8568b25bb3da359c8c8b36
Merge: efc82bb 80dd480
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Mon Jun 10 22:58:15 2013 -0700

    Merge pull request #1688 from DavidS/fix-19112
    
    (#19112) deploy manpages in -common package

commit fe99c72c6f80af20eabf68b0a42146ec33d10b56
Author: Hunter Haugen <h.haugen@gmail.com>
Date:   Mon Jun 10 15:38:00 2013 -0700

    (#21193) Fix rgen assertion check
    
    Corrects `@asserted` to be `@@asserted` and assigns `true` value upon
    successful assertion.

commit efc82bb7d56b39e5d1ca92e338934fb2b4e187ea
Merge: dcda2b9 fa49b2d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jun 10 16:09:07 2013 -0700

    Merge pull request #1647 from jeffweiss/pe158_license_checking_too_slow
    
    (PE-158) speed license check

commit 115a3a617234e59190ef7bc57162adcf68d4dd1c
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Jun 10 15:22:45 2013 -0700

    (maint) Simplifies agent logging spec setup.
    
    Takes advantage of recent changes to Puppet::Application::Agent
    and Puppet::Daemon to simplify the stubbing and internal calling for the
    spec/integration/agent/logging_spec.rb.

commit 4c155880771a8f0e6ca94dc9f8b2a04997c92505
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Jun 10 15:00:23 2013 -0700

    (maint) Agent logger specs account for lack of daemonize on windows.
    
    Because agent cannot --daemonize on Windows, a Runtime error is thrown
    from the flag setting during the integration/agent/logging_spec.rb run.
    
    Adjusts the spec so that when run on Windows, we expect the Runtime
    error when the --daemonize flag is part of the set under test.

commit 2068772ebca0b8de6559218b50bd1819f9c2fa38
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jun 10 13:15:27 2013 -0700

    (maint) Fix Facter stubs in redhat service spec
    
    The underlying OS was leaking into this test causing issues. This makes sure
    operatingsystem is stubbed, and also corrects the casing on stubbed osfamily
    values.

commit dcda2b9c5fcb4bcdee20459fef1ee948ec46fd14
Merge: 56c94a0 2b36f26
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon Jun 10 12:25:51 2013 -0700

    Merge pull request #1690 'zaphod42/issue/master/21055-agent-holding-stdout-open'
    
    * zaphod42/issue/master/21055-agent-holding-stdout-open:
      (Maint) Remove duplication from more agent tests
      (#21055) Ensure that only logging is used after daemonization
      (#21055) Push setup of agent closer to where it is used
      (Maint) Remove unused and unreachable logging configuration
      Close streams in agent before waiting for cert

commit 2b36f26431541ea0064ecba68247d11312464110
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jun 5 11:53:40 2013 -0700

    (Maint) Remove duplication from more agent tests
    
    The inclusion of `execute_agent` was not used in all of the places it
    could be. This uses it more thoroughly, but still not constantly since
    there are still many tests that work from small, internal methods that
    would need to be reworked.

commit 064d7fdd85ab0ae448507d272f880fc26225464b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 4 16:38:41 2013 -0700

    (#21055) Ensure that only logging is used after daemonization
    
    When the point at which streams are closed was changed from
    Puppet::Daemon#start to Puppet::Daemon#daemonize the error message for
    onetime would be lost. This is made slightly more obvious (although
    admittedly not much) by pulling daemonization as close as possible to
    where it is finally started. The lost message is then solved by
    switching from $stderr.puts to Puppet.err for issuing the message.

commit 4abc8f041f32c84a16c314961410449b7bddbd2b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 4 13:04:11 2013 -0700

    (#21055) Push setup of agent closer to where it is used
    
    This pushes the initialization of different parts of the agent under
    various circumstances closer to where the pieces are used. By reducing
    the "live-time" of the code the risk of bugs related to partial
    initialization is reduced.
    
    Because of the internal refactorings and the tight coupling of the tests
    to these internal control flows, many of the tests have been reworked to
    take a much more outside-in approach and now mostly (but not completely)
    test through a more "public" interface.

commit dc2e6ad5199a3e198283c9fc02c0e618bfea5e98
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 4 12:50:20 2013 -0700

    (Maint) Remove unused and unreachable logging configuration
    
    The --centrallogging tried to setup some sort of central aggregation of
    logs (see issue #51). However at some point in the past the
    --centrallogging flag was disconnected from the internal handling of
    this (the code assumed it was called :centrallogs). However, even fixing
    that disconnect would not have made this work because the logging system
    does not appear to support this kind of setup. The :host logging
    destination depends on a class called
    Puppet::Network::Client::LogClient, which does not exist.
    
    This simply removes all of that code, including the handling of the
    command line options. This results in any user who had been passing
    those flags now recieving an error, however, since these were never
    documented anywhere that I can find, this is an acceptable risk.

commit c00bc600423b2fd71e1a4c68b3e20ea7ca1584b3
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri May 31 15:21:19 2013 -0700

    Close streams in agent before waiting for cert
    
    This was causing stdout to remain open while waiting for the cert, even
    when daemonizing, which causes the init script to not return when
    redirecting output.
    
    This is a partial revert of c2c082381895954c25357b1ca87ad86ab3532c5c
    "(#13584) in daemon mode, master can swallow errors during startup"

commit 56c94a01dbda5d61ef02c43b6405e392cfbed8e5
Merge: 48ea923 d89090c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 10 10:56:22 2013 -0700

    Merge pull request #1678 from jpartlow/maint/agent-logger-specs
    
    (maint) Add an integration spec for agent logging.

commit de44f41deed7f813bf9e3b6228e82c41b0eb6315
Author: Andy Brody <andy@abrody.com>
Date:   Fri Jun 7 16:30:46 2013 -0700

    (#21164) Check for correct exception message

commit fae7973a9aabd84ac9600e74e37dc19836eb58f9
Author: Andy Brody <andy@abrody.com>
Date:   Thu Jun 6 23:28:22 2013 -0700

    (#21164) Add tests for useful hash access errors
    
    Make sure we get ParseErrors that contain "not a hash or array" so it's
    clear what has happened.

commit fa2c0831c477b56000d0bfae5715658ca9380c87
Author: Andy Brody <andy@abrody.com>
Date:   Wed Jun 5 22:50:22 2013 -0700

    (#21164) Don't try to look up non-string variables
    
    Make an effort to fail with a useful error message if you attempt to
    treat an undef variable as a hash or array.
    
    Prior to 5ac681f9, puppet would return a useful message if you attempted
    to treat an undef variable as a hash: "$var is not a hash or array when
    accessing it with foo at /manifest.pp:123".
    
    Following that commit, puppet fails with an extremely unhelpful: "Scope
    variable name is a Symbol, not a string" because the variable is :undef.

commit 5d250908013588deba14fbbdad7522eb10dec5e0
Author: Andy Brody <andy@abrody.com>
Date:   Wed Jun 5 22:42:32 2013 -0700

    (#21164) Raise ParseError for non-string var names
    
    Raise ParseError rather than DevError for non-string variable names.
    
    This is more consistent with the other validation, and also means that
    we get a file and line number when hitting this error rather than just
    the rather opaque message. Also inspect the variable name for good
    measure.

commit 48ea9230faacc329765186ab32934f5ceadba257
Merge: d71f8b7 cfd658e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 7 15:26:32 2013 -0700

    Merge pull request #1698 from jpartlow/issue/master/yaml-dir-blocking-puppet-rundir-fix
    
    (20967) Clear yamldir in configuration acceptance test.

commit d71f8b7c3d795c0859a588116d2932b2f74514fe
Merge: a05d613 ea58f86
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Jun 7 15:17:16 2013 -0700

    Merge pull request #1665 from lollipopman/hiera_include_arity
    
    commit 9ed6fcea48591cda58db1379b58cd39dfbdca684 which added arity checks

commit a05d613751335fd16a222bf2e2300e7ccf41dc8a
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Jun 7 15:11:07 2013 -0700

    Revert "Merge pull request #1697 from zaphod42/issue/master/20967-mysterious-errors-caused-by-patch"
    
    This reverts commit 1b27ae45c6866f9931ed6042a1c4db0a4c6aabd8, reversing
    changes made to cb4881f8737ce1138057b2ec69e01a68ea7e2b65.
    
        Joshua Partlow: Wait, @finch, I think you just reverted something
        @AndrewParker and I are working on
    
    Whoops.

commit 1b27ae45c6866f9931ed6042a1c4db0a4c6aabd8
Merge: cb4881f f9bda2c
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Jun 7 15:05:08 2013 -0700

    Merge pull request #1697 from zaphod42/issue/master/20967-mysterious-errors-caused-by-patch
    
    Revert "Merge pull request #1682 from zaphod42/issue/master/incorrect-management-of-rundir"

commit c5a382f4ef03e9ca7ef0aa07543602340d8e88c0
Merge: eed6920 b1a5092
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Jun 7 14:46:26 2013 -0700

    Merge pull request #1696 from Sharpie/21028-document-future-parser-functions
    
    clean up docs for new parser functions (backport)

commit cfd658e87e3835675300e9e436305ddbddf39ba9
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Fri Jun 7 14:38:43 2013 -0700

    (20967) Do not run on solaris and reclear yamldir in teardown.
    
    Cannot roundtrip users on Solaris because of #21148, so can't run the
    puppet_manages_own_configuration_in_robust_manner on Solaris.
    
    Also need to clear yamldir again in teardown since we are resetting
    user/group id to original uid/gid and yaml's unmanaged subdirs will be
    owned by a previous uid/gid.

commit cb4881f8737ce1138057b2ec69e01a68ea7e2b65
Merge: ef33f2d f2c5687
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Jun 7 14:20:07 2013 -0700

    Merge pull request #1693 from djmitche/bug21091
    
    (#21091) pass --fail to curl

commit e831e6c55e816eb421a1557f2fa6fa885402101f
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Fri Jun 7 12:36:15 2013 -0700

    (20967) Clear yamldir in configuration acceptance test.
    
    Because yamldir subdirectories are not managed outside of
    indirectory/yaml, service user changes can leave puppet unable to read
    from them (#21145)
    
    This change clears the yamldir in the puppet_manages_own_configuration_in_robust_manner
    acceptance test to ensure that yamldir and all subdirs are rebuilt with
    the new service user.

commit ba8c021e6d6bc557fbaf7a8995fd1d999b63525d
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Feb 28 18:41:15 2013 -0800

    [packaging] Update mocks for rpmbuilder mock format
    
    The Puppet Labs mocks created by rpmbuilder have assumed a new format, pl-el-*
    vs el-*, in order to avoid overwriting the configurations supplied by the mock
    package. This commit updates the mocks in puppet to reflect the new standard,
    so that we can continue to build packages with builders created with the
    rpmbuilder module. It also removes the "rc_mocks", which was deprecated in the
    packaging repo some time ago and are no longer used.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
    
    Conflicts:
    	ext/build_defaults.yaml

commit 7f40007150bfb1bd008d776950bf92eab802aa8b
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Jun 7 11:34:11 2013 -0700

    (packaging) Update debian build-depends to be ruby1.8 so that the shebang is correct after install and ruby1.9.1 isn't used on newer debians.

commit 96be98231a78ae600a2287029cef2f49b0604ef0
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Jun 7 11:30:48 2013 -0700

    (packaging) Update build_defaults to remove EOL platforms (natty, f15, f16).

commit fea3cb6b5a8b1fdd7e0b1f028d444c6afd0d9d31
Author: Justin Stoller <justin@puppetlabs.com>
Date:   Thu Mar 21 15:12:47 2013 -0700

    Improve CVE 2013 1654 SSLv2 Downgrade Master test
    
    Previously we were only checking for the applicability of the master
    (since we're testing the master), but we run the check from an agent.
    This ensures the agent we run the check from has the necessary openssl
    client for the test.
    
    Signed-off-by: Justin Stoller <justin@puppetlabs.com>

commit fd758ade86000d80885e7d289efd62e21c23aecc
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri May 31 13:43:35 2013 -0700

    Remove acceptance test for yaml parsing that was no longer valid

commit f9bda2c0a2ba463d69a97d8c742afc4768523553
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 7 10:21:51 2013 -0700

    Revert "Merge pull request #1682 from zaphod42/issue/master/incorrect-management-of-rundir"
    
    This reverts commit a6e746d1a5df96f59ea0fdbe13345a5fcdacc7ff, reversing
    changes made to 4cce551e419c57fb1306fa4b98a429f83aa2527a.
    
    This appears to be causing inexplicable failures in some testing
    machines. The errors manifest with the master being unable to write to
    certain directories:
    
      Warning: Unable to fetch my node definition, but the agent run will continue:
      Warning: Error 400 on SERVER: cannot generate tempfile `/var/lib/puppet/yaml/node/solaris-11-32-2.delivery.puppetlabs.net.yaml20130606-4478-it4k80-9'
      Info: Retrieving plugin
      Error: /File[/var/lib/puppet/lib]: Could not evaluate: Could not retrieve information from environment production source(s) puppet://solaris-11-32-2/plugins
      Error: Could not retrieve catalog from remote server: Error 400 on SERVER: cannot generate tempfile `/var/lib/puppet/yaml/facts/solaris-11-32-2.delivery.puppetlabs.net.yaml20130606-4478-19pqoux-9'
      Warning: Not using cache on failed catalog
      Error: Could not retrieve catalog; skipping run

commit fa49b2dd27a7c4821d8931fcaebd98ad2bcc3772
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue May 14 14:46:58 2013 -0700

    (PE-158) speed license check
    
    Prior to this commit, the CertificateAuthority did not expose any
    methods that allow Puppet Enterprise license checking to not require
    reading the certificate files twice (once for `list` and again for
    `verify`).  This commit allows the CertificateAuthority to list
    certificates as objects and then, in turn, be able to issue a judgement
    of whether or not these certificate objects are valid/live.

commit eed6920e20302198f722248cc4a1088fb97964f3
Merge: 9af4a15 6a0127f
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Jun 6 17:38:43 2013 -0700

    Merge branch '20383-duplicate_resource_error_location' into stable

commit 6a0127f650e7adf0d154ff5aa1ecf37ede1a4fca
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 1 11:55:51 2013 -0700

    (#20383) Provide location of duplicate resource in error
    
    Commit ac83f85 cleaned up Puppet::Error and extracted file and line
    presentation into a mixin. However the DuplicateResourceError exception
    was relying on that behavior, and when the behavior was extracted the
    location of the duplicate resource was lost.
    
    This commit mixes in the ExternalFileError mixin and passes the file
    line and number to the exception so that the duplicate resource location
    can be displayed.
    
    Thanks to Richard Clamp <richardc@unixbeard.net> for finding the
    original error and providing the base for this fix.

commit b1a5092d4acfb2f3dbde21928fb2c48f57ca2039
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Thu Jun 6 12:25:23 2013 -0400

    clean up docs for new parser functions

commit ef33f2de85f0130b9d262ae42efc3ae98e551293
Merge: ab11ad7 6012057
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jun 6 09:45:24 2013 -0700

    Merge pull request #1695 from djmitche/future-parser-docs-fixes
    
    clean up docs for new parser functions

commit 601205777b5c5c44634a21a3b748b3336858d154
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Thu Jun 6 12:25:23 2013 -0400

    clean up docs for new parser functions

commit f2c5687b989a7d9b3f7d4b0ac87cacce88b965d5
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Wed Jun 5 18:46:59 2013 -0400

    (#21091) pass --fail to curl
    
    This causes curl to treat things like 404's as errors, causing a
    fallback to open-uri and, eventually, a sensible error message.

commit ab11ad76c06e0dfebdfa8c4c56217fc41baf304f
Merge: 0de90ef 605003f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jun 4 12:37:23 2013 -0700

    Merge branch 'adrienthebo-maint-remove_fact_stringify_warning'
    
    * adrienthebo-maint-remove_fact_stringify_warning:
      (maint) remove fact stringifying deprecation warning
    
    closes #1687

commit 605003f05aa95d0a96ec2c823be6e82f2baf186b
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jun 3 10:30:23 2013 -0700

    (maint) remove fact stringifying deprecation warning
    
    Fact stringifying is on by default, but we're issuing a deprecation
    warning on stringified facts. Since it looks like we'll have to
    stringify facts for a while, this commit removes the deprecation
    warning.
    
    This is an update of GH-1658 that takes the comments into account.

commit 80dd4804fbe40b6bc12ae4e96663fac59f0e7893
Author: David Schmitt <david@dasz.at>
Date:   Tue Jun 4 08:31:39 2013 +0200

    (#19112) deploy manpages in -common package
    
    This mirrors Debian's packaging and allows upgrades from their packages to
    ours.

commit ce50d4ab992efdd1edd138d2a0eb6987213dcad1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu May 9 12:23:18 2013 -0700

    (#20584) Only deserialize expected objects from YAML
    
    Puppet no longer allows the base YAML library to deserialize arbitrary
    objects. By using the safe_yaml package, we deserialize only primitive data
    structures. The remainder of the deserialization process is now unified
    between YAML and PSON. This code will explicitly create only the expected
    objects from the primitive data types.
    
    As a side effect of this change the code for REST indirections now allows
    specialized deserialization routines per method. The save method now returns
    nil by default, and is only overridden in a couple of cases where Puppet was
    using the return value to preserve previous behavior.

commit 5926d1a117a5a14a39c57754ae123f48168798d1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu May 9 12:23:18 2013 -0700

    (#20584) Only deserialize expected objects from YAML
    
    Puppet no longer allows the base YAML library to deserialize arbitrary
    objects. By using the safe_yaml package, we deserialize only primitive data
    structures. The remainder of the deserialization process is now unified
    between YAML and PSON. This code will explicitly create only the expected
    objects from the primitive data types.
    
    As a side effect of this change the code for REST indirections now allows
    specialized deserialization routines per method. The save method now returns
    nil by default, and is only overridden in a couple of cases where Puppet was
    using the return value to preserve previous behavior.

commit 0de90efc0261eed18187d23a4fe17b84c7b54c50
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jun 3 11:45:13 2013 -0700

    Revert "Merge pull request #1686 from Sharpie/12361-remove-masterlog-setting"
    
    This reverts commit a664a0e7be708a684d56aea9892cf38e148feeea, reversing
    changes made to a6e746d1a5df96f59ea0fdbe13345a5fcdacc7ff.
    
    Removing the `masterlog` option is backwards incompatible, as the option
    could be passed as a command line switch and if used after this commit
    would cause running the master to fail.

commit a664a0e7be708a684d56aea9892cf38e148feeea
Merge: a6e746d 5945aba
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Jun 3 11:35:36 2013 -0700

    Merge pull request #1686 from Sharpie/12361-remove-masterlog-setting
    
    (#12361) Remove masterlog option

commit ea58f867449dbbcd45e4883578aa04a0d5211137
Author: Jesse Hathaway <jesse@mbuki-mvuki.org>
Date:   Fri May 24 11:14:04 2013 -0500

    Change hiera_include to properly call include with an array of arguments
    
    Before this change hiera includes which looked up an empty array
    resulted in this error:
    
        ArgumentError: include(): Wrong number of arguments given (0 for minimum 1)
    
    Now hiera includes properly allow for a lookup that results in an empty
    array
    
    This regression was caused by the arity checks committed in
    9ed6fcea48591cda58db1379b58cd39dfbdca684

commit 5945abaca756571176b28c9a88b1650012cd0b16
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Mon May 6 11:48:38 2013 -0700

    (#12361) Remove masterlog option
    
    Pull the `masterlog` configuration option as it is unused and causes confusion.
    Also, re-word the description of a test in `webrick_spec.rb` as it is testing
    the behavior of `masterhttplog` and not `masterlog`.

commit d89090c34af2dc0afaa491cabb7b33141da25023
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Fri May 31 14:10:50 2013 -0700

    (maint) expand flag constants for clarity
    
    Abbreviations for the many flags under test were difficult to read.
    This expands them to the full flag names.

commit bab50c2c3af7d30c5da2b95fde68f090607cdd34
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri May 31 10:57:24 2013 -0700

    (maint) Don't try to invoke a constant as a method
    
    While methods on constants can be invoked with the scope resolution
    operator, EG `SemVer::valid?`, the reverse isn't true for retrieving
    constants. This fixes the lookup of the SemVer::MIN constant.

commit a6e746d1a5df96f59ea0fdbe13345a5fcdacc7ff
Merge: 4cce551 c22b394
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri May 31 12:24:08 2013 -0700

    Merge pull request #1682 from zaphod42/issue/master/incorrect-management-of-rundir
    
    (#20967) Apply Redhat carried patch for rundir permissions

commit 4cce551e419c57fb1306fa4b98a429f83aa2527a
Merge: 708d765 96e22e6
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri May 31 12:20:57 2013 -0700

    Merge pull request #1679 from jpartlow/maint/pidlock-file-path-fix
    
    (maint) Pidlock#file_path uses correct instance var

commit c22b3943f35610f7115bf4990fb35b15956b73c1
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri May 31 11:29:59 2013 -0700

    (#20967) Fully manage ownership of rundir
    
    When the change from 01777 to 0755 for rundir is applied, the puppet
    master can get itself into a situation where it cannot properly write to
    its rundir. This occurs when it creats the rundir as root and then later
    tries to write the pidfile as the system (usually puppet) user. This is
    solved by also making puppet try to manage the ownership of the rundir,
    which also makes it consistent with what packages were creating and the
    other directories that it tries to manage for the master.

commit c1c472bf7bdb6dbd3247bef003884ff6530df978
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri May 31 11:43:47 2013 -0700

    (#20967) Apply Redhat carried patch for rundir permissions
    
    Since 2009 Redhat has been carrying a patch that modified the
    permissions that puppet tried to enforce on the rundir from 01777 to
    0755. This is a much more secure option and by taking this patch allows
    packagers to use sane permissions for the rundir without patching
    puppet.
    
    See: https://bugzilla.redhat.com/show_bug.cgi?id=495096

commit 708d765b7c46ed5fa4ca5a163cdd585180c8a0bd
Merge: 9f51185 9af4a15
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Fri May 31 10:48:10 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (#20768) Windows can now create the home directory (again)
      (#20768) Refactor base profile logic
      (#20768) Enable managehome acceptance test on Windows
      (#20768) Use the correct Win32API method signatures
      (#20768) Only query on the name field
      (#20768) Don't confuse WMI and IADsUser automation objects
      Maint: Fix typo in deprecation warning

commit 9af4a15d4c641feb4cefec37bda0893a63fa1dee
Merge: a2217a9 d28acbe
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Fri May 31 10:45:26 2013 -0700

    Merge pull request #1680 'joshcooper/ticket/stable/20768-windows-managehome-redux' into stable
    
    * joshcooper/ticket/stable/20768-windows-managehome-redux:
      (#20768) Windows can now create the home directory (again)
      (#20768) Refactor base profile logic
      (#20768) Enable managehome acceptance test on Windows
      (#20768) Use the correct Win32API method signatures
      (#20768) Only query on the name field
      (#20768) Don't confuse WMI and IADsUser automation objects
      Maint: Fix typo in deprecation warning
    
    closes #1680

commit d28acbea24a4ffb694f06800746e1b0cbb015c27
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu May 30 17:05:22 2013 -0700

    (#20768) Windows can now create the home directory (again)
    
    The previously pending_test method was used, because puppet couldn't
    create the home directory when creating the user in ruby 1.9 on windows.
    Now that that is resolved, we can remove the windows-specific
    pending_test. Note, that the test will still be pending later, since
    neither the windows nor useradd providers correctly move the user's home
    directory.

commit 0cef2aaf058d66f63eaf213d252c0a09cbc06d91
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu May 30 17:04:46 2013 -0700

    (#20768) Refactor base profile logic
    
    This commit refactors the logic for figuring out the base profile
    directory, e.g. C:\Users or C:\Documents and Settings, and updates the
    acceptance test to use it. The `--helper` option must be used in the
    systest harness so that the LOAD_PATH is setup correctly to find the
    windows_utils.rb helper, but this should already be the case for
    temp_file_utils.rb, etc.

commit 12be8d93757fca18148d49cf47254a27c9b06ddf
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu May 30 12:44:43 2013 -0700

    (#20768) Enable managehome acceptance test on Windows
    
    This commit enables the acceptance test on windows. On 2003, the default
    home directory is C:\Documents and Settings\username. On Vista and
    later, it is C:\Users\username. In the 2003 case, the home directory
    needs to be quoted, e.g. when passed on the command line.

commit aaf6a40bc3d3d6ba4fe2c446ceea75af25b32ba7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu May 16 00:24:05 2013 -0700

    (#20768) Use the correct Win32API method signatures
    
    In ruby 1.8, we could call CloseHandle passing it the handle (an opaque
    unsigned integer value), and due to the 'P' in the method signature,
    automatically arrayify and pack the handle. This wasn't done intentionally,
    it just happened to work.
    
    But ruby 1.9 no longer automatically coerces the parameter, instead
    the CloseHandle method (implemented by the windows-pr gem) tries to pack
    the handle, generating an error `can't convert Fixnum into String`. This
    prevents puppet from managing a user's password and home directory.
    
    The proper fix is to define the CloseHandle method signature correctly, so
    that the windows-pr layer doesn't attempt to coerce the handle value.
    
    The UnloadUserProfile API had a similar problem, it takes the handle as an
    'L' input paramter (instead of a pointer).

commit dfd760652f3fbc56bb505d7f90f0e793889bb138
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed May 22 01:35:00 2013 -0700

    (#20768) Only query on the name field
    
    Previously, we loaded entire WMI objects from the query, assuming they
    were needed by the ADSI objects. But this was incorrect and never
    worked.
    
    Since we only need the User and Group names, we can select only those
    fields.

commit c9e451034d392a1806dece6cd9249a9a02f28f28
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed May 29 21:08:21 2013 -0700

    (#20768) Don't confuse WMI and IADsUser automation objects
    
    To enumerate local users (and groups), we execute a WMI query. The query
    returns an array of generic WIN32OLE objects, each of which wraps an OLE
    automation object. The WIN32OLE object uses method_missing to dispatch
    method calls to the underlying automation object.
    
    In the case of a WMI query for users, the underlying automation object
    provides the methods and properties defined by the Win32_UserAccount
    class[1], e.g.  AccountType, Caption, etc.
    
    Previously, we were creating instances of Puppet::Util::ADSI::User and
    passing in a WIN32OLE object wrapping the WMI automation object, when it
    expects a WIN32OLE object wrapping an IADsUser[2] object.
    
    This never caused a problem, because the windows ADSI user provider's
    instances method only enumerates the user names on the systems and
    creates new Puppet::Util::ADSI::User objects from them.
    
    However, if you had ever called Puppet::Util::ADSI::User.each
    programmatically, and then called a method that used the WIN32OLE
    object, e.g. native_user.Get('HomeDirectory'), it would fail since the
    WMI based automation object doesn't implement the 'Get' method.
    
    This commit changes the 'User.each' method to not pass in a native_user
    object. Instead, we create the correct native_user object lazily.
    
    The same issue existed for 'Puppet::Util::ADSI::Group.each' as well.
    
    [1] http://msdn.microsoft.com/en-us/library/windows/desktop/aa394507(v=vs.85).aspx
    [2] http://msdn.microsoft.com/en-us/library/windows/desktop/aa746340(v=vs.85).aspx

commit 9f511857e17dde4f16ef92624bf427156d1a1c47
Merge: 4c84d8e 492b833
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu May 30 13:51:56 2013 -0700

    Merge branch 'pull-1669'
    
    This closes GH-1669

commit 492b833bd3b265bcde8c1f6c9eb21117d7bce740
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu May 30 13:27:26 2013 -0700

    (#20920) Test that missing resource deps add context
    
    When calling the mixed in `#fail` method, an exception should be raised
    that will add file and line information as part of the exception
    message. This commit adds tests to ensure that when that context is
    available it is part of the exception message.

commit 96e22e61a5d09707cc66ff28b25e8699110b5f11
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu May 30 11:35:55 2013 -0700

    (maint) Pidlock#file_path uses correct instance var
    
    Typo in Puppet::Util::Pidlock#file_path was referencing @lock_data which
    doesn't exist.  This was resulting in messages like:
    
    "Could not prepare for execution: undefined method `file_path' for
    nil:NilClass"
    
    instead of the slightly less confusing:
    
    "Could not prepare for execution: Could not create PID file:
    /home/jpartlow/.puppet/var/run/agent.pid"
    
    From lib/puppet/daemon.rb:157 when attempting a second 'puppet agent'
    call with existing daemonized agent.

commit 4c84d8e42438cfe7ccd9ecfba2d9c6455e9eb339
Merge: ad85de4 a2217a9
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu May 30 10:04:28 2013 -0700

    Merge branch 'stable'

commit a2217a99dc19234d61bdbff273f364666397fe5f
Merge: 7ecb4b8 848eb63
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu May 30 10:03:27 2013 -0700

    Merge pull request #1677 from joshcooper/ticket/stable/20302-ruby19-windows-specs
    
    Update specs for Windows on Ruby 1.9

commit ad85de48d3fe21cdab42fa3e1f73163896939b0a
Merge: a6d1be3 7ecb4b8
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu May 30 09:55:05 2013 -0700

    Merge branch 'stable'

commit 7ecb4b8a187f3503526051cae97bfaca307f60f4
Merge: 54845c5 a9d2fdb
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu May 30 09:54:04 2013 -0700

    Merge pull request #1675 from nfagerlund/maint/file_typo
    
    Docs: Fix a persistent formatting glitch in the file type's ensure parameter docs

commit a6d1be35a34916ddfb5a546ccef8b10dddfffe5a
Merge: 0d1f0ec 54845c5
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu May 30 09:53:13 2013 -0700

    Merge branch 'stable'

commit 54845c5dd29ffb24683cab033fa6f8075ac84f15
Merge: 593b96b 353a057
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu May 30 09:50:52 2013 -0700

    Merge pull request #1674 from nfagerlund/maint/duration_settings
    
    Docs: Improve documentation of "duration" settings

commit fbd7f7435962a8403479d5470bb8551d2cc330cb
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu May 30 08:53:26 2013 -0700

    (maint) Add an integration spec for agent logging.
    
    Checks which loggers are initialized, and what the log level is for all
    combinations of --onetime, --daemonize, --no-daemonize, --verbose,
    --debug, and --logdest called on the agent.
    
    A simple patch for #15187 had unintended side effects to logging
    behavior which were hard to track down.  This test is intended to give
    us visibility on how we expect agent logging to behave and whether or
    not this has changed.
    
    There is also a minor change to Puppet::Application#setup_logs that
    separates assigning a console log for verbose/debug from setting the
    log_level, because this was where one of the bugs was hidden.

commit 28fb267cde509a783f6ac20008a9106aff2ccfdd
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed May 22 01:18:25 2013 -0700

    Maint: Fix typo in deprecation warning
    
    The deprecation warning said to use a method that doesn't exist.

commit 0d1f0ec145a268940681f258a3320450c28e1949
Merge: 7f3add7 593b96b
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed May 29 18:57:35 2013 -0700

    Merge branch 'stable'
    
    * stable:
      Revert "Merge branch 'cprice-puppet-bug/3.0rc/15187-log-fatal-errors-to-console'"
      (#20787) Do not generate NetBIOS name service requests

commit 593b96bd399ce72db8615c01d6fbc897ade2c651
Merge: 25303fa a08388d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed May 29 17:07:36 2013 -0700

    Merge branch 'ticket/stable/20900-revert-agent-console-logging' into stable
    
    * ticket/stable/20900-revert-agent-console-logging:
      Revert "Merge branch 'cprice-puppet-bug/3.0rc/15187-log-fatal-errors-to-console'"

commit 848eb63b48837f19e6f5ee927307197d032e9d2a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed May 29 15:17:12 2013 -0700

    Maint: Don't execute facter during spec tests
    
    Previously, the test was trying to test that the 'facts' application
    could be invoked and return exit code 0 with meaningful output. However,
    it causes the 'facter' terminus to be invoked, which actually runs
    facter.
    
    Since we don't care what facts are returned, this commit adds an
    expection to make sure the indirection#save method is called and returns
    successfully.
    
    This was discovered on win2003 due to local facts being present, which
    when evaluated, wrote errors into the log.

commit a9d2fdb5317f76967f3b1b8b1eec0380252b37c3
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Wed May 29 14:43:05 2013 -0700

    Docs: Fix a persistent formatting glitch in the file type's ensure parameter docs

commit a08388dc6c062b710456d044d02ac82e74e7efbd
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed May 29 14:32:30 2013 -0700

    Revert "Merge branch 'cprice-puppet-bug/3.0rc/15187-log-fatal-errors-to-console'"
    
    This reverts commit 8d99bcbe6ebe6ca15868334bb52349911b58598c, reversing
    changes made to 7d6515f076715c1feab0addc99312c42fb8b578c.
    
    This change had two unintended side effects:
    
    1) 20900 tagmail from 'puppet agent --onetime' run as a cron job begins
    sending additional emails of verbose logs.
    
    2) 20919 cron job of 'puppet agent --onetime --no-daemonize' produces
    additional verbose logs to both console and syslog.
    
    Issue #1 occured because the 15187 patch caused agent log level to
    switch to info by default.
    
    Issue #2 was due to the above log level issue, and the fact that by
    default a console logger was also opened for all agents, which does not
    get closed if --no-daemonize is specified.
    
    Reverting fixes both of these unintended logging issues by returning to
    the logging behavior seen in 3.1.1.

commit 353a057232420a33caa192e80f5f2eee4a1928d1
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Wed May 29 14:01:10 2013 -0700

    Docs: Improve documentation of "duration" settings
    
    A user pointed out that "as a duration" was not a helpful way to describe the
    formats used by duration settings; although the formats are explained at the top
    of the config reference, scrolling shouldn't be necessary, and most readers
    wouldn't think to check the top of the file.
    
    This commit puts a small list of the formats in each duration setting, as well
    as marking the activerecord storeconfigs settings as deprecated.

commit 7f3add7a166f47cf6ae7549ef593910ced176dd4
Merge: ccf626f e758025
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 29 14:02:27 2013 -0700

    Merge pull request #1673 from vzctl/fix-eix-error
    
    Set HOME environment for eix/portage provider

commit e7580250769ac09752f28ad90c106789e08e988d
Author: Alexey Lapitsky <alexey@spotify.com>
Date:   Wed May 29 21:22:23 2013 +0200

    Set HOME environment for eix/portage provider
    
    Lack of this variable causes "No $HOME found in environment." message in
    stderr of eix command, which is misleading in a situation when a package
    is not found or some other error occurred.

commit ccf626fd50d3ca419c689c44dbca4902339d5884
Merge: 759cca5 e3e673e
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 29 12:08:25 2013 -0700

    Merge pull request #1672 from dalen/simplify_search
    
    (Maint) Simplify search for init scripts

commit e3e673e2bd116f09c2e733d159373f76bc73658e
Author: Erik Dalén <dalen@spotify.com>
Date:   Tue May 28 20:25:22 2013 +0200

    (Maint) Simplify search for init scripts

commit 759cca53e2400c0ac22514bff73b1ea84f7ac5a0
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed May 29 11:32:09 2013 -0700

    (maint) Minor cleanup to mailalias
    
    A recent commit removed a workaround for a ruby 1.8.1 GC bug, but missed the
    extra variable assignment in this file.

commit 54bb9e48bdf3e8d5a3007b9300b8c6e8888efe96
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue May 28 20:33:45 2013 -0700

    (#20302) File.expand_file('~') fails differently in Ruby19
    
    In ruby 1.8, calling File.expand_path('~') when HOME is undefined
    would raise ArgumentError on both Unix and Windows.
    
    The same test in ruby 1.9 does not raise on Windows, because ruby
    also looks at HOMEDRIVE and USERPROFILE. Only if all three are
    undefined does ruby raise ArgumentError as expected.
    
    This commit ensures all 3 environment variables are undefined in util_spec. It
    also only tests the platform specific RunMode functionality on the appropriate
    platforms, and adds tests that were missing on the Windows side.

commit 650392545c6c3a3c963076343b27690aea9e426a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue May 28 20:44:41 2013 -0700

    (#20302) Handle nested include filters
    
    Nested rspec include filters don't work the way I expect. Given:
    
      describe "A", :if => rdoc1? do
        before :all do
          require 'rdoc/tokenstream'
        end
    
        describe "B", :if => windows? do
        end
      end
    
    If rdoc1? is false, but windows? is true, the before :all/:each blocks
    will still be executed, and the tests in B will be executed.
    
    As a result, the spec tests fail on Windows and ruby 1.9, because our rdoc
    parser is not compatible with newer versions of rdoc. For example,
    rdoc/tokenstream.rb was moved to token_stream.rb, etc.
    
    This commit adds the rdoc1? predicate to the example group B, so that
    it is not executed when rdoc1? is false.

commit 8dbe436869ec12e63c9009e4c7bbfff3eeae941b
Merge: 7c7e9a5 351aae6
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 29 10:44:41 2013 -0700

    Merge branch 'pull-1351'
    
    This closes GH-1351

commit 351aae6574ec58375672625df02f8244cdea21a3
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Fri Dec 28 10:35:36 2012 -0800

    (#17827) Properly format SMTP HELO when sending tagmail
    
    Previously, the tagmail report sending code did not initialize
    Net::SMTP.start with a 'helo' option, which causes securely-
    configured SMTP servers to reject the mail.
    
    This commit adds settings to control the destination SMTP port
    and the value for SMTP HELO, which default to 25 and our fqdn,
    respectively.
    
    Report and original patch from Jim Pirzyk.

commit 7c7e9a5ff295266d38f7dc8f0d1dcb09be2e6f76
Merge: fd4f17e 5d03bed
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 29 10:15:25 2013 -0700

    Merge branch 'pull-1668'
    
    This closes GH-1668

commit 5d03bed9efc3eb540a3a368dc2824253ae8178a3
Author: ironpinguin <michele@catalano.de>
Date:   Mon May 27 16:21:58 2013 +0200

    extend the zypper provider with install_options feature
    
    With this patch you can now define a unsigned rpm repository like this:
    package { "special-mysql":
      ensure => "present",
      install_options => ['--no-gpg-check', {'-p' => '/vagrant/files/localrepo/'}]
    }

commit ca8602e59d7412cf5f087da56ddcca1dcac12c3f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue May 28 20:26:37 2013 -0700

    (#20302) Append .exe to spec "executables" on Windows
    
    When running the tests on Windows and Ruby 1.8.7, File.executable?
    returns true on regardless of the file extension. On Ruby 1.9, it only
    returns true if the extension is .exe or similar.
    
    This commit ensures the "executable" ends with .exe.

commit 694f97d8b6eb73f135bc8f6b4546801ea2beced3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue May 28 20:19:30 2013 -0700

    (#20302) Windows ruby 1.8 workarounds are not necessary in 1.9
    
    Previously, the sprintf spec failed, because ruby outputted the
    exponent with a leading zero, despite a precision of 2. The zaml spec
    failed, because ruby didn't recognize the Europe/London timezone.
    
    Ruby 1.9 fixes these issues, so the workaround in sprintf_spec is no
    longer necessary, and the zaml_spec issue is no longer pending.

commit e8c30cbc742fb181b04443dd27c3f29aea39827a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 28 15:01:11 2013 -0700

    Vendor safe_yaml 0.9.2

commit ee741eb3b5046e35fd0ad8c6543a9b0000535231
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 28 15:32:51 2013 -0700

    Fix installation of vendored libs
    
    Vendored libs were getting the path component 'lib' removed when only the
    leading 'lib' should be removed.

commit 2333fa4289034a9d4a0f5396cd0c02a9d9f7e202
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 28 14:56:09 2013 -0700

    Add vendoring system into puppet
    
    This adds support to Puppet for vendoring libraries.

commit 535da9b793976f9a52321be52f2a72ae6a82c241
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri May 24 12:00:03 2013 -0700

    Add acceptance test for report processing
    
    This replaces a test in the old "unit" suite that was broken but testing dead
    code.

commit 6f1b9790ad78f6b14d832d8a293f5f88e6a6e815
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 28 15:01:11 2013 -0700

    Vendor safe_yaml 0.9.2

commit 40f27442f36853c0b4f713272554f27178d83da8
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 28 15:32:51 2013 -0700

    Fix installation of vendored libs
    
    Vendored libs were getting the path component 'lib' removed when only the
    leading 'lib' should be removed.

commit 6a2917193b56ed3e711e11cf633608864832e097
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 28 14:56:09 2013 -0700

    Add vendoring system into puppet
    
    (Revert "Revert "Merge pull request #1542 from hlindberg/vendor"")
    
    This reverts commit 546dac12386865c00c172ba2e7b3f6f747434428, which had
    reverted the original commit adding vendoring support. We now need it.

commit 81eeacec16e8dca7c26e1fe53a76f440769ea604
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri May 24 12:00:03 2013 -0700

    Add acceptance test for report processing

commit 25303fae826fb574dddbeb80085356723980c3ac
Merge: 3c84fcb b4f84e1
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue May 28 12:21:49 2013 -0700

    Merge pull request #1663 from joshcooper/ticket/stable/20787-adsi-performance
    
    (#20787) Do not generate NetBIOS name service requests

commit fd4f17e47d1ec83d1470d79b73aa3396955936c8
Merge: aed11e2 53241a9
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue May 28 12:09:54 2013 -0700

    Merge pull request #1671 from dalen/unused_variables
    
    (Maint) Remove unused variables

commit 53241a91c687336a273291aa6e71f90fc7752581
Author: Erik Dalén <dalen@spotify.com>
Date:   Tue May 28 19:43:52 2013 +0200

    (Maint) Remove unused variables

commit f233c0c0b225ccb61dbed1e9af9f5fbcba76d84e
Author: Erik Dalén <dalen@spotify.com>
Date:   Mon May 27 20:04:34 2013 +0200

    (#20920) Include file and line number on invalid resource relationship
    
    Change the error type to ResourceError to make it include the file name
    and line number.

commit aed11e2331129f886192655d1537d617fd16dea7
Merge: 82496a9 3c84fcb
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri May 24 13:47:06 2013 -0700

    Merge branch 'stable'

commit 3c84fcbb11e6ca3f2a92c590809e83304bacb164
Merge: bd01ddd ba3c4c2
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri May 24 13:45:38 2013 -0700

    Merge pull request #1667 from joshcooper/ticket/stable/20901-revert-webrick-monkeypatch
    
    Revert "Merge pull request #1478 from dsd/fix/master/18781-webrick-old-client-compat"

commit ba3c4c2c88a01be667fd086d06784eace8795155
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri May 24 11:48:30 2013 -0700

    Revert "Merge pull request #1478 from dsd/fix/master/18781-webrick-old-client-compat"
    
    This reverts commit 86331385e6263bf370a8e42f52f882d43882efd2, reversing
    changes made to a10b85bd9e7198ca71ef0461bcdfe5ff75698724.
    
    The commit being reverted causes webrick to be loaded during puppet
    startup, e.g. puppet --version, and webrick performs a reverse DNS
    lookup of the local IP address, which can cause unnecessary delays.

commit b4f84e1fde6a79af0a04c31f8f0b688f223b7a7f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu May 23 21:07:00 2013 -0700

    (#20787) Do not generate NetBIOS name service requests
    
    Previously, we were constructing an ADSI connection uri using the local
    computer name, e.g. 'WinNT://hostname/Administrator,user'. However, Windows
    performs a NetBIOS name service request (NBNS), one request for each ADSI
    connection, which is very slow when enumerating users and groups.
    
    Simply using '.' to denote the local computer eliminates all NBNS
    requests. This reduces the time to run `puppet resource user` from 198
    seconds to 3.1 seconds for 39 users, and from 98 seconds to 2.8 seconds for
    16 groups.
    
    Note we still have to use the fully qualified uri when adding/removing
    users from a group, though it does not result in NBNS requests.

commit 788fdaf7836fcea36066741eb51f86e67ef33678
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu May 23 15:22:22 2013 -0700

    Don't keep Gemfile.lock checked in.

commit 82496a956afb820c38de3ce69c2e761fe8368832
Merge: 8e8ffac 08ff4db
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 22 16:24:42 2013 -0700

    Merge branch 'pull-1206'
    
    This closes GH-1206

commit 08ff4dbcf45acb3ff02783705ce04f14c821cd64
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 22 15:31:32 2013 -0700

    (maint)Add basic test coverage to urpmi package provider

commit 578fb8dcaaabf3bec55606821afddc8749b9cc63
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 22 14:34:29 2013 -0700

    (maint) Improve urpmi error reporting
    
    The urpmi package provider was ensuring that packages were actually
    installed by querying the package after the install command was run. If
    that failed an exception was raised, but didn't indicate that the
    package was missing after said installation. This commit improves that
    error reporting.

commit d5a7991e502882c453ec5754fbe391292e3b2109
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 22 14:27:28 2013 -0700

    (maint) Remove convoluted confine from urpmi provider
    
    Commit 49d8ef280 added a rather convoluted method for checking
    suitability for the urpmi provider, without emitting errors. Since this
    was released in 0.23.1 Puppet has developed better ways for checking
    suitability, so this confine can be removed.

commit 4318430860e7bc8cbc108d9482dd591d2bebc7fb
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 22 14:24:23 2013 -0700

    (#16792) Rename urpmi `uninstall` method to `purge`.
    
    Since using `urpme` to remove packages will remove dependencies and thus
    can be fairly destructive, it seems better to prefer the less
    destructive option by default. Defining this method will allow urpmi to
    purge packages and their dependencies if needed.

commit d6c532ed001a476995abbfd558e6b5ce2fb7e265
Author: Michael Scherer <misc@zarb.org>
Date:   Fri Oct 5 00:04:08 2012 +0200

    (#16792), permit to remove all dependants packages with urpmi provider
    
    Without this, removing some packages can be quite tedious, since urpmi
    provider will fallback on rpm and rpm support to remove only 1 rpm. This commit
    permit to have a behavior similar to apt provider.

commit 8e8ffac5b6eaa1d954f06ee0de48f8f7e1769a1f
Merge: 2fc5988 bd01ddd
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed May 22 10:07:51 2013 -0700

    Merge branch 'stable'

commit bd01dddc8d3306856080af805ff64054b36af3c6
Merge: 6ff3cae 025f00d
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed May 22 10:07:19 2013 -0700

    Merge branch 'release_3.2.1' into stable

commit 025f00d05226e74a8ae68b2b16122b17a9746f2c
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed May 22 10:05:23 2013 -0700

    (packaging) Update PUPPETVERSION to 3.2.1

commit 2fc5988752be9333195c58d56360a5420c637b1f
Merge: 2dd097c 6ff3cae
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue May 21 17:31:21 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Reset confines on the pip provider after tests

commit 2dd097c08d6e2675526488e9196798cf4bfdad96
Merge: 948b67e 810283f
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue May 21 10:03:16 2013 -0700

    Merge pull request #1657 from ghoneycutt/tickets/master/20815_module_template_style
    
    Generated modules comply with Style Guide

commit 810283fa5e924189542bdc5411de774a2f17e0e3
Author: Garrett Honeycutt <code@garretthoneycutt.com>
Date:   Tue May 21 10:56:17 2013 +0200

    Generated modules comply with Style Guide
    
    Without this patch, all module generated with `puppet module generate`
    will produce code that does not pass lint or comply to our Style Guide.

commit 948b67e6882e8984e489d303b23754ab55182ae4
Merge: 55ae853 a48b2fb
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon May 20 14:51:19 2013 -0700

    Merge pull request #1649 from richardc/fix/master/17871
    
    (#17871) fix nagios types uniqness under ruby 1.9

commit 55ae853f168cbf1bb7a85289e21fc6bd4779e01e
Merge: 5ee6afb a27f3dc
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon May 20 13:16:55 2013 -0700

    Merge pull request #1643 from jeffweiss/20442_fix_aix_extended_attributes
    
    (#20442)[PE-161] fix AIX extended attributes

commit 5ee6afbe85eee370d0b732e43249ebaa8dcb9623
Merge: fa190dc 4da6312
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon May 20 13:07:54 2013 -0700

    Merge pull request #1656 from jpartlow/maint/windows-package-load-order-cleanup
    
    (maint) More specific require for windows/package

commit 4da6312127cc77ffcbfdfaf972f17f3e1b444bcf
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Mon May 20 11:07:10 2013 -0700

    (maint) More specific require for windows/package
    
    PR1655 added "require 'puppet/type/package'" to fix a load order issue.
    But this change is more general than what is needed, and we had not
    tracked down exactly what was occurring.
    
    I spent a little time running down the load order issue for
    puppet/provider/package/windows/package.  An example of the mystery
    effect being that prior to PR#1655 the following sequence would pass:
    
    bundle exec rspec spec/unit/provider/package/rpm_spec.rb
    spec/unit/provider/package/windows/package_spec.rb
    
    while the reverse order would fail:
    
    bundle exec rspec spec/unit/provider/package/windows/package_spec.rb
    spec/unit/provider/package/rpm_spec.rb
    
    The reason for it is confusing, but turns out to be not very mysterious
    or magical at least.
    
    The summary is that because this was written as follows:
    
    lib/puppet/provider/package/windows/package.rb
    ---
    1  require 'puppet/util/windows'
    2  
    3  class Puppet::Provider::Package::Windows
    
    Puppet::Provider::Package is assumed, but not required.  Since
    Puppet::Provider is loaded as a result of the base require 'puppet', and
    since it includes Puppet::Util, which has a Puppet::Util::Package, if
    nothing else has explicitly created Puppet::Provider::Package, we
    end up declaring the Windows class on Puppet::Util::Package and hiding
    reference errors which should otherwise pop up here.
    
    Requiring 'puppet/type/package' does end up also requiring
    'puppet/provider/package' as part of type's autoloading magic, but this
    patch more specifically and clearly fixes the issue by requiring
    'puppet/provider/package'.
    
    Consistency of namespacing and class loading is a deeper issue.

commit fa190dc16655db0403f37346266bba16f6c4a0b1
Merge: 37c82de 8ed37c9
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon May 20 11:10:18 2013 -0700

    Merge pull request #1654 from pvande/tickets/master/17824-pmt-should-not-prefer-prereleases
    
    (#17824) PMT should not prefer pre-release versions over existing stable versions

commit 6ff3cae83484236a2db3db8651bcd62a16df7a18
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri May 17 20:34:27 2013 -0700

    (maint) Reset confines on the pip provider after tests
    
    The tests for pip alter the confines for the pip provider by stubbing the
    underlying facter calls and then calling lazy_pip. This can leak into later
    tests, causing weird failures.

commit 37c82de33efe917a3d061eaecac8e497058f34cf
Merge: f07a382 2576f8f
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri May 17 15:15:58 2013 -0700

    Merge branch 'stable'

commit 2576f8f02ef7523b1dd63ee3117fb2379c0e8a2c
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri May 17 15:15:37 2013 -0700

    (packaging) Update PUPPETVERSION to 3.2.1-rc1

commit f07a38261b7f07eb6a826e300c2717a4e718da55
Merge: 7cad2c5 7b10622
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri May 17 14:11:35 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Change load order for puppet/provider/package/windows/package

commit 7b10622f50be05305cc6a9c1c504f7088c5d9ae9
Merge: acd02bb 866ecbc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri May 17 14:11:05 2013 -0700

    Merge pull request #1655 from jpartlow/maint/puppet-provider-package-windows-package-load-order-issue
    
    (maint) Change load order for puppet/provider/package/windows/package

commit 866ecbc23a998efdbdbbdf07738e557671d35f0a
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Fri May 17 14:03:48 2013 -0700

    (maint) Change load order for puppet/provider/package/windows/package
    
    Uncovered a load order issue with
    puppet/provider/package/windows/package being loaded before
    puppet/type/package.  This was manifesting in various test runs as
    'uninitialized constant Puppet::Util::Windows::MsiPackage' or
    'uninitialized constant Puppet::Util::Windows::Package' (or similar case
    where Puppet::Provider::Package::Windows somehow ends up pointing to
    Puppet:Util::Windows).
    
    This patch just require's 'puppet/type/package' at the beginning of
    puppet/provider/package/windows/package.  Which fixes the immediate load
    order issues seen in the specs, but is not a long term fix.
    
    More investigation is needed to pinpoint what's going on.

commit 7cad2c59be1cdeae74dcbe53e7bd3b664c20ff10
Merge: 08a3cd8 acd02bb
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu May 16 16:41:58 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (#20742) Only use certifcate info if there is a CN
      (#20742) Handle DNs that cannot be parsed
      (Maint) Give each test a meaningful name
      (#20726) Manage home has issues on Solaris
      (#20726) Include password for useradd managehome tests on windows
      Revert "Merge branch 'pull-1512'"
      (#20726) Add user managehome acceptance tests
      (packaging) Update PUPPETVERSION to 3.2.0

commit acd02bb814b890498316c0a39dc68cf89f3f90e5
Merge: 813db42 de34775
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu May 16 16:34:07 2013 -0700

    Merge remote-tracking branch 'zaphod42/issue/stable/20742-no-handling-of-bad-dn-in-rack' into stable
    
    * zaphod42/issue/stable/20742-no-handling-of-bad-dn-in-rack:
      (#20742) Only use certifcate info if there is a CN
      (#20742) Handle DNs that cannot be parsed
      (Maint) Give each test a meaningful name

commit a48b2fbe7bdf5716be9027ea5cdb46edd57cf06b
Author: Richard Clamp <richardc@unixbeard.net>
Date:   Thu May 16 23:32:28 2013 +0100

    (#17871) fix nagios types uniqness under ruby 1.9
    
    In ruby 1.8 and earlier, splatting a 1-element array would return the first
    element, post 1.9 you always get an array back.
    
        $ ruby-1.8.7-p371 -e 'a = ["a"]; b = *a; puts b.inspect'
        "a"
    
        $ ruby-1.9.3-p429 -e 'a = ["a"]; b = *a; puts b.inspect'
        ["a"]
    
    This lead to an issue in the nagios providers where the parameters['name']
    would be set to an Array, so simple 'does this resource already exist
    checks' would fail as  `parameters['name'] == some_string` would always be false.
    
    This patch changes the assignment from a splatted array to an explicit call to
    args.first, which is portable between 1.8 and 1.9 and restores the intended
    behaviour.

commit 8ed37c9d53cbc2fcdf1bcc42e13d06f30ddb90d5
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Thu May 16 15:35:25 2013 -0700

    Certain server configurations are less diligent about whitespace.
    
    This is primarily a fix for our acceptance testing environment.

commit f75f73d8bff7249945062af71d77b05226f841f7
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Thu May 16 15:28:01 2013 -0700

    Adding a couple additional tests for supplied version constraints.

commit 08a3cd82688544f700b5242a7aa58a6a3b1dcbee
Merge: 1fdd8ac 855cad8
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Thu May 16 15:17:51 2013 -0700

    Merge pull request #1652 from adrienthebo/maint-static_compiler_yardoc
    
    (static compiler) Add method documentation

commit 1fdd8acf57caa0156634be8bd6332d1bc97b5270
Merge: d21da80 82678c2
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Thu May 16 15:04:02 2013 -0700

    Merge branch 'stschulte-ticket/stable/6371_reset_lastchg_on_solaris'
    
    * stschulte-ticket/stable/6371_reset_lastchg_on_solaris:
      (#6371) Update lastchg field when updating password

commit de34775588b68ce6294b377f5835365e2431e35a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu May 16 15:00:42 2013 -0700

    (#20742) Only use certifcate info if there is a CN
    
    Because of the changes to puppet/util/ssl for this issue, the DN
    was now always able to be parsed into something. This uncovered that the
    logic around deciding on the node name and authentication status for the
    request was incorrectly based off of simply the existance of a DN in the
    headers. This caused a DN that was missing a CN to have an unknown node
    for a request, which could be marked as authenticated if the verify
    header was "SUCCESS".
    
    This patch fixes it by basing the decision of using the SSL headers on
    the existance of the CN instead of the DN. Now a CN must be present
    (e.g. a valid DN) for the verify header to be used. When no CN is
    present, then it is treated the same as no DN being present, which
    causes a reverse DNS lookup to be done for the node name.

commit 82678c28fd2309d4215ee7f16819aebda0b75a64
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun May 12 12:02:09 2013 +0200

    (#6371) Update lastchg field when updating password
    
    On Solaris the password= method updates the `/etc/shadow` file directly
    to set the new password but it does not update the `lastchg` field to
    the current day. This way a password can expire even though it was
    updated with puppet.
    
    The fix was first supplied in commit 6ef1d3a but was later removed after
    a refactor in 7900a66.

commit ab670d1301cfd15867a065cf3a9153d921d41a60
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu May 16 14:15:16 2013 -0700

    (#20742) Handle DNs that cannot be parsed
    
    When no DN is sent in a RACK setup (passenger behind apache), the DN
    that the master sees for unauthenticated requests ends up being the
    string "(null)". The openssl name parsing functions do not handle data
    that doesn't look like a DN in a useful manner. If the string to be
    parsed as a DN does not contain an equals sign ("="), then it will fail
    with an error like:
    
      TypeError: can't convert nil into String
      # ./lib/puppet/util/ssl.rb:26:in `call'
      # ./lib/puppet/util/ssl.rb:26:in `block in subject_from_dn'
      # ./lib/puppet/util/ssl.rb:24:in `each'
      # ./lib/puppet/util/ssl.rb:24:in `subject_from_dn'
    
    This same code also would fail with a OpenSSL::X509::NameError if the
    parsed DN contained an unknown part (RDN), e.g. "no=yes".
    
    This commit fixes the malformed DN by checking that the DN contains at
    least an equals sign before trying to parse. It also then handles all
    OpenSSL::X509::NameError problems.

commit d21da80fada545469b1a0eb2dc8568dea2df1105
Merge: 2f6290d e0ed1ef
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu May 16 13:47:12 2013 -0700

    Merge branch 'pull-1648'
    
    This closes GH-1648

commit 813db42e1b09d523759adbf2cd6d1aa1d91011a6
Merge: 6862676 4274d66
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Thu May 16 13:31:48 2013 -0700

    Merge branch 'ticket/stable/20726-usermod-command-arguments-out-of-order' into stable
    
    * ticket/stable/20726-usermod-command-arguments-out-of-order:
      (#20726) Manage home has issues on Solaris
      (#20726) Include password for useradd managehome tests on windows
      Revert "Merge branch 'pull-1512'"
      (#20726) Add user managehome acceptance tests

commit 76664aee3d66cc52b462da24d39be3ef9f156ed3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu May 16 13:31:00 2013 -0700

    (Maint) Give each test a meaningful name
    
    The tests being put all together did not provide any explanation about
    what was interesting about each situation. This obscures other
    interesting cases that may not be covered and also provides little to no
    specification to later developers who may need to know what the cases
    being handled are.

commit 4274d669f34eec5cb927325dc53b4f7a7ccb2e93
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed May 15 23:01:49 2013 -0700

    (#20726) Manage home has issues on Solaris
    
    On Solaris, executing `usermod -d dir username` where dir is the user's
    home directory as reported by `puppet resource user username` will fail
    with the error:
    
        UX: useradd: ERROR: Path must not start with '/home/'
    
    It appears the new directory must be of the form
    '/export/home/username'. Since this issue is unrelated to #20726, I'm
    marking this test as pending on Solaris.

commit 46df39d78e07a8e642d858b331a1b2460bd2ab49
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed May 15 16:54:34 2013 -0700

    (#20726) Include password for useradd managehome tests on windows
    
    The new acceptence tests for managing the home directory fails on
    Windows because windows requires a sufficiently complex password to be
    specified when creating the home directory.
    
    With that said, managing the home directory is broken on windows with
    ruby 1.9 (#20768). This marks the test as pending when not running ruby
    1.8.
    
    Paired-with: Josh Cooper <josh@puppetlabs.com>

commit 855cad86b759e5af4805af7e23b7fd491c213256
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue May 7 13:56:11 2013 -0700

    (static compiler) Add method documentation
    
    The static compiler doesn't have much documentation around the various
    methods and the method signatures. This commit adds basic documentation
    for method signatures and the purpose of methods.

commit e0ed1ef56eb8425a5cb3ef8154f29f3028cde878
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu May 16 11:06:16 2013 -0700

    (#11108) Test coverage for remote pkg file
    
    The current implementation of tests for the pkgdmg provider only test
    the behavior for packages without a file extension if they're being
    installed locally. This commit adds tests for remote pkgs so that if a
    file extension is not given in the package tile, it's extracted from the
    package source.

commit 6f923799fbdbbcded80641f9b8bb4bdd8672f374
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed May 15 15:32:33 2013 -0700

    Revert "Merge branch 'pull-1512'"
    
    This reverts commit 9c22753eee23db85fb9a3774d25b26a468db8d7e, reversing
    changes made to cb9927f49fd1512720177ad77395a1586f86cbd1.
    
    This commit is being reverted because #20726 revealed a bug with the new
    managehome home behavior of useradd.

commit 0588e57146acafee860c72f83309735e3694dddb
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Wed May 15 15:16:45 2013 -0700

    (#20726) Add user managehome acceptance tests
    
    There were no acceptance tests covering the behavior of user providers
    when managing home directories.
    
    This commit adds two acceptance tests, one for testing when the home
    directory is managed, and one test when the home directory is no longer
    being managed.
    
    Paired-with: Josh Cooper <josh@puppetlabs.com>

commit 2f6290d518175fa910b11995591e53b44745075a
Merge: f631a72 5692576
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 15 16:56:48 2013 -0700

    Merge branch 'maint-rcstatus_stub'

commit 56925761bde047062d2d71b38777bfa03a2d15fd
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 15 16:55:31 2013 -0700

    (maint) stub out Puppet::Util.which for openrc
    
    Puppet::Util is both mixed in to Puppet::Provider and is also invoked
    directly by Puppet::Util::CommandDefiner. We have to stub out the #which
    method on the Provider class and the Util module because we don't know
    how the method will be invoked.

commit f631a7218400c737f750ae81da37ecdf42cc7bc8
Merge: 244d06c 9ffb5a9
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 15 16:18:47 2013 -0700

    Merge branch 'pull-1646'
    
    This closes GH-1646

commit 9ffb5a9680f6c27d64b0127d5f019b0597aeec33
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 15 14:28:29 2013 -0700

    Ensure that openrc service provider wipes RC_SVCNAME variable

commit 15815f90daaf0797ca466f14f09ea9d96ed8a52f
Author: Kosh <kosh@nervhq.com>
Date:   Tue May 14 11:32:32 2013 +1000

    Fix for rc-status not showing puppet when puppet is run as a service
    
    /bin/rc-status doesn't show the service specified in the environment
    variable "RC_SVCNAME", which when puppet is started as a service is set
    to "puppet".
    
    Updated to use "has_command" instead of ENV.delete

commit 244d06c9dd81ebf1de1609af152fa914609bff48
Merge: 218006d 40c08ef
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 15 16:11:20 2013 -0700

    Merge branch 'pull-1641'
    
    This closes GH-1641

commit 218006dbe4cfb9e8a475f838dca95f0d28dfd8bf
Merge: 241c2e1 943eba6
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 15 14:53:37 2013 -0700

    Merge pull request #1645 from jeffmccune/clarify_merge_up
    
    (RFC) Clarify the merge-up process in COMMITTERS

commit 241c2e14c66de44173554ab4f9b2219c5a79334e
Merge: 8e7c7d3 47d9941
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 15 13:16:12 2013 -0700

    Merge branch 'maint-stub_aptitude_dpkgquery'

commit 47d99410eee9540046f77e4081ad623f87667cbd
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 15 13:04:50 2013 -0700

    (maint) stub `dpkgquery` in aptitude specs
    
    The Puppet::Provider.command method will attempt to look up a command
    and will verify that it's present on the system with Puppet::Util#which.
    If the underlying command is not present an exception will be raised,
    and this was causing spec tests to fail. This commit stubs out the
    `dpkgquery` command in the aptitude spec provider so that the specs can
    be run on platforms that don't have /usr/bin/dpkg-query.
    
    Paired-with: Joshua Partlow <joshua.partlow@puppetlabs.com>

commit 8b8b53ce68ffad1f29f21465126d3197b5fe6b14
Author: Juan Ignacio Donoso <jidonoso@gmail.com>
Date:   Wed May 15 00:28:44 2013 -0400

    (#11108) Make the pkgdmg provider able to install a remote flat pkg file
    
    Without this patch applied when the pkgdmg provider is used to install a remote flat pkg file, the installation fails. This is becasue the installer expect a file with the .pkg extension and the curl command used to download the remote package set as output a filename without any extension. This patch fixes the problem by adding the correct extension to the curl output parameter.

commit 8e7c7d32a6a51ad5070b62aa36f6d884e1a94305
Merge: f5bd405 e96ac6b
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue May 14 15:41:25 2013 -0700

    Merge branch '19875-package-descriptions-feature'
    
    * 19875-package-descriptions-feature:
      (#19875) Package descriptions obtained by rpm/dpkg providers

commit e96ac6b6abb9f387e9b8cd097b024aaa4bc656ee
Author: Josh Partlow <joshua.partlow@puppetlabs.com>
Date:   Tue Apr 30 19:02:04 2013 -0700

    (#19875) Package descriptions obtained by rpm/dpkg providers
    
    Previously Puppet::Provider::Package::Rpm and Dpkg implementations
    obtained package information from the system without capturing package
    description information.
    
    This change modifies the rpm and dpkg-query format strings to include
    descriptions.  This can be used for querying package state on a node.
    
    The rpm implementation is a simple change relying on a SUMMARY field
    which is a single line and which does not change the one line per
    package parsing structure in the Rpm class.
    
    The dpkg implementation is a more complicated change because we are
    using a DESCRIPTION field in dpkg-query's format string, which is a
    multi-line value.  The first line is a summary, and is all we want, but
    dpkg-query then print's x additional lines of long description.  A new
    parse_multi_line method has been added to treat these multi-line results
    as a single entry, grab the first line with summary and ignore the
    excess lines without triggering warnings.  Completely invalid package
    entry results should still trigger warnings.
    
    Current dpkg-query versions (as of 1.16.2 from 2012, I believe) have a
    binary:Summary field which would return this to a single line parse and
    make it simpler and less error prone again.  But earlier Debian/Ubuntu
    installations don't have this (Ubuntu 12.04 for instance).
    
    Dpkg.instance, Dpkg#query both used a Dpkg.dpkgquery_piped to expose an
    IO pipe for parsing.  Regex match used in Rpm to ensure we only consume
    good query output lines.

commit 68626769e2f8d1cfc049688fd7ce137fe3358365
Merge: 3b8a006 8739fa5
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue May 14 09:53:28 2013 -0700

    Merge branch 'release_3.2.0' into stable

commit 8739fa5a8a37acf4f2cdc3ba74553867ccdcc609
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue May 14 09:50:34 2013 -0700

    (packaging) Update PUPPETVERSION to 3.2.0

commit 40c08ef853bcda047d30a1267c6f62cdaa74768c
Author: Anton Lofgren <alofgren@op5.com>
Date:   Tue May 14 09:03:56 2013 +0200

    (#20677) Add tests to ensure configuration errors are raised as expected
    
    I also took the liberty of adding a add_raw_stanza helper function. It
    doesn't really do much, but it seems like a good idea to me to keep the specs
    as clean as possible. Maybe having two separate cases for allow &
    allow_ip is a bit overzealous, but I guess the overhead is minimal.

commit a27f3dc427baa56f68020f4daee52c35ea4daa7a
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Mon May 13 14:33:32 2013 -0700

    (#20442) Filter attributes to only those managed
    
    Prior to this commit, when trying to manage `attributes` for AIX users,
    2 behaviours were occuring: 1) unmanaged attributes were included in the
    "diff" and 2) regardless of current state, the changes were always
    applied. This commit filters the changeset to only those `attributes`
    explicitly mentioned in the manifest (or all of them in the case of
    `puppet resource user`. Because the changeset is now sane, a change is
    only enforced when necessary.

commit f5bd40571c1a587382b9d70ca028bb1269aa5946
Merge: e130aa5 3b8a006
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Mon May 13 16:16:48 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (#19760) Remove unnecessary stubbing in sun_spec
      (#19760) Use pkginfo method instead of execute
      (#19760) Use combine when running pkginfo

commit 3b8a006d6ddf0cb495a4a5dfd3db167a2425717e
Merge: 47fd6f9 f04d271
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Mon May 13 15:57:29 2013 -0700

    Merge branch 'ticket/stable/19760_fix_sun_provider' into stable
    
    * ticket/stable/19760_fix_sun_provider:
      (#19760) Remove unnecessary stubbing in sun_spec
      (#19760) Use pkginfo method instead of execute
      (#19760) Use combine when running pkginfo

commit f04d2710421a3238f310d9ddd0ddfdfc01bd96e5
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Fri May 10 18:14:31 2013 +0200

    (#19760) Remove unnecessary stubbing in sun_spec
    
    We do not have to stub the `command` method anymore because it is
    nevery called directly. It is only called through the wrapper method
    `pkginfo` which we already stub in the specs.

commit 887c20376e0208ceb10f672061314d4af2355b2f
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu May 9 01:17:32 2013 +0200

    (#19760) Use pkginfo method instead of execute
    
    The pkginfo method is automatically created for us and provides a nice
    wrapper around execute so prefer that one over building your own execute
    method invocation. Please not that the buildin method does already set
    combine to true so we are able to parse error messages

commit 5e091bba91bffb5f7d46222ee1621e211480942c
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu May 9 01:01:26 2013 +0200

    (#19760) Use combine when running pkginfo
    
    pkginfo was previously executed with combine => false so stderr was
    discarded. This way puppet was unable to detect any errors the pkginfo
    might print, especially the message `ERROR: information for
    "some_package" was not found`.
    
    As a result the provider failed every time it tries to check the current
    state of an absent package.

commit 943eba66c6830a3e0216d6c6ecbc09a4cdfa245d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon May 13 15:14:38 2013 -0700

    (maint) Clarify the merge-up process in COMMITTERS
    
    Without this patch some of the committers are using a process that
    involves merging a topic branch based on stable into both `stable` and
    `master`.  This is a problem because it's confusing and inconsistent
    from other committers who are merging a topic branch into `stable`, then
    merging `stable` into `master.
    
    The two processes, while equivalent in nature, produce different and
    inconsistent log messages when reviewing `git lg`.  For example, the
    following log is produced by the process that does not merge up:
    
        *   e130aa5 Merge branch 'maint/stable/filebucket_clarifications' 30 minutes ago Hailee Kenney  (HEAD, origin/master, master)
        |\
        | * b301ada Maint: Improve documentation of filebucket attributes 33 minutes ago Nick Fagerlund
        * |   9aa9d69 Merge pull request #1636 from adrienthebo/maint-readme_developer_explain_side_effects_in_tests 3 days ago Hailee Kenney
        |\ \
        * \ \   515cd97 Merge pull request #1639 from Sharpie/18895-fix-runit-documentation 3 days ago Hailee Kenney
        |\ \ \
        | * | | 713bcbe (#18895) Fix documentation in runit provider 3 days ago Charlie Sharpsteen
        |/ / /
        * | |   4c2655f Merge pull request #1637 from jeffweiss/tickets/bug/18393_diffargs_broken_on_aix53 4 days ago Chris Price
        |\ \ \
        | * | | bb86ff6 (#18393) AIX 5.3 doesn't support diff -u 4 days ago Jeff Weiss
        * | | |   325b8bf Merge pull request #1635 from hlindberg/issues/fix-20581 5 days ago Adrien Thebo
        |\ \ \ \
        | |/ / /
        |/| | |
        | | * | a3941d4 (maint) Add documentation on side effects in tests 6 days ago Adrien Thebo
        | * | | 23005e6 (#20581) Correct parser future's validation of query expression 7 days ago Henrik Lindberg
        |/ / /
        | | * edfabfd (packaging) Update PUPPETVERSION to 3.2.0-rc2 7 days ago Matthaus Owens  (3.2.0-rc2)
        * | |   8c0e1b3 Merge branch 'stable' 7 days ago Jeff McCune
        |\ \ \
        | | |/
        | |/|
        | * |   761de6b Merge branch 'fix_activerecord_centos' into stable 7 days ago Jeff McCune
    
    Compare this to the log of the stable branch and observe how there are two very
    similar merge commits with the log `Merge branch
    'maint/stable/filebucket_clarifications'`  Please observe these similar commit
    messages have different commit ID's, e130aa5 and 47fd6f9 respectively, and both
    merge commits are bringing in the change contained in b301ada.
    
        *   47fd6f9 Merge branch 'maint/stable/filebucket_clarifications' into stable 33 minutes ago Hailee Kenney  (origin/stable, stable)
        |\
        | * b301ada Maint: Improve documentation of filebucket attributes 34 minutes ago Nick Fagerlund
        |/
        * edfabfd (packaging) Update PUPPETVERSION to 3.2.0-rc2 7 days ago Matthaus Owens  (3.2.0-rc2)
    
    Using the merge-up process made clear in this patch, the history will look as
    follows:
    
        *   1f79310 Merge branch 'stable' 5 seconds ago Jeff McCune  (HEAD, master)
        |\
        | *   c6f6ffb Merge branch 'fix/stable/clarify_merge_up' into stable 45 seconds ago Jeff McCune  (stable)
        | |\
        | | * 44b999c (maint) Clarify the merge-up process in COMMITTERS 53 seconds ago Jeff McCune  (fix/stable/clarify_merge_up)
        | |/
        * |   e130aa5 Merge branch 'maint/stable/filebucket_clarifications' 35 minutes ago Hailee Kenney  (origin/master)
        |\ \
        | | *   47fd6f9 Merge branch 'maint/stable/filebucket_clarifications' into stable 36 minutes ago Hailee Kenney  (origin/stable)
    
    This minor difference also has the effect of making `git branch --contains
    c6f6ffb` much more useful, as both `master` and `stable` will contain merge
    commits made into `stable`.

commit e130aa5cc36cc139ec16b37db01c0d26ca7f449c
Merge: 9aa9d69 b301ada
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Mon May 13 14:47:35 2013 -0700

    Merge branch 'maint/stable/filebucket_clarifications'
    
    * maint/stable/filebucket_clarifications:
      Maint: Improve documentation of filebucket attributes
      (packaging) Update PUPPETVERSION to 3.2.0-rc2

commit 47fd6f9cd027195ab171ebeb48d35ea208f5084d
Merge: edfabfd b301ada
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Mon May 13 14:46:16 2013 -0700

    Merge branch 'maint/stable/filebucket_clarifications' into stable
    
    * maint/stable/filebucket_clarifications:
      Maint: Improve documentation of filebucket attributes

commit b301ada127cfe269687663b8446721971947ce6c
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon May 13 12:26:26 2013 -0700

    Maint: Improve documentation of filebucket attributes
    
    The docs were unclear and partially inaccurate about the behavior of the
    filebucket type's path and server attributes. I have tested the precedence of
    these and documented the actual behavior. This commit also improves docs for the
    file type's "backup" attribute and the static compiler, in light of what was
    learned about default values.

commit 86fd7fabefd456a1a1ecb456e80e2eccfe6192ea
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri May 10 14:51:25 2013 -0700

    (#20442) only execute lscmd once
    
    Prior to this command, the AixObject provider was executing the lscmd
    three times because the output is parsed in different ways. This commit
    changes the provider to simply used the cached output in subsequent
    parse commands.

commit a17114a6e7d767573e2f6f05a8699d4a366a90b3
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri May 10 11:00:59 2013 -0700

    (#20442) Add tests for attribute conversion methods
    
    Prior to this commit, no tests existed for the AixObject base provider
    attribute conversion methods. This commit adds tests to verify validity
    and structure of the attribute conversion methods.

commit 230a0eeb5f4dfd5e47a75d908162e3bc0600a065
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri May 10 09:46:19 2013 -0700

    (#20442) Add tests for base provider methods
    
    Prior to this commit, the base AixObject provider was supposed to raise
    a Puppet::Error if called on several of the base methods; however, no
    tests existed and those methods instead raised an error because the
    non-existant `detail` was left in the error message from some copypasta.
    This commit begins adding tests for the AixObject provider by starting
    with these methods.

commit 55d62aa66a507165fd4f17f716a1e9fe49ccadab
Author: Anton Lofgren <alofgren@op5.com>
Date:   Mon May 13 11:54:35 2013 +0200

    (#20677 Raise error on missing path for auth stanza)
    
    This patch raises a ConfigurationError when the user has specified an
    allow/allow_ip directive without a preceding path directive.
    This is, presumably, a bit more user friendly than having a NilClass
    exception thrown when you forget to specify the path directive in your
    auth.conf

commit 9aa9d699921f9760eb8154e034cdeb48e8a7503b
Merge: 515cd97 a3941d4
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Fri May 10 16:11:02 2013 -0700

    Merge pull request #1636 from adrienthebo/maint-readme_developer_explain_side_effects_in_tests
    
    (maint) Add documentation on side effects in tests

commit 515cd97bdda01f6df813b2e300af291fb41e789e
Merge: 4c2655f 713bcbe
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Fri May 10 15:24:05 2013 -0700

    Merge pull request #1639 from Sharpie/18895-fix-runit-documentation
    
    (#18895) Fix documentation in runit provider

commit 713bcbea376512cf2baec8ab5ae9c2fcb737a641
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Fri May 10 09:49:10 2013 -0700

    (#18895) Fix documentation in runit provider
    
    The documentation and error messages for the runit provider made a couple of
    statements that were inconsistent with the code:
    
      - `/etc` is not checked as a daemon directory. The path checked is `/etc/sv`.
    
      - `/var/lib/service` is checked as a daemon directory, but this wasn't
        documented.
    
      - The service directory `/etc/service` is checked before `/var/service`.

commit 4c2655ff49431c18abc3f5db91ae62f04d8e2686
Merge: 325b8bf bb86ff6
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu May 9 12:10:41 2013 -0700

    Merge pull request #1637 from jeffweiss/tickets/bug/18393_diffargs_broken_on_aix53
    
    (#18393) AIX 5.3 doesn't support diff -u

commit bb86ff63e1f349db43eefa82babf3a67a138702c
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed May 8 15:41:33 2013 -0700

    (#18393) AIX 5.3 doesn't support diff -u
    
    Prior to this commit, the diffargs where always `-u`, which is not
    supported on AIX 5.3, an official PE supported platform. This commit
    adds a utility method to abstract away the logic for what the default
    diffargs should be and then calls that for the default value.

commit 325b8bfad69f48d04059ecf3478b56950433933c
Merge: 8c0e1b3 23005e6
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 8 15:46:33 2013 -0700

    Merge pull request #1635 from hlindberg/issues/fix-20581
    
    (#20581) Correct parser future's validation of query expression

commit a3941d41844155480587ba1f5ae76a881905619c
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue May 7 10:11:01 2013 -0700

    (maint) Add documentation on side effects in tests

commit 23005e605ccbf5e2ad357449fb5b3c684bec394d
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue May 7 04:05:38 2013 +0200

    (#20581) Correct parser future's validation of query expression
    
    The QueryExpression validation was performing validation by
    checking if the query vas an r-value. It should check if the query
    expression is a valid query.
    
    This corrects this (probable) copy/paste error.

commit edfabfdd94253370da0e4778eeb3fdb63c353389
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon May 6 17:40:04 2013 -0700

    (packaging) Update PUPPETVERSION to 3.2.0-rc2

commit 8c0e1b385aa4e29fd2c9be8d5265a8573c608be6
Merge: 5166625 761de6b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon May 6 14:27:32 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Use activerecord 2.2.3 on CentOS 5

commit 761de6b36a984c959bec5760df9e093743da10cf
Merge: bdb5329 1b65f90
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon May 6 14:27:18 2013 -0700

    Merge branch 'fix_activerecord_centos' into stable
    
    * fix_activerecord_centos:
      (maint) Use activerecord 2.2.3 on CentOS 5

commit 1b65f90474538298f72bb1627896c2df3b756f5d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon May 6 14:23:12 2013 -0700

    (maint) Use activerecord 2.2.3 on CentOS 5
    
    Without this patch the ENC acceptance test is attempting to install
    activerecord 3.0.20 on CentOS 5.  This is a problem because activerecord
    3.0.20 requires a more recent version of rubygems than is available in
    CentOS 5 resulting in activerecord not being installed.
    
    This patch addresses the problem by using a selector to install an older
    version of activerecord on EL 5 systems, allowing the test to pass
    successfully.

commit 51666251eae9d779c6816ee79fcb0f43870767ce
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat May 4 03:16:28 2013 +0200

    (maint) Corrects manual edit in generated eparser.rb
    
    NEVER CHANGE A GENERATED FILE! There is a big warning at the top
    of the file!
    
    In this case, the puppet/util/loadedfile.rb was removed and the
    egrammar.ra file contained a require of this file. A manual edit was
    made of the generated egrammar.rb where the require was removed. This
    means that on the next regeneration of the grammar this require
    reappears.
    
    This corrects this mistake.

commit 3326e2a9339c58dd11979c2b58d2b6974d7ccf7d
Merge: 667b729 c7c52bf
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri May 3 14:31:20 2013 -0700

    Merge branch 'issue/master/20447-filetimeout0-causes-master-to-exit-full'
    
    * issue/master/20447-filetimeout0-causes-master-to-exit-full:
      (Maint) Document Puppet::Daemon
      (Maint) Mark the Puppet:Daemon private
      (Maint) Remove duplication btwn Daemon and Server
      (Maint) Remove unused register code for Server
      (Maint) Clean up Daemon tests
      (Maint) Inject scheduler into Daemon
      (Maint) Inject Pidlock dep into Daemon

commit c7c52bf7bfd5c818a086dfd9ff144f616719f125
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed May 1 09:16:07 2013 -0700

    (Maint) Document Puppet::Daemon
    
    The Daemon code is getting better, but is still not the clearest thing
    in the world. This adds some class documentation that tries to clarify
    the parts of the daemon.

commit 941d72d76cea2d89abe20bb6edcaf84a3939fd3b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Apr 30 20:00:00 2013 -0700

    (Maint) Mark the Puppet:Daemon private
    
    The Daemon code is an internal implementation of how we create our
    master and agent processes. Others should not rely on it. This also
    hides some of the internal handling methods (for managing the pidfile).

commit f2eda3c3098f6c4f45acf248e33fbb02783a1456
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Apr 30 20:20:25 2013 -0700

    (Maint) Remove duplication btwn Daemon and Server
    
    The Puppet::Network::Server had a lot of the same code as the
    Puppet::Daemon (closing filehandles, managing a pidfile for locking).
    There was a comment in the Server class that indicated that it was not
    even clear if the duplicate code was being used.
    
    It turns out that the code was being used, but was incorrect. By turning
    on debug and watching the log output of the master, you were able to see
    that the close_streams was happening twice, as you would expect by
    following the code paths. There is no need for this to happen. In
    addition the pidfile is managed twice. This was discovered by
    instrumenting the code with a debug statement and noticing that the
    pidfile was locked 3 times (one from the server, one from the daemon,
    and one more from an unclear location).
    
    Removing all of this turns Puppet::Network::Server into a simple wrapper
    around the WeBrick code, reduces the overhead for daemonizing, and
    clarifes the pid as lockfile ownership.

commit 7847d49c7189e8b2418cd6fe4bba2045a2effd72
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Apr 30 20:02:10 2013 -0700

    (Maint) Remove unused register code for Server
    
    The Puppet::Network::Server class seems to have atrophied over time.
    There are multiple redundant or unused code paths in it.
    
    This commit removes the "registration" facility for the network server
    to handle certain indirections. There were no users of these outside of
    the tests and there is no functionality that they provided. The only
    thing the registration of indirection names did was check to see if such
    an indirection existed. I believe that at one point these had been meant
    to act as a per-server handling facility (as indicated by one of the
    test names), but they no longer serve such a purpose.

commit 4dce47635082e231b627836fcd0865197d89c217
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Apr 30 19:14:31 2013 -0700

    (Maint) Clean up Daemon tests
    
    The Daemon tests were relying on a lot of instance variables and stubing
    the class under test. This removes that.

commit 1425d8c918e82e25d9b67c427c418b980233590a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Apr 30 17:47:16 2013 -0700

    (Maint) Inject scheduler into Daemon
    
    By injecting the scheduler into the Daemon we can provide a different
    one during testing that allows us to cleanly check what the jobs are
    that the Daemon will be running.

commit f3bc090f4438f184591d3632911bafde800818a5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Apr 30 16:06:58 2013 -0700

    (Maint) Inject Pidlock dep into Daemon
    
    While trying to understand several different code paths in the
    Puppet::Daemon code the realization that the tests for the daemon code
    had to mock internal methods on the class under test caused me worry. By
    removing the mocking of the internal methods it was obvious that there
    was another collaborator that is a locking service at play. Services
    should normally be injected into, and not created by, the consumer of
    the service.
    
    This injects the Puppet::Util::Pidlock into the Daemon and reworks the
    points of construction of Daemon objects so that the correct information
    is available at the point of construction. This require moving the
    Daemon creation from the preinit methods to the setup or run methods in
    order to ensure that command line processing and therefore Puppet#[] was
    ready at the point of construction so that the correct Puppet[:pidfile]
    could be used.

commit 667b72979c10031ef100cc5b159868c604e38946
Merge: a7847c2 bdb5329
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri May 3 12:13:48 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Fix enc with storedconfigs failure on Fedora 18

commit bdb53292df0350af61cfd0f4e43770cd5ef0b9db
Merge: 2efa2ef fd6fe08
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri May 3 12:13:13 2013 -0700

    Merge branch 'fix_enc_node_issue' into stable
    
    * fix_enc_node_issue:
      (maint) Fix enc with storedconfigs failure on Fedora 18
    
    closes #1634

commit fd6fe080244d91a78a4248a6acf02e939987d985
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri May 3 12:00:10 2013 -0700

    (maint) Fix enc with storedconfigs failure on Fedora 18
    
    Without this patch the acceptance test that exercises the behavior of
    the ENC script when ActiveRecord storedconfigs is enabled fails on
    Fedora 18.  We need this to pass for the Puppet 3.2 release.
    
    The root cause of this problem is that the test setup phase assumes the
    package name for the sqlite ruby gem is rubygem-sqlite3-ruby.  This is
    true for CentOS and RHEL systems, but Fedora 18 uses a package name of
    rubygem-sqlite3.
    
    This patch addresses the problem by using a Puppet selector to change
    the package name depending on the operating system of the system under
    test.
    
    Paired-with: Josh Partlow

commit a7847c2337ca1f744734095942dc902bc9a221d3
Merge: c961062 ba7576d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri May 3 11:18:14 2013 -0700

    Merge remote-tracking branch 'pr/1607'

commit c961062052815d308e011764a614e604842ba56e
Merge: 4b620ec b922fe3
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri May 3 11:14:06 2013 -0700

    Merge branch 'pull-1622'
    
    This closed GH-1622

commit b922fe3f38d059ac37496879bd1f8d2e4a826106
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri May 3 10:55:14 2013 -0700

    Add unit tests to ensure false values are cached

commit deb924e953e8648dd806cc6552e8892991bb6ad6
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri May 3 10:54:57 2013 -0700

    (maint) add yardoc for Puppet::Settings#value

commit 4b620ec2db40264f62399cedd596e51adf98eb08
Merge: 0205d12 2efa2ef
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu May 2 16:13:44 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (#14615) Exclude solaris from service name acceptance test
      Revert "Revert "Merge branch 'nicklewis-fix-puppet-resource-service-test' into stable""

commit 2efa2ef7b32e646d1b74e01f0fa58c69db202281
Merge: 053a743 d36b4e2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu May 2 16:13:32 2013 -0700

    Merge branch 'stable_14615_fix_services' into stable
    
    * stable_14615_fix_services:
      (#14615) Exclude solaris from service name acceptance test
      Revert "Revert "Merge branch 'nicklewis-fix-puppet-resource-service-test' into stable""

commit d36b4e208874a29496e495254ab3aa9720eee3c9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu May 2 11:30:19 2013 -0700

    (#14615) Exclude solaris from service name acceptance test
    
    Without this patch the ssh service acceptance tests that ensures the
    service providers do not modify the system in d4ced36 are failing on
    Solaris 10.  The failures are a result of the service name for ssh being
    wildly different on solaris.  On solaris the name is
    `svc:/network/ssh:default` which differs considerably from the Linux
    convention of `ssh`.
    
    This patch addresses the problem by excluding the acceptance test from
    running on Solaris systems.

commit 60545d309fbf83ce4d5e99497b72447656a8b871
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu May 2 11:10:36 2013 -0700

    Revert "Revert "Merge branch 'nicklewis-fix-puppet-resource-service-test' into stable""
    
    This reverts commit bbb1ee2418ff04dafa91534e1c3dad41c8c27bbd.

commit 0205d12767b68169388277e28387237f00429b7c
Merge: 5eafcef 053a743
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu May 2 16:11:41 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (#17887) Ensure log message is initialized when Exception raised

commit 053a743a181d53d1868140db8a56bce3a371e561
Merge: e9e0077 1064973
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu May 2 16:11:23 2013 -0700

    Merge branch 'domcleal-tickets/master/17887-resource-log-msg' into stable
    
    * domcleal-tickets/master/17887-resource-log-msg:
      (#17887) Ensure log message is initialized when Exception raised
    
    closes #1614

commit 1064973ad80344abcfb9129364493cf98bbf3fc6
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Nov 30 23:00:19 2012 +0000

    (#17887) Ensure log message is initialized when Exception raised
    
    It's possible to run the "ensure" block without having executed either the
    main or "rescue" blocks, if an Exception not derived from StandardError is
    raised or when testing with Mocha expectations.
    
    If this happens during the property.sync, this causes an immediate exit from
    the main block, but the "ensure" block is still run.  The event message won't
    have been initialized yet, so this then causes the logger to report:
    
      Puppet::Util::Log requires a message
    
    This ensures a message is logged from the context of the resource before
    letting the exception propagate up to the application.

commit 5eafcef9557c4dd700673ccaf3c0cba09fe00f5d
Merge: cd02a22 e9e0077
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri May 3 00:07:26 2013 +0200

    Merge branch 'stable'

commit e9e00774c0da3ca1385905606a881605a27c88e5
Merge: 9be0deb 3251ebd
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu May 2 15:06:21 2013 -0700

    Merge pull request #1627 from zaphod42/issue/stable/20447-filetimeout0-causes-master-to-exit
    
    (#20447) Wait for server to shutdown before exiting daemon

commit cd02a223527d7053772c48c055de1ed2d33ccb5a
Merge: e2918bc 9be0deb
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu May 2 23:23:38 2013 +0200

    Merge branch 'stable'

commit 9be0deb3fecf8e9fca079990f0c6554676aac1f8
Merge: f5fb329 e0e8d60
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu May 2 14:22:08 2013 -0700

    Merge pull request #1631 from domcleal/tickets/stable/20520-rgen-062
    
    (#20520) Update rgen to 0.6.2, remove Array monkey patches

commit e2918bc4ede4b535c6b18da671695bbd50a8e34f
Merge: f966977 f5fb329
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu May 2 10:13:57 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) `--parseonly` lambda arity must match number of arguments
      Maint: Lambda arity must match number of arguments
      Revert "(maint) Remove acceptance test for puppet --parseonly deprecation"

commit f5fb3290b3b83fb82d939d9499f01b170a9baee8
Merge: 6cb6585 6a827b5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu May 2 10:13:37 2013 -0700

    Merge branch 'fix_cli_arity' into stable
    
    * fix_cli_arity:
      (maint) `--parseonly` lambda arity must match number of arguments
      Maint: Lambda arity must match number of arguments
      Revert "(maint) Remove acceptance test for puppet --parseonly deprecation"
    
    closes #1632

commit 6a827b513f0d09bbd605a4ab8e2c789012cd4efa
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu May 2 10:08:57 2013 -0700

    (maint) `--parseonly` lambda arity must match number of arguments
    
    Running `puppet apply --parseonly` and `puppet master --parseonly` fails on
    ruby 1.9, because the arity of the option method was 0, yet was being invoked
    with an argument, the manifest to parse. Under ruby 1.8, this mismatch was
    allowed, but not 1.9.
    
    This patch builds upon Josh's patch in e9c25f6, the previous patch only
    addressed `puppet apply` while the acceptance test uses both `puppet apply` and
    `puppet master`.  In order to address the test failure this patch adds the
    block arguments for both apply and master.
    
    See acceptance/tests/ticket_6928_puppet_master_parse_fails.rb

commit 7eeb53f1c122465a781dd416e843c77e291f51e5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Apr 19 00:54:18 2013 -0700

    Maint: Lambda arity must match number of arguments
    
    Running `puppet apply --parseonly` fails on ruby 1.9, because the arity
    of the option method was 0, yet was being invoked with an argument, the
    manifest to parse. Under ruby 1.8, this mismatch was allowed, but not
    1.9.
    
    See acceptance/tests/ticket_6928_puppet_master_parse_fails.rb

commit 4923f9223c0bf64343ec891ad621813bb8dec2ef
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu May 2 09:44:47 2013 -0700

    Revert "(maint) Remove acceptance test for puppet --parseonly deprecation"
    
    This reverts commit ad762cbe176ad8a53e3f1578b0fd7818c48bd7e9.
    
    This commit is being reverted because the underlying issue is caused by
    a simply MRI block arity issue.  Josh has fixed this in master, so the
    fix will be back-ported to stable for the Puppet 3.2 release.

commit e0e8d60d606142bf724f377c0a0898240e31b160
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Thu May 2 15:55:00 2013 +0100

    (#20520) Update rgen to 0.6.2, remove Array monkey patches
    
    Monkey patches to Array were used to make Array#to_hash fail, which otherwise
    broke Hash[[[]].  The later version of rgen removes the need for these, which
    prevents bad interactions with other libraries and applications.

commit f966977dcfaa05c65e0751970ac5147253e5d6c5
Merge: 6c34ed6 6cb6585
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed May 1 18:22:37 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Remove acceptance test for puppet --parseonly deprecation
      (maint) Add Fedora Core suitability check for password redaction
      (maint) Use activerecord 3.0.20 for acceptance testing
      (maint) Fix uninitialized constant ActiveRecord
      (maint) Remove pending parser validate test
      (maint) Remove empty and pending acceptance test
    
    Conflicts:
    	lib/puppet/application/apply.rb

commit 6cb6585ea56afd918481d31cf66c63276eae3733
Merge: bbb1ee2 ad762cb
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed May 1 18:21:27 2013 -0700

    Merge branch 'fix_acceptance_fedora18' into stable
    
    * fix_acceptance_fedora18:
      (maint) Remove acceptance test for puppet --parseonly deprecation
      (maint) Add Fedora Core suitability check for password redaction
      (maint) Use activerecord 3.0.20 for acceptance testing
      (maint) Fix uninitialized constant ActiveRecord
      (maint) Remove pending parser validate test
      (maint) Remove empty and pending acceptance test
    
    closes #1629

commit ad762cbe176ad8a53e3f1578b0fd7818c48bd7e9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed May 1 17:42:40 2013 -0700

    (maint) Remove acceptance test for puppet --parseonly deprecation
    
    Without this patch the acceptance test for the puppet master --parseonly
    and puppet agent --parseonly is failing.  This is a problem because in
    Puppet 3 the deprecation has been removed and instead Puppet reports an
    error that the command line is incorrect, 1 argument was provided
    instead of the expected 0 number of arguments.
    
    This patch addresses the problem by changing the acceptance test to no
    longer validate the presence of the deprecation warning and instead
    validate the expected behavior of `puppet parser validate`.

commit 9ea8215fae371a91f5423330fa8f4cb0eb0241d6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed May 1 17:26:51 2013 -0700

    (maint) Add Fedora Core suitability check for password redaction
    
    Without this patch the Fedora Core 18 system, prefixed by `fc-` is
    assumed to be able to manage password.  This is a problem because the
    system does not have the shadow gem installed by default.
    
    This patch adds `fc-` to the list of platforms checked for suitability
    before running the acceptance test.

commit 1f1fd6a564784d749c7e95f4397305df2fadb340
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed May 1 16:37:41 2013 -0700

    (maint) Use activerecord 3.0.20 for acceptance testing

commit c0a1d2dd06629597af2b974df7a2ae61ccbb2382
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed May 1 15:02:13 2013 -0700

    (maint) Fix uninitialized constant ActiveRecord
    
    Without this patch the Puppet master is reporting error 400 in the
    acceptance test suite running against Fedora 18, with the error message
    `Could not autoload puppet/indirector/catalog/active_record:
    uninitialized constant ActiveRecord`.  This is causing the
    `enc_provides_node_when_storeconfigs_enabled.rb` acceptance test to
    fail.
    
    The root cause of the problem is attempting to access the ActiveRecord
    constant before loading the library.  This patch addresses the problem
    by making sure the `activerecord` library is loaded prior to accessing
    the constant.
    
    References: https://projects.puppetlabs.com/issues/16670

commit ff8bb456222020c9597eb2ab1be612ca7da316ba
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed May 1 13:56:10 2013 -0700

    (maint) Remove pending parser validate test
    
    This test is failing on my Fedora 18 system under test and it has a
    "real" copy outside of the pending/ directory.

commit b9ba64ffea5c1e538cd85ed0f06dd56080929082
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed May 1 13:55:29 2013 -0700

    (maint) Remove empty and pending acceptance test

commit 6c34ed645695a2bbe48fab9616af4dd3a8081b4a
Merge: 0c1a639 d56aa39
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 1 15:07:24 2013 -0700

    Merge branch '20383-duplicate_resource_error_location'
    
    This supersedes GH-1619

commit 0c1a63920e6c0a999f0266af12084ef4c88227ab
Merge: 13ed1e6 bbb1ee2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed May 1 13:36:51 2013 -0700

    Merge branch 'stable'
    
    * stable:
      Revert "Merge branch 'nicklewis-fix-puppet-resource-service-test' into stable"

commit d56aa3963baf98fae99717631a906f2a0cff706c
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed May 1 11:55:51 2013 -0700

    (#20383) Provide location of duplicate resource in error
    
    Commit ac83f85 cleaned up Puppet::Error and extracted file and line
    presentation into a mixin. However the DuplicateResourceError exception
    was relying on that behavior, and when the behavior was extracted the
    location of the duplicate resource was lost.
    
    This commit mixes in the ExternalFileError mixin and passes the file
    line and number to the exception so that the duplicate resource location
    can be displayed.
    
    Thanks to Richard Clamp <richardc@unixbeard.net> for finding the
    original error and providing the base for this fix.

commit 3251ebd2a08ab483d5a74f0e8950e4536f477e48
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Apr 30 19:14:31 2013 -0700

    (#20447) Wait for server to shutdown before exiting daemon
    
    Previously, if the filetimeout was set to 0 and the puppet master was
    run, the master would exit immediately. This was caused by the scheduler
    having nothing to do and the new logic for it causes it to stop running
    at that point (because once there is nothing to do, there is also no
    chance that something will cause it to having something to do). There
    was a slightly wrong assumption that was being made for that logic: the
    scheduler is in control of all activity in the daemonized process. This
    is not the case.
    
    The daemon has 3 parts to it:
      * configuration reparse
      * agent runs
      * server control
    
    The server does not take part in the scheduler inside the daemon. It is
    assumed to be a separate thread/process, which the daemon will kick off
    when it starts, and stop when the daemon is told to stop. When the
    "start" method of the daemon exits, the daemon itself exits and the
    server will be required to shut down.
    
    There are 2 ways that could be used to solve this problem: have the
    scheduler sit in a busy loop (or sleep forever) when it has nothing to
    do, or wait for the server to finish before the daemon considers itself
    done. This commit uses the latter option.
    
    The new code will wait for the server to finish before the Daemon#start
    method returns. This makes the dependency explicit rather than hidden in
    an infinite loop in the scheduler.

commit d1e65232b52d1cf2417de2771286a2e370523de4
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Tue Apr 30 19:50:04 2013 -0700

    (#17824) PMT should not prefer pre-release versions to existing stable versions.

commit bbb1ee2418ff04dafa91534e1c3dad41c8c27bbd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 30 17:46:46 2013 -0700

    Revert "Merge branch 'nicklewis-fix-puppet-resource-service-test' into stable"
    
    This reverts commit f81c157f23ee637781c7bb1e384c7cb6395bcb27, reversing
    changes made to 38d085c697a530192b02c2badcc4e9a73813e62d.
    
    This change set is being reverted a second time because the acceptance
    test is failing on Solaris 10 which has very different service names.
    
    I'm reverting it because the failure represents work in progress that is
    interrupting other work, even though it is a small regexp.  Based on
    discussion, we might simply need to open the regexp up to:
    
        [10:21 AM] Nick Lewis: @jmccune /.*ssh.*/ perhaps, but that's getting a
        little silly.

commit 13ed1e6d4d261679cfb642887c6a95117bef3d65
Merge: 2be76f5 abebdb0
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 30 17:41:52 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Fix enc_provides_node_when_storeconfigs_enabled on precise
      (maint) Improve failure message
      (#7224) Fix hostname does not match on Ubuntu 12.04
      (maint) Fix install module acceptance test on precise

commit abebdb034daf85b190735b66e5e40a70dbfb920a
Merge: 6d1d6ca 3e97d3f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 30 17:41:29 2013 -0700

    Merge branch 'stable_precise_acceptance' into stable
    
    * stable_precise_acceptance:
      (maint) Fix enc_provides_node_when_storeconfigs_enabled on precise
      (maint) Improve failure message
      (#7224) Fix hostname does not match on Ubuntu 12.04
      (maint) Fix install module acceptance test on precise
    
    closes #1624

commit 3e97d3f7bfdf9114e4074d108bdb6da2d5b19d8a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 30 15:42:15 2013 -0700

    (maint) Fix enc_provides_node_when_storeconfigs_enabled on precise
    
    Without this patch the enc_provides_node_when_storeconfigs_enabled is
    failing on Ubuntu 12.04 LTS with MRI 1.9.3-p0.  The root cause of the
    failure is that the ENC script used does not output valid YAML data,
    it's lacking the `--- ` header.
    
    This patch addresses the problem by using `Hash#to_yaml` to produce
    valid YAML output for the ENC API.

commit a62f08a793a7a9e8b27dbcf92982c265d40b474c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 30 15:13:00 2013 -0700

    (maint) Improve failure message

commit 4d22fbe12167248ce7864ebf3bbdfe4d6e216312
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 30 12:28:16 2013 -0700

    (#7224) Fix hostname does not match on Ubuntu 12.04
    
    Without this patch Puppet does not improve upon the `hostname does not
    match the server certificate` error message coming from OpenSSL.  The
    root cause of this problem is a bad regular expression that matches on
    `error.message =~ /hostname (was )?not match/` when the error message on
    precise is actually `"hostname does not match the server certificate"`
    
    This patch addresses the problem by allowing any word to optionally
    exist between `hostname` and `not` in the error message.

commit c1c7b01bcf8bbc88220ef5270cac38188b6a50e5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 30 11:47:04 2013 -0700

    (maint) Fix install module acceptance test on precise
    
    Without this patch the `with_modulepath.rb` acceptance test is failing
    on Ubuntu 12.04.  The cause of this problem is that `puppet apply` is
    being used to purge the `/etc/puppet/modules2` directory, which doesn't
    appear to be working as expected.  This itself is concerning, but the
    concern is unrelated to the expected behavior expressed in the test.
    
    This patch addresses the problem by simply using `rm -rf` to purge the
    acceptance test instead of using `puppet apply`.

commit 2be76f52b5189bd8878b044fe67c6b9c97715f28
Merge: 4186f02 6d1d6ca
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 30 09:23:28 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Fix ENC acceptance test failure on 1.9.3

commit 6d1d6ca660c5f10676e0849a32974bcd240760a1
Merge: f81c157 98d123f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 30 09:23:00 2013 -0700

    Merge branch 'stable_precise' into stable
    
    * stable_precise:
      (maint) Fix ENC acceptance test failure on 1.9.3
    
    closes #1623

commit 98d123fbde9b5bb7e1b1056d442a38a12c5d6891
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 30 09:04:19 2013 -0700

    (maint) Fix ENC acceptance test failure on 1.9.3
    
    Without this patch the `node_overrides_topscope_when_using_enc`
    acceptance test is failing when run on MRI 1.9.3 and is passing when run
    on MRI 1.8.  This is a problem because Puppet 3 fully supports MRI 1.9
    and we need the tests to pass.
    
    The root cause of the problem is an incorrect YAML input file when
    providing data to the ENC api.  Without this patch the YAML uses a hash
    value that is a string.  In MRI 1.8 String#each iterates over each
    character.  The string passed is a single character, "a" so the behavior
    in 1.8 has the desired effect by accident.
    
    In MRI 1.9 there is no String#each method so the test fails.  This patch
    addresses the problem by changing the YAML to be the correct input of a
    hash value that is an Array.
    
    Paired-with: Henrik Lindberg <henrik.lindberg@cloudsmith.com>

commit ba7576d3ca6ec681301de83562ec8fd3b8207a8d
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Thu Apr 18 11:46:17 2013 -0400

    Add DRY support for boolean parameters
    
    Boolean parameters are common and used several places in the codebase,
    as well as in user code.  Without this change, each parameter requires a
    description of true and false values, and code to recognize those
    values.  That is implemented slightly differently from place to place,
    leading to inconsistent behavior for users.  And anyway, it's all WET.
    
    Instead, this concentrates the implementation in one place.  This is
    easier for users (a consistent set of true/false values) and developers
    (less boilerplate and easy resulting values -- Ruby's true and false,
    not :true or "true" or anythign like that).

commit 4186f0240163014ddd41f64dbdab92f921001a2e
Merge: 2c1d7cc f81c157
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 29 16:56:48 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Handle different ssh service names in `puppet resource service` test
      Revert "Revert "Merge branch 'nicklewis-rcS-is-a-jerk' into stable""
    
    closes #1620

commit f81c157f23ee637781c7bb1e384c7cb6395bcb27
Merge: 38d085c d4ced36
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 29 16:56:39 2013 -0700

    Merge branch 'nicklewis-fix-puppet-resource-service-test' into stable
    
    * nicklewis-fix-puppet-resource-service-test:
      (maint) Handle different ssh service names in `puppet resource service` test
      Revert "Revert "Merge branch 'nicklewis-rcS-is-a-jerk' into stable""

commit 3ec11aa810928e6411fd1ad1075a2f548b7e26ae
Author: Aman Gupta <aman@tmm1.net>
Date:   Mon Apr 29 16:35:32 2013 -0700

    fix caching of "false" settings

commit d4ced3678160ab36322c667658138bd41893f1ef
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Apr 26 14:52:10 2013 -0700

    (maint) Handle different ssh service names in `puppet resource service` test
    
    This test was using a regex to match the output for the ssh/sshd service
    from puppet resource, but was explicitly invoking the command with the
    name ssh. Since we can check the state of that service from the list of
    all instances (in which case the regex is actually beneficial), there's
    no need to look at the specific service separately. This combines the
    two steps, and makes the test more robust to different names for the ssh
    service.

commit 1b3ce046d968cd3324ec010389f5268becd75b1d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Apr 26 17:03:36 2013 -0700

    Revert "Revert "Merge branch 'nicklewis-rcS-is-a-jerk' into stable""
    
    This reverts commit dd4d41e97fe21c9bd9f628fb4f982aead04cc213.

commit 2c1d7cc1a8b543f4f170a94cb54139a2da550a1e
Merge: 79d48d4 38d085c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Apr 26 15:39:35 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (#20302) Fix failing acceptance test for windows providers
    
    Paired-with: Henrik Lindberg <henrik.lindberg@cloudsmith.com>

commit 38d085c697a530192b02c2badcc4e9a73813e62d
Merge: dd4d41e 8d30d1a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Apr 26 15:39:10 2013 -0700

    Merge branch 'fix_20302_test' into stable
    
    * fix_20302_test:
      (#20302) Fix failing acceptance test for windows providers
    
    closes #1621

commit 8d30d1a67ccee21deac243fd9a73ee92b42b4487
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Apr 26 15:03:17 2013 -0700

    (#20302) Fix failing acceptance test for windows providers
    
    Without this patch the windows acceptance test
    ticket_6907_use_provider_in_same_run_it_becomes_suitable is failing on
    windows because the behavior that determines of a file is a command or
    not, and thus if the provider is suitable or not behaves differently on
    Windows than it does on *nix.  This difference in behavior is caused by
    Windows determining execute ability by inspecting the PATHEXT
    environment variable, and a file with no extension will not be
    considered executable.
    
    This problem will not be observed in MRI 1.8.7 because File.executable?
    always returns true for any file that exists.  The problem will be
    observed in MRI 1.9.3 because this behavior changed in
    http://bugs.ruby-lang.org/issues/show/2135
    
    This patch addresses the problem by changing the file to have an exe
    extension.  This makes the test agnostic to the underlying behavior of
    windows or Unix.

commit 79d48d40a0a3dfe75a0d867b744d7d91f57768df
Merge: 9509f96 dd4d41e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Apr 26 14:29:29 2013 -0700

    Merge branch 'stable'
    
    * stable:
      Revert "Merge branch 'nicklewis-rcS-is-a-jerk' into stable"
      (#20308) Try again to fix fileset tests on Windows
      (#20308) Fix fileset spec for Windows

commit dd4d41e97fe21c9bd9f628fb4f982aead04cc213
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Apr 26 14:28:36 2013 -0700

    Revert "Merge branch 'nicklewis-rcS-is-a-jerk' into stable"
    
    This reverts commit ea548f68bac581d1d0a2e2e95738d73f658b3896, reversing
    changes made to d6e6e9d51a92cba2e5dcace4b48949d1f77663b9.
    
    Reverting because the acceptance tests is failing :(
    
    https://jenkins.puppetlabs.com/view/Puppet%20FOSS/view/Master/job/Puppet%20Acceptance%20(master)/label=acceptance,platform=centos/767/console

commit dbc30a6ac784dd75e0c6855e7fbcf9d1589b7cec
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Apr 26 12:15:33 2013 -0700

    (#20308) Try again to fix fileset tests on Windows

commit 1152c70e0bc3ea4aa523c059c5d674a412d7c7da
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Apr 26 10:30:46 2013 -0700

    (#20308) Fix fileset spec for Windows

commit 9509f96b76e059bc4248b7895847514b533237ac
Merge: f1ce87e db50f4e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 25 18:05:32 2013 -0700

    Merge remote-tracking branch 'pcarlisle/ticket/20308-file-serving-recursion'
    
    * pcarlisle/ticket/20308-file-serving-recursion:
      (#20308) Clean up the fileset specs
      (#20308) Refactor fileset recursion for clarity
      (#20308) Fix dropping paths from fileset results
      (#20308) Make more of Fileset private
      (#20308) Add failing test for incomplete file list

commit 14babfa622f5ef2e33d05b55567458ca183d82e5
Merge: ea548f6 db50f4e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 25 18:01:13 2013 -0700

    Merge remote-tracking branch 'pcarlisle/ticket/20308-file-serving-recursion' into stable
    
    * pcarlisle/ticket/20308-file-serving-recursion:
      (#20308) Clean up the fileset specs
      (#20308) Refactor fileset recursion for clarity
      (#20308) Fix dropping paths from fileset results
      (#20308) Make more of Fileset private
      (#20308) Add failing test for incomplete file list

commit db50f4e314282911f8e73a3c160c5290da627450
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Apr 25 17:29:54 2013 -0700

    (#20308) Clean up the fileset specs
    
    Paired-with: Andrew Parker <andy@puppetlabs.com>

commit 3f077ce3a412d30e73b452c30b7afeb06206f707
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Apr 25 16:11:54 2013 -0700

    (#20308) Refactor fileset recursion for clarity
    
    The previous expression of the algorithm for traversing the file structure and
    producing the available files was hard to understand and therefore error prone
    (see the bug that is being fixed here). This refactors it to be better
    separated and should be easier to see any problems in it.
    
    Another part of the cleanup was to make checks against the filesystem more
    explicit: either the path is valid or not, whether the path is a directory.
    
    Paired-with: Andrew Parker <andy@puppetlabs.com>

commit 35dfafbcc08216b2ab5361c74593fced813747f9
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Apr 25 15:04:10 2013 -0700

    (#20308) Fix dropping paths from fileset results
    
    This fixes the issue in #20308 where some paths get dropped from the fileset
    results. When a directory contained both subdirectories and files, and the
    last entry was a file, it could cause the recursion to exit early. This
    removes the complexity of tracking the next recursion level separately.
    
    Paired-with: Andrew Parker <andy@puppetlabs.com>

commit 4fe3815a28aa85bf93c5fc3380c5410c781f173d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Apr 25 14:55:44 2013 -0700

    (#20308) Make more of Fileset private
    
    Several of the public methods on fileset only seemed to be there for
    testing. There is no need for this as the behavior of the file listing
    already checks the conditions controlled by those internal methods.
    
    Paired-with: Andrew Parker <andy@puppetlabs.com>

commit 86a433151a97adfa9c81763b861a801210feb2f1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Apr 25 14:48:17 2013 -0700

    (#20308) Add failing test for incomplete file list
    
    Under certain circumstances the fileset will drop subdirectories from its
    results. This adds a test showing this failure.
    
    Paired-with: Andrew Parker <andy@puppetlabs.com>

commit f1ce87e001e6c80b9ab32c0e5e9d8fd70c94ce09
Merge: 2f4c4b0 ea548f6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 25 16:57:27 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (#14615) Don't run dangerous init scripts on Debian

commit ea548f68bac581d1d0a2e2e95738d73f658b3896
Merge: d6e6e9d 65ef0e3
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 25 16:56:32 2013 -0700

    Merge branch 'nicklewis-rcS-is-a-jerk' into stable
    
    * nicklewis-rcS-is-a-jerk:
      (#14615) Don't run dangerous init scripts on Debian
    
    closes #1617

commit 65ef0e3e9e91f41795f36eebec84dc25af1705c5
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Apr 25 14:26:32 2013 -0700

    (#14615) Don't run dangerous init scripts on Debian
    
    The init service provider has an exclude list of init scripts which
    shouldn't be executed because they don't actually have a status
    subcommand. However, this list was missing a couple of scripts on Debian
    which also shouldn't be run: rcS and module-init-tools.
    
    This also adds an acceptance test verifying that `puppet resource
    service` doesn't change the state of the system. It does this by running
    it twice and making sure the output is the same. In certain cases, this
    may actually fail to identify a problem (if the init script which causes
    trouble runs first, for instance), so we also verify that a known
    service (ssh) is unaffected by running the command.

commit 2f4c4b0583ad9c67bd867cd0feb6524d52e6ff55
Merge: e806b0d d6e6e9d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 25 16:31:38 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (#2244) Remove nil results in static compiler as well

commit d6e6e9d51a92cba2e5dcace4b48949d1f77663b9
Merge: c10bf26 8c38cf0
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 25 16:31:06 2013 -0700

    Merge branch 'dalen-2244_static_compiler' into stable
    
    * dalen-2244_static_compiler:
      (#2244) Remove nil results in static compiler as well
    
    closes #1610

commit 8c38cf0acf0fab913f468eb0622a035372d8f8df
Author: Erik Dalén <dalen@spotify.com>
Date:   Fri Apr 19 17:50:51 2013 +0200

    (#2244) Remove nil results in static compiler as well
    
    Fix this bug in static compiler as well.

commit e806b0d663ff50f6f40e96b064cf6b9fdedb0967
Merge: 99194ec c10bf26
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 25 15:48:39 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Make sqlite3 use an in-memory DB (try 2)

commit c10bf263ba2b1b71c4f90a8dabc787a2757d9ae6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 25 15:38:48 2013 -0700

    (maint) Make sqlite3 use an in-memory DB (try 2)
    
    The previous attempt to enable in-memory sqlite3 database testing for
    the spec tests in 58e1c23 is insufficient because the
    Puppet[:dblocation] setting is a type of FileSetting which munges values
    using File.expand_path.  This is a problem because the path expansion
    caused the database to be written to the filesystem rather than memory,
    as intended.
    
    This patch addresses the problem by adding a special case for all file
    settings.  The munge operation is a no-op if the special value of
    ':memory:' is passed.

commit 99194ec68814562066b12319b57f635c9aacadb6
Merge: 2624eee 856c21c
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Apr 25 15:22:43 2013 -0700

    Merge branch 'stable'

commit 856c21cecb5d503e1383c493a605945e53ade692
Merge: 0255778 e74afd1
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Apr 25 15:19:03 2013 -0700

    Merge branch 'pull-1615' into stable

commit e74afd112e8ed708da1bcd16d82ab79198f79243
Author: Niels Abspoel <aboe76@gmail.com>
Date:   Wed Apr 24 21:11:40 2013 +0200

    (#20421) Use systemd as default service on arch
    
    Per https://www.archlinux.org/news/end-of-initscripts-support/ Arch
    Linux has migrated to systemd and as of January 2013 has dropped support
    for sysv style init scripts. GH-1468 updated the systemctl binary
    location which made the systemd service provider functional on Arch, but
    since there was no clear default between init and systemd, init won out
    which effectively broke systemd init scripts.
    
    This commit sets systemd as the default for Arch Linux, and makes the
    sysvinit scripts available as a fallback option. Since the init provider
    is still functional and can be delegated to if there is no systemd
    service for a given system service.
    
    Squashed into a single commit and commit message update by Adrien Thebo
    <adrien@puppetlabs.com>

commit 2624eee7b3a6443700a4984e72782735e08192c4
Merge: 6191556 0255778
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 25 14:41:01 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (#16568) Try to load missing types by default
      (#16568) Warn when TypeCollection skips missing objects

commit 0255778361a724da34005d72d55747c6c4f2ea73
Merge: 58e1c23 c22927a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 25 14:40:00 2013 -0700

    Merge branch 'Sharpie-16568-make-typecollection-optimization-optional' into stable
    
    * Sharpie-16568-make-typecollection-optimization-optional:
      (#16568) Try to load missing types by default
      (#16568) Warn when TypeCollection skips missing objects
    
    closes #1616

commit c22927a3a47ce4774462f97e09ff95a06cf47f31
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Wed Apr 24 15:34:26 2013 -0700

    (#16568) Try to load missing types by default
    
    This patch adds a new setting `:ignoremissingtypes` that controls the
    optimization introduced in 242692e. This setting defaults to `false` as the
    behavior of this optimization is likely to confuse those who don't need it.

commit 7539b43e4cd531316b4e6834e6c691db53012077
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Wed Apr 24 14:36:33 2013 -0700

    (#16568) Warn when TypeCollection skips missing objects
    
    Commit 242692e optimized the `TypeCollection` by having it track missing
    objects and then skip searching for those objects during subsequent
    compilations. The problem is that this behavior was not logged which led many
    users to wonder why classes and definitions would repeatedly come up as missing
    until the puppet master was restarted (ref [#16568][16568]).
    
    [16568]: https://projects.puppetlabs.com/issues/16568

commit 619155660884e9e2ab0822dea8582cc5bf19bd56
Merge: fd1bc89 58e1c23
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 25 14:26:42 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Make sqlite3 use an in-memory DB for specs

commit 58e1c23b5c6f8d36d0c56cb21d42b3c51ee48188
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 25 14:21:58 2013 -0700

    (maint) Make sqlite3 use an in-memory DB for specs
    
    Without this patch the spec tests are configuring sqlite in a manner
    that writes the database to a file named ':memory'.  This is a problem
    because filesystem databases are slower than in-memory databases and the
    tests are not cleaning up this file after completing.
    
    The change in 60e78b2d36f23877dc7b50e72578ad123d62c1f0 caused this
    change in behavior, likely by accident, because the database connection
    string was ':memory:' and the patch changed the string to ':memory'
    likely because this looks like a Ruby symbol.
    
    This patch addresses the problem by restoring the original connection
    string of ':memory:'

commit fd1bc89fc2a6f3739996c27daec53b20c6d443cd
Merge: ca0da45 3c79ffe
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 25 13:38:18 2013 -0700

    Merge branch 'nicklewis-refactor-loaded-file'
    
    * nicklewis-refactor-loaded-file:
      Refactor how files are watched
    
    closes #1355

commit 3c79ffee01ee79a30fa1db6e70660fd5aa27503a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Dec 28 16:01:58 2012 -0800

    Refactor how files are watched
    
    LoadedFile is now WatchedFile (since it has nothing to do with loading
    files, only with telling when they change), and some of its internal
    variables have been renamed for clarity. Also added a FileWatcher class
    whose entire purpose is to track a set of LoadedFiles in aggregate. This
    is now used by TypeCollection in place of its own hash.
    
    Puppet::FileServing::Configuration::Parser and
    Puppet::Util::NetworkDevice::Config were inheriting LoadedFile, simply
    for its changed? method, even though neither of them really has file
    properties. Now they wrap a WatchedFile instance instead.

commit ca0da45754caeef0d2282a96fe78bbf1427abac9
Merge: 9ec2d4f 3a19fff
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 24 18:36:26 2013 -0700

    Merge branch 'dalen-4561_structured_facts'
    
    * dalen-4561_structured_facts:
      (#4561) Support structured facts
    
    closes #1578

commit 3a19fff52c15266a3171b9bcf93bc1db1788c3b8
Author: Erik Dalén <dalen@spotify.com>
Date:   Thu Mar 7 20:41:33 2013 +0100

    (#4561) Support structured facts
    
    Add the option stringify_facts which defaults to true. If it is turned
    on the current behaviour with turning facts into strings is kept.
    If it is false facts are sanitized and only converted to strings if they
    aren't booleans, numerics, arrays and hashes. It does this sanitizing in
    a nested manner for arrays and hashes.

commit 9ec2d4f9e2158243a133c7a25f651e197ebecf00
Merge: ed56eb5 5398b5f
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 24 13:31:38 2013 -0700

    Merge pull request #1613 from floatingatoll/pull_1
    
    spelling/grammatical fixes

commit 036951d68f863ea8836fe71628091fcd6b15e3fb
Author: Erik Dalén <dalen@spotify.com>
Date:   Fri Apr 19 19:00:51 2013 +0200

    (#17183) Pass on parameters to recursive children in static_compiler
    
    Pass on parameters from the top level resource to recursive children in
    the static compiler.
    The list of parameters to exclude is taken from the file type
    implementation.

commit 5398b5f04603695e23ea93807cf55d392feb3a74
Author: Richard Soderberg <rsoderberg@gmail.com>
Date:   Tue Apr 23 18:40:21 2013 -0700

    spelling/grammatical fixes

commit ed56eb5793139c2c2b17bbd79e38d6b623078569
Merge: 8054d4d 1fb2177
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Apr 23 15:08:11 2013 -0700

    Merge pull request #1611 from nfagerlund/ctime_mtime
    
    (#20316) Docs: Update description of ctime and mtime properties for file type

commit 8054d4d0388dd107fb34506dd8255f07e918095f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 23 11:17:13 2013 -0700

    (maint) Update COMMITTERS with feature flags and always working responsibilities
    
    Without this patch Andy's reiteration of PR-1604 is not included in the
    COMMITTERS document.  This reiteration is:
    
        I just want to reiterate that we need to work to make sure that
        master and stable are both clean and working at all times. Use of
        feature flags and other mechanisms is how we achieve this. This
        doesn't mean that dead code is allowed: everything needs to be
        usable in some manner at all points in time. Stable is not an
        indication of the build status of that branch. Stable is an
        indication that it will not be receiving new functionality. We need
        to strive to make both master and stable branches green at all
        times. There is never a case in which we "want" or are "ok with"
        master to be failing tests.
    
    This patch adds these comments to the beginning of the COMMITTERS guide.
    
    [ci skip]

commit 1fb217700886a7896c5643c4d4d43e563933c13b
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Fri Apr 19 14:05:53 2013 -0700

    Docs: Update description of ctime and mtime properties for file type
    
    Enough people understand ctime to mean "creation time" that it's worth clarifying.

commit 699aa7cb2a4117cdcfbc3fee7ad38a8b4a85af4f
Merge: 4680902 3b29a4e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 21:21:05 2013 -0700

    Merge branch 'jeffmccune-git_flow'
    
    * jeffmccune-git_flow:
      (maint) Update branch strategy to be the git flow process
    
    closes #1604
    [ci skip]

commit 3b29a4e180eb3b5860a87aa785df40a7621ea345
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 17 16:13:01 2013 -0400

    (maint) Update branch strategy to be the git flow process
    
    Without this patch it's still a bit confusing how to deal with a bug fix
    that is merged into stable.  The merge up process documented in
    COMMITTERS requires us to reset the stable branch on a new release.
    
    We can avoid this reset if we switch fully to the process described by
    [git flow](http://nvie.com/posts/a-successful-git-branching-model/).
    The major difference described in this commit is that bug fixes are
    reset onto stable, then merged as-is into both `stable` and `master`
    without a merge-up of stable into master or a rebase of the change set
    back onto master.
    
    This process avoids the reset, allows both `stable` and `master` to have
    infinite lifetimes, and keeps the history clean and free of duplicate
    commits.
    
    [ci skip]

commit 4680902de43e5e2d0221c38d140ddfae38d05582
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 19:49:12 2013 -0700

    (maint) Fix failing WriteOnlyYaml acceptance test
    
    Without this patch the WriteOnlyYaml acceptance test is failing in
    master.  The root cause of this failure is the change in behavior in
    30fe09e - (#20284) Output one item per line for arrays in console output
    
    The change in behavior causes the default renderer to print a more human
    readable vertical list when the output data from Faces is an array.
    This change caused the assumptions made in the WriteOnlyYaml test to no
    longer be valid.
    
    The acceptance tests appears to assume JSON output from the `puppet
    node` command in order to validate the presence of the expected cached
    node data.  This patch changes the test to explicitly render the output
    of the command using json to ensure the command produces the output
    format the test expects.

commit af9e1cd5b25cb4e39995a7fe5e776042442a6807
Merge: 09dfe11 bf27b3c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 16:21:27 2013 -0700

    Merge branch 'restore_gemset_m'
    
    * restore_gemset_m:
      (maint) Fix PUPPETVERSION warning from gemspec
      (maint) move puppet.gemspec to .gemspec
      Revert "(Maint) Remove disused puppet.gemspec"
      (#20284) Output one item per line for arrays in console output
      Maint: Lambda arity must match number of arguments
      (#17811) Ensure PrimaryGroupID is converted to Int
      (#17811) Add test for group name to gid conversion
      (maint) Update COMMITTERS with stable and master branch strategy
      (#11276) Tarball entries should be relative to the `pkg` directory
      (#20121) Invoke chkconfig with --check on SuSE
      (#3010) cron: allow the absent value for the "special" property

commit 09dfe117e8aa2e69bb722430450185d75d1f6bfc
Merge: 8c02ebb 1303aa7
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 15:23:17 2013 -0700

    Merge branch 'stable'
    
    * stable:
      (maint) Do not use a fake hiera version

commit 1303aa70ff2a53ef45aa26cfbb3d95925b955fcd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 15:21:42 2013 -0700

    (maint) Do not use a fake hiera version
    
    Without this patch hiera master cannot be used from Git source to
    execute in Bundler.  This is because Puppet incorrectly specifies a
    dependency on Hiera 99.0.0 when the correct version of Hiera master is
    currently "1.2.1"
    
    This patch addresses the problem by simply removing the fake version,
    allowing the correct version to satisfy the dependency.

commit 8c02ebbd545931f605f93579930d827cad21ed19
Merge: a28ecd3 dc41303
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 13:36:25 2013 -0700

    Merge branch 'restore_gemspec'
    
    * restore_gemspec:
      (maint) Fix PUPPETVERSION warning from gemspec
      (maint) move puppet.gemspec to .gemspec
      Revert "(Maint) Remove disused puppet.gemspec"

commit bf27b3c89eec8377acc35713d70376218ffaab12
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 13:24:08 2013 -0700

    (maint) Fix PUPPETVERSION warning from gemspec
    
    Without this patch Ruby issues a warning about the redefinition of the
    PUPPETVERSION constant.  This warning is caused by the gemspec using a
    fully qualified require statement instead of a relative $LOAD_PATH based
    require.
    
    This patch fixes the problem by catching the LoadError and adding
    Puppet's `lib` directory to the head of the $LOAD_PATH.  This change
    causes the `require` statement to correctly load puppet/version only
    once, which avoids the redefined constant message.
    
    In addition, a comment about the intended use of the gemspec has been
    added to help avoid confusion.  This gemspec is intended to allow third
    party code to automatically satisfy their dependency on Puppet using
    Bundler.  The gemspec is not intended to actually build the package.
    
    Paired-with: Adrien Thebo <adrien@puppetlabs.com>

commit 35151b44709d50af653ae8bc8a6ef50ebd86104b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 11:59:27 2013 -0700

    (maint) move puppet.gemspec to .gemspec
    
    Without this patch some users assumed the puppet.gemspec is intended to
    build the Puppet Gem.  This is a problem because the packaging rake
    tasks are what actually build the official Gem.
    
    This patch addresses the problem by moving the gemspec to a hidden file
    so that other people are less likely to be confused by the presence of
    the gemspec file.

commit 648ac82dd77a1e6c621dfc44ca50bb221955613e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 11:54:10 2013 -0700

    Revert "(Maint) Remove disused puppet.gemspec"
    
    This reverts commit 588b874f2fc42cf1b9d21016aa36d98288df2479.
    
    This commit is being reverted because the change to remove the gemspec
    was based on incorrect information.  According to the commit message,
    the gemspec file was removed for two reasons.  First, it was thought the
    gemspec was not being used for anything other than local development of
    Puppet.  Second, the gemspec produced a warning about redefining the
    PUPPETVERSION constant.
    
    The gemspec is actually being used in our automated testing of other
    projects, specifically stdlib.  The standard library testing matrix uses
    the gemspec located in Puppet to satisfy the dependency of stdlib on
    Puppet.  The gemspec allows the `stable` and `master` branch to be used
    in addition to the officially released Puppet gem on rubygems.org.
    
    Second, the warning is a not a result of the gemspec itself but rather a
    result of the way the gemspec is loading 'puppet/version'  We can avoid
    the warning while also preserving the gemspec.

commit 05a7fad23b025edad2a0ce9dd9da2487bd129569
Merge: a28ecd3 dc41303
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 13:30:00 2013 -0700

    Merge branch 'restore_gemspec' into stable
    
    * restore_gemspec:
      (maint) Fix PUPPETVERSION warning from gemspec
      (maint) move puppet.gemspec to .gemspec
      Revert "(Maint) Remove disused puppet.gemspec"

commit dc413033b6f50baba13f41c8bc93383df1686334
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 13:24:08 2013 -0700

    (maint) Fix PUPPETVERSION warning from gemspec
    
    Without this patch Ruby issues a warning about the redefinition of the
    PUPPETVERSION constant.  This warning is caused by the gemspec using a
    fully qualified require statement instead of a relative $LOAD_PATH based
    require.
    
    This patch fixes the problem by catching the LoadError and adding
    Puppet's `lib` directory to the head of the $LOAD_PATH.  This change
    causes the `require` statement to correctly load puppet/version only
    once, which avoids the redefined constant message.
    
    In addition, a comment about the intended use of the gemspec has been
    added to help avoid confusion.  This gemspec is intended to allow third
    party code to automatically satisfy their dependency on Puppet using
    Bundler.  The gemspec is not intended to actually build the package.
    
    Paired-with: Adrien Thebo <adrien@puppetlabs.com>

commit 8f81b522a98472ad36965c95343814d55f5cad67
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 11:59:27 2013 -0700

    (maint) move puppet.gemspec to .gemspec
    
    Without this patch some users assumed the puppet.gemspec is intended to
    build the Puppet Gem.  This is a problem because the packaging rake
    tasks are what actually build the official Gem.
    
    This patch addresses the problem by moving the gemspec to a hidden file
    so that other people are less likely to be confused by the presence of
    the gemspec file.

commit b5838fb446f34ab41580171f86da675d0bda53c0
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 22 11:54:10 2013 -0700

    Revert "(Maint) Remove disused puppet.gemspec"
    
    This reverts commit 588b874f2fc42cf1b9d21016aa36d98288df2479.
    
    This commit is being reverted because the change to remove the gemspec
    was based on incorrect information.  According to the commit message,
    the gemspec file was removed for two reasons.  First, it was thought the
    gemspec was not being used for anything other than local development of
    Puppet.  Second, the gemspec produced a warning about redefining the
    PUPPETVERSION constant.
    
    The gemspec is actually being used in our automated testing of other
    projects, specifically stdlib.  The standard library testing matrix uses
    the gemspec located in Puppet to satisfy the dependency of stdlib on
    Puppet.  The gemspec allows the `stable` and `master` branch to be used
    in addition to the officially released Puppet gem on rubygems.org.
    
    Second, the warning is a not a result of the gemspec itself but rather a
    result of the way the gemspec is loading 'puppet/version'  We can avoid
    the warning while also preserving the gemspec.

commit 2dca75327dcfe868bf4a023fae54659628a6dbd7
Merge: 5cab301 40b334f
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Apr 19 12:31:21 2013 -0700

    Merge pull request #1600 from Sharpie/17811-os-x-fix-gid-conversion
    
    (#17811) Fix group id conversion for OS X users

commit 5cab301d3760c8c9895c669ffdd0c18ad5c1204c
Merge: e9c25f6 30fe09e
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Apr 19 12:18:06 2013 -0700

    Merge pull request #1606 from dalen/array_render_as_s
    
    (#20284) Output one item per line for arrays in console output

commit a28ecd3b3c9974287dacbf0d627f1675d946de51
Merge: 65ee9b5 465beb2
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Apr 19 11:52:54 2013 -0700

    Merge pull request #1608 from joshcooper/ticket/stable/20303-user-provider-ruby19
    
    (#20303) Don't rely on automatic array conversion

commit 30fe09e9e9a9a59b6a1d7a11c0cfa39391a44e6e
Author: Erik Dalén <dalen@spotify.com>
Date:   Thu Apr 18 14:54:24 2013 +0200

    (#20284) Output one item per line for arrays in console output
    
    To make it easier to read, pipe output and make shell loop from output
    from faces it is good if they are printed one item per line for arrays.

commit 465beb20cd8df6704b734df4a79a9c7afd7742d5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Apr 19 02:16:14 2013 -0700

    (#20303) Don't rely on automatic array conversion
    
    Previously, we were unwittingly relying on ruby's automatic conversion
    from an array to a string, which fails in ruby 1.9. This was noticed
    when running `puppet resource user` as it reported all users were
    absent.
    
    Now we explicitly convert from an array to a string.
    
    This commit doesn't have any tests, because the existing acceptance
    tests catch this when run under 1.9

commit e9c25f6e0e7cd519e9fc39c6dcf09a5c2b6e6449
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Apr 19 00:54:18 2013 -0700

    Maint: Lambda arity must match number of arguments
    
    Running `puppet apply --parseonly` fails on ruby 1.9, because the arity
    of the option method was 0, yet was being invoked with an argument, the
    manifest to parse. Under ruby 1.8, this mismatch was allowed, but not
    1.9.
    
    See acceptance/tests/ticket_6928_puppet_master_parse_fails.rb

commit 40b334f46b8b8075b8b68010e173171c9746f01b
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Mon Apr 15 16:13:01 2013 -0700

    (#17811) Ensure PrimaryGroupID is converted to Int
    
    On OS X, the PrimaryGroupID for a user must be an integer. Ensure this happens
    by running `:gid` attributes through `Puppet::Util.gid`.

commit f5a8b7483b8ccc1114f35dceee40771a39684bc7
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Mon Apr 15 16:09:04 2013 -0700

    (#17811) Add test for group name to gid conversion
    
    On OS X, the primary group for a user must be specified as a numeric id and not
    a string. There was code to ensure this happens, but it was guarded by a faulty
    logic statement and there was no test to catch the bug.

commit 65ee9b52231f738dbc28dda3f34798409b6e21a5
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Apr 17 16:22:07 2013 -0700

    (packaging) Update PUPPETVERSION to 3.2.0-rc1

commit 095d5f1bb6c31f049632770aa2e963c87c61bf3b
Merge: e34ee6b e740bc4
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 17 13:51:29 2013 -0700

    Merge pull request #1602 from Sharpie/20121-fix-suse-chkconfig
    
    (#20121) Invoke chkconfig with --check on SuSE

commit e34ee6b62c42ce97d4acf9f9837b4e4e1b58b4c4
Merge: 2381629 0a08662
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 17 16:45:38 2013 -0400

    Merge branch 'fix_pmt_build'
    
    * fix_pmt_build:
      (maint) Fix failing puppet module build test

commit 0a08662faab2ef525d18a9e9a8576fde2467a999
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 17 16:43:27 2013 -0400

    (maint) Fix failing puppet module build test
    
    cd4d720 fixed the issue with `puppet module build` on Solaris, but did
    not update the spec test to reflect the new command being executed.
    
    This patch updates the spec test.

commit 2381629aba39ba5d2a5b7a956e40cc03421ab578
Merge: daebcbe cd4d720
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 17 15:30:00 2013 -0400

    Merge branch 'fix_solaris_module_pack'
    
    * fix_solaris_module_pack:
      (maint) Fix puppet module build empty tar issue on Solaris
      (#11276) Tarball entries should be relative to the `pkg` directory

commit cd4d720e06ee90626e928440c21fa3a46674a515
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 17 15:16:51 2013 -0400

    (maint) Fix puppet module build empty tar issue on Solaris
    
    Without this patch `puppet module build` produces an empty tar file when
    run on Solaris.  This is obviously a problem.  The root cause is that
    tar defaults to writing the archive to the tape device instead of STDOUT
    as was expected.
    
    This patch fixes the problem by explicitly using `tar cf - ...` to write
    the archive to STDOUT.
    
    Paired-with: Andrew Parker <andy@puppetlabs.com>

commit daebcbe06781d23489f8a198b235fc0cc1132cd2
Merge: 1b3f210 a84c65b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 17 12:29:13 2013 -0400

    Merge branch 'branch_strategy'
    
    * branch_strategy:
      (maint) Update COMMITTERS with stable and master branch strategy
    
    closes #1591
    [ci skip]

commit a84c65bff63bb23b5a28cbb6a053b97c8f6a36cd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 10 15:39:30 2013 -0700

    (maint) Update COMMITTERS with stable and master branch strategy
    
    Without this patch the current branching strategy of creating unique
    branches for each minor release requires CI systems be reconfigured for
    each new minor release.  This is a problem because it is time consuming,
    error prone, and expensive to reconfigure the CI system for each minor
    release.  This, in turn, creates a road block to releasing more often.
    
    This patch addresses the problem by documenting and prescribing a new
    branching strategy for committers.  The strategy results in branch names
    that do not change over time.  The `stable` branch always refers to the
    current release which is receiving bug fixes.  The `master` branch
    always refers to the next release which is receiving new functionality.
    
    The release branches are no longer direct descendants (fast forwards) of
    one another.  Instead, they are independent histories as in the git flow
    model.  The security branch is special and receives change sets which
    are then rebased and merged into specific branches for the specific
    release versions which are affected by the vulnerability.
    
    [ci skip]

commit 14d31c70608f8588f251b363d248bb7b5fd65eb9
Merge: 199f534 bafb3d8
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 16 20:06:11 2013 -0400

    Merge branch 'joshcooper-ticket/stable/11276-chdir-fix' into stable
    
    * joshcooper-ticket/stable/11276-chdir-fix:
      (#11276) Tarball entries should be relative to the `pkg` directory

commit bafb3d8a22efb2c7c6fcda1cf5fbd239eaaa03fe
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Apr 16 16:03:02 2013 -0700

    (#11276) Tarball entries should be relative to the `pkg` directory
    
    Commit 94f2f0a9 removed the call to `Dir.chdir`, which is necessary so
    that entries in the tarball are relative to the `pkg` directory, i.e.
    each entry starts with the metadata release_name, which is of the form:
    
        myuser-mydir-X.Y.Z/
    
    This issue was caught by the `loadable_from_modules` acceptance test as
    the newly installed module did not install its metadata in the expected
    locations.
    
    This commit restores the `Dir.chdir` behavior and updates the test.

commit 1b3f21038e840dc5d5ac5e5b05213216bee39865
Merge: a042352 2434310
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 16 20:03:24 2013 -0400

    Merge branch 'joshcooper-ticket/master/11276-chdir-fix'
    
    * joshcooper-ticket/master/11276-chdir-fix:
      (#11276) Tarball entries should be relative to the `pkg` directory
    
    closes #1603

commit 2434310bb1ef0cc55e3c46dba0fe655ffbf1b9eb
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Apr 16 16:03:02 2013 -0700

    (#11276) Tarball entries should be relative to the `pkg` directory
    
    Commit 94f2f0a9 removed the call to `Dir.chdir`, which is necessary so
    that entries in the tarball are relative to the `pkg` directory, i.e.
    each entry starts with the metadata release_name, which is of the form:
    
        myuser-mydir-X.Y.Z/
    
    This issue was caught by the `loadable_from_modules` acceptance test as
    the newly installed module did not install its metadata in the expected
    locations.
    
    This commit restores the `Dir.chdir` behavior and updates the test.

commit e740bc41137fa59e30b125ddacadd6aed3dddd59
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Tue Apr 16 15:10:52 2013 -0700

    (#20121) Invoke chkconfig with --check on SuSE
    
    On SuSE the `chkconfig` command needs to be passed the `--check` flag in order
    to get exit codes that indicate if a service is enabled or not. Previously, we
    were applying a regex to stderr but this was missing the case where the service
    did not exist.
    
    Ref: [#20121](https://projects.puppetlabs.com/issues/20121)

commit a0423525de54ac7b01429ff1b5dbf298049d480c
Merge: 199f534 3157d2a
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Apr 16 14:38:53 2013 -0700

    Merge pull request #1577 from ffrank/ticket/master/3010-cron-allow-special-absent
    
    (#3010) cron: allow the absent value for the "special" property

commit 199f534eacf1ffbc946dea4b5333021479889857
Merge: 6608b95 da3bf4e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Apr 16 10:30:32 2013 -0700

    Merge pull request #1601 from joshcooper/ticket/master/11276-windows-module-tool
    
    Support module tool on Windows

commit 6608b9501bfcf3a17629990c005bd7ddb3e17826
Merge: 588b874 3be3620
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Apr 16 09:17:32 2013 -0700

    Merge pull request #1599 from hlindberg/issue-reject-select-hash
    
    (maint) Make select and reject produce result of same class as receiver.

commit 3be3620c95f71803ec16f93af27c08b4c9d69a27
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Apr 16 17:12:32 2013 +0200

    (maint) Fix problems due to ruby 1.8.7 not returning Hash
    
    Ruby 1.8.7 select and reject does not return a Hash when applied
    to one. This fix constructs a new Hash if one is not produced.
    
    This commit also contains a fix of a typo in exception name (ParserError
    instead of ParseError).

commit da3bf4e11504172dc915abf3b6c60a8f1333794a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Apr 15 18:05:16 2013 -0700

    (#11276) Fix require ordering issue on Windows
    
    Make sure we require msvcrt/buffer is required before using it.

commit dd382e9e09bc18795ad9cd5d328a451243406c03
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Apr 11 13:15:11 2013 -0700

    (#11276) Execute puppet module tool pack & unpack on agents
    
    Previously, all of the module tool acceptance tests run on the master,
    which is never windows.
    
    This commit adds two acceptance tests to ensure the module tool can
    generate, build, and install modules from the pmtacceptance forge, which
    exercise the pack & unpack functionality.

commit aee6bce8b1adaa280a01eae4818fa96ccb2a3d06
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Apr 15 16:34:54 2013 -0700

    (#11276) Enable module tool on Windows
    
    This commit allows the module tool to run on windows and updates the spec
    tests as they are no longer pending.

commit 94f2f0a9c8d635d0f4532efa4f2cf5efa59b1b40
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 29 11:50:13 2013 -0800

    (#11276) Select tar command or minitar
    
    Previously, the module tool relied on GNU versions of tar and gzip/gunzip
    to build and install modules, which isn't portable on Windows in
    particular.
    
    This commit adds Gnu, Solaris, and Mini tar implementations for packing
    and unpacking tar.gz format.
    
    It modifies the module tool to select the appropriate implementation for
    the platform it's currently running on.
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit 116f44ad6558ae4e3c3b0e25b753498f0de818a1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 28 21:43:44 2013 -0800

    (#11276) Add minitar feature
    
    This commit adds a `minitar` feature, which depends on the minitar gem.
    Updated the Gemfile so that Windows depends on minitar.
    
    Note, a similar change will need to be made to the installer.

commit 588b874f2fc42cf1b9d21016aa36d98288df2479
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 15 18:12:15 2013 -0700

    (Maint) Remove disused puppet.gemspec
    
    The puppet.gemspec that sat at the top level of the puppet project was
    not needed for anything other than the version information when using
    bundler with puppet when doing development. The gemspec actually caused
    a warning to be issued about duplicate definition of PUPPETVERSION
    because of the way the gemspec required the puppet/version file.
    
    This updates the Gemfile to force a fake version for the locally used
    code and removes the gemspec which isn't needed.

commit f846b308913854aeb8e43b7651671dc3b995ff56
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Apr 15 23:36:10 2013 +0200

    (maint) Make select and reject produce result of same class as receiver.
    
    The return type of select and reject where unspecified and tests
    did not check for type (not caring because all tests applied more
    iteration to the result and that evened out the differences).
    
    Now both select and reject produce a result of the same class as
    the receiver. This is now noted in the documentation.
    Tests have been added.

commit b905b8d37b5e5b0e54341f194cb8f1fc74b8d7a9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 15 16:05:36 2013 -0400

    (maint) Add note about Puppet's handling of CN in the DN
    
    Dustin mentioned that it's worth calling out how Puppet handles the CN
    field with respect to the DN, aka subject.
    
    This patch adds the missing information and explicitly mentions that
    Puppet will parse out the CN field and use the value for authentication
    and authorization.
    
    [ci skip]

commit dc94758b827447d8de561091bc005ee51c618b3a
Merge: 07d8bae 1ab5399
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 15 15:54:08 2013 -0400

    Merge branch 'nfagerlund-header_munging_description'
    
    * nfagerlund-header_munging_description:
      Docs: Explain HTTP header name munging in ssl_client_header and ssl_client_verify_header
    
    [ci skip]
    closes #1597

commit 1ab5399cbafb79029b23ae6d3ec792fd0544e5c8
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Fri Apr 12 15:42:25 2013 -0700

    Docs: Explain HTTP header name munging in ssl_client_header and ssl_client_verify_header
    
    The way these settings map to actual HTTP header names isn't transparent, so
    this commit explains how they map.

commit 07d8bae59f30c82ce5dba32c2f8fdb8ea3fabf57
Merge: 4ce1a85 3bc4f60
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Apr 15 10:43:22 2013 -0700

    Merge pull request #1598 from haus/update_cows_and_mocks
    
    Update cows and mocks

commit 4ce1a851d5558fdbe13e40293fda41cf14296c12
Merge: 96ff279 d03360c
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Apr 15 10:42:11 2013 -0700

    Merge pull request #1596 from haus/add_rgen_depends
    
    (packaging) Add dependency on ruby-rgen to gems, debs, and rpms.

commit 3bc4f6041ee8c17c10f05e4d97a00ac860cdce04
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Apr 15 10:18:33 2013 -0700

    (packaging) Remove f16 from mocks to build as it is EOL
    
    Fedora 16 went EOL 02-12-2013, so this commit removes it from the mocks to be
    built against.

commit 19d7454fbbffe91f08829dcb11ab355f30d35126
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Apr 15 10:15:34 2013 -0700

    (packaging) Add raring to the default cows list
    
    Raring will be released near the end of April, so this commit adds it to the
    list of cows to build against.

commit d03360cdfc10f7079409360ca631811cca8490a9
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Apr 12 12:04:37 2013 -0700

    (packaging) Add dependency on ruby-rgen to gems, debs, and rpms.

commit 96ff2790b90dea30da7df8b2b3f5f9a7be0d86cb
Merge: 7d22db1 44e98ca
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Apr 12 14:26:54 2013 -0700

    Merge pull request #1594 from pcarlisle/run-loop
    
    Run loop

commit 44e98ca49c56fa05cbc2415453e5519a6bc3b26f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Apr 12 14:09:53 2013 -0700

    (#14766) Calculate runinterval from the start of a job
    
    In the fix for #14766 we inadvertently changed the calcuation of runinterval
    to happen from the end of a job instead of the start. This fixes that by
    making the time dependencies in Scheduler explicit and adds a test that would
    have caught this regression.

commit 7d22db135937204492207fa39c888b0394039dc4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Apr 12 13:09:07 2013 -0700

    (Maint) Downcased header name in test
    
    The contract of the headers for HTTP requests is to have them all
    downcased. The test wasn't adhering to this contract, but the code was.

commit d4f0e480e86a0c0bd52143725802c6831a264ebf
Merge: b94dcba f854a1a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Apr 12 12:20:55 2013 -0700

    Merge pull request #1546 from cprice-puppet/feature/master/add-setting-to-enable-profiling
    
    Allow users to enable profiling via a setting

commit b94dcbab39cb9e30714336b8c66139f17aff6b0b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Apr 12 09:44:04 2013 -0700

    (Maint) Properly mark ruby 2 test to not run without sqlite
    
    It seems that rspec example groups do not compose their pending
    conditions. For instance if and outer describe is
    
      describe "foo", :if => we_have_the_power? do
      ...
    
    and a context is inside that with
    
      context "fighters", :if => band_members_available? do
      ...
    
    then the context will still be executed if the band members are
    available but we don't have the power.
    
    This was causing the ruby 2 test for active record to execute even if we
    didn't have active record available.

commit db412d106850124e238fe27a00b2f3b8455980f5
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 10 16:31:12 2013 -0700

    (#14766) Add splay support to the scheduler
    
    This adds a class that implements a job that runs with a constant offset. It
    also adds a factory method to create jobs and uses it in the daemon loop to
    implement splay.
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit 6ce05d60c8ba74d98508ad9c64a3980f3a02a7c8
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 8 16:16:03 2013 -0700

    (#18211) Refactor daemon run loop
    
    This adds a Scheduler module to puppet to handle the daemon run loop. The loop
    involves two separate wakeup cycles, in which one can adjust the interval for
    both. Refactoring into classes makes it easier to reason about and test the
    correctness of scheduling. This should fix #18211.

commit 4f2287aa3edd2bc975174392e6859824c4efb549
Merge: 0babce6 0930c96
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 11 17:33:08 2013 -0700

    Merge pull request #1593 from joshcooper/ticket/master/20194_no_reverse_lookups
    
    (#20194) Do not perform reverse DNS lookups in webrick

commit 0930c967da251daded820dcd447df8ee726baa4c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Apr 11 17:20:13 2013 -0700

    (#20194) Do not perform reverse DNS lookups in webrick
    
    Previously, the webrick-based puppet master would perform a reverse DNS lookup on
    every connected socket, even authenticated connections. This occurs when
    puppet calls IPSocket#peeraddr to get its peer's IP address. But ruby
    would by default perform a reverse lookup at the same time.
    
    This commit sets the global setting via
    BasicSocket.do_not_reverse_lookup to handle ruby 1.8.x and up.
    
    The commit also sets the webrick :DoNotReverseLookup configuration
    option, which is necessary on at least 1.9.2p0.
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit 0babce626adb2e59bf212e4272b9e088a7b559a7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 11 16:37:38 2013 -0700

    (Maint) Do not overwrite file output
    
    The windows spec code resets the output streams so that it can handle
    color correctly. In doing so it assumed that everything was writing to
    stdout, which is not the case when -o is used on the command line.

commit 5689cca5089fd86661bf8a6f0cdf4a627999d37d
Merge: f2505a2 0264a8f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 11 16:24:30 2013 -0700

    Merge branch 'adrienthebo-doc-introduction_to_rspec'
    
    * adrienthebo-doc-introduction_to_rspec:
      Document before and after blocks, let blocks, mocks, and stubs
      Add a section on example groups
      Add documentation on examples
      Provide a high level description of testing within puppet
    
    closes #1592
    [ci skip]

commit 0264a8f10d878d0aa46cf3c5689d8f42d2e4f55a
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 10 16:57:30 2013 -0700

    Document before and after blocks, let blocks, mocks, and stubs

commit 66695ed9951f64cfaeb6da3ab7afe4997328c0b7
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 10 15:09:42 2013 -0700

    Add a section on example groups

commit 764e2c9116daef06382a271c9814581b8bd12de6
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 10 14:56:16 2013 -0700

    Add documentation on examples

commit 64fbede3674251b9a7a66b65aed9f08cc2b3b363
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 10 13:49:42 2013 -0700

    Provide a high level description of testing within puppet

commit f2505a26d46d15ebe4b32fafa824f108de7bab24
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 11 15:22:16 2013 -0700

    (Maint) Provide JUnit output for jenkins
    
    Without JUnit style output we don't have a good way of seeing test
    failures within jenkins. This adds a new rake task ci:spec that will
    run with junit output, descriptive output and spec order logging.
    
    It turns out that some of the tests would call safe_posix_fork which
    ended up closing all open file handles. This ended up also closing the
    file handle that rspec would hold open for the junit output formatter.
    Those tests have been modified to ensure that the file descripters are
    not actually closed.

commit 8f3dd8040ce065664a87f644e9b460e6a13a385b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 11 14:18:25 2013 -0700

    (Maint) Lazily load the activerecord code
    
    Turns out that if you try to load activerecord when it isn't available,
    things don't work. One of our test configurations tests without
    activerecord and so the loading of this code needs to be delayed until
    we know that we really want to run these tests.

commit 60e78b2d36f23877dc7b50e72578ad123d62c1f0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 11 13:59:24 2013 -0700

    (Maint) Ensure that activerecord tests are isolated
    
    The activerecord based tests would setup activerecord and rails in a
    manner that included stubbing. This made some things behave as you might
    want, but caused some manner of getting them to behave the wrong way. By
    removing the stubbing, the test cases all work from a clean database.
    
    Another issue occured when one of the tests assumed that no other code
    that used its indirection had been run prior to it. The test itself was
    very questionable and ended up breaking when the tests were run in a
    particular order. The test in question tried to assert that the code
    would setup activerecord when it was initialized. Since all of the other
    tests relied on this, and that particular behavior did not appear to be
    important to the external contract of the class, the test has been
    removed.

commit 80e130ab3f66293784e6d0fc138723ad39e4fbd8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 11 12:07:50 2013 -0700

    (Maint) Ensure that 'hiera-puppet' is loaded correctly
    
    The test for the hiera_* functions showed an interesting error. If the
    hiera_hash or hiera_array tests were run in isolation they would
    complain that Hiera was not defined and then fail. If the hiera_include
    tests were run beforehand, then the tests for hash and array worked as
    expected. The issues seems to have been that the require that brought in
    hiera was being delayed until too late. By making sure that hiera-puppet
    is loaded as soon as the function is defined, rather than called, we are
    certain that hiera will be around when we need it.

commit be09a83904ec9d22b6d2552cdfcffafe087d76c3
Merge: 13d544f 09b822c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 10 16:29:13 2013 -0700

    Merge branch 'adrienthebo-maint-enable_logging_for_all_docs'
    
    * adrienthebo-maint-enable_logging_for_all_docs:
      (maint) Enable logging for all `puppet doc` commands
    
    closes #1580

commit 09b822cec76e3060b61a4c5ed3f84a5bc39cf236
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 3 12:22:05 2013 -0700

    (maint) Enable logging for all `puppet doc` commands
    
    Without this commit the --debug and --verbose flags can only be used
    with the rdoc mode and doesn't interact with the other documentation
    types. This commit extracts the logging configuration to apply to all
    documentation modes.
    
    In addition this defaults the log level to :warning. Since warning and
    above messages will be emitted on stderr this will not affect the normal
    operation of the `puppet doc` command. Using --debug or --verbose will
    emit messages on stdout, so they should not be used while
    programmatically generating docs.

commit 13d544f0aee237472044d7cabcde441568513f75
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Apr 10 14:21:58 2013 -0700

    (Maint) Update Gemfile to allow excluding extra gems
    
    We normally have a concept of "basic" and "extra features", but the
    Gemfile didn't contain this difference. This updates it to work with
    that distinction and also cleans up the handling of the specific git
    branches for our (bad) mixture of having a gemspec and not.

commit 4a9f03a908d6732cc5282d95dd028556347df0a2
Merge: 67b51ae c289898
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Apr 10 13:27:44 2013 -0700

    Merge pull request #1590 from zaphod42/maint/master/remove-rgen-and-vendoring
    
    (Maint) Remove vendoring and rgen

commit c289898ce7befcf95abc05b18a9b821ae4c6aa75
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Apr 10 13:18:28 2013 -0700

    (Maint) Depend on rgen for development
    
    With the removal of rgen in the codebase, we need to depend on it using
    bundler for development and the packaging system in other cases.
    
    Later changes will add the correct dependencies for the packages.

commit 546dac12386865c00c172ba2e7b3f6f747434428
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Apr 10 13:17:20 2013 -0700

    Revert "Merge pull request #1542 from hlindberg/vendor"
    
    This reverts commit 8391248c198982e668128368bcd2adfe4bed1890, reversing
    changes made to 45ded7da5846e02d24fafddd58d05685de039d88.
    
    Remove the vendoring code. The decision has been made to be much more
    restrictive in what we will vendor. Until we actually have something to
    put in the code in this manner, we should't keep this vendoring system
    floating around.
    
    Conflicts:
    
    	lib/puppet/vendor.rb

commit 8044a629351aa6903442b8e1d04607227b5bf4f4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Apr 10 13:15:35 2013 -0700

    Revert "Merge pull request #1543 from hlindberg/vendor-rgen"
    
    This reverts commit 493e9208b77feb2d2b3931a694c39c98dfef8b00, reversing
    changes made to 8391248c198982e668128368bcd2adfe4bed1890.
    
    We've decided that it will be better in the long run to depend on a
    packaged rgen instead of trying to have a copy of it shipped inside
    puppet.

commit 67b51ae778bab89684323bc8f04118d56ad4472a
Merge: 2b1a99f 8306c58
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 10 11:29:10 2013 -0700

    Merge pull request #1589 from dalen/19128_pson_unicode
    
    (#19128) Make PSON handle unicode characters

commit 8306c58d166722568b756c82cec98e2d21b193af
Author: Erik Dalén <dalen@spotify.com>
Date:   Wed Apr 10 17:05:09 2013 +0200

    (#19128) Make PSON handle unicode characters
    
    This is mostly copied code from json_pure 1.7.7
    
    And a test that this works (only effective on Ruby 1.9+)

commit 2b1a99fd5156ddcdaf20bb7f9a4df9d2ff920e34
Merge: 5a048fb 69ed685
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 10 10:29:19 2013 -0700

    Merge branch 'maint-rake_spec_code_loading'

commit 69ed6856de81bebd227be37d66ddb34c4e90d19d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 10 10:04:12 2013 -0700

    (maint) Update rake spec code loading to match rspec
    
    A shared behavior file located in spec/unit was getting loaded multiple
    times if rake spec was invoked. The rspec default behavior loads all
    files named *_spec.rb but the rake spec pattern was loading all ruby
    files. This commit matches the rake spec behavior to match the rspec
    behavior.

commit 5a048fbca83fc1d621c17fb1b0189855f53c1b0a
Merge: a7023e9 dea0284
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 10 09:59:40 2013 -0700

    Merge branch 'maint-execute_permission_bin_puppet'

commit dea0284f24304d3e113cc6b2eaa63c948a1d5e22
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 10 09:58:30 2013 -0700

    (maint) Readd execute permission to bin/puppet
    
    While doing testing around GH-1582 I wound up using a shared filesystem
    with Windows, which casually stomped the execute permission for
    bin/puppet. This commit readds the execute bit.

commit a7023e93b2b4a7a721fdc1d7dd7ab723ae558924
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Apr 9 21:35:48 2013 -0700

    (Maint) Cleanup trailing whitespace
    
    Removed trailing whitespace only.

commit 35ca770626d5bd509607ba840009ab393f63ea8a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Apr 9 21:31:51 2013 -0700

    (Maint) Revert dependency on debugger
    
    Removed stray dependency on `debugger` gem.
    
    Note you can add this dependency to `Gemfile.local` at the root of the
    project, and that way you can still use bundler and not pollute the
    Gemfile in git, e.g. fuubar.

commit 8ec7e467b5dca05bfc9f393a0c3a193598dbb935
Merge: 778eba2 987190e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Apr 10 03:06:26 2013 +0200

    Merge branch 'master' of ssh://github.com/puppetlabs/puppet.git

commit 778eba24143519aa8ff31109f3ade0d3cdd986ce
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Apr 10 03:05:52 2013 +0200

    (maint) Fix iteration functions not behaving to spec for hash
    
    When calling iteration functions collect, reject, and select with
    a hash there were cases where only hash key was passed to the given
    lambda. This commit corrects this by ensuring that it is always
    a key/value tuple that is passed.
    
    This commit also includes improved tests for these cases as well
    as argument checking.

commit 987190e185811ec52270df811292be0dc0aa65bd
Merge: bf4ee71 a2cda8d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Apr 9 16:04:54 2013 -0700

    Merge pull request #1587 from haus/ticket/master/19138_19109_18985_fix_debian_package_dependencies
    
    Ticket/master/19138 19109 18985 fix debian package dependencies

commit bf4ee717a335e1af90aa912b0a3a12e66b5b1ae4
Merge: a9c4cdb 8107a85
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Tue Apr 9 14:55:02 2013 -0700

    Merge pull request #1588 from haus/maint/master/update_Gemfile
    
    (maint) Update windows-api version in Gemfile

commit 8107a85b211cd01771e0dfc145a109d416afc391
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Apr 9 14:28:40 2013 -0700

    (maint) Update windows-api version in Gemfile
    
    The windows-api gem will be seeing an update to 0.4.2 in puppet_for_the_win, so
    this commit updates the gemfile to match that version.

commit 433765be641310946962a6b6a1ee066c04f17628
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Apr 9 23:05:34 2013 +0200

    (maint) remove lines with only spaces

commit a9c4cdbf07c892676beeffe1c2e9864a49d3b501
Merge: f0a1ee6 e264cb5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 9 13:40:35 2013 -0700

    Merge branch 'adrienthebo-maint-cron_refactor_resource_for_record'
    
    * adrienthebo-maint-cron_refactor_resource_for_record:
      (maint) Use stub over puppet type object
      (#2251) correct crontab matching specs
      (maint) Mark parsedfile match_providers_with_resources as private
      (#2251) add specs around resource_for_record
      (#2251) Rewrite parsedfile method names for clarity
      Revert "Revert "Merge branch 'pull-1540'""
    
    closes #1582

commit e264cb5a28f0fc41012ad8e5dc645d0f16e974a7
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Apr 4 23:01:24 2013 -0700

    (maint) Use stub over puppet type object
    
    Using an object of class Puppet::Type::Cron is too error prone, as
    instantiation of those objects have a lot of side effects. This replaces
    the actual object with a stub to minimize the possible side effects.

commit ccff30821437395f743bb7c3db64ae1e76330b95
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Apr 4 16:59:59 2013 -0700

    (#2251) correct crontab matching specs
    
    The previous implementation of this spec was exhibiting failures on
    windows and was testing behavior out of the scope of the unit test. This
    narrows the scope of the given test.

commit fe1cb615f60aede9caf50950859fe81db3813eae
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Apr 4 15:02:20 2013 -0700

    (maint) Mark parsedfile match_providers_with_resources as private

commit 1242d48e898a6daeb47f7d6804751068e15361f5
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Apr 4 14:50:52 2013 -0700

    (#2251) add specs around resource_for_record

commit ccb5e38ffb075748df95a49e3b8c0f35fb1569c3
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Apr 4 10:44:05 2013 -0700

    (#2251) Rewrite parsedfile method names for clarity
    
    This renames the ParsedFile `self.find_resource` method to
    `self.resource_for_record` and changes the method return to return the
    resource found. It also adds some yardoc for the methods involved.

commit 0352384cb820ef39769f9b9764d5fc27e4d59a54
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Apr 4 10:25:08 2013 -0700

    Revert "Revert "Merge branch 'pull-1540'""
    
    This reverts commit c992fb536d9fd87ad23b2fc0b88592bfe1dea0f5.

commit f0a1ee68ef73452f1e37404c3baa1efa2c248992
Merge: a2af223 28b58d8
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Apr 9 11:30:29 2013 -0700

    Merge branch 'maint_pmt_module_face_acceptance_failures'

commit 28b58d834cce810cd5068394fe92af33beb84669
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Apr 9 11:24:20 2013 -0700

    (maint) Update puppet module version in test
    
    Commit 674e7d2 updates the puppet module tool to follow semver.org and
    use '0.1.0' as the first revision of the module. Acceptance tests were
    relying on the default version being '0.0.1' which meant that the
    version change broke those tests. This commit updates the version used
    in the tests to match.

commit 9c4d7282f03f39a64daffe6fe438312504753ae4
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Apr 9 11:19:58 2013 -0700

    (maint) Ensure results hash is defined for module install
    
    If the puppet module tool attempted to install a module from the
    filesystem that does not exist, it would raise an error before a
    variable was defined that the ensure clause needed to modify. Doing so
    would raise a NoMethodError on nil, which masked the underlying issue.
    This commit defines the variable at the beginning of the method to
    ensure that the ensure clause works as expected.

commit a2cda8d7430b1b3cffa99f9c57fbca147ccc94db
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Apr 9 08:59:48 2013 -0700

    (packaging) Reorder ruby dependencies
    
    This commit reorders the ruby dependencies of Puppet, listing the generic
    version agnostic package first, followed by a ruby 1.9.1 package, followed by a
    ruby1.8 package.

commit 1b06e091d04b9e2e45bfb9e6255be43ad93c319e
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Apr 9 10:08:53 2013 -0700

    (#19138, #19109, #18985) Update debian ruby dependencies
    
    Previously puppet depended on libaugeas-ruby1.9, which only exists for arm on
    sid of debian. The intended dependency was libaugeas-ruby1.9.1, which is also
    fulfilled by libaugeas-ruby. This commit updates the libaugeas dependency to
    reflect the available packages.

commit 69dacc92609b236bb00c27438f335b409f7d5477
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Apr 9 08:59:42 2013 -0700

    Remove trailing whitespace in ext/debian/control

commit a2af22344d0754e7bee5587c4fa3736ba83a28cd
Merge: 131155b 674e7d2
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Apr 8 15:16:59 2013 -0700

    Merge pull request #1583 from ghoneycutt/tickets/master/20100_Modulefile_starts_at_0_1_0
    
    Modulefile starts with version 0.1.0

commit 131155b322e0878b903bc9749825dc731cd5baff
Merge: 3e5cea2 773df2d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Apr 8 15:12:39 2013 -0700

    Merge pull request #1586 from domcleal/tickets/master/20136-array-respond-to
    
    (#20136) Add include_private argument to Array#respond_to? monkey patch

commit 773df2d0bb7131a44a00323a09f180b737aee8fc
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Mon Apr 8 19:18:45 2013 +0100

    (#20136) Add include_private argument to Array#respond_to? monkey patch

commit 3e5cea271b4bcf66d380106c450fd843316daff0
Merge: f023fd0 aa2b1b4
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 8 13:57:21 2013 -0700

    Merge branch 'domcleal-tickets/master/20128-service-dequeue-nil'
    
    * domcleal-tickets/master/20128-service-dequeue-nil:
      (#20128) Handle event dequeues when target resource has no events registered
      (#20128) Improve dequeue example to represent two separate resources
    
    closes #1585

commit aa2b1b4ce9858dd8bb87de371b0b6fbb73dbab8a
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Mon Apr 8 16:38:56 2013 +0100

    (#20128) Handle event dequeues when target resource has no events registered
    
    In the case where a resource triggers an event with invalidate_refreshes
    enabled (i.e. a service starts), the dequeue process would attempt to
    invalidate other events registered for this resource.  If no other
    notifications had been received on the resource already, then the hash element
    for the resource would be nil.  The resource would then fail:
    
      Error: /Stage[main]//Service[service]: Could not evaluate: undefined method `[]=' for nil:NilClass

commit 7a67dcf6572d99838e1d39198776129703a095d2
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Mon Apr 8 16:37:01 2013 +0100

    (#20128) Improve dequeue example to represent two separate resources
    
    The existing spec example for dequeuing events used a single resource and
    self-refresh, which didn't accurately reflect the two resource layout in the
    original issue #7165 where one resource notifies another.

commit f023fd07d78064fd3faf4a2a051fa479c05e0767
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 8 13:55:15 2013 -0700

    (Maint) Remove accidentally left in debug statement

commit d02a2ae5c7af7e5e513a94abcd20a4c9014af99d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 8 13:35:33 2013 -0700

    (maint) Fix undefined local variable error from afdddb8
    
    Without this patch the acceptance tests fail to run because of an
    undefined local variable.  My previous attempt to fix the acceptance
    test caused this error because the variable was set inside of a closure
    when the variable did not yet exist outside the closure.
    
    This patch addresses the problem by defining the variable outside of the
    closure so that the block references our own variable rather than
    creating another one.

commit afdddb87022f02f9a119849688548730f5bb836e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 8 09:11:35 2013 -0700

    (maint) Do not turn off SELinux if it is already off
    
    Without this patch the external CA acceptance tests is failing on EL
    system which already have selinux turned off.  The `setenforce 0`
    command returns nonzero when selinux is already disabled.  This patch
    addresses the problem by only running `setenforce 0` if selinux is
    enabled.

commit c8182d68ff179956efc34dc8d0f79084582aa6f3
Merge: 44e79d0 e0f9c75
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Apr 5 16:18:03 2013 -0700

    Merge pull request #1584 from puppetlabs/feature/master/future-parser
    
    (#11331) A whole new parser and some iteration goodness

commit e0f9c758ef1df3581e873e99fa2dbe5755e093f4
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Apr 5 13:58:22 2013 -0700

    (Maint) Label non-word characters with 'a' in label provider
    
    This restores the previous behavior of the LabelProvider to accept strings
    beginning with non-word characters and prepend them with 'a'.

commit f132ce410ffa4b5aca8c2b4e05d3d5959757be1b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Apr 4 15:52:58 2013 -0700

    Fix test for future parser in arithmetic operators
    
    When checking whether concatenation is supported the check for the
    Puppet[:parser] setting was wrong (checking for a symbol instead of array).
    This caused concatenation to not be supported even with the future parser
    enabled.

commit e02a3ee9485f6e92515aba9c7d4e8f923d1f908c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Apr 4 14:22:11 2013 -0700

    Remove comment stack from the future parser's lexer
    
    The lexer tracks comments in a stack. This code is error prone and broke when
    introducing new language elements. For now we're going to remove it and only
    use the current parser to get doc information.

commit 0eb5ec293ea0602b2c73543c6d111396ad18c2eb
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Apr 3 16:29:34 2013 -0700

    (#11331) Allow parenthesized expressions in ifs
    
    The construction
      if ($var) { ... }
    resulted in an error during parsing. The error was
      Error: nil can't be coerced into Fixnum at ...
    This was caused by a parenthesized expression not retaining any location
    information. The grammar needs to retain the location information for
    the resulting model.

commit 90101a39fd971df7cc63bb0d8d8c5c58202b6559
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Apr 4 11:28:02 2013 -0700

    (Maint) remove leftover api.rb and impl.rb for Pops
    
    These are unnecessary after merging api and impl

commit 4a7995519a6eaaf33fa14082aebb9de17f072ec2
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 3 11:28:55 2013 -0700

    (Maint) Style cleanups in parser validator

commit 531c3d372c75674d4bc05c2368b5f0b051a8d4b7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Apr 3 09:32:32 2013 -0700

    (Maint) Move racc to non-windows gem list
    
    Racc requires a c compiler which is not normally available on windows.
    Since it is only needed when re-generating the grammar it is safe to
    have it only available during development on non-windows systems.

commit 4654ba3924fdcbb82454f37f1382244cbfd52fa0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Apr 2 11:05:06 2013 -0700

    (Maint) Remove API and Impl distinctions
    
    The API and Impl modules were an interesting idea that has just been
    leading to confusion about where things live. Moving forward the public
    vs. private distinction for API purposes should be handled with @api
    annotations in documentation and clear responsibilities of classes and
    modules.

commit 86756f44015bc627ae7336cbe708cc896955a6f9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 1 17:43:30 2013 -0700

    (Maint) Simplify tracking of file origins
    
    The Puppet::Pops::API::Origin system for tracking where a parsed model
    came from was in anticipation of possible future expansions. Those
    expansions are not around and so the extra complexity is simply adding
    extra maintenance. This removes that complexity and should make the
    origin tracking more straightforward.

commit b11f002208871054598bf30c73a8ca89d34bd5c3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 1 17:23:26 2013 -0700

    (Maint) Remove is_adaptable?
    
    The Adapter code for tracking extra information on the Pops models had
    extra functionality that was never used: is_adaptable?. This allowed
    objects to opt-out of being adaptable. However, there is no code using
    this, yet it adds extra responds_to? checks for every call to add
    information onto models.

commit 53ae8597c2db309739e717076daa803e7516227c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 1 17:00:26 2013 -0700

    (Maint) Remove unneeded setting of origin
    
    The origin that is set on the model is not used when transforming to an
    AST. Instead the AstTransformer is created with the filename that it is
    transforming and uses that for the file of all of the AST elements.

commit 955b5aa8fa45278b70ad6feb20a964e560baf51d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 1 16:52:27 2013 -0700

    (Maint) Fix format of method definitions
    
    Throughout the puppet codebase we use the method definition format that
    puts parens around the params of the method.

commit 19b1f05faa920080d16bc0f1b40fb7d3b589943e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 1 16:26:15 2013 -0700

    (#19983) Retain the file from which an AST node came
    
    When the new parser encounters an error when executing the compiled
    manifests it was not able to produce what file contained the error. This
    was caused by a small typo in the AstTransformer.

commit 6831575a785d214695e666eb9012c754d0f3e14c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 1 15:55:00 2013 -0700

    (Maint) Remove commented code

commit bc66f31ad1f253219d08edd0de964e44ee64d158
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Mar 28 16:58:52 2013 -0700

    (Maint) Rename Parser::Parser tests
    
    The Parser::Parser tests all used the same describe name, which caused
    confusion when trying to read them. The filename helped, but
    disambiguating the actual test name is better.

commit 331c393b64d80b1ebb298b5869422cb7ba5c4e6a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Mar 28 16:11:58 2013 -0700

    (Maint) Remove test for unfinished type_creator

commit 6e0adf9e000805e68fe767931ffabf6152a96f76
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Mar 28 15:51:33 2013 -0700

    (Maint) Remove experimental type_creator

commit b4a5e1d7c7b333d57e43f12c125e9a4ba760f87e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Mar 28 15:25:50 2013 -0700

    (Maint) Remove unfinished evaluator
    
    The evaluator, scopes, and evaluation models were all part of another
    experiment to create a new evaluator for the language. The egrammar
    prototype, however, uses the existing AST structure for evaluation
    semantics and so this code is not needed.

commit 411d9d2f9669c035abdf3e60241e6f2ce5b3038f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Mar 28 15:00:36 2013 -0700

    (Maint) Remove aliases for Pops::API classes
    
    The aliasing was an interesting idea, but just leads to having to look
    for multiple different names and confusion about what the correct way of
    referring to something is.

commit eeaad65cf5b87eb7e6e18168ec1e2d844e76e812
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Mar 28 14:50:14 2013 -0700

    (Maint) Allow Pops::API classes to assume module
    
    Now that the parts of a component are all required at the point the
    namespace modules are created, they can assume that the module
    structure exists. This simplifies the declaration for the API
    classes.

commit 1286ed7d403e9d6517cdc53a3aa81515a741dc8c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Mar 28 13:33:51 2013 -0700

    (Maint) Allow Pops::Impl classes to assume module
    
    Now that the parts of a component are all required at the point the
    namespace modules are created, they can assume that the module structure
    exists. This simplifies the declaration for the Impl classes.

commit ed1f664760d7b209d36b07b8897026b0e06d7aa4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Mar 28 11:42:36 2013 -0700

    (Maint) Re-align requires of pops code
    
    The Pops code had gotten itself into loops and ended up with a lot of
    dependencies on what order tests are loaded. This was caused by
    everything trying to require just the small part of the pops code that
    it felt it wanted. This idea violates Re-use/Release Equivalency
    Principle
    (http://stackoverflow.com/questions/63142/the-reuse-release-equivalence-principle-rep)
    and caused odd test failures.
    
    This reorganizes the requires of the pops code such that anything using
    the pops code should only every require 1 or 2 different files:
    puppet/pops/api and puppet/pops/impl. These two files then will pull in
    all of the components of their portion of pops in the order needed and
    will also ensure that the module structures are in place for each
    component.

commit caa2d7c8b053b9cee0a03b400a69136e2b62cc17
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Mar 27 15:34:42 2013 -0700

    (Maint) Fix label provider on 1.8.7
    
    String subscripting works differently on 1.8.7 from 1.9.3.

commit d35c35f07fe7262fdb670e4c34f8d58b336c5e77
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Mar 27 13:56:02 2013 -0700

    (Maint) Remove test order dep
    
    The test depended on BaseScope having been created in another file.

commit 3cae4de436b41e01dee9497b01502503e9cd2370
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 27 18:16:04 2013 +0100

    (#11331) Add more negative tests (rvalue checks).
    
    This adds checks for validation of non rvalue producing expressions
    that can be created with the current concrete syntax. (Combinations
    that can not be created via the current egrammar are not included since
    it is difficult to create them).

commit c185ae87ae76b9561e19155b916effeb31871b39
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 27 05:01:32 2013 +0100

    (#11331) Fix issues with detailed errors for hostnames.
    
    The validation of hostname expressions did not produce good messages
    for interpolated string (syntax error vs. detailed error). Relaxes the
    grammar to accept a concatenated string which is then validated.
    
    Refactors parameter name from 'node' to 'semantic' in hostname_xxx
    checks (the role of the parameter is to provide semantic location, it is
    not required to be a node).
    
    Contains additional tests for other (already passing) detailed errors.

commit cd33a0dd61b1eb95a7276a113f942f7eddeeb1b5
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 27 02:53:05 2013 +0100

    (maint) Rename non uniquely named test example

commit dc4f6d50f78765612703c49d913876d68e91a3c1
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 27 02:07:41 2013 +0100

    (#11331) Add validation that CASE does not produce an r-value.
    
    This was missing in the validator.
    Test example added.

commit 1eb5414e28ea26297913dd34300ff0b526e54e1b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 27 02:00:07 2013 +0100

    (#11331) Correct issue with IF expression being marked at wrong pos.
    
    The IF statement was marked (in the grammar) to be located at the
    expression that follows the keyword.
    
    This commit also adds parser integration tests (checking error
    messages).

commit 2a62c565bd98d4d94f080e29674c350d89524ba0
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 27 01:56:02 2013 +0100

    (maint) Remove commented (dead) code

commit 7940318d43f12de924c434c535b02794b7c9c99a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 26 17:16:02 2013 -0700

    (Maint) Clean up whitespace for readability

commit c38133216bac66464ecf495eb3fe0bf915fdf8e1
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 26 16:35:49 2013 -0700

    (Maint) Remove whitespace errors

commit be83cc6b8d723f0bf313037c86072caabd9ab446
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 26 16:14:15 2013 -0700

    (Maint) Remove re-configure of Rspec in tests
    
    The tests should just include into themselves what they want rather than
    forcing it on every other test.

commit 6af5491ad985047b7ce36e311eb206236cc0a3bd
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 26 15:12:54 2013 -0700

    (Maint) Remove test scaffolding self-tests
    
    There was a bunch of duplicated testing system tests. They aren't
    needed.

commit c2368986dfb1068cf4e95a06219872ceadc65f23
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 26 14:54:25 2013 -0700

    (Maint) Remove ||= of constant
    
    Using ||= made the tests fail if run in a certain order under ruby
    1.8.7. It turns out that most of the shortenings weren't really needed
    and also the or was needed because the configuration of rspec was being
    altered by one of the tests.

commit 0b858a7512aa6afa44d53785bfbe9cf0e9a09e55
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 26 22:07:15 2013 +0100

    (#11331) Refactor computation of lexer line
    
    This refactors the computation of line to make use of the line
    index created at the start of lexing.
    This the entire input is scanned for lines there is no need to scan
    for newlines in multiline comments, when handling the special RETURN
    token, or when slurping strings.
    
    This reduces the scanning overhead.
    
    The ability for a token to set its incr_line attribute to true
    is removed (it was only used by RETURN token) and this is now handled
    generically.

commit c02141934bab9ce9a2b051b5c3dd655447a40aa0
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 26 17:45:48 2013 +0100

    (#11331) Refactor position on line calculation, add tests.
    
    There was one remaining case of position calculation that was wrong;
    whwn strings contained embedded newlines, the following parts of
    an interpolated string would all be positioned relative the start of
    the string (as if newlines did not exist).
    
    This was further complicated because position of the string part
    with newlines should remain positioned at its start offset, while
    the end may be on a different line.
    
    Rather than keeping track of two line offsets (for the start and
    the end offset), a refactored solution instead pre-computes an
    index of all line breaks. It is then easy to calculate the line number,
    position on line for any offset at any time.
    
    A test is also added with an example of an interpolated string
    with embedded line breaks.

commit 54727bd08463b636efe241cb54ffb7a3aa35860a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 26 02:57:36 2013 +0100

    (#11331) Fix source position calculations
    
    There was an issue with changing line inside an interpolated string.

commit f24bc868953dcde9aa58fe87575af49374adcd0c
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 26 01:02:23 2013 +0100

    (#11331) Remove pending test
    
    The test was checking for an implementation detail that is already
    checked in a better manner in other places.

commit 88b157c56b5f4ac931471c947c60499dba565204
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 26 00:48:34 2013 +0100

    (#11331) Add lexer source position tests for interpolation

commit 2e55f20317cc8d9390cc32a3cab54fb65f5e73a1
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Mar 25 23:43:36 2013 +0100

    (#11331) Fix lexer source pos calculations wrt. interpolation.
    
    Interpolation is lexed in a somewhat complicated way where tokens are
    placed in a queue and later emitted from this queue. One problem was
    that tokens where updated with position as they were pulled off the
    queue instead of when being entered (this associated them with the
    wrong source position).
    
    Since the original lexer only keeps track of line position this problem
    was only noticable when interolation stretches over several lines. The
    egrammar lexer however keeps track of positions/offsets and these were
    almost always wrong.
    
    The problem with positions is further made difficult by moving the scan
    position forward as side effect, and not paying attention to exactly
    when it is moved, and from which "base" or "start" position.
    
    This commits alters this by allowing positioned elements to be entered
    in the token queue and by carefully updating the offset and end_offset
    at the places in logic where tokens are created.

commit ffc27e576589e85c435330f09de8660cf2ba0ef9
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Mar 22 18:26:14 2013 +0100

    (#11331) Fix broken errors/bad message for bad numeric tokens
    
    There was a problem with asserting numeric input. The expected method
    'assert_numeric' was not implemented where expected, and there was no
    test covering this bad numeric input.
    
    Now there is a test, and the issues are fixed.
    
    Note, it is almost impossible to enter an invalid decimal number since
    it is either going to be recognized in part as a valid number or not at
    all being a number. The error will be about something else instead.
    
    Hence no test for bad decimal from lexer.

commit da3cfa89701419e6fddeb7d6f4202b5f311b6ee1
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Mar 22 17:35:45 2013 +0100

    (#11331) Fix egrammar lexer error for unclosed quote.
    
    The lexer produces unhelpful error message with garbage for an
    unclosed quoted string.
    This improves this error message, as well as message emitted for
    unrecognized escapes.
    
    The lexer output for these contains file, line and pos, as well as the
    quote, and a sequence of up to 5 following characters (rather than the
    rest of the file as before).
    
    Also handles eof.

commit 107d0e7c9103bc7a9ab0685eb58305ff0b734553
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 21 17:49:49 2013 +0100

    (maint) Fix errors and formatting after rebase.

commit dcd1f74338cffb5538e8a793ef0911693b92c92a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 21 03:32:35 2013 +0100

    (#11331) Clean up trailing spaces and bad formatting.
    
    This cleans up source formatting (spaces/tabs), dead todo, blank lines,
    ending without a linebreak, and corrects indentation.

commit 0760bd372b79e4a2126b5cd0a56bd013f129cfc4
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 20 06:01:52 2013 +0100

    (#11331) Increase test coverage of the egrammar lexer.
    
    Basically, a copy of the examples for the classic lexer, but
    with the egrammar's expanded token set.
    
    TODO: should add more .pp files to lex with newer constructs (will
    not increase coverage, but ensures testability of only the lexer).
    
    Adds copy of fixture files instead of reusing them (to enable
    future additions of extended lexing capabilities).
    
    Also tests check positioning information.

commit 0d3c0269d18d64786368043ce735fca8658cabef
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 20 05:58:53 2013 +0100

    (#11331) Fix interpolation problem (false detection of function call).
    
    This corrects the lexing of interpolated string. A $x should never be
    taken as a function call - i.e. $x(foo) is not a call to function x,
    but ${x(foo)} is.

commit 70fab0378e021fd4e4b275d8aeeba92430dab54f
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 20 05:57:20 2013 +0100

    (#11331) Correct formatting of concatentated string in ast tree dumper.
    
    Spaces where missing for some combinations of string/expressions

commit f3fbac09fa678b0e93c585c893813e9c49b57d99
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 20 05:51:32 2013 +0100

    (#11331) Revert the classic grammar and lexer to master.
    
    This makes two small changes to the classic grammar since
    BlockExpression should be used instead of ASTArray for
    sequences of expressions to make AST comply with both grammars.
    
    Reverts test of parser and lexer to master version.

commit 09a37e77bb44c48af2fe1889051c8164fb81c2d5
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 20 02:33:57 2013 +0100

    (#11331) Change array/hash concat/merge to only be available for --parser future.
    
    This adds an assertion that + is only allowed when --parser future is
    in effect. Tests uppdated.

commit 55dd9b720551081106d07df594244045050a909a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 20 02:07:53 2013 +0100

    (#11331) Change name of EParserAdapter's file to e_parser_adapter.rb

commit 2a7891b2a75f176f5ae6eefbee118ccb1639f532
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 19 23:38:54 2013 +0100

    (#11331) Improve lexer error messages for internal error type.
    
    The lex_error method needs further work, it has no notion of context
    and dumps some garbage on the user in several cases. This is one small
    step in fixing this.

commit 13a34257bc4401ba4fca726e11f630af49866ce0
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 19 04:50:23 2013 +0100

    (#11331) Remove a 'require debugger' since this fails on Ruby 1.8.7
    
    (and should not be there in the first place).

commit e2fd61d9bc30b31c386c570cb8c2c216f9835ab2
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 19 04:49:48 2013 +0100

    (#11331) Restore initialization of AST constant in test.
    
    The earlier required fix of using AST ||= is no longer required to get
    rid of redefinition errors. Instead the ||= is not possible to use in
    1.8.7 since the constant is not defined).

commit 8a5566c0f3492730a4fa5b86f2c35d6d1480078a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 19 01:36:39 2013 +0100

    (#11331) Fix issues relating to running tests for Ruby 1.8.7.
    
    There were several problems related to EvaluationError constant.
    This is now simplified. Moving inclusion of module in tests to be
    inside describe instead of done as rspec configuration.
    
    Fix issues relating to Ruby 1.8.7 Hash not being in insert order.
    
    Since Ruby Hash in 1.8.7 is not in insert order when iterating
    several changes where required.
    - dumping now sorts keys before dumping (this to get the same behavior
    on all Ruby versions.
    - checking evaluation result differs since result can be in any order -
    test updated to check multiple permutations (this since it is not
    meaningful to sort all evaluation results and they may be nested).
    
    Fix char.upcase issues (not supported in Ruby 1.8.7).
    
    This means using s[0,1].upcase instead of s[0].upcase to force it to be
    a one char string. (Works in both versions).

commit 2f48d4285ba1f185670d11bcdda07f3fc26a8f20
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 19 00:15:00 2013 +0100

    (#11331) Add assert of rgen installation when using --parser future
    
    This adds an assertion that RGen is available and that version
    0.6.1 is installed (by checking that required operations return
    the correct result).
    
    Displays error message and stops if assertion fails.

commit a32b947abf8bde45ae694e19fa7121b724354419
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Mar 18 04:03:53 2013 +0100

    (#11331) Add support for deprecation warnings, and non demotable diagnostics.
    
    To support deprecation, a new severity :deprecation was added. These
    are collected as warnings in the acceptor, but are issued with
    the prefix "Deprecation notice: ". There is also a separate
    setting for max_deprecations that is different than max_warnings.
    
    In order to prevent crucial issues to be demoted by mistake (i.e. they
    are always errors and not configurable), a "demotable" feature was added
    to the Issue class, and it is conveniently configured using the
    hard_issue method instead of issue.
    
    An attempt to demote such an issue will result in a DevError being
    raised.

commit 852e018eb882e56a38005d4ac0aba04d98a3d592
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Mar 18 01:41:32 2013 +0100

    (#11331) Add validation of all expressions that will fail in transformation.
    
    This provides better error messages than the transformation step's
    more crude and technical error messages. It also enables collecting
    more than just the first error.
    
    Adds validation of numeric variables and parameters.

commit 37c728479147dcde62b23dee1d4dde02bccf0bea
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Mar 18 01:39:51 2013 +0100

    (#11331) Add issue for ILLEGAL_NUMERIC_PARAMETER
    
    Numeric variables are evil. It should not be possible to do:
    define ($0, $1=2) etc.
    
    This adds an issue for this problem.

commit 63c5e46566356b93ee8d5d3d96fc9d58835f6b1b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Mar 18 00:20:44 2013 +0100

    (#11331) Renames label 'Variable Expression' to 'Variable'.
    
    It just did not read right in error messages.

commit df583bf067aca9909aaa8023956bf9a96346da3b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Mar 18 00:20:10 2013 +0100

    (#11331) Forbid assignment to numeric variables (unless option is :ephemeral)
    
    This is an internal protection against assignment to numeric
    variables - as they royally screw things up wrt being overwritten
    by ephemeral scopes (or causing imutability errors).

commit 92f2845f68c62221d5256dcd8f7433b22471e9cc
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Mar 17 23:55:38 2013 +0100

    (#11331) Add issue for ILLEGAL_NUMERIC_ASSIGNMENT
    
    This is an issue for assignment to numeric (decimal and octal)
    variables since numeric variables are only set by match result.

commit b14829da31d48cb2be6d98d0a22d170d462edd31
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Mar 17 22:54:00 2013 +0100

    (#11331) Make it possible to call initial function in interpolation.
    
    It is not possible to have a function call first in interpolation.
    "A random number: ${fqdn_random(30}" did not work because the first
    bare word is tokenized as a VARIABLE by the lexer.
    
    This changes the lexer to emit a NAME token if the bare word is not
    followed by a '('.

commit f1071a6cfdc3a7f5995b62cb42a18e97d4e1303b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Mar 17 17:01:53 2013 +0100

    (#11331) Add monkey-patch that fixes Rgen issue.
    
    Rgen 0.6.1 contains an implementation that extends Array with
    a method missing. In the 0.6.1 version of Rgen, this method fails
    to honor the Ruby Hash protocol that the method "to_hash" on any
    Object should produce a Hash. This problem only occured when
    creating a Hash using Hash[[]] (i.e. to return an empty hash).
    
    This addes two methods to array:
    to_hash (which raises NoMethodError (i.e. does not change any behavior).
    respond_to? which returns false for :to_hash.
    
    This monkey patch should be removed when RGen releases a new version of
    lib/rgen/array_extensions.rb that handles to_hash correctly (expected to
    be in RGen 0.6.2).
    
    The monkey patch is harmless since it basically adds an implementation
    of what Array does if this patch was not there.

commit bcfb805f49dbfed86602d8af0eccd35378f62085
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Mar 17 05:38:50 2013 +0100

    (#11331) Fix issues with recording origin (result may be nil).
    
    Also fixes tests of issues.
    Relabels Object and String as Ruby Object, and Ruby String.

commit 954e9eec32ddc6b081e10c406713eacdef94f893
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Mar 17 05:13:42 2013 +0100

    (#11331) Improve error feedback, fix issues.
    
    File information was not picked up.
    Origin information was not associated with the root element.
    Improves documentation.
    Fixes issue in Origin with URI generation.
    
    Adds settings for max_errors and max_warnings (default 10).
    If multiple errors warnings are found these are now output (up
    to the maximum number before emitting one final exception.

commit ae1234f463e68d4e8dea6f30d44e345c91e6d397
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Mar 17 03:16:20 2013 +0100

    (#11331) Fix validation of 'hyphen in name'

commit 42956fc17fb8b67067ed3d0246e775a0c9f74587
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Mar 17 03:14:57 2013 +0100

    (#11331) Add labels for QualifiedName and QualifiedReference.

commit 18e605d1c0dab851927861e902eb639bf2c10d24
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Mar 17 03:11:38 2013 +0100

    (#11331) Modifies labels to use lower case form - e.g- 'if' statement.
    
    This is done for labels that start with punctuation and keywords,
    but not for labels that are nouns/titles; e.g. 'Resource Override'.

commit 1e1e6ca7f444d2558ece0e520b58e56def3426d3
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Mar 17 03:08:19 2013 +0100

    (#11331) Improves the wording of NAME_WITH_HYPHEN issue

commit 7221bbbe0fd606fbc6c5dd758bf6e2e0c1f098ae
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Mar 17 02:51:19 2013 +0100

    (#11331) Fix pos off by one error in tokens.
    
    pos for first char on line is 1, not 0.
    (This was fixed elsewhere, but not in tokens).

commit 4bd6b9d0c81286508a8065dc313e10392571336d
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Mar 16 18:54:54 2013 +0100

    (#11331) Make vardef produce rvalue.
    
    This ensures that chained assignments work as expected (if they are
    allowed by the validator).

commit c3df220fca296307ad2d17bc8abb17e24b99f30b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Mar 16 18:53:44 2013 +0100

    (#11331) Add setting -parser [current/future] that selects which parser to use.
    
    This also makes the ParserFactory select parser based on this setting.

commit 35bf49fb7596046cac912f9b7e2f898fb0b26c9f
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Mar 16 18:51:44 2013 +0100

    (#11331) (maint) Remove unused copy of type_creator.rb

commit 6ad3bf81c17fcf0417d80e11071098376a77b403
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Mar 16 18:51:09 2013 +0100

    (#11331) Make tests run for both current and future parser.
    
    Tests were hardwired to run for only future/eparser. Now all tests
    where parser is involved runs for both current/classic and
    future/eparser (except when testing methods; where parsing is only
    done in order to construct a call; it is the function that is tested,
    not the parsing). The collect method testing includes testing the
    various ways a call can be made to it, but this is the only place; this
    because it is more work to unwire all the others when the final style
    for lambdas gets picked.

commit bab5ad3ebdb40ddb09fcd8904002cdd3e2a251c7
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Mar 16 18:46:50 2013 +0100

    (#11331) Add parse test for chained assignment.

commit 9e837aa056668145761441f049b8223ada7cea55
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Mar 15 17:06:11 2013 +0100

    (#11331) Add more validation - e.g. $a[1,2]
    
    Instead of silently transforming this to $a[1], this is not validated.
    Also adds Issue for deprecated use of name as type. (unused at this
    point).

commit ddc22f2163bc8e96beb4a8815e5ea8aa9761593c
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Mar 15 17:03:51 2013 +0100

    (#11331) Improve validation of arguments in slice function.
    
    Some erroneous inputs produced bad result.

commit e3c3b914a9c9b5e4099ff83f97a0bddd8f6e2d50
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Mar 15 16:09:50 2013 +0100

    (maint) Remove calls to debugger

commit 59bef3f22173761df62c0ea3aa832c9a92ef2e95
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Mar 15 16:03:17 2013 +0100

    (#11331) Fix issue with label article extra space.
    
    The 'a'/'an' did not return the article which resulted in an extra
    space in formatted messages.

commit e9a8274eeaa54c95e72545d84d2c8d26d1e06765
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Mar 15 02:54:35 2013 +0100

    (#11331) Improve error checking in slice function.
    
    Also adds a slice size of 2 by default.

commit 1884ecde279aa6acf02a97834d9048679119cf76
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 14 23:41:56 2013 +0100

    (#11331) Make pos start from 1 (first char on a line) instead of 0.
    
    All other similar tools start from 1.

commit bf26b6ef139c22aaff2c81948e69fb1d6607eeeb
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 14 23:41:17 2013 +0100

    (#11331) (maint) Remove unused (misspelled duplicate method).

commit 1cd30cfbe1193056e2f269699229da730e032bac
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 14 17:22:18 2013 +0100

    (#11331) Add eparser unit test.
    
    Eparser was unit tested by the parser unit test, but did not work
    as intended. This adds a separat test
    
    This is basically a copy of the parser unit test, but with removal
    of tests that only check the parser implementation (internal calls
    to "self" from the old parser).
    
    There are also minor adjustments as the egrammar parser has better
    information (e.g. the result contains "file" instead of "File" as type
    is already detected and type internally has already done a downcase).

commit 3c5c2bff35e7f27826f8d9895a0b52dd27ff907d
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 14 17:19:48 2013 +0100

    (#11331) Add tracking of position on line
    
    This contains a new feature; keeping track of the line position
    to enable better reporting for syntax errors (e.g "line 13:3",
    vs just "line 13"). This is helpful to a user since a particular
    punctuation character may appear many times on a line.
    
    The puppet/parser classes have been updated to at least accept
    a pos. (The "old" lexer does not produce pos information, and if
    pos is nil, it is ignored later).
    
    The egrammar implementation is refactored, and instead of extracting
    line information separately, it simply passes on an instance of
    the SourcePosAdapter which has all the required information.
    
    The egrammar lexer computes offsets, and positions. It stores them
    in the lexing_context until asked for a detailed position.
    
    The lexer needs to be multibyte aware when computing pos, and it is now
    updated to use multibyte regular expressions for whitespace (as a side
    effect). Multibyte is supported for Ruby 1.9.3 and later.

commit 969787e0782757e929b82d617c0d4f2165a101ea
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 14 17:13:58 2013 +0100

    (#11331) Make parser_spec test free of implementation concerns
    
    This test should test the result of parsing, not unit test one
    particular parser implementation.

commit 43ed53d822310167fc4950bfbc983ea0fbbe5ee0
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 14 17:11:23 2013 +0100

    (#11331) Increase coverage of pops parser/transformation tests.
    
    ... this adds more tests

commit 0a8963399b14eddaa7bd46b6fcf926ca12578984
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 14 17:10:35 2013 +0100

    (#11331) Make compiler unit test use ParserFactory to create parser.
    
    The compiler test is not testing the parser and should use
    the configured parser dictated by the ParserFactory.

commit 3d1bdb748d9202d29fdd9dc7988aab5dc5552964
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 14 17:05:34 2013 +0100

    (#11331) Fix issue with checker not checking model root.
    
    The checker only checked the content of the root, not the root
    itself. Detected late because all real parsing produce a valid
    BlockExpression as the root rather than a partial snippet. This was
    triggered by certain tests.
    
    Also fixes checker being fed a partial result wrapped in a factory
    instance.

commit bc49e085bf126dd210d5437a2fb3b71ebd9ba3f1
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 14 17:00:38 2013 +0100

    (#11331) Correct issue with optional lambda.
    
    This is a follow on problem caused by adding optional endcomma
    in argument list. The lambda setting was used with the value from
    the wrong parse rule.

commit ee65234323c21f942298d73a7fb17a18aa44c36e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 14 16:24:49 2013 +0100

    (#11331) Fix optional endcomma missing in function call expression
    
    This was simply missing in the function call rules.
    Add tests for optional endcomma in function calls.

commit d79a23e9ebb276920a562c4687dd321fb1dbd9f0
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 14 15:27:07 2013 +0100

    (#11331) Correct precedence of '?' and recognize virtualized resource defaults.
    
    The precedence of the '?' operator was wrong (only allowing
    function calls and primary expressions as LHS).
    
    Virtualized Resource Defaults are illegal, but needs to be recognized
    and flagged as such rather than syntax errors.

commit a1b709ea4511cefb515297aad5b8783b881a2934
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 14 02:14:26 2013 +0100

    (#11331) Make lexer support multibyte and produce tokens with offset.
    
    Multibyte is now supported by using [:blank:] character class
    when the ruby version in use supports this. (It matches all Unicode
    blank characters except CR LF).
    
    No other character classes are used when matching strings, which will
    allow Unicode in strings (but not in bare words).
    
    Lexer now also computes total offset per token, and offset from last
    seen linebreak (or 0 if on the first line). These values are available
    as :offset, and :pos in the token.

commit 7e7951d9b6e550cbd1dff847dc4df1cc09005a76
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 13 16:46:02 2013 +0100

    (#11331) Refactor ParserFactory and PopsParserAdapter
    
    This separates the PopsParserAdapter from the ParserFactory and
    renames it to EParserAdapter.

commit 0782fdfb979a8fe9ce07001a597efba45a5b5f8c
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 13 04:53:17 2013 +0100

    (#11331) Add first working implementation of Validation to egrammar impl.
    
    This adds validation to the parsing pipeline.
    The ParserFactory obtains a Validator configured by a
    ValidatorFactory. The ValidatorFactory assembles the various parts
    required to check each element, issue diagnostics, handle configuration
    of which issues to process, and produce suitable error messages
    given context specific information.
    
    The construct is more elaborate than needed for the usecase of "validate
    the parsed result for the current version". This because there are
    several downstream use-cases (run in "lint mode" where output of mroe
    than one error is wanted, both errors and warnings should be output,
    parseable output is wanted for integration with other tools, etc.)
    
    Some refactoring is needed as the current configuration is
    somewhat more complicated than actually required.
    
    Unit and Integration tests now run green. There are still issues
    with some tests when running them in isolation.

commit d8455364cfad08784ff1b4b2575db059907b482c
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 13 04:47:02 2013 +0100

    (#11331) Update Patterns with patterns used in validation.

commit 85da86403be9cdf24dfc8c7c23817cb52691c530
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 13 04:46:38 2013 +0100

    (maint) Remove cruft from AstTransformer
    
    Dead comments removed.

commit ee79f9e7f84a757dc9a0b46d4a2dc76e59d99716
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 13 04:44:43 2013 +0100

    (#11331) Add LabelProvider and ModelLabelProvider.
    
    These are used to translate from model class names to something
    readable by a human in error messages.

commit bfa7e20a6297bf701311ac1633b301b23abc6edd
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 13 04:42:56 2013 +0100

    (#11331) Change QueryExpression to being an Expression instead of UnaryExpression
    
    This because an UnaryExpression has a required expression, and
    a QueryExpression may have nil (i.e. query all). This issue was
    deteced when writing validation and checking multiplicity.
    
    Modify Model Factory to handle QueryExpression not being Unary.
    
    The factory failed to build query expressions as a consequence of
    the refactored superclass of QueryExpression (it was built as
    an unary expression earlier).

commit 9226d0762c09531db83c0bdcd0968444d9f739af
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 12 17:05:38 2013 +0100

    (#11331) Add additional patterns (to be used in validation).
    
    Patterns are regexp patterns that are shared.

commit cbda9510359a7f0b0fae53b81857d93957828864
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Mar 9 22:54:45 2013 +0100

    (#11331) Make all intergration tests (except error tests) green.
    
    There were issues with not correctly passing parsing of ruby
    DSL manifests off to classic parser.
    There were logic missing for relationship expressions (and tests
    missing).
    Some transformations to nop did not work in practice and nops had
    to be removed from list of expressions in a BlockExpression.

commit 79a1eef0a93c17e1fd1128b7a2af8679f2ffe5bc
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Mar 9 22:48:08 2013 +0100

    (#11331) Fix grammar issues with relationship chaining.
    
    It was not possible to chain relationships due to error in
    grammar.

commit 92c499a53382765f869faa53339e19ce42b92506
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 7 04:56:06 2013 +0100

    (#18764) Modify design of enumerables. Fix doc of all.
    
    Rework each_slice/slice and fix doc of all enumerable  f's
    
    The idea that each/foreach/each_slice should produce the last produced value
    from the lambda was bad. This makes it difficult to chain these
    calls. These functions now produce the receiver.
    
    Modify the return value of each_slice to the receiver.
    
    Rename each_slice to slice and make block optional to produce array.
    
    It was a bad idea to implement each_slice as the only way to get slices
    from an array. The renamed function works as before when given an
    optional lambda. When called without a lambda it produces the collected
    result of all slices. Thus making it possible to iterate over it.
    
    The alternative was to equip all other iteration methods with slicing
    functionality, or to implement a separate slicing function.
    
    Corrects documentation in all enumerable functions.

commit 2724b3049f443553c4d7c67a6c58935d7330f779
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Mar 7 02:59:28 2013 +0100

    (#19632) Add test to assert that issue 19632 is not caused by lexer/parser.

commit 14ca58ca9bf03d58a7872e36c859d0dd8b5bfed9
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 6 15:23:57 2013 +0100

    (#11331) Fix source formatting.

commit a74adc9104dd85984cade5c0a05bef23de3d3b41
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 6 15:06:57 2013 +0100

    (#11331) Add support for source position in AstTransformer.
    
    All created AST objects (where meaningful) are now created with
    file and line information.

commit 451f573a5d4d23acb6b55a579ae070f4a35b50a8
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 6 14:12:05 2013 +0100

    (#11331) Fix problem with shared state in AstTransformer.
    
    The AstTransformer used a shared state making polymorph calls on the
    first created instance. This blew up when state was added to
    AstTransformer (2 tests failing).
    
    This change uses the visitor's mechanism that allows passing an explicit
    receiver using visit_this instead of just visit. (And as a precaution,
    the visitors are configured with a nil default receiver).

commit 2463887457829668b0dab56dfd91cd10c901b670
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 6 00:08:03 2013 +0100

    (#18764) Add each_slice iteration function.

commit 56b4656033b08308512ebddc2714e48720f30e4a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Mar 6 00:07:36 2013 +0100

    (#11331) Fix problem with transformation of KeyedEntry.
    
    It was missing an entry for LiteralNumber as key.
    Class named ConcatenatedString was also spelled wrong.

commit f6e680e2a18d59c6195de81d4caf46971147a6c9
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 5 21:57:07 2013 +0100

    (#18764) Modifies picking 'each' to be consistent for Array and Hash.
    
    One argument, pick each entry (Array = value, Hash = array with
    key,value).
    Two arguments, pick each entry (Array = index, value; Hash = key,
    value).
    Additional arguments for array (picking pairs etc.) support removed.

commit 8b95e1b4092559d1affb4ee6265c797be7faa75b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 5 16:51:54 2013 +0100

    (#18764) Add concat, append operations (+, <<) for array, and merge (+) hash.
    
    This is good because it is otherwise very difficult to perform
    typical data transformations (without these operations you can
    filter, map, and reduce to one - or jump through hoops trying to write
    a reduction that appends.
    
    Although not strictly part of #18764, this is the same category.

commit fb7f5f3ac1e6c0d3c4c4937bd1d68cc2ee889928
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 5 14:47:37 2013 +0100

    (#11331) Add documentation adapter.
    
    The intent is that the parser associates documentation with the model
    via this adapter. A doc(factory, doc_string) method is available in the
    parser, as well as a Factory.doc= doc_string method.

commit fb31171c32ae36f67dbadc42b79470fa2fd99a12
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 5 02:40:13 2013 +0100

    (#11331) Add todo note for change of transformer's ast method.
    
    Describes the intent for adding source positions to produces
    AST objects.
    
    (maint) Add read accessor for importer.
    
    This to help debugging.
    
    Adjust tests to not include spec helper at rspec config time.
    
    Fix type_loader_spec test mocking the wrong object.
    
    (The mocking in type_loader_spec still does not clean up ok.
    If executed before
    spec/unit/pops/impl/transform/transform_conditionals.rb, the second fail
    due to getting wrong instance of AstTransformer !!??)
    
    Update yardoc for Utils.find_adapter
    
    Fix utils method that was not a module method (find_adapter).
    
    Cleanup tests (comments, blank lines, debugger).
    
    (refactor) Make AstTransformer use Utils class to find adapter.
    
    Finding an adapter should be in one place only.

commit e2eb525518c5f072941d35bdda4fad7bbd643d5a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 5 02:34:26 2013 +0100

    (#11331) Add ability to transform source location.
    
    This adds the ability to encode source location to the transformer.
    (Only a couple of the transformation uses this).
    
    The mechanism should change to passing the object before the hash to
    make it more convenient to pass options.
    
    Adaptable updates to not require an object to implement is_adpaptable?
    method

commit 3e870617faed55efed9f87afeffed2516b5eb556
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 5 01:16:31 2013 +0100

    (#11331) Change specs to use ParserFactory instead of (classic) Parser.

commit 8fbe18b7a76dd9647496ec98ae4cad22195f0293
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 5 01:09:33 2013 +0100

    (#11331) Add indirection to parser instantiation, add support for egrammar.
    
    This adds a ParserFactory that enables addition of a user supplied
    switch between classic grammar/evaluation and egrammar (hard coded right
    now to select the egrammar/transformation to ast route).
    
    Change type's require from parser/parser to just parser.
    
    The type does not need the actual parser, only the namespace.
    
    Make typeloader use the ParserFactory instead of (classic) Parser.
    
    This makes the type loader go via the user configurable switch.

commit 72222ec1a4e337d28350e982afea3e5b65666ed4
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 5 01:07:43 2013 +0100

    (#11331) Fix problems in grammar referencing non existant rule results.
    
    Some parts of the grammar was (is still not) covered by tests.
    Function calls with optional lambdas referenced non existing results.

commit 2c691d0514cc0e6193e7b952491d4bb99493a114
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 5 01:03:38 2013 +0100

    (#11331) Add import support to transformation, fix transforms.
    
    This adds support for importing by instantiating the transformer with
    an "importer" (capable of performing an import while transforming).
    
    Several transformations that ended up setting "empty code" where instead
    nothing should have been passed now corrected.
    
    Turn on rescue/rethrow in parser support.
    
    This turns on rescue and raise of parse exception. (When developing the
    grammar part it is beneficial to get the underlying exception with the
    grammar logic location/errors). This hides those details.

commit 133e3ca0eaaa0affd23b69dec08320b60bed8145
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 5 00:59:37 2013 +0100

    (#11331) Fix dump of VarDef and missing lambda in Function call.
    
    VarDef name needed transformation to string (it is an AST::Name, not a
    string). Output of lambda (pblock) in function was smiply missing.

commit 4133ca98cbbd762800a9fb81b1de9ae7bdcaa436
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Mar 5 00:02:40 2013 +0100

    (#11331) Make environment use ParserFactory.
    
    This enables switching parser.

commit 46945a2340599c85b6792dbfa720ea012d60b745
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Mar 4 23:33:08 2013 +0100

    (#11331) Remove warnings about re-initialized constants when running tests.

commit 83f0c6c532e2bf2ad835682109283bbc071b7108
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Mar 4 23:00:01 2013 +0100

    (#11331) Make scope setvar produce a value.
    
    This is required to enable blocks etc. to produce the last evaluated
    expression.

commit 24811ce9a4c7d715d65f4b0d5cc5ce4e9fd02619
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Mar 4 16:45:35 2013 +0100

    (#11331) Add support for lambda following a named function call.

commit 39f3a8cf8ce8e52bb302389aeb2ffc9ed1b82434
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Mar 4 02:52:42 2013 +0100

    (#11331) Refactor initialization / requirements
    
    Make Lexer initiate required modules.
    Lexer logic expected certain modules to have been initiated already.
    
    Make egrammar's parser support initiate Model constant.
    Some usage patterns ended up not having Model constant defined.
    
    Handle AST::Hostclass having nil parameters (instead of empty list).
    
    This happened when dumping an AST produce by classic parser.
    
    Make Parser::Files initialize expected containing modules.
    
    New usage patterns requires this file before modules are
    initialized.
    
    Make Scope require 'puppet/parser' instead of 'puppet/parser/parser'.
    
    The scope has no business with the parser implementation. It only
    needs the module constants initiated.

commit 60db804292092243bbe576e1578bdf7b2135eb97
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Mar 4 00:36:49 2013 +0100

    (#11331) Add support for 'import' in egrammar.
    
    This adds support for 'import' expressions in the egrammar parser.
    The support handles import as a special kind of function call (except
    for the keyword 'import') it is indistinguishable from a non
    parenthesized call and it is difficult to deal with as an expression
    otherwise.
    
    In this implementation, it is not the parsers responsibility to nest
    parsing, it simply returns an ImportExpression model element.

commit 9d77ee5fcc0b5c6694a2b8518893af46401e24b2
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Mar 4 00:27:01 2013 +0100

    (#11331) Update Containment module since RGen 3.6.1 supports more meta methods.
    
    Support for eContainer, and eContainingFeature was added in 3.6.1.
    The corresponding methods in the Containment Module are now not needed.

commit c462b41ce783c3dc7252d9f1e11b1b7fc2598918
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Mar 3 17:34:43 2013 +0100

    (maint) Cleanup empty lines, unused code and comments in pops model.

commit ce3073464ccc904334dfbb22ea1cfaf6f552e3f6
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Mar 2 02:30:50 2013 +0100

    (maint) Update egrammar lexer to latest standard.
    
    This merges changes from master's lexer version using
    new mechanism for checking if token is acceptable in context.

commit 00a2c631a07c445353795d46da0022f918e5139f
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Mar 1 14:23:33 2013 +0100

    (#11331) Improve model to AST transformation - add tests
    
    Add AstTreeDumper.
    Add transformation test for basic expressions.
    Add transform conditionals test.
    Add tests for transformed calls.
    Adds tests for function and method calls transformed to AST.
    Add transformer containers tests (class, define, node).
    
    Add test for resource override of multiple resources.
    This test was missing (e.g. for File['x', 'y'] ...)
    
    Add test for transformation of resource expression and collection.
    
    Add test for rgen sanity_check regarding Hash[[]].
    
    RGen must either have been fixed or monkey patched so that
    its extension of Array (method_missing for an empty array) does not
    produce an Array (when it should have passed the task to super).
    
    Remove pending status from test now that egrammar is in use.
    
    It was not possible to parse [1,2,3][2] prior to egrammar.
    
    Cleanup AstTreeDumper, AstTransformer
    
    Removes cruft from copy of ModelTreeDumper, and fixes trailing spaces
    on empty lines.

commit ad8e9225c61c8f47f842c09a3d0e20c88079a1dd
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Feb 28 16:04:18 2013 +0100

    (#11331) Refactor ModelTreeDumper to abstract TreeDumper and specialization.
    
    This is to prepare for adding an AST tree dumper.

commit e0353f7dd8f2f30c3c251c5fa386f5470b8ee9fd
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Feb 27 14:31:37 2013 +0100

    (#18764) This adds 'each' function (a copy of foreach).
    
    This is done to enable Ux testing of both styles.
    (Only one of them should remain in a released version).

commit 8d36998b16fd119e358087cf72a28665816ffe2a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Feb 25 15:02:16 2013 +0100

    (#11331) Add transformation from pops model to AST
    
    This transformer is intended to be used after parsing to a pops
    model. It transforms to a 3.1 AST. The intent is to ensure the exact
    same behavior when evaluating. (This is a step on a longer migration
    path).
    
    Add Factory#respond_to? since method_missing is implemented.
    
    A method_missing implementation should always also implement
    respond_to?
    
    (maint) Fix comment stating that [] is "probably never used".
    It is certainly used for testing.
    
    Add AST::BlockExpression and use this instead of ASTArray for statements
    
    An AST::BlockExpression is now used instead of ASTArray to represent
    a block of expressions/sequence of expressions when the intent is not
    to collect the result of each expression/statement (as ASTArray does).
    
    The grammar is changed to reflect this, and so is merging of classes
    that now compose the result instead of appending (modifying).
    
    Name classes with full name when parsing (like 3.1).
    
    It is required that classes are fully named when parsed (i.e.
    if nested, they must have the fully expanded name set). This
    because they may be lazily loaded. This is required in order to
    be able to transform a pops model to 3.1 AST.
    
    (w.i.p) transformer is now wired for lambdas.
    
    This add transformation of pops model to AST for lambda related
    expressions. (This is w.i.p, there are no tests yet).

commit b499b198fb77cea77c539b21a2dbd3c9ef557032
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Feb 22 00:13:54 2013 +0100

    (#11331) Add support for both lambda param inside and outside braces.
    
    This supports {|$x| ... } as well as |$x| { ... }.
    
    The dual support is to allow for convenient UX investigation.

commit d852fb7099b0b54739e235bc06f662a5342f858a
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Jan 31 00:24:41 2013 +0100

    (#11331) Add expression based grammar. Switch tests to use egrammar.
    
    This completes the eparser grammar (expression parser). All tests except
    one is passing (expected since it checks for an parse error for logic
    that is now acceptable; needs some test refactoring as it should apply
    only to the regular grammar).

commit 733c8136ce2ce77fde6fbcac63cbf35806207e5f
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jan 25 00:36:28 2013 +0100

    (#11331) Make lambdas optionally available on all function calls.
    
    This makes it possible to invoke foreach as:
    foreach($a) {|$x| ... }
    
    The only caveat is that a parentheses-less call must have at least one
    argument. This is not allowed:
    foo {|$x| }
    
    If someone implements a function that takes only a lambda that call
    would need to be written as:
    foo() {|$x| }
    
    This since it is not allowed to pass a lambda as an argument (since this
    would require implementing real closures).

commit 56fb162bbabb6b3fa09d0369d98d5a28dfb46116
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jan 22 17:29:11 2013 +0100

    (yardoc) Correct yardoc for code related to #11331 add foreach.

commit 74478e1a3692d03801364d2e0e9b646986290e09
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jan 22 17:04:18 2013 +0100

    (#11331) Make implementation of lambda call work under Ruby 1.8.7
    
    Under some conditions, array zip in ruby 1.8.7 produces a single value
    instead of an array. The result was that the integer value of the first
    char was produced as the result instead of the expected string.
    
    This fix checks if the name value is just a string name, or an array
    with [name, value].

commit 6249bee719b30c47b836f334f3d0d99d2a1460be
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jan 22 01:32:54 2013 +0100

    (#11331) Add support to end a lambda with = expression.
    
    This relaxes the constraint that a = expr must be the only statement
    in a lambda (or be a sequence of statements). Is is now instead possible
    to place this statement last after a sequence of statements.
    
    This commit also fixes an issue where the last value of the lambda and
    foreach function did not produce a value.
    
    There was an inspect in a rescue that was only there for debugging.
    Now removed.

commit 4fbdd7762d3b0260ffe96e5609ffaa2fa219f40c
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jan 21 17:21:16 2013 +0100

    (#11331) Add support for foreach.
    
    This adds support for "foreach" for arrays and hashes.
    The implementation adds support for MethodCall and Lambda expressions to
    the lexer and parser.
    
    A method call is simply a variant of function call that supports an
    optional parameterized block (i.e. a lambda). The foreach method is
    simply implemented as a function that accepts a "receiver" and a lambda.
    The foreach function operates on arrays and hashes.
    
    The implementation does not alter any existing syntax and does not
    introduce any additional keywords or constraints on any lexer literals.
    
    Since racc only has one token lookahead it was necessary to add such
    lookahead in the lexer for LBRACE, which now produces a LAMBDA token if
     LBRACE is followed by PIPE. DOT token was reintroduced, and a PIPE
    token added.
    
    To allow a lambda to return the result of a single expression, the
    syntax: {|...| = expr } may be used. Unfortunately, a major rewrite of
    the grammar is required to allow this without a syntactic marker. Also
    unfortunate is the fact that all functions invokable as statements does
    not produce an rvalue and an rvalue function may not be used as a
    statement. (To change that would also be a major rewrite). Hence, a
    syntactic marker (in a lambda only), that allows a single expression to
    be turned into a "rvalue" statment seems to be the best approach). If
    the grammar is improved in the future, the = could be made optional.

commit 1bfa52db0192224f8c2f204c3a50806ff1e98605
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jan 22 01:55:28 2013 +0100

    (#18764) Add methods for enumerable functions.
    
    This adds support for the functions/methods collect, reject, select, and
    reduce. This implementation depends on support for lambdas being added
    in puppet as described in issue #11331). Which probably will be released
    in puppet 3.2.

commit 5c77808c1d152f6107d6f698c295fac05bb70748
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jan 22 17:29:11 2013 +0100

    (yardoc) Correct yardoc for code related to #11331 add foreach.

commit ca6d43cbeb41f932d3226343e41c8cd72971b3db
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jan 22 17:04:18 2013 +0100

    (#11331) Make implementation of lambda call work under Ruby 1.8.7
    
    Under some conditions, array zip in ruby 1.8.7 produces a single value
    instead of an array. The result was that the integer value of the first
    char was produced as the result instead of the expected string.
    
    This fix checks if the name value is just a string name, or an array
    with [name, value].

commit ee5b0b5298ebd826d3743c4e40eb742c336aa208
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jan 22 01:32:54 2013 +0100

    (#11331) Add support to end a lambda with = expression.
    
    This relaxes the constraint that a = expr must be the only statement
    in a lambda (or be a sequence of statements). Is is now instead possible
    to place this statement last after a sequence of statements.
    
    This commit also fixes an issue where the last value of the lambda and
    foreach function did not produce a value.

commit 108b8300254d9d997943143ec673da48ebbf9e10
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Mon Jan 21 17:21:16 2013 +0100

    (#11331) Add support for foreach.
    
    This adds support for "foreach" for arrays and hashes.
    The implementation adds support for MethodCall and Lambda expressions to
    the lexer and parser.
    
    A method call is simply a variant of function call that supports an
    optional parameterized block (i.e. a lambda). The foreach method is
    simply implemented as a function that accepts a "receiver" and a lambda.
    The foreach function operates on arrays and hashes.
    
    The implementation does not alter any existing syntax and does not
    introduce any additional keywords or constraints on any lexer literals.
    
    Since racc only has one token lookahead it was necessary to add such
    lookahead in the lexer for LBRACE, which now produces a LAMBDA token if
     LBRACE is followed by PIPE. DOT token was reintroduced, and a PIPE
    token added.
    
    To allow a lambda to return the result of a single expression, the
    syntax: {|...| = expr } may be used. Unfortunately, a major rewrite of
    the grammar is required to allow this without a syntactic marker. Also
    unfortunate is the fact that all functions invokable as statements does
    not produce an rvalue and an rvalue function may not be used as a
    statement. (To change that would also be a major rewrite). Hence, a
    syntactic marker (in a lambda only), that allows a single expression to
    be turned into a "rvalue" statment seems to be the best approach). If
    the grammar is improved in the future, the = could be made optional.

commit 88576a91043b5059d9f7d6adac140012567e7c93
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Nov 14 14:14:43 2012 +0100

    (#11331) Add pops - this is the base implementation of new DSL model.
    
    This adds a pops basic implementation of the DSL model, an evaluator,
    the start of a validator, infrastructure classes and tests.
    
    This commit contains the first working version of parsing. New test
    parses a simple puppet DSL expressions and returns the expected result.
    
    This adds proper handling of numbers:
    - an lex error if a number is not formatted correctly
    - parser creates QualifiedName or LiteralNumber for NAME token
    - tree dumper outputs numbers with specified radix
    
    Add support for match expr with quoted text as RHS.
    
    This adds support for expressions like 'a'=~ "ends with ${foo}" to
    interpolate into the regular expression (a string is compiled into a
    regular expression).
    
    Note that lexer now does not produce a REGEXP after INHERITS as it used
    to in earlier versions. (3.1 flags inherits with regexp as syntax error
    even if it is allowed in the grammar).
    
    Add parse test for some 3.x "weird" class and define syntax.
    
    This includes performing look ahead in the lexer (for {|) and emitting a
    LAMBDA token instead of a LBRACE for the lambda start LBRACE.

commit 44e79d0f9c30d68201eee85cdbf288431be3572a
Merge: 6bc1c5a a277d62
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Apr 5 14:36:53 2013 -0700

    Merge pull request #1497 from zaphod42/issue/master/16688-hiera-extra-vars
    
    (#14985) Enable calling_class and calling_module for defined types

commit a277d62576cfb3a0369596c5b1d87864a7a3be16
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Apr 5 14:20:33 2013 -0700

    (#14985) Alias module_name as calling_module
    
    The new implementation of calling_module turned out to be the same as
    puppet's own module_name. This makes it simply and alias so that we keep
    that as the definition of calling_module.

commit 6bc1c5aea94f0d449a7be6f488fa96c2eed1b99d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Apr 5 11:25:54 2013 -0700

    (maint) Make external CA acceptance test work with SELinux (TRY #2)
    
    The previous attempt to make Apache and Passenger play nicely with
    SELinux was sufficient to get httpd started, but insufficient to allow
    Passenger to run.  Passenger switches users and creates sockets all over
    the place, which SELinux denies.
    
    This patch simply disables SELinux for the duration of the external CA
    testing and re-enables it if it was originally enabled.

commit e9c1cdad905733e662442fb95c7cdd11ab129ee9
Merge: 97127a8 9e3866c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Apr 5 09:59:23 2013 -0700

    Merge branch 'external_ca_test_fix'
    
    * external_ca_test_fix:
      (maint) Make external CA acceptance test work with SELinux

commit 9e3866c278efeab737bc3c9fa7b621170aaad1bd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Apr 5 09:56:47 2013 -0700

    (maint) Make external CA acceptance test work with SELinux
    
    Without this patch the External CA acceptance tests are failing in CI.
    This is a problem because we need to automatically validate that our
    documented external CA configuration remains in order.
    
    The root cause of the problem is that SELinux is enabled and enforcing.
    This patch addresses the problem by setting the appropriate permissions
    on TCP port 8141 and the document root used for testing.

commit 674e7d24fd92551182f5732c6b93fc9cf21389e2
Author: Garrett Honeycutt <garrett@puppetlabs.com>
Date:   Fri Apr 5 14:05:47 2013 +0200

    Modulefile starts with version 0.1.0

commit f854a1a35cd5621fd3f736775d5e449e55a709d0
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Apr 4 18:13:49 2013 -0700

    Add support for enabling profiling via HTTP header
    
    This commit changes the new setting for enabling profiling from
    "enable_profiling" to simply "profile", so that it's easy to
    use it from the command line.
    
    It also changes the mechanism for enabling profiling in an HTTP
    request; previously, profiling would be enabled via a special
    query parameter; now it is enabled via a header (X-Puppet-Profiling).
    
    This allows it to work easily for any type of HTTP request
    (GET/POST/HEAD/etc.) without having to worry about the means for
    adding a query parameter.
    
    The commit also adds a check for the `profile` setting during
    outgoing indirector REST requests, and adds the header if the setting
    is enabled.  This means that the profiling flag will work from
    the client as well as on the server.

commit 736c870cb40e845e87e02c83353bb86dcc55156d
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Mar 21 19:51:16 2013 -0700

    Allow users to enable profiling via a setting
    
    Prior to this commit, there is no way for an end user to enable
    the new profiling features other than by patching their source
    code or passing an extra query parameter to a web request,
    which requires them to know the precise URL / query params / POST
    body of the request that they want to profile, as well as passing
    all of the necessary SSL-related flags to `curl` (et al) so that
    their request can be authenticated.
    
    This commit simply adds a boolean setting called 'enable_profiling'
    which can be used to turn on this functionality for all requests.
    
    We should provide more precise ways for users to control this, but
    this at least gives them a simple option until we have something
    better.

commit 97127a80e849f23a540ff8d29c098c9011656ad3
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 4 17:19:02 2013 -0700

    (maint) Fix external ca acceptance test
    
    Without this patch it runs against systems that it shouldn't run
    against.  This is because I misunderstood the confine method.

commit 8762b7ae6d07685e4cbf1808854f5df72a09fe5f
Merge: 519459d cf13ad5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 4 16:16:49 2013 -0700

    Merge branch 'external_ca_support'
    
    * external_ca_support:
      (#20027) Refactor connection verify_callback Proc
      (#20027) Fix ssl_client_ca_auth validation
      (#20027) Spec examples of how ssl_client_ca_auth behaves
      (#20027) Add acceptance test for ssl_client_ca_auth
      (maint) Clean up the httpd.conf used in testing
      Remove ServerName from Apache Virtualhost
      (#15561) Add External CA acceptance test
      Add PuppetX::Acceptance::ExternalCertFixtures class
      Add example external CA data provided by Dustin Mitchell
    
    closes #1572

commit cf13ad5b907646e69c5d238240ba4d73faf05b59
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 3 20:47:30 2013 -0700

    (#20027) Refactor connection verify_callback Proc
    
    Without this patch the Proc assigned to `Net::HTTP#verify_callback=` is
    difficult to test.  This is a problem because this Proc handles critical
    behavior related to authorization and security.
    
    This patch addresses the problem by extracting the anonymous proc into a
    class named Puppet::SSL::Validator.  The #call method implements the
    Proc API and behaves in the same manner as the anonymous Proc.
    
    This patch also adds explicit behavior tests to cover the #call method
    and related authorization checking methods.

commit df67925cf489369b927109382c5b69e5b4ed07dd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 2 22:29:37 2013 -0700

    (#20027) Fix ssl_client_ca_auth validation
    
    Without this patch applied the `ssl_client_ca_auth` setting does not
    cause the behavior documented with the option.
    
    The expected behavior is that the agent should refuse to connect to a
    Puppet master which presents a SSL certificate whose chain does not
    include a certificate listed in the `ssl_client_ca_auth`.
    
    This patch addresses the problem by scanning through the peer
    certificate chain, checking each certificate in the chain against the
    set of certificates listed in the `ssl_client_ca_auth` file.  If this
    setting is not configured then the `localcacert` file is used instead,
    which should be the root, self signed certificate in default
    configurations.

commit 3d7d8857fe53311d591a64f91a3d42542bf0338b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 2 22:30:16 2013 -0700

    (#20027) Spec examples of how ssl_client_ca_auth behaves

commit e665a1488d6cc3e94aee94d1cf7d6457cd18dd2a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 2 17:26:39 2013 -0700

    (#20027) Add acceptance test for ssl_client_ca_auth

commit 19b8539c5bdd8b3313628b04bbdedb1e555e9682
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 2 17:56:10 2013 -0700

    (maint) Clean up the httpd.conf used in testing

commit d69161bc2902889f0580eca17db9a09f9e6fa7fa
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 2 17:51:04 2013 -0700

    Remove ServerName from Apache Virtualhost
    
    I'm including this small patch because this mis-configuration caused
    quite a bit of hurt for me.
    
    Without this patch applied, both virtual hosts running on 8140 and 8141
    use the same SSL certificate, the one configured in 8140.  This is a
    problem because the second, 8141, virtual host is configured to use a
    different certificate that is intended to be rejected by the agent.
    
    Because the first cert is being used the agent does not know to reject
    the connection.  This, in turn, caused a false-positive success in the
    acceptance test that validates an agent refuses to connect to a rogue
    master.
    
    This patch fixes the problem by removing the ServerName statements
    included in the virtualhost blocks.  With these statements removed from
    the configuration the server on 8140 presents a cert issued by the
    Master CA and the server on 8141 presents a cert issued by the Agent CA,
    as expected.

commit 3af60c103aa043bf8a31894bd406fc021c96eb09
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Mar 28 12:28:14 2013 -0700

    (#15561) Add External CA acceptance test
    
    This patch adds three acceptance tests:
    
      1: Externally issued certificate chains work.
      2: Email addresses in certificate names work.
      3: Certificate revocation works.
    
                  +-----------------+
                  |     Root CA     |
                  |  (Self Signed)  |
                  +--+------------+-+
                     |            |
               +-----+            +------+
               |                         |
               v                         v
        +-------------+            +------------+
        | Issuing CA  |            | Issuing CA |
        | For Masters |            | For Agents |
        +-------+-----+            +------+-----+
                |                         |
                |                         |
                v                         v
        +-------------+            +-------------+
        | Master SSL  |            | Agent SSL   |
        | Certificate |            | Certificate |
        +-------------+            +-------------+
    
    A master may restrict clients to those with a certificate issued by a
    specific DN.  For example, the Apache `SSLRequire %{SSL_CLIENT_I_DN_CN}
    == "Agent CA"` directive will only allow agent with certificates issued
    by "Agent CA"
    
    These examples exercise Puppet agents checking for revoked master
    certificates by populating a CRL file out of band.
    
    Finally, subject names with email addresses in the name are checked in
    an effort to prevent regressions on #15561.  For example,
    `CN=agent-email3.example.org/emailAddress=test@example.com`.
    
    This fixture data is intended for, and supported on, EL-6 master hosts
    with Apache 2.2 or later and Passenger 3.0.17 from EPEL.
    
    This test is confined to the `el-6` platform.
    
    Expected output on the agent when the master certificate has been
    revoked is:
    
        Error: Could not retrieve catalog from remote server:
        SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed:
        [certificate revoked for /CN=master1.example.org]
        Error: Could not retrieve catalog; skipping run

commit f635390c1f5a941fdb4865b928b1521559d2197d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 2 21:42:27 2013 +0000

    Add PuppetX::Acceptance::ExternalCertFixtures class
    
    This patch adds the static fixture data that is explicitly used by the
    ExternalCertFixtures class.  This class will make the fixture data
    located in the filesystem available to the acceptance test itself.

commit f3f907ef67aed1b40c7b6048aa1601f92f457315
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 2 21:44:05 2013 +0000

    Add example external CA data provided by Dustin Mitchell
    
    Without this patch applied we don't have an easy way to create a set of
    CA and SSL certificates that are representative of how end users are
    currently using external CA's with Puppet.
    
    This is a problem because we're left to guess how users are using Puppet
    while trying to support external CA's.
    
    This patch adds additional data created by Dustin's `certchain.sh`
    script which are not being actively used in the acceptance tests.
    They're included in Puppet in an effort to reduce roadblocks to
    augmenting the existing acceptance tests.

commit 519459d6e49e52ef2233be238edda83530716cfd
Merge: 29ef079 760c3cf
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 4 14:56:00 2013 -0700

    Merge pull request #1545 from cprice-puppet/maint/master/make-profiling-output-greppable
    
    Add recognizable prefix string to profiling log statements

commit 29ef079a7ef7685d68bc56b6779d61aa31963f66
Merge: c992fb5 28baf57
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Apr 4 14:22:04 2013 -0700

    Merge pull request #1581 from nfagerlund/hiera_markdown
    
    Maint: Fix a markdown glitch in hiera_include doc string

commit 760c3cf90293f9453da11c39cfd4225ee9d2d15f
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Apr 4 14:16:18 2013 -0700

    Add test for new PROFILE prefix on log messages

commit 28baf570a1d43e2906fde0213b73e5f2ad6dd700
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Thu Apr 4 10:29:02 2013 -0700

    Maint: Fix a markdown glitch in hiera_include doc string
    
    Without a line break, markdown parsers would fail to render the
    yaml example as a code block.

commit c992fb536d9fd87ad23b2fc0b88592bfe1dea0f5
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Apr 4 10:20:53 2013 -0700

    Revert "Merge branch 'pull-1540'"
    
    This is causing spec failures on windows, and the current implementation
    of the crontab provider and the parsedfile provider is sufficiently
    complex that it's not clear how to sanely fix this issue. This is
    getting reverted until it's in a more understandable state.
    
    This reverts commit f85ec37456095c06a7b0d99a752534d0caf9c97e, reversing
    changes made to 138fc337c36715a7ab40b2b68b86aa71ec3ada64.

commit 3157d2a5194e5e0e513f2259ef83052f7a951d80
Author: Felix Frank <Felix.Frank@Alumni.TU-Berlin.de>
Date:   Wed Apr 3 01:30:06 2013 +0200

    (#3010) cron: allow the absent value for the "special" property
    
    The crontab provider fails to apply the change to a cronjob if
    the schedule has been a special schedule such as @daily. Paraphrasing
    from the bug report, assuming this crontab:
    
    @reboot /bin/true
    
    this manifest won't work correctly:
    
    cron{ "test": minute  => 50 }
    
    even though puppet will correctly detect that the 'minute' property
    needs changing from "absent". The special schedule will remain.
    
    The fix allows this workaround:
    
    cron{ "test": minute  => 50, special => absent }

commit f85ec37456095c06a7b0d99a752534d0caf9c97e
Merge: 138fc33 dc2e043
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 3 16:08:27 2013 -0700

    Merge branch 'pull-1540'

commit dc2e043e332d49c604d94d1e24cab3c96a181c39
Author: Felix Frank <Felix.Frank@Alumni.TU-Berlin.de>
Date:   Fri Mar 29 19:49:09 2013 +0100

    (#2251) Make the crontab integration spec match the behavior again
    
    The previous final cron test was Very Bad. It relied on an edge case
    that sidestepped #2251.
    
    Assume user1 and user2 and a cronjob X that moves from user1 to user2.
    Normally, this will trigger #2251 and fill user2's crontab with duplicates
    until at some point, another cronjob of user1's needs changing and the
    provider behaves as tested.
    
    In many real life scenarios, it can be months or weeks before this happens.
    
    Testing for the behaviour agreed upon in the redmine ticket makes more
    sense, because we can now make sure that the edge case will not hide
    unwanted behavior that emerges in the average case.

commit 2ddda3f89033f8b83aabcc4b2f7793a8ced6134d
Author: Felix Frank <Felix.Frank@Alumni.TU-Berlin.de>
Date:   Thu Mar 21 00:18:15 2013 +0100

    (#2251) crontab: avoid duplication of cronjobs
    
    The crontab provider will duplicate resources ad nauseam if another
    record with the same "puppet name" exists in a different crontab.
    
    It was found that entries in different crontabs, even when sharing
    names, should be treated as independent entities. Therefor, the
    crontab provider will now ensure that when prefetching crontabs
    from disk, cronjobs are matched to managed resources only if both
    the name and the target file match.

commit 138fc337c36715a7ab40b2b68b86aa71ec3ada64
Merge: 24d3819 c70dd1f
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 3 15:07:43 2013 -0700

    Merge pull request #1523 from pdxmph/hiera_functions
    
    (#15352) Documentation strings for hiera_hash, hiera_array, hiera_include, hiera

commit 24d3819ba111396e70bda789ca168caa0432224c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Apr 3 15:05:26 2013 -0700

    (Maint) Make sure we don't execute pkglist in specs
    
    During an uninstall, the aix and nim package providers execute pkglist,
    which wasn't being stubbed out. This seems to only fail on windows but not
    other platforms. Updated the tests accordingly.

commit c941e62635785cfaf8825613f24b7ac4f68bcffd
Merge: 8865854 3bb0cf9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Apr 3 14:21:10 2013 -0700

    Merge pull request #1555 from jeffweiss/aix_into_master
    
    Rabase AIX support from 2.7.x-based integration branch to master

commit 886585458202f444383b00ae4d83804c306ec235
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Apr 3 14:02:39 2013 -0700

    (Maint) Don't use fails_on_windows to exclude spec tests
    
    In the 2.7 series, we used the fails_on_windows rspec filter to
    exclude unit tests on windows.
    
    In 3.x, that approach has been removed. Instead, if the test should
    never be expected to pass on Windows, then use an exclude filter like:
    
      describe Puppet::MyClass, :unless => Puppet.features.microsoft_windows? do
    
    However, if the test doesn't currently pass, but should sometime in
    the future, then use an rspec conditional pending block:
    
      pending("porting to Windows", :if => Puppet.features.microsoft_windows?) do
        <example1>
      end

commit 1fc5756570af661d2c56f9755fc011600930e0d9
Merge: 381d744 cd08618
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 3 12:07:57 2013 -0700

    Merge branch 'pull-1575'

commit cd08618b59e12ab9a5363991ecb1cf43560856da
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Mon Apr 1 12:49:37 2013 -0400

    Simple fix for broken indirection docs
    
    Currently generating the indirection docs fails because of the
    resource/validator terminus, for which the autoloader returns nil.
    Rather than quietly failing the whole docs build on this error, just
    fail the docs for that particular terminus.

commit 381d7442b54aa28c8652fd8917060ae014e166b6
Merge: db697a9 dad6e4e
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Wed Apr 3 11:33:00 2013 -0700

    Merge pull request #1350 from mruzicka/ticket/master/14728-PMT-changes-handle-removed-files
    
    (#14728) Handle removed files in the PMT changes command.

commit db697a998169776a881cefc895dd61038be89cb8
Merge: f56031b b6105ea
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 3 11:05:06 2013 -0700

    Merge pull request #1576 from djmitche/fix-filetype-tests
    
    Make filetype tests succeed even when local uid == 9000

commit f56031b10e7312209fa77e47ee836faf037f831f
Merge: f82e034 6ab4d86
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Apr 3 09:36:08 2013 -0700

    Merge branch 'pull-1560'
    
    This closes GH-1560

commit 6ab4d8680ddbe26731a2de7713348207746f46fe
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Tue Apr 2 13:09:19 2013 -0400

    test all permutations of show_diff config/param

commit df5ed5b1745edfac3e6ab4410ab11ae93899062b
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Tue Apr 2 13:09:10 2013 -0400

    correct docs regarding interaction of show_diff config/param

commit dad6e4e587d2295fbc3d0447f7c5e0ccc9d4b816
Author: mruzicka <michal.ruzicka@cloudsmith.com>
Date:   Wed Dec 12 15:28:44 2012 +0100

    (#14728) Handle removed files in the PMT changes command.
    
    This patch ensures that "puppet module changes" command reports removed files
    as changed rather than exiting with a "file not found" error message when it
    encounters a file that should exist according to the metadata.json but which
    is not present.
    The patch also adds unit & acceptance tests for the "puppet module changes"
    command.

commit b6105ea88243ed396b11e85cf4169910ca09d334
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Tue Apr 2 15:49:17 2013 -0400

    Make filetype tests succeed even when local uid == 9000
    
    My UID on my development system is 9000, which was making these tests
    fail, because 9000 is used as the fake UID as well.

commit f82e0349a3fb596fcea73d965596369651e9b742
Merge: 97e4f4f 3283a48
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Apr 1 15:32:20 2013 -0700

    Merge pull request #1559 from djmitche/indirdocs
    
    Add more indirector documentation.

commit 97e4f4f19ab44a2db78dac451c855b3fbee88c48
Merge: 3ecb491 2ffa00e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 1 15:23:56 2013 -0700

    Merge branch '3.1.x'
    
    * 3.1.x:
      (Maint) Use absolute path for puppet in Gemfile

commit 2ffa00ea4642576efe47ad3c58f5c2088b92ed8f
Merge: 55541b4 a1664c1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 1 15:23:21 2013 -0700

    Merge branch '2.7.x' into 3.1.x
    
    * 2.7.x:
      (Maint) Use absolute path for puppet in Gemfile

commit a1664c1bc793dccde2db796374722b94e1bc7862
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 1 15:22:20 2013 -0700

    (Maint) Use absolute path for puppet in Gemfile
    
    This allows the use of binstubs to execute puppet from another working
    directory.

commit 3283a4852f9d3713c8c504c493839356daa42ebf
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Mon Apr 1 18:02:18 2013 -0400

    fix spec failures

commit 3ecb491d1bc8ac134cb082700572ddc86fe43de6
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Apr 1 13:57:49 2013 -0700

    Be specific about our expectation
    
    Previously, the spec test would sometimes fail because the File.unlink
    expectation did not specify a path argument. As a result, if the code
    under test unlinked an unrelated file, e.g. tempfile used to write file
    content, then the would fail.

commit 3f88935908f15db6dd9a29a29b5a800538d32b84
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Mon Apr 1 12:24:23 2013 -0400

    restore P:I:Indirection.initialize to its original signature

commit d2f41925fb98a9558ce2f2f5b29f005b0a052185
Merge: 4a2265f 5d96923
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 29 16:56:08 2013 -0700

    Merge pull request #1571 from nfagerlund/masterport_setting
    
    Docs: Update masterport setting description, include it in agent/master ...

commit 5d969238f3456161b9b8f37d39234ccee7f66f5e
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Fri Mar 29 16:27:32 2013 -0700

    Docs: Update masterport setting description, include it in agent/master manpages
    
    This commit also calls out CLI options that are actually normal settings.

commit 4a2265f0f7cf545c20542e84795a31bf4188f883
Merge: ed9f799 c9ac5e8
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 29 15:51:24 2013 -0700

    Merge pull request #1570 from Sharpie/1453-clarify-removed-cron-parameters
    
    (#1453) Document behavior of removed Cron params

commit ed9f799acd3d78f621a39b35d66e64b2916b38d1
Merge: d4a04a8 76cd01a
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 29 15:04:42 2013 -0700

    Merge branch 'maint-opkg_stubs'

commit 76cd01abcf2957b91a60a60c01326ae51759ed5a
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 29 15:02:27 2013 -0700

    (maint) improve stubs for opkg specs
    
    Execution commands weren't properly stubbed out for the opkg package
    provider and were trying to execute on Windows. This commit stubs out
    all execute calls and replaces instance variable usage with let blocks.

commit c9ac5e8e31c9218ce874de3c1d13b0e409e10765
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Fri Mar 29 14:47:35 2013 -0700

    (#1453) Document behavior of removed Cron params
    
    Removing a parameter such as `minute => 10` from a manifest will not reset the
    minute component of the associated cronjob to `*`. This is because Puppet only
    manages parameters that are out of sync with manifest entries (see issue
    [19198][19198]).
    
    This patch updates the documentation for the Cron type to be explicit on this
    point as it has been surprising to a lot of people.
    
      [19198]: https://projects.puppetlabs.com/issues/19198

commit d4a04a8934e36d941693f9cb73acbd74d93becc2
Merge: e1b2a7d 33e5d28
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 29 13:46:45 2013 -0700

    Merge branch 'maint-rspec_2.9_let'

commit 33e5d284e6c6ae57f0d23452be68e3777e160164
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 29 13:34:45 2013 -0700

    (maint) remove rspec 2.10 method call
    
    Rspec 2.10 supports a named subject by calling subject with the desired
    name, but this isn't backwards compatible with Rspec 2.9. Since we're
    not really exploiting the rspec behavior around the subject it is
    easiest to change this to use a simple `let` block.

commit e1b2a7de3bdd492f6d86a806abe0a84bebe1d465
Merge: c0033c3 c399cac
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 29 10:44:29 2013 -0700

    Merge branch 'pull-1552'

commit c399cac71b9b53db1ec0b6a3c6a44eeeed5063a6
Author: Kyle Anderson <kyle@xkyle.com>
Date:   Sun Mar 24 16:43:34 2013 -0700

    (#19877) Enable automatic package list downloading for opkg
    
    On OpenWrt package lists do not persist across reboots, often
    requiring one to run "opkg update" before running opkg operations.
    
    This commit enables detection for this, so puppet will fetch a
    package list if it hasn't been downloaded yet, enabling package
    installs to proceed as expected.

commit 35b58c8fe384de617bcc87e998ea4a15905f471a
Author: Kyle Anderson <kyle@xkyle.com>
Date:   Sun Mar 24 16:24:26 2013 -0700

    (#19877) Added opkg as a package provider
    
    Opkg is the package manager for OpenWrt. This commit enables the
    opkg package provider and sets it to be default for openwrt platforms.

commit 62157c5e6218c5eee2eafeb7424b4937aca36a47
Author: Kyle Anderson <kyle@xkyle.com>
Date:   Sun Mar 24 09:18:21 2013 -0700

    (#19877) Add support the openwrt service provider
    
    OpenWrt has its own unique initscript conventions, as well as
    its own support for enabling and disabling services. This commit
    adds support for them and for being the default provider for
    OpenWrt platforms.

commit c0033c3c1f64839f4f01cb6d9f53c1584b8e19dc
Merge: 0296941 8b7d3fe
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 29 08:59:36 2013 -0700

    Merge pull request #1568 from nfagerlund/hiera_config_restart
    
    Docs: Note in config reference that puppet master needs a restart to notice hiera.yaml edits

commit 0296941039bcdfd85beff223861faf4ff8887aae
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Mar 28 21:53:12 2013 -0700

    Remove trailing whitespace
    
    Our CONTRIBUTING.MD says to check for unnecessary whitespace using `git
    diff --check`, but we've gotten lax in checking this. This commit
    removes unnecessary trailing whitespace from lib. It ignores the CRNL
    line endings in the vendored rgen code.

commit 8b7d3feef9721c9db15d961843c3b2c916813908
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Thu Mar 28 18:20:31 2013 -0700

    Docs: Note in config reference that puppet master needs a restart to notice hiera.yaml edits

commit 0f6479e97ef15f845e244b3e340f3e4eab3b2ca2
Merge: 47b3000 84f47d4
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Thu Mar 28 17:03:34 2013 -0700

    Merge pull request #1567 from pdxmph/windows_scheduled_task
    
    (#12493) Docs: Note that `user` defined in a scheduled_task resource must be a privileged user

commit 47b3000326452cae527c1fb1ca6cb38a2d090841
Merge: d5454f6 da9162c
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Mar 28 16:40:14 2013 -0700

    Merge pull request #1565 from ffrank/ticket/master/19876-crontab-match-regression
    
    (#19876) Fix crontab regression in resource matching

commit d5454f66b654fe95a942b69353e3f9eeb9531ad9
Merge: 0b8ef5f c380656
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Mar 28 15:40:27 2013 -0700

    Merge branch 'pull-1541'

commit c380656dbb86756d0c24bee58f62dbcd65133084
Author: Lubomir Rintel <lubo.rintel@gooddata.com>
Date:   Tue Mar 19 11:11:22 2013 +0100

    (#19805) Report failures to restart in exit code if requested
    
    Documentation to --detailed-exitcodes states that mask 0x4 is applied in case
    "there were failures during the transaction." Currently only failures to change
    resource state are reported, failures to restart the resource are still ignored.
    
    Only change (code=2) to Exec['/bin/true'] is considered here:
    
      $ puppet apply --detailed-exitcodes -e 'service { "duckfaced": restart => "/bin/false", ensure => running, status => "/bin/true" } exec { "/bin/true": notify => Service["duckfaced"] }'
      $ echo $?
      2
    
    Needless to say, information about failed restarts is usually as important to
    the user as the status changes, since they usually mean that desired
    configuration is not in effect.
    
    This change makes Puppet consider information about failed restarts when
    setting the failure bit.
    
    Another possibility to avoid loosing the information  would be to introduce
    another bit in the exit code mask, but that would change semantics with respect
    to existing documentation and thus probably be more confusing.

commit 84f47d4e96c99be05dad04e52bed8b53cf43a812
Author: Michael Hall <michael.hall@puppetlabs.com>
Date:   Thu Mar 28 14:52:45 2013 -0700

    (#12493) Add note that `user` defined in a scheduled_task resource must be a privileged user.
    
    The scheduled_task resource includes a note about issues surrounding the use of the 'SYSTEM'
    user and recommends choosing another user to run the scheduled task, or altering the security
    policy to allow the 'SYSTEM' account to run scheduled tasks. The note does not mention
    that puppet must be running as a privileged user to manage scheduled tasks in order to avoid
    'access denied' errors.
    
    This commit corrects the issue by adding a note that puppet must be running as a privileged
    user to manage scheduled tasks and avoid 'access denied' errors.

commit 0b8ef5f986287c06a6e9d36f7ae44b52481a9918
Merge: 91fa7f1 8ccb4fa
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Thu Mar 28 13:50:28 2013 -0700

    Merge pull request #1566 from adrienthebo/maint-cron_acceptance_test_failure
    
    (maint) update cron whitespace strip acceptance test

commit 8ccb4fa7859c7d972add38164efe583f5cad5be3
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Mar 28 12:23:55 2013 -0700

    (maint) update cron whitespace strip acceptance test
    
    Since f5d236702 leading and trailing whitespace was stripped from the
    cron command to ensure writing cron entries is idempotent. This made the
    cron `should_not_rewrite_with_trailing_whitespace.rb` acceptance test
    meaningless. This commit updates the acceptance test to confirm the fix
    for #656 and updates the test name to reflect the expected behavior.

commit 91fa7f19d60888231da2b0c40f2c4e2466f22bc8
Merge: 4bfad67 d682ec8
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Mar 27 16:43:03 2013 -0700

    Merge branch 'djmitche-verify_callback_errors'
    
    * djmitche-verify_callback_errors:
      Handle exceptions in verify_callback
    
    closes #1561

commit d682ec88a239dea8ec7925ace43f9e5f704074fe
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Mon Mar 25 21:59:24 2013 -0400

    Handle exceptions in verify_callback
    
    These exceptions are otherwise ignored, with a message telling you the
    exception was ignored but not actually telling you what the exception
    was.

commit 4bfad674ba4992f695e3f8fcbaa7ff46a0d093be
Merge: 29c7d03 73ab624
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Mar 27 16:26:39 2013 -0700

    (#15561) Merge branch 'djmitche-bug15561-subject-fix'
    
    * djmitche-bug15561-subject-fix:
      (#15561) Fix spec failure in certificate_request_spec
      (#15561) Doc only YARD cleanup change
      (#15561) Make implementation match spec examples
      (#15561) Extract CN from certificate subjects more carefully
    
    closes #1556

commit 73ab624c607509c18f491e21bfc110e5fda90d9b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Mar 27 15:04:11 2013 -0700

    (#15561) Fix spec failure in certificate_request_spec
    
    Without this patch applied, the x.509 CN extraction improvements cause
    the following spec failure in the certificate_request_spec.rb file
    
          1) Puppet::SSL::CertificateRequest when converting from a string should create a CSR ...
             Failure/Error: described_class.from_s("my csr")
             NoMethodError:
               undefined method `to_a' for "/CN=Foo.madstop.com":String
             # ./lib/puppet/util/ssl.rb:23:in `cn_from_subject'
             # ./lib/puppet/ssl/base.rb:54:in `name_from_subject'
             # ./lib/puppet/ssl/base.rb:62:in `from_instance'
             # ./lib/puppet/ssl/base.rb:71:in `from_s'
             # ./spec/unit/ssl/certificate_request_spec.rb:42:in `block (3 levels) in <top (required)>'
    
    Poor stubbing is the root cause of this problem.  The mock certificate
    object returns a String from `#subject`, however the system expects a
    kind of `OpenSSL::X509::Name`.
    
    This patch addresses the problem by changing the mock object to return
    an instance of `OpenSSL::X509::Name` when the mocked `#subject` instance
    is called.

commit d05522bb3996a02dea30adfb67180b81a6c78c7c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Mar 27 15:13:09 2013 -0700

    (#15561) Doc only YARD cleanup change

commit afc413bfaaee1ba910293e03207d5542706ac6b1
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Mar 27 16:08:40 2013 -0700

    (#15561) Make implementation match spec examples
    
    Without this patch applied, the following spec failure occurs.
    
        3) Puppet::Util::SSL when getting a CN from a subject should return nil for a bare string
           Failure/Error: described_class.cn_from_subject("/CN=foo").should == nil
           NoMethodError:
             undefined method `to_a' for "/CN=foo":String
           # ./lib/puppet/util/ssl.rb:23:in `cn_from_subject'
           # ./spec/unit/util/ssl_spec.rb:47:in `block (3 levels) in <top (required)>'
    
    This failure is caused by the implementation of the `cn_from_subject` method
    calling `to_a` on the string, which raises an exception.
    
    This patch makes the implementation match the specified behavior by checking
    for the `to_a` method.  If false, `nil` is returned as expected.

commit 064f5427b9ffba20af2ac4f782984b7c10f83aa0
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Mon Mar 25 11:44:55 2013 -0700

    (#15561) Extract CN from certificate subjects more carefully
    
    When using certificate chaning or otherwise generating SSL certificates
    outside of Puppet, the subject often has multiple components, e.g.,
      CN=hostname.foo.com,O=Foo\, Inc.,OU=Marketing
    The hostname, which is later verified against a strict set of allowed
    characters, is only extracted from the "CN" field, with all of the other
    fields ignored.
    
    This uses OpenSSL::X509::Name to parse the DN's, allowing both
    rfc2253-formatted and openssl-formatted DNS, as seen from Apache and
    nginx, respectively.

commit da9162c3f4fe35c9e74ea1940123c26d8d4a95af
Author: Felix Frank <Felix.Frank@Alumni.TU-Berlin.de>
Date:   Wed Mar 27 07:59:57 2013 +0100

    (#19876) Fix crontab regression in resource matching
    
    The logic for matching new resources with exiting unmanaged cronjobs
    has been reworked during the fix for #16809. Somehow, this lead to
    a new issue which caused spurious matches, e.g.:
    
    10 * * * * /bin/true
    
    and
    
    cron { "blank": command => "/bin/true", ensure => present }
    
    would now match. At least puppet will not try to change the name of the
    record (i.e., the 'Puppet Name:' line). But the new entry will not get
    added either. It still works if there is a non-matching time field, e.g.
    
    cron { "blank": command => "/bin/true", hour => 1 }
    
    but without such fields, the behaviour is wrong.
    
    The match method (in the crontab provider) will expressly ignore named
    records on disk. This is safe to do; if the resource does have the
    same name as the on-disk record, the match method will not even get invoked.
    
    There is no scenario in which we'd want differently named records to be
    matched with a resource. If an on-disk record has a name, it either is
    managed through another resource, or it used to be managed. Either way,
    the resource in question needs adding or matching to a different record.

commit 29c7d03394d4fa64ead87e13785581c43cb9c34e
Merge: 66f130f f5d2367
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 27 16:00:05 2013 -0700

    Merge pull request #1564 from ffrank/ticket/master/656-cron-dont-keep-refreshing
    
    (#656) keep crontab from re-applying certain commands

commit f5d236702f472e06afdfee91d1fbb525a812f9b0
Author: Felix Frank <Felix.Frank@Alumni.TU-Berlin.de>
Date:   Wed Mar 27 00:52:09 2013 +0100

    (#656) keep crontab from re-applying certain commands
    
    The cron type allows arbitrary text in its command property.
    The crontab provider will silently discard leading and trailing spaces
    in record fields. Therefor, when parsing the generated records from disk,
    the spaces appear to be missing.
    
    To avoid this, it is safe to munge the command and discard the spaces
    on the type level. The provider never gets to see them and will not
    assume the need to refresh.

commit 66f130f51acf0c038e70475a5fdb9577181f51da
Merge: 862a2fc 55541b4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 27 13:09:51 2013 -0700

    Merge remote-tracking branch 'upstream/3.1.x'
    
    * upstream/3.1.x:
      (Maint) Ensure that kick tests don't trigger an agent run

commit 55541b43f41e9b56141f58ebb5cc61e5aab5995b
Merge: 34b5399 d79939d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 27 12:44:44 2013 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.1.x
    
    * upstream/2.7.x:
      (Maint) Ensure that kick tests don't trigger an agent run

commit d79939d3a271778dfeda3b3cc75405166652f39e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 19 17:59:45 2013 -0700

    (Maint) Ensure that kick tests don't trigger an agent run
    
    This commit fixes the infamous error that appeared periodically as:
    
    ````
      1) Puppet::Application::FaceBase#parse_options should stop if the first thing found is not an action
         Failure/Error: @logs.map(&:message).should == ["'basetest' has no 'banana' action.  See `puppet help basetest`."]
           expected: ["'basetest' has no 'banana' action.  See `puppet help basetest`."]
                got: ["Could not run Puppet configuration client: Not a directory - /dev/null/state/agent_catalog_run.lock", "'basetest' has no 'banana' action.  See `puppet help basetest`."] (using ==)
    ````
    
    The error came from the spec for Puppet::Application::Kick, which tried
    to test the error responses from the application calling Puppet::Run.
    Unfortunately only one of the 4 tests actually stubbed out the call
    which ends up invoking a puppet run via Puppet::Run.
    
    The reason this was so hard to track down is that it only occured if the
    thread that was created for the puppet run executed during the later
    test and added a message into the log messages tracked in memory. To
    find this the kick test and the face_base test were run repeatedly until
    the error occurred.
    
    In 2.7.x, this done using ruby 1.9 with the command:
    
    $ rspec --tag "~@fails_on_ruby_1.9.2" spec/unit/application/kick_spec.rb
      spec/unit/application/face_base_spec.rb

commit 862a2fc54f4d4805f03fa24ba5c3a1ae4e467a76
Merge: 080d3cb 292233c
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 27 10:13:06 2013 -0700

    Merge pull request #1539 from duritong/fix/master/15791_do_not_fiddle_with_global_seed
    
    (#15791) isolate deterministic random function

commit 080d3cbb54124ad914333b8866a4113968276fc8
Merge: 08b6bf0 db63e79
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 27 09:58:46 2013 -0700

    Merge pull request #1558 from djmitche/dupcode
    
    Remove some duplicate code, simplify

commit 08b6bf0f81c917a70fc862a22bffb6942bd6d67a
Merge: a7dacc5 a787567
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 27 09:56:06 2013 -0700

    Merge pull request #1563 from djmitche/log-exception-message
    
    Use the `message` method to get exception info

commit a787567ab6109228d7fb27fe21b43ffc009c74e6
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Tue Mar 26 14:49:40 2013 -0400

    Use the `message` method to get exception info
    
    Withot this, the error is "Could not request certificate: system lib",
    which is not very helpful.

commit a7dacc5db05a7195f20d6891f273d29dd9284253
Merge: 10dde4b 3f67938
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 26 11:17:50 2013 -0700

    Merge pull request #1562 from zaphod42/maint/load-order-error
    
    (Maint) Re-structure require statements to avoid loop

commit 3f67938f176109eec58445fd87eb69fe9adeb299
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 26 11:15:34 2013 -0700

    (Maint) Re-structure require statements to avoid loop
    
    The way in which the require statements for the puppet/interface module
    worked caused a dependency loop that could only be resolved by using the
    modules and classes in a very specific order. The tests showed this
    problem if they were run in a different order:
    
      /export/home/jenkins/workspace/Puppet Specs Solaris (master)/solaris10-i386/solaris10-i386/lib/puppet/interface/action_builder.rb:128: uninitialized constant Puppet::Interface::Action (NameError)
        from /opt/csw/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
        from /opt/csw/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        from /export/home/jenkins/workspace/Puppet Specs Solaris (master)/solaris10-i386/solaris10-i386/lib/puppet/interface/action_manager.rb:2
        from /opt/csw/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
        from /opt/csw/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        from /export/home/jenkins/workspace/Puppet Specs Solaris (master)/solaris10-i386/solaris10-i386/lib/puppet/interface.rb:13
        from /opt/csw/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
        from /opt/csw/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        from /export/home/jenkins/workspace/Puppet Specs Solaris (master)/solaris10-i386/solaris10-i386/lib/puppet/interface/action.rb:1
        from /opt/csw/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
        from /opt/csw/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
        from /export/home/jenkins/workspace/Puppet Specs Solaris (master)/solaris10-i386/solaris10-i386/spec/unit/interface/action_spec.rb:3
        from /opt/csw/lib/ruby/gems/1.8/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `load'
        from /opt/csw/lib/ruby/gems/1.8/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `load_spec_files'
        from /opt/csw/lib/ruby/gems/1.8/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `map'
        from /opt/csw/lib/ruby/gems/1.8/gems/rspec-core-2.9.0/lib/rspec/core/configuration.rb:746:in `load_spec_files'
        from /opt/csw/lib/ruby/gems/1.8/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:22:in `run'
        from /opt/csw/lib/ruby/gems/1.8/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
        from /opt/csw/lib/ruby/gems/1.8/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `autorun'
        from /opt/csw/bin/rspec:19
    
    This re-orders the requires so that only the top level module
    (Puppet::Interface) requires all of the components that are part of it.
    
    Paired-with: patrick@puppetlabs.com

commit 10dde4bdb8abcff3e5ffb4b0f43ba8166c900a57
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Mar 25 22:04:38 2013 -0700

    Explicitly require Win32API
    
    Previously, puppet could not be loaded in ruby 1.9 on Windows. The issue
    is that commit cd7d52a7b caused Win32API to be called during puppet's
    bootstrapping process, before Puppet.features.microsoft_windows? is
    invoked, which normally handles loading Windows specific gems.
    
    In ruby 1.8, this is not an issue because Win32API is always loaded by
    ruby itself. But in ruby 1.9, it must be explicitly loaded, which this
    commit does.

commit 5f47caf9c774be40f2ff6dbd4f4e633496b61452
Merge: 3eea0e4 16497db
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Mon Mar 25 22:02:36 2013 -0700

    Merge pull request #1440 from joshcooper/ticket/master/18986-unicode-console
    
    (#18986) Write to the console using Unicode Win32 APIs

commit a765066623c845547e83ea447047e5685322182a
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Mon Mar 25 20:49:24 2013 -0400

    (#16412) add `show_diffs` param to file type
    
    When false, this will suppress diffs of the affected files.

commit 017649b133250e2a6b7d304433b93f50a3c945dd
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Mon Mar 25 20:51:12 2013 -0400

    clarify what POST means

commit 915624cd4ec9b9518ec70e42009921386b1e0f23
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Fri Mar 22 15:31:46 2013 -0700

    Add more indirector documentation.
    
    This adds:
     * general text about the indirector
     * the indirected class for each indirection
     * indirection-specific docs for a few indirections that I could manage to puzzle out

commit db63e79219114813151caf9d4ffad44ce186c5ff
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Mon Mar 25 16:14:20 2013 -0700

    Remove some duplicate code, simplify
    
    The this_csr_is_for_the_current_host method appeared twice (apparently a
    merge error), and produced more confusion than was removed by factoring
    it out of the generate_certificate_request method, since "this" in this
    case is a host, not a CSR.

commit 3eea0e4c25d7ef04050ff2ff623c4a47712d04da
Merge: 493e920 2171fff
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Mar 25 16:35:50 2013 -0700

    Merge pull request #1557 from Sharpie/14764-fix-file-mode-audits
    
    (#14764) Fix formatting of file mode audits

commit 493e9208b77feb2d2b3931a694c39c98dfef8b00
Merge: 8391248 e42c433
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Mar 25 15:55:58 2013 -0700

    Merge pull request #1543 from hlindberg/vendor-rgen
    
    (#11331) Add vendoring of rgen to puppet

commit 8391248c198982e668128368bcd2adfe4bed1890
Merge: 45ded7d 0a9eeec
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Mar 25 13:43:02 2013 -0700

    Merge pull request #1542 from hlindberg/vendor
    
    (maint) Add vendoring support to puppet

commit 45ded7da5846e02d24fafddd58d05685de039d88
Merge: 51a813f 2cba73b
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Mar 25 12:08:36 2013 -0700

    Merge branch 'maint-stub_master_compile_puts'

commit 2171fff45db4f26dddc04d56145c38106e7ca7cd
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Mon Mar 25 11:50:11 2013 -0700

    (#14764) Fix formatting of file mode audits
    
    When a File resource is set to audit all attributes:
    
        file{"/tmp/foo": audit => "all"}
    
    If the file moves between `ensure => present` and `ensure => absent` the value
    of the `mode` parameter will be set to `:absent`.  This will cause the audit to
    fail as the `is_to_s` method for file modes cannot comprehend symbols as it
    expects a 3 or 4 digit string of numbers.
    
    This commit causes `is_to_s` to delegate to `super` when `:absent` is passed.

commit 2cba73b9eb8a42e56274c6bc21e866aea55ae5c2
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Mar 25 11:56:23 2013 -0700

    (maint) Stub out puppet master puts
    
    On Ruby 1.9.3, stubbing `$stdout.puts` will stub out calls to `puts` but
    on 1.8.7 this stubbing fails. This commit updates the tests to stub out
    the `puts` method on the master object to catch and silence the catalog
    outputting in the tests on 1.8.7.

commit c70dd1f4523ebc14895a32048a25418baff5377f
Author: Michael Hall <michael.hall@puppetlabs.com>
Date:   Fri Mar 1 14:25:42 2013 -0800

    Hiera functions: hiera_hash, hiera_array, hiera_include, hiera; with links to docs site for
    additional information, more complete examples

commit 3bb0cf966bce3814ac8076c7b6ec8752b68f2aa3
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Mon Mar 25 10:42:09 2013 -0700

    (maint) Fix provider tests for downstream of RPM
    
    Prior to this commit, the yum and aptrpm tests were broken due to the
    underlying changes in the RPM provider that were necessary for AIX
    support.  This commit appropriately stubs out the requests to `rpm
    --version` so that these providers can be properly tested.

commit b7811dd508f8d5fcab04b2e4e7498e3bcd6918c8
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Sat Mar 23 11:05:26 2013 -0700

    Correct formulation in AIX lsuser command
    
    Currently, the command string composition for the lsuser command is incorrect.
    It attempts to add a flag (-c) as part of the first binary to execute, when
    puppet expects flags to separate elements in the command string array.. This
    commit updates the forumlation so that "-c" is a separate element. How it ever
    worked as it is now is a mystery.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit f98b3a2b05eefc3d0adcad9a6629c8969571b810
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Mar 22 11:01:15 2013 -0700

    Add support for comment attribute in aix user provider
    
    The AIX user attribute "gecos" maps to "comment", similar to how the useradd
    provider manages this. This commit adds a "gecos" => "comment" mapping in the
    provider so that comment is one of the aix user attributes we can manage.  A
    difficulty arises though because the "gecos" attribute can legally contain both
    "=" characters and spaces. Currently the output of lsuser cmd, which we use to
    retrieve user attributes, is parsed using AixObject#parse_attr_list. This
    parses the AIX space-separated attribute list output format. When the value for
    "gecos" contains spaces, this breaks by returning only the first of the
    delimited tokens, e.g. "comment => John" when "John Doe" is the comment. This
    commit adds the "-c" flag to the lsuser call, which tells AIX to format the
    output in colon-delimited format. This switches the parsing to using the
    AixObject#parse_colon_list, which returns the output of the "gecos" value
    correctly, because ":" is not a legal value (gecos internal values are
    separated by ";"). This commit also removes commented out getter/setter section
    for "comment" since we're not using it. This PR resolves failing tests in
    the pe_acceptance_tests, specifically resource/user/should_modify.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 066540c2e9dc6042d014fd1f2d439d942bd8eba6
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Feb 7 14:05:38 2013 -0800

    (AIX) Create acceptance tests for src provider
    
    Prior to this commit, the acceptance tests for AIX's src service
    provider were barely a shell of a test. This commit tests that the
    service provider can
     * find a specific service
     * start the service
     * stop the service
     * enable the service
     * disable the service
    
    The tests were also refactored to use the puppet_acceptance `teardown`
    portion of the DSL so that if a test step fails, the temporary service
    will be removed prior to the next test run, especially important because
    the setup section will fail if the service exists already as AIX's
    `mkssys` does not have a way to override the state of an existing
    subsystem (service).

commit 2a36604f7ad0048dd06b557ac74803fbd9fdc6e5
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Feb 11 10:31:36 2013 -0800

    Minor rewording of AIX package provider docstring

commit 99735a0196be32098efbae60e43c3961a736d5ee
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Feb 8 14:02:14 2013 -0800

    Fixes and cleanup based on pull request feedback

commit 505175049d280c2771b6a61bd185370aa6d57fe7
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Feb 7 15:37:48 2013 -0800

    Explicitly reference /usr/bin/grep
    
    GNU grep may not support the `-p` option that AIX's grep does, and
    that's critical for this provider.  This commit changes the CLI
    command to explicitly reference `/usr/bin/grep` to avoid any
    potential issue where the user has modified the path in a way that
    might make GNU grep the default.

commit 65c8524bd71f13251a5f082a626be40dac91f4e6
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Feb 7 15:10:06 2013 -0800

    Copy AIX NIM provider tests from pe_acceptance_tests repo

commit e15cdb535bf65f138d67c4f76182022864959a66
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Feb 7 11:34:19 2013 -0800

    Improve AIX package provider documentation
    
    This commit just adds a few more details about the meanings of the
    various parameters required / supported by the AIX package providers.

commit 6f13a8afa40200383cd95df9ecbb3557565eb93c
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Feb 7 07:58:27 2013 -0800

    (AIX) Allow non-root users to introspect services
    
    Prior to this commit, non-root users were not able to introspect
    running services via the SRC service provider on AIX. The underlying
    problem is the `commands` portion of the provider DSL was/is aslo
    effectively a `confines`. The SRC service provider has many commands
    that it uses, but non-root users may only execute about half of them.
    This constraint is sensible for starting and stopping services; however,
    listing status of services should be able to be done for non-root users,
    and this provides feature parity for other platforms like Linux. This
    commit alters the `commands` DSL method to the `optional_commands`
    method so that the appropriate metaprogramming still happends, but
    removes the `confines` portion implicit to `commands`, which results
    in the SRC service provider being deemed suitable for non-root users
    on AIX.

commit 19d1c9a1e75835a8086f5f7293db9e6678125ad7
Author: Jill Burrows <jill@puppetlabs.com>
Date:   Mon Jan 28 15:31:20 2013 -0800

    (AIX) Fix service resources on AIX (SRC provider)
    
    Prior to this commit the SRC service provider was broken on recent
    version of AIX (5.3, 6.1, 7.1). The SRC service provider was not able to
    introspect running services nor was it able to enable/disable services.
    This commit makes service introspection possible in addition to being
    able to enable/disable specific services.

commit fd9edcae96e108cc43f57d1ada0908a18c1c4f5c
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Feb 5 12:24:28 2013 -0800

    DRY up spec tests for nim package provider

commit c1320ee45642b0342647006d296ec090bbbc067e
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Feb 5 12:17:07 2013 -0800

    Explicitly fail on RPM downgrades in the AIX package provider
    
    Attempted downgrades of RPM packages via the NIM package provider
    do nothing because the package is superseded by a newer
    version, but still don't exit non-zero. The only way to downgrade is
    to force the installation, which requires us to ignore dependencies. As
    this isn't palatable, we now explicitly fail if we see that the
    package was superseded by a newer version.

commit 922305b20a2a0c0ff9a8f73ec930c55c0028cf90
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Feb 5 11:58:32 2013 -0800

    Explicitly fail on BFF downgrades in the AIX package provider
    
    Attempted downgrades of BFF packages via the NIM package provider
    do nothing because the package is superseded by a newer
    version, but still don't exit non-zero. The only way to downgrade is to
    force the installation, which requires us to ignore dependencies. As
    this isn't palatable, we now explicitly fail if we see that the
    package was superseded by a newer version.

commit 4053e8e6c7fccbe355088502128dd8ad3260a111
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Feb 5 11:18:19 2013 -0800

    Fix modification of package command string
    
    As Nick pointed out in a3ef60bc75c33d3309fc3375b7485621d3b4a285,
    the way that this code was implemented would have the undesirable
    side effect of modifying the value of the provider's `@resource[:name]`
    value.  Changing the code from `<<` to `+=` causes the string
    to be copied rather than modifying via reference.

commit a14af9cdf160af3d7e8c13fce854c9011893aab2
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Feb 5 11:10:07 2013 -0800

    Better detection of version string for NIM package provider
    
    Prior to this commit, if you attempted to install an RPM
    from a NIM source using `ensure=>present`, and there were
    more than one version of that package available, the install
    command would fail because AIX's rpm system doesn't automatically
    default to the newest version if it finds more than one choice.
    It simply fails with an error message about there being more than
    one version available.
    
    This commit adds some logic for detecting the case where more than
    one version is available, and if so, it determines the newest
    version number and adds that to the installation command.  Thus,
    `ensure=>present` can succeed even if there are multiple versions
    of an RPM package available.

commit c46ce0d17cc1c7a9f499c055eac3f48ba7a05581
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Feb 4 16:57:30 2013 -0800

    Fix 'ensure=>absent' for rpms
    
    Prior to this commit, an `ensure=>absent` for an rpm package
    via the nim provider would result in a call to `installp -gu`,
    which is actually only capable of uninstalling bff/installp
    packages and not rpms.  This commit adds a call to `lslpp -qLc`
    so that we can determine which package type we're uninstalling,
    and then branches to call the appropriate command (`installp -gu`
    or `rpm -e`) accordingly.

commit 73d613c80c95da8fe33c2592cd3f09c1acabdca2
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Jan 31 17:22:48 2013 -0800

    Support RPM version numbers in NIM package provider
    
    This commit adds a call to `nimclient -o showres` prior to installing
    a package; this is necessary so that we can determine whether the
    package is an installp package or an RPM package.  This is
    unfortunately necessary because the installation command for specific
    versions of an RPM differs very slightly from the command for installing
    a specific installp/BFF package.
    
    We also have to do an unfortunate amount of regex-based parsing of
    the output from that command, because I have been unable to find
    a command that provides concise, easily parseable output *and* shows
    information about both RPMs and BFFs available on a NIM lpp source.

commit fc20461f20f97ad901c218896abb243839bfe01c
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Feb 1 13:26:48 2013 -0800

    Remove single quotes from `fileset` CLI arg in nim provider
    
    It seems that something must have changed in puppet since the time
    that the nim provider was originally submitted.  I believe that
    puppet may be handling the intepretation of quotes and other special
    characters in command line arguments slightly differently than it
    used to; The single quotes in the `fileset` argument to `nimclient`
    were not being interpreted by the shell, so they were being passed
    through to the underlying package manager as part of the package
    name... and since very few packages actually have surrounding single
    quotes as part of their package name, this was unsurprisingly failing.
    
    Since the current implementations of this CLI execution stuff in
    Puppet seem to be handling the grouping of the individual CLI argument
    strings more strictly, the provider seems to work fine without the
    single quotes (even if the value we're passing to the `filesets`
    argument contains a space).

commit 7e37d98c89ba65cab6b704f6ca5e04cf302d9c2e
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jan 29 13:58:39 2013 -0800

    Use actual package name for acceptance test
    
    This was using an old placeholder and never got updated. The test wasn't
    failing because it was expecting the command it was running to fail
    because the package didn't existed, which of course would always be
    true.

commit 087f96fc3a9bbf7b4fff1bdd601ece93d3fb7fc6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jan 28 16:27:15 2013 -0800

    Cleanup tmp dir after running aix package provider test

commit 69351f76a3889af03e2f689167799e2d58008408
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jan 28 15:33:29 2013 -0800

    Don't create .toc file in aix package provider acceptance test
    
    It turns out installp will automatically create this file when invoked,
    which means it doesn't need to be taking up valuable screen real-estate
    in this acceptance test.

commit 457211bbfa7f601676140dd0b19a068ec459649d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jan 22 15:35:54 2013 -0800

    Add an acceptance test for the aix package provider
    
    This file provides a baseline of test coverage for the aix package
    provider, including installation, upgrade, downgrade (which ought to
    fail) and removal, all using puppet apply.

commit a288b1fef6b89454df19be2bb2683c56d740fb84
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri Jan 25 11:38:19 2013 -0800

    (AIX) Convert RPM flags to array
    
    Prior to this commit the flags passed to `rpm` during upgrade or
    downgrade were a monolithic string of "-U --oldpackage". The
    provider attempts to send this to RPM as a single flag, which
    causes `rpm` to barf.  The commit changes the flags sent to `rpm`
    to an array of strings, which allows upgrades and downgrades to
    actually function as expected.

commit 64d99b025f2f867bf6af79ac01ec28a22802ce4e
Author: Lindsey <lindsey@puppetlabs.com>
Date:   Thu Jan 17 16:16:08 2013 -0800

    (AIX) (#11581) Fix undefined method "list_all" error on AIX user provider.
    
    Without this patch, `puppet resource user` fails with the following
    error:
    
    `./lib/puppet/provider/aixobject.rb:291:in 'instances': undefined
    method 'list_all' for Puppet::Type::User::ProviderAix:Class (NoMethodError)`
    
    This patch fixes the problem by fixing the method definition which
    makes the above command succeed and list all of the user resources.

commit 64cb36fbc674d4d656dfecd8426500bfac463c1a
Author: Lindsey <lindsey@puppetlabs.com>
Date:   Thu Jan 17 14:50:17 2013 -0800

    (#6936) Fix undefined method "groupname_by_id" error on AIX user provider
    
    Without this patch, `puppet resource user lindsey gid=4242 ensure=present` fails with the following error:
    
    `err: /User[lindsey]/gid: change from 600 to 4242 failed: undefined method 'groupname_by_id' for #<Puppet::Type::User::ProviderAix:0x20eae6e0>`
    
    This patch fixes the problem by fixing the method definition which makes the above command succeed:
    
    `notice: /User[lindsey]/gid: gid changed '600' to '4242'`

commit dde9abdd7ace61cc19e3fbef283e7095d4a216c0
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri Jan 25 02:07:52 2013 -0800

    (AIX) Replace RPM SemVer comparisons with versioncmp
    
    Prior to this commit, the RPM package provider was using SemVer
    for determining if version numbers less than specific versions to
    enable or disable specific flags. Unfortunately, SemVer requires
    version numbers to have, at a minimum, x.y.z and several releases
    of RPM only have x.y, causing SemVer to barf.  This commit retains
    the logic (and adds tests), but uses the more lenient
    `Puppet::Util::Package.versioncmp` instead.

commit 3837bbc398232464423821ff97a827e2aca03b29
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri Jan 25 01:37:43 2013 -0800

    (AIX) Tests for proper usage of --oldpackage w/ RPM
    
    Prior to this commit, there were no tests for installing packages
    with the RPM package provider. This commit adds tests to validate
    that when a package doesn't already exist `rpm` is called with
    `-i`, and when any version is already installed `rpm` is called
    with `-U --oldpackage`. These tests are important because older
    versions of RPM, such as 3.0.5 on AIX, barf when `--oldpackage` is
    applied with `-i` whereas newer versions of RPM simply treat it as
    a NOOP because it doesn't make sense with `-i`.

commit 24c44a5d5bd6818b08dc1097008513ceb8a74ec0
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Jan 17 15:16:54 2013 -0800

    (maint) RPM install should have --oldpackage
    
    Prior to this commit, the RPM package provider would force the
    `--oldpackage` option; however, older versions of RPM (i.e. 3.0.5 on
    AIX) don't really like `--oldpackage` when you're doing an installation.
    Rather than treat it as a NOOP, the older versions of RPM fail. This
    commit changes the behaviour so that `--oldpackage` is only used when
    the package is an up-/down-grade.

commit 637a8899e0ff4a9149c08847047076c8b5421148
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Jan 23 13:17:45 2013 -0800

    (AIX) Remove RPM test from yum spec
    
    Prior to this commit, the yum package provider spec was testing
    functionality that did not exist in the yum package provider, but
    rather in its parent, the rpm package provider. This commit removes
    that test because now we have a proper rpm provider spec.

commit 0552e7cecdc127b2ba2d44a7d6e2d4c07ecc7de8
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Jan 23 09:59:51 2013 -0800

    (AIX) Exclude arch from uninstall on old RPMs
    
    Prior to this commit, the RPM provider assumed that `rpm` would
    know what to do with the architecture (e.g. i386, x86_64, ppc)
    when uninstalling a packages (e.g. `rpm -e mypkg.i386`).
    Unfortunately, this only works for relatively modern versions of
    `rpm` (4.2.1+).  This commit checks the version of `rpm` and will
    add or exclude the architecture from the arguments sent to `rpm`.

commit 46e5d1eded7721ecc8bec1b88519a9308bda5933
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Jan 22 15:40:22 2013 -0800

    (AIX) Change ternary to unless for old RPMs
    
    Prior to this commit, the RPM package provider used a less readable
    ternary operator for determining which flags to pass to `rpm`. This
    commit alters each of those to be a simple suffixed `unless` condition.
    
    This commit also includes the more correct `rpm --version` output which
    contains a "\n", and the corresponding `strip` on the version number.

commit 08be29988a9cb5ee9318ed96685b0c28362818ec
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Jan 22 14:50:52 2013 -0800

    (AIX) Add option tests for various crusty RPMs
    
    Prior to this commit, we had no tests for the changing behaviour based
    on version of RPM release. This commit add tests for magical old
    versions of RPM, like that on AIX, 3.0.5 aka before the time began.

commit 63547d7c704e1bb381d275279437c6531ce50906
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Jan 22 14:12:30 2013 -0800

    (AIX) backport of master rpm_spec + fix for 2.7.x
    
    This commit can, and should, be trashed when we merge the aix
    integration branch into master.

commit aa48a16fc78f7db36ef6c2cff78303b286e36c98
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Jan 22 13:59:57 2013 -0800

    (AIX) Convert rpm comparisons (regex -> semver)
    
    Prior to this commit, the RPM package provider was using regular
    expressions for comparing versions of the `rpm` utility. The regex
    method, while functional, is not exactly readable nor does the regex
    hold up once `rpm` hits version 10. This commit uses SemVer (even though
    the `rpm` versions are *semantically* versioned, the SemVer library
    already exists and can easily handle version comparisons) for checking
    the specific cases of `rpm` versions < 4.1 and < 4.0.2.

commit ff944df436727cf29197fcc1aa83b7ddf29a5d47
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jan 18 15:32:58 2013 -0800

    Explicitly fail on downgrades in the AIX package provider
    
    Downgrades do nothing because the package is superseded by a newer
    version, but still don't exit non-zero. The only way to downgrade is to
    force the installation, which requires us to ignore dependencies. As
    this isn't palatable, we now explicitly fail if we see that the
    package was superseded by a newer version.
    
    This also fixes an issue of using << vs. +=, which would cause the
    resource's name to be modified during installation.

commit ff0c8016d2303b8824bd189343f492da17e8b58a
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri Jan 18 11:38:26 2013 -0800

    (maint) RPM package provider broken on AIX.
    
    Prior to this commit, the RPM package provider would barf when
    attempting to run `self.instances` on AIX. The culprit is the archaic
    version of RPM (3.0.5) on AIX. The RPM provider assumed that the
    `--nodigest` option (introduced in 4.0.2, circa 2001) was available.
    This commit removes the `--nodigest` option for RPM versions older than
    4.0.2.

commit 78bc823a06a9272143929b04d6a0ac7b32537c2d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 17 15:10:36 2013 -0800

    Skip test that runs git if we can't run git
    
    This test was assuming, incorrectly, that it will always be run from
    inside a git repo with git installed. Now we properly handle the case
    where it's not, and skip the test.

commit 2613bfab85836689096ffd548ce103ef8a8f5cf9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 17 14:51:44 2013 -0800

    Fix posix exec provider spec on systems with /bin/cd
    
    This test was setting path to /bin with the assumption that it didn't
    contain cd, and therefore the only cd would be a shell built-in. On
    system which *do* contain /bin/cd, this was failing. Now we just use a
    bogus path so this will work everywhere.

commit f25855206d61e5926fdc6915fd4c37f9ea811a5d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 17 13:42:56 2013 -0800

    Use the right provider instance in launchd provider specs
    
    These tests were creating a resource and a launchd provider instance
    from that resource, when the resource already has a (default) provider instance.
    In most cases this was working fine, because the resource's provider
    instance wasn't often being referred to. However, a couple of tests were
    trying to set the enable property of the resource, which fails on systems without an
    enableable provider. Now, we explicitly set the resource's provider to
    launchd, as use its provider instance for all of our tests.

commit 81b128fa69f251061d222c1514675f1531b63183
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 17 13:34:22 2013 -0800

    Fix service enable specs on platforms without enable
    
    These specs use the default service provider, but in the case where that
    provider doesn't support the enable property, they were failing when
    testing various values for that property. Many of these went unnoticed
    because they weren't actually making any assertions, but rather checking
    that nothing failed, so now they do assert.

commit a8f5718607af30edb7a266132f56b097daacc658
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 17 14:08:24 2013 -0800

    (#7841) Always read SELinux module header as little endian
    
    These are always little endian, but are currently being read as native
    byte order, which obviously causes failures.

commit 51a813f329724bbcc55099da6058d330a79d1356
Merge: ca35b9b 34b5399
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Mar 25 09:15:28 2013 -0700

    Merge branch '3.1.x'
    
    * 3.1.x:
      Improve CVE 2013 1654 SSLv2 Downgrade Master test

commit 34b5399b1b30f2e082c7cc62d5f3016e05a2554b
Merge: 350a6e1 ac273d9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Mar 25 09:15:11 2013 -0700

    Merge branch '2.7.x' into 3.1.x
    
    * 2.7.x:
      Improve CVE 2013 1654 SSLv2 Downgrade Master test

commit ac273d93bc7ddb0abf708dbad5d873a43bfe5bc7
Merge: e94732b bc9fde4
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Mar 25 09:13:31 2013 -0700

    Merge branch 'justinstoller-maint/2.7.x/improve_downgrade_master_test' into 2.7.x
    
    * justinstoller-maint/2.7.x/improve_downgrade_master_test:
      Improve CVE 2013 1654 SSLv2 Downgrade Master test
    
    closes #1548

commit ca35b9b73e8eeaac73766716b1f9d4b5fba4158c
Merge: 0d01204 6f1c3dc
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 22 18:17:07 2013 -0700

    Merge branch 'maint-refactor_cron_filetype_selection'

commit 6f1c3dca9a80226221eca6aa3185249db920f05e
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 22 14:02:47 2013 -0700

    (maint) Refactor crontab filetype selection
    
    The previous implementation of the crontab implementation type
    determined the filetype to use at load time by calling out to Facter
    before the type was loaded, which was both ugly and made it difficult to
    test on alternate platforms. This commit overrides the `.filetype`
    method to do the detection at runtime so the provider encapsulates all
    its logic and the filetype can be stubbed out.

commit 0d01204505b9132fe65bfe5ca00bd3948d413465
Merge: cc44504 95681a1
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 22 17:55:35 2013 -0700

    Merge pull request #1549 from zaphod42/maint/fix-enc-environment-regression
    
    (#17190) Re-introduce environment for catalog compile

commit cc445042a2c21bb7d8e18a32697bcf1e23fba65b
Merge: 23c6c98 350a6e1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Mar 22 17:10:51 2013 -0700

    Merge branch '3.1.x'
    
    * 3.1.x:
      (Maint) Make a CRL valid on the same second it is updated
      (#7680) Fixup Puppet::Resource::Catalog::StaticCompiler tests
      (#7680) Add acceptance test for file links => follow
      Update Puppet::FileServing::Metadata tests
      (#7680) Update tests for changed behaviour after bugfix
      Send the :links option to the file server
    
    Conflicts:
    	lib/puppet/type/file/source.rb
    	spec/unit/type/file/source_spec.rb

commit 350a6e1851e4f6d967501db728fdbe5bbf50df2c
Merge: 7b8bda6 806470f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Mar 22 17:07:35 2013 -0700

    Merge branch '2.7.x' into 3.1.x
    
    * 2.7.x:
      (Maint) Make a CRL valid on the same second it is updated
    
    Conflicts:
    	lib/puppet/ssl/certificate_revocation_list.rb

commit 95681a1e0d1ec9c7ca10fc85f4e2ebab6a7e2d6a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 22 16:17:33 2013 -0700

    (#17190) Re-introduce environment for catalog compile
    
    Commit f64e0a94c60506eec44645b07c36ff996ee2b5cd accidentally removed the
    pass-through of `*args`, which removed the passing of `:environment` to
    the Puppet::Node indirection. This adds a test that would have failed
    and restructures the code so that the mistake would have been more
    obvious.

commit 806470f4c9dcb195969957fe7186a8b51353b661
Author: Andy Parker <andy@puppetlabs.com>
Date:   Fri Mar 22 15:00:01 2013 -0700

    (Maint) Make a CRL valid on the same second it is updated
    
    Backport commit 15a9fb76096e1d0d3642ae2ebcfa72ea9abc367f which
    eliminates time-sensitive spec failures due to the CRL not being yet
    valid.
    
    Because openSSL says that a CRL is valid only at least one second after
    it was last updated, setting the last_updated field to right now causes
    the CRL to be not valid for one second. This was showing up as an
    intermittent failure in our test cases.
    
    The CRL is now always made to be last_updated one second ago so that it
    is immediately valid.

commit bc9fde434357d91bcccbbabb15ff81b316b7c5cc
Author: Justin Stoller <justin@puppetlabs.com>
Date:   Thu Mar 21 15:12:47 2013 -0700

    Improve CVE 2013 1654 SSLv2 Downgrade Master test
    
    Previously we were only checking for the applicability of the master
    (since we're testing the master), but we run the check from an agent.
    This ensures the agent we run the check from has the necessary openssl
    client for the test.
    
    Signed-off-by: Justin Stoller <justin@puppetlabs.com>

commit b0e50171f586102ded679b9eea1ce857c873db4e
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Mar 21 17:03:58 2013 -0700

    (maint) Exclude crontab integration specs on windows
    
    Since windows doesn't have a functional crontab provider, it doesn't
    make sense to run integration tests for cron on windows.

commit f3eb77d02aa6825fd78d0784567404f6e1888963
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Mar 21 20:00:15 2013 -0700

    Add recognizable prefix string to profiling log statements
    
    This commit simply prefixes the profiling log strings with
    the word "PROFILE", so that they are easy to grep for in
    the output.

commit e42c4338cf3b2304d6d1babbb1d450529a316042
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Mar 22 03:15:32 2013 +0100

    (#11331) Add vendoring of rgen to puppet.
    
    This adds the RGen gem 0.6.1 in transition to not yet released
    RGen gem 0.6.2.

commit 0a9eeec10b02a3a9be0979e0b63fc5051008c5a2
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Mar 22 03:07:07 2013 +0100

    (maint) Add vendoring support to puppet
    
    This adds vendoring support to puppet based on the implementation in
    mcollective.

commit b83ccf6c45651b2f0f71f00ccca63960e5edf861
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Mar 21 17:35:14 2013 -0700

    (Maint) Extract constant strings as constants

commit 23c6c9866ebb7917ab89e6be365ddf87f16b09cb
Merge: 3ede226 723f48f
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Mar 21 17:05:14 2013 -0700

    Merge branch 'maint-exclude_crontab_integration_specs_on_windows'

commit 723f48f633e7a5d70dfcc9dd356276587cf8095e
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Mar 21 17:03:58 2013 -0700

    (maint) Exclude crontab integration specs on windows
    
    Since windows doesn't have a functional crontab provider, it doesn't
    make sense to run integration tests for cron on windows.

commit 3ede22695e577b873529f058dd289eac1863fa8f
Merge: 57850dc 4b64fec
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Thu Mar 21 16:37:28 2013 -0700

    Merge pull request #1511 from zaphod42/feature/master/17190-detailed-compile-profiling
    
    (#17190) Provide on-demand profiling of catalog compiles

commit 57850dc7d54fa50a4ce4ee17e0c414d194b35411
Merge: 5b06686 7d0f176
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Mar 21 15:13:56 2013 -0700

    Merge branch 'issue/master/19058-deprecate-method-access-in-templates'
    
    * issue/master/19058-deprecate-method-access-in-templates:
      (#19058) Deprecate var access via methods in templates

commit 5b0668602768f5e6f8a11e9ea0a3690ad34b31bf
Merge: 29f3afa 2385b09
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Mar 21 14:34:13 2013 -0700

    Merge branch 'pull-1216'
    
    This closes GH-1216.

commit 4b64fecb258d0617ee5186eaad7034c8d0d3f732
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Mar 20 18:26:28 2013 -0700

    (Maint) Fixup from bad rebase
    
    A rebase against the master branch had a non-conflicting merge that
    caused some tests to fail. The tests were still using `@handler`, but
    that had been changed to just `handler` in the work for the profiler.

commit 292233cea202a4989eaf0fd9a7cf3cb499d66a2c
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Wed Mar 20 23:14:22 2013 +0100

    (#15791) isolate deterministic random function
    
    We should not fiddle with the global seed, as other people
    might still depend on Kernel.rand() not being that deterministic
    as it is the idea with the fqdn_rand function.
    
    However, as ruby < 1.9.2 does not provide such a nice solution, as
    a dedicated Random class we simply call Kernel.srand() again on ruby
    < 1.9.2 -> Reinitialize with a less deterministic seed.

commit 29f3afa2b7cbae74adb9873164f4aa5c7d909bed
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 19 17:59:45 2013 -0700

    (Maint) Ensure that kick tests don't trigger an agent run
    
    This commit fixes the infamous error that appeared periodically as:
    
    ````
      1) Puppet::Application::FaceBase#parse_options should stop if the first thing found is not an action
         Failure/Error: @logs.map(&:message).should == ["'basetest' has no 'banana' action.  See `puppet help basetest`."]
           expected: ["'basetest' has no 'banana' action.  See `puppet help basetest`."]
                got: ["Could not run Puppet configuration client: Not a directory - /dev/null/state/agent_catalog_run.lock", "'basetest' has no 'banana' action.  See `puppet help basetest`."] (using ==)
    ````
    
    The error came from the spec for Puppet::Application::Kick, which tried
    to test the error responses from the application calling Puppet::Run.
    Unfortunately only one of the 4 tests actually stubbed out the call
    which ends up invoking a puppet run via Puppet::Run.
    
    The reason this was so hard to track down is that it only occured if the
    thread that was created for the puppet run executed during the later
    test and added a message into the log messages tracked in memory. To
    find this the kick test and the face_base test were run repeatedly until
    the error occurred.

commit 7d0f1768a9ebe3dbfe470c425f0b1f773e76e842
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Feb 5 09:15:01 2013 -0800

    (#19058) Deprecate var access via methods in templates
    
    The behavior of trying to use method_missing for providing access to
    scope variables has created a slew of bugs and confusion for users. This
    deprecates the method call syntax for accessing variables in favor of
    the instance variable syntax.
    
    In order to issue a useful deprecation warning, this needs to eagerly
    evaluate the line number of the method call in the ERB template, which
    reverts the lazy evaluation that had been put in as a performance boost.
    However, since this syntax is now deprecated, users can switch to the
    instance variable syntax to get the performance boost.

commit 17ad65c9cdcce0bb546aea7bd1abca1d22d6f2cd
Merge: 2ac1b27 ce62e25
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Mar 19 09:31:23 2013 -0700

    Merge branch 'pull-1534'
    
    This closes GH-1534.

commit ce62e255154cac825ef9e9ba7c2d3576b20d623a
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Mon Mar 18 14:21:10 2013 -0700

    (#19779) Call PSON::pretty_generate instead of jj
    
    The `jj` method can be clobbered if other JSON libraries, notably `json_pure`,
    are loaded. When this occurs, `puppet master --compile` silently fails to
    produce any output.

commit 2ac1b2754d1f2ca34260140bb7be1c56ccd9cadb
Merge: 7f4e2a5 6be5133
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Mar 18 10:39:24 2013 -0700

    Merge pull request #1533 from adrienthebo/5752-rescue_parsedfile_prefetch_errors
    
    5752 rescue parsedfile prefetch errors

commit 7f4e2a58a3b7f3fc2bd891883a73f043406809b2
Merge: 560aff9 c38b0a9
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 15 13:38:25 2013 -0700

    Merge pull request #1528 from Sharpie/19716-fix-duplicated-crontab-entry-docs
    
    (#19716) Document handling of duplicate cron jobs

commit c38b0a9ca3f8b46123711219d2b0227de614b937
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Wed Mar 13 11:00:38 2013 -0700

    (#19716) Document handling of duplicate cron jobs
    
    Prior to this commit the documentation claimed that if a user specified a
    `cron` resources that exactly duplicated an existing unnamed entry in the
    crontab then Puppet would attach a name to that entry and start managing it.
    
    `cron` hasn't worked this way since at least 0.22.2.
    
    Current behavior is: Puppet will remove all crontab entries duplicated by a `cron`
    resource with `ensure => absent`. Puppet will preserve all entries duplicated
    by a `cron` resource with `ensure => present` and treat the resource as a noop.
    
    Mix the two cases and undefined behavior results.

commit 7b8bda6debd069404e6edc4f9ebc77db1ab11ad5
Merge: 5b52de7 e94732b
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 15 11:00:56 2013 -0700

    Merge branch '2.7.x' into 3.1.x
    
    Conflicts:
    	lib/puppet/type/file/source.rb
    	spec/unit/indirector/catalog/static_compiler_spec.rb
    	spec/unit/type/file/source_spec.rb

commit 560aff916ed178884c06b1b612bf3e51b7f12877
Merge: ffa16a4 479f4ae
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 15 10:47:13 2013 -0700

    Merge pull request #1530 from robertomulabi/patch-1
    
    Find correct service name in FreeBSD rc.conf

commit e94732be015cd069035500ed191436767368e7a3
Merge: f720e9e b247a39
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 15 10:27:01 2013 -0700

    Merge remote-tracking branch 'pr/1532' into 2.7.x

commit 6be5133f324a382952717a453c2abe10eec50728
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 15 10:11:34 2013 -0700

    (#5752) Rescue filetype read error in parsedfile
    
    Without this commit the parsedfile provider will rescue any error
    generated from filetypes, regardless of if it's something that can be
    handled. This commit explicitly rescues errors generated when read
    errors occur so that errors that can't be handled are correctly
    propagated.

commit f47179caf770c007542aeded7f72a13afed6322c
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 13 16:22:28 2013 -0700

    (#5752) Raise specific error in file type
    
    The current behavior of read errors in file types is to raise a generic
    error, which is difficult to rescue without rescuing everything. This
    commit adds a new exception subclass that can be explicitly rescued
    without rescuing every other error.

commit b247a390fde7aefd924062f95f641a6436cd8d77
Author: Chris Boot <bootc@bootc.net>
Date:   Fri Mar 15 09:37:20 2013 +0000

    (#7680) Fixup Puppet::Resource::Catalog::StaticCompiler tests

commit 1d8a76e060f610a9db20cf1bdd4ff95dddba9309
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Mar 14 13:42:22 2013 -0700

    (#7680) Add acceptance test for file links => follow

commit 3a00ed468617c17b5a527c68cfc37d7d1fddaa72
Author: Chris Boot <crb@tiger-computing.co.uk>
Date:   Thu Mar 14 19:05:50 2013 +0000

    Update Puppet::FileServing::Metadata tests
    
    Provide a stub for resource[:links] => :manage
    Expect :find to be called with :links => :manage

commit ee4c6f7c697737aa919b9f90436ab0cc69934b03
Author: Chris Boot <crb@tiger-computing.co.uk>
Date:   Mon Mar 11 15:30:14 2013 +0000

    (#7680) Update tests for changed behaviour after bugfix
    
    A number of tests were broken before the bugfix:
    * incorrectly checking the file mode (missing .should)
    * operating on a non-existent source symlink
    
    Enabled all of the #10315 tests which now pass, some of which needed
    editing due to the expected behaviour now being different for
    links => follow.

commit 1b0e812ad9e33b3cc148fac30a28490f60f40c63
Author: Chris Boot <crb@tiger-computing.co.uk>
Date:   Thu Mar 14 17:56:39 2013 +0000

    Send the :links option to the file server
    
    Previously, the server was never asked to follow links when 'links =>
    follow' was used, so the server always provided the metadata for the
    link itself. With this patch, the server correctly follows the link
    server-side and the client can apply the catalog correctly.

commit 479f4aeb7b33f4128fc34237bf0d4d9a42dba9a7
Author: robertomulabi <robertomulabi@gmail.com>
Date:   Fri Mar 15 01:01:07 2013 -0300

    Update freebsd_spec.rb

commit 5a5f067066600bc2d9320a22c120a47b9596d41d
Author: robertomulabi <robertomulabi@gmail.com>
Date:   Fri Mar 15 00:57:24 2013 -0300

    Find correct service name in FreeBSD rc.conf
    
    If you have the following two lines in /etc/rc.conf:
    openntpd_enable="NO"
    ntpd_enable="NO"
    And run the command:
    puppet resource service ntpd enable=true
    Both services will be enabled, and rc.conf will now have:
    openntpd_enable="YES"
    ntpd_enable="YES"
    What should have been written is:
    openntpd_enable="NO"
    ntpd_enable="YES"
    The regexp /(#{rcvar}(_enable)?)=\"?(YES|NO)\"?/ should be anchored.

commit ffa16a4a02eaa9d2e25cffcfe5dfc8a4f97b7532
Merge: d6b440f b9def16
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Mar 14 15:06:22 2013 -0700

    Merge pull request #1527 from robertomulabi/patch-1
    
    Fix service resource on FreeBSD

commit d6b440fc055815d6cb31d1deeadd9278fdb2de0e
Merge: adf8261 7be6b90
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Mar 14 14:34:36 2013 -0700

    Merge branch 'pull-1529'
    
    This closes GH-1529

commit 7be6b9086ad49dfcb3d0e1460bcc43eb4d1bab3a
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Mar 14 13:42:22 2013 -0700

    (#7680) Add acceptance test for file links => follow

commit 47057e0224bfa0c54f4a60bee09090e43e061481
Author: Chris Boot <crb@tiger-computing.co.uk>
Date:   Thu Mar 14 19:05:50 2013 +0000

    Update Puppet::FileServing::Metadata tests
    
    Provide a stub for resource[:links] => :manage
    Expect :find to be called with :links => :manage

commit 72f2e9a6f29c8829930b42cec800401713ee72cb
Author: Chris Boot <crb@tiger-computing.co.uk>
Date:   Mon Mar 11 15:30:14 2013 +0000

    (#7680) Update tests for changed behaviour after bugfix
    
    A number of tests were broken before the bugfix:
    * incorrectly checking the file mode (missing .should)
    * operating on a non-existent source symlink
    
    Enabled all of the #10315 tests which now pass, some of which needed
    editing due to the expected behaviour now being different for
    links => follow.

commit 10e549b2f357f889b620c88bbe63f2d46263b481
Author: Chris Boot <crb@tiger-computing.co.uk>
Date:   Thu Mar 14 17:56:39 2013 +0000

    Send the :links option to the file server
    
    Previously, the server was never asked to follow links when 'links =>
    follow' was used, so the server always provided the metadata for the
    link itself. With this patch, the server correctly follows the link
    server-side and the client can apply the catalog correctly.

commit b9def16b31d3b3f8aebf486ded849a84816c0412
Author: robertomulabi <robertomulabi@gmail.com>
Date:   Thu Mar 14 15:08:31 2013 -0300

    Update freebsd_spec.rb

commit 49757640876fd454f82467ea2eec2d185f09c50b
Author: robertomulabi <robertomulabi@gmail.com>
Date:   Thu Mar 14 12:45:59 2013 -0300

    Fix service resource on FreeBSD
    
    The command:
    puppet resource service puppet enable=true
    will wrongly append to rc.conf:
    puppet_enable_enable="YES"
    What should be appended is:
    puppet_enable="YES"
    The regexp /(.*)(_enable)?=(.*)/ is wrong because the first (.*) consumes the _enable, which is then used as the rcvar_name.

commit adf8261b5eec3735f3cd45847771a50111fdc8e9
Merge: 0718c49 7cce70b
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 13 18:10:36 2013 -0700

    Merge branch 'maint-use_absolute_command'

commit 7cce70b2800614587b9699fd0ecbd43121764db7
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 13 18:09:37 2013 -0700

    (maint) use absolute command in exec type spec

commit 8c769aa2c25926bcf244cf127ce5bbc41c06f645
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Mar 11 14:25:47 2013 -0700

    (Maint) Do not try to cound objects on ruby 1.8
    
    ObjectSpace.count_objects only exists on 1.9 or greater (in fact 1.9.2
    or greater, but be only support 1.9.3). This makes the test for this
    functionality pending on ruby 1.8 so that we can have the functionality,
    but not test it where it can't work.

commit 9c05c490afdb409196476efa7a286fdbbf09be8a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Mar 11 12:29:10 2013 -0700

    (#17190) Move profiling of function calls to Functions
    
    The original place where functions were being profiled (in
    Puppet::Parser::Scope) only catches the first call to the function. By
    moving the profiling to the Puppet::Parser::Functions we can instrument
    the generated method and therefore pick up all of the calls.

commit de4ed1ee7f13528598443b5deafd131b47eb340b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Mar 11 12:23:20 2013 -0700

    (Maint) Remove accidentally added debug line
    
    I had added the debug of the request parameters at some point in order
    to understand what they were. That had accidentally been committed.

commit 28bb8672783a7a5e461a50946adf5d9cc2e66d2a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Mar 11 12:18:52 2013 -0700

    (#17190) Add object count profiler
    
    This adds a new (very experimental) profiler for tracking changes in the
    ruby object space object counts. In order to use it right now, you'll
    actually have to modify the code since there is currently no mechanism
    for selecting the type of profiler to use. I'm also not certain that the
    information this profiler collects is useful, but it might provide some
    insight into the changes that different sections of code cause in the
    number of objects in memory.

commit 6181bfade195f29a18eb8d9e37a176aca142b3b3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 8 20:55:18 2013 -0800

    (#17190) Extract abstract logging profiler
    
    The logging and execution aspects of the WallClock profiler are going to
    be useful in other contexts as well. This extracts out an abstract
    Logging base class that provides a template method for WallClock.

commit c7b8561f1c188b02eb0a4e35d2b8810f68cb78da
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 8 19:53:36 2013 -0800

    (#17190) Genericize output format of profiler
    
    The output format of the profile messages was tied to the specific
    profiler. This updates the message and internal structure of the
    WallClock profiler to allow for making the entire flow of before and
    after handling of the profiler generic.

commit 4b0508bf7f1bdf8815708f9bf39e25162742f832
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 8 19:16:17 2013 -0800

    (#17190) Rename Measuring to WallClock
    
    The Puppet::Util::Profiler::Measuring is better described as a wall
    clock profiler. This renames it to that.

commit 91dcfe2ab5acd213142637ac5a89066ec8e3fb17
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 8 19:03:39 2013 -0800

    (#17190) Profile function calls
    
    This adds profiling of function calls on Puppet::Parser::Scope objects.

commit 2570c74cd8afc436e0ed09707024c9fae06f63d6
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 8 18:55:39 2013 -0800

    (Maint) Cleanup some scope tests
    
    Remove the naughty "should" and move away from instance vars.

commit e579ceb9f35c8b5dcc1de307695226f1b66184f5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 1 03:23:45 2013 -0800

    (Maint) Extract time from profiler
    
    The implementation for timing and logging the profiled information was
    getting intertwined and messy. This extracts the timing and formating of
    elapsed time into a Timer class that is used to time the segment.

commit a22797a5ab5cd0b560084c4e8aea2d52b18b0e7d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 1 03:14:16 2013 -0800

    (#17190) Handle errors during profiling
    
    If an error had been raised in the profiled segment, the profiling
    information would have been skipped, the sequence would not have been
    updated and everything would start falling apart. This changes the
    Measuring profiler to handle errors raised in the segment, but in so
    doing has to stop using the Benchmark library and resort to Time.now.

commit 9e55b38674a0c8384a040be58d08657b2874e435
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 1 03:04:40 2013 -0800

    (#17190) Mark profiling APIs private
    
    Until we make a specific decision that these should be available to
    others, they are going to be made private.

commit 2905662a3d2dfca48952f73a6f972d2a9fad522f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 1 02:51:10 2013 -0800

    (#17190) Improve output from profiling
    
    The output for the profiling had an issue whereby the profiling run
    identifier (the porting inside square brackets) followed the nesting
    identifier. This caused a hard read output. This flips those two
    components of the output to create:
    
      Debug: [2166677060] 1.3.6.2 Iterated (2) on generators in 0.0002 seconds
      Debug: [2166677060] 1.3.6 Compile: Evaluated generators in 0.0012 seconds
      Debug: [2166677060] 1.3.7 Compile: Finished catalog in 0.0004 seconds
      Debug: [2166677060] 1.3 Compiled catalog for aparker in environment production in 0.0290 seconds
      Debug: [2166677060] 1.4 Filtered result for catalog aparker in 0.0005 seconds
      Debug: [2166677060] 1.5 Rendered result in Puppet::Network::Format[yaml] in 0.0047 seconds
      Debug: [2166677060] 1.6 Sent response in 0.0000 seconds
      Debug: [2166677060] 1 Processed request GET /production/catalog/aparker in 0.0896 seconds
    
    This also remove the profiler's dependence on the exact logging level to
    use and instead makes it just call a method that it is given.

commit d2025400e34f489afc19e14291d38422b2de124f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 1 02:22:54 2013 -0800

    (#17190) Provide on-demand profiling of catalog compiles
    
    The previous version of the catalog compile timings use the
    Puppet::Util#benchmark system, which did not allow turning it on and
    off. This replaces that system with the Puppet::Util::Profiler and
    provides a parameter for requests called "profile" that can be used to
    perform a profiled run.
    
    Currently this logs to the debug output, but in the future could
    reasonably send the profiling information elsewhere so that the user
    does not need to have debug logging enabled in order to get profiling
    information.
    
    An example of how to use this. After a node has checked in and the
    master has stored the facts for the node make another request from the
    command line:
    
      curl -k -H "Accept: yaml" \
      'https://localhost:8140/production/catalog/aparker?profile'
    
    The "?profile" is the signal to output the profiling information. The
    master will output a log that looks like:
    
      Debug: 1.3.5 [2154751480] Compile: Evaluated node classes in 0.0000 seconds
      Debug: 1.3.6.1.1.1 [2154751480] Evaluated resource Foo[testing] in 0.0004 seconds
      Debug: 1.3.6.1.1 [2154751480] Evaluated definitions in 0.0006 seconds
      Debug: 1.3.6.1 [2154751480] Iterated (1) on generators in 0.0008 seconds
      Debug: 1.3.6.2.1 [2154751480] Evaluated definitions in 0.0000 seconds
      Debug: 1.3.6.2 [2154751480] Iterated (2) on generators in 0.0002 seconds
      Debug: 1.3.6 [2154751480] Compile: Evaluated generators in 0.0012 seconds
      Debug: 1.3.7 [2154751480] Compile: Finished catalog in 0.0004 seconds
      Debug: 1.3 [2154751480] Compiled catalog for aparker in environment production in 0.0291 seconds
      Debug: 1.4 [2154751480] Filtered result for catalog aparker in 0.0005 seconds
      Debug: 1.5 [2154751480] Rendered result in Puppet::Network::Format[yaml] in 0.0044 seconds
      Debug: 1.6 [2154751480] Sent response in 0.0000 seconds
      Debug: 1 [2154751480] Processed request GET /production/catalog/aparker in 0.0645 seconds
    
    The outline style number that preceeds every line is to provide nesting
    information. Ideally the time of the nested components should add up to
    the higher level time.

commit 92bf9b59932a1d05eab38efae921fdf40b3396bb
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Feb 28 09:11:19 2013 -0800

    (Maint) Attempt to clean up handler tests
    
    The tests are using instance variables all over the place, which makes
    them noisy for reading, and had useless tests for respond_to?. This
    removes those tests, and tries to cut down on the noise some by making
    the handler a let().

commit da8e0bbedde416c935af3cba299d43b14b77ca2d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Feb 28 08:36:28 2013 -0800

    (#17190) Undo extra marking of benchmark output
    
    The initial pass at adding compiler profiling added extra text to make
    the benchmark output more "grepable". That isn't really needed once the
    Profiler system is used.

commit f3ed09401b7598251d2f2ba9384b9f4f149dde65
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Feb 28 08:27:16 2013 -0800

    (#17190) Create Profiler components
    
    The existing Puppet::Util#benchmark method makes it hard to easily put
    in place because it does not retain the return value of the block
    measured. It also does not give great control over whether or not to
    profile, nor does it provide nesting information. This adds a profiler
    structure that incorporates all of these features.

commit f64e0a94c60506eec44645b07c36ff996ee2b5cd
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Feb 28 07:14:52 2013 -0800

    (#17190) Provide more benchmarking info during compile
    
    Many users find that they have very little insight into what the
    compiler is doing and spending time on during compilation. This provides
    extra logging for getting much finer grained information.

commit 10c7cc54045b93b9948b6446aec8c0e784b70b07
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Fri Aug 31 22:02:09 2012 +0200

    (#5752) Handle read errors in parsedfile provider
    
    The parsedfile provider can handle multiple targets (multiple files,
    multiple crontabs, etc) but the provider does not handle the case when
    retrieving a target during prefetch fails. When the provider does only
    handle one target this doesn't really matter because a possible error is
    caught at a higher level (inside Puppet::Transaction). But if the
    provider handles multiple targets, one error will cause the whole
    prefetching method to fail and all targets are treated as empty.
    
    One example of the issue is described in #5752: Multiple crontabs are
    manages with crontab resources and one cronresource describes a
    cronentry of an absent user. Because prefetching the crontab of the
    absent user fails, the crontab of *all* users are purged and every
    crontab entry which is not managed by puppet is lost.
    
    The change now handles the error inside the parsedfile provider itself,
    so only the target that is causing troubles is treated as empty.

commit 0718c49c89275c20ede2e8caec61499a287eefef
Merge: d3cd851 4534f5b
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 13 16:55:24 2013 -0700

    Merge branch 'maint-exec_type_test_failures_187'

commit 4534f5b5ddde25287937cf15cedfa83b15a3ce30
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 13 16:54:31 2013 -0700

    (maint) Fix exec type test failures on 1.8.7

commit d3cd8518992b8eb4581b3df0184832ecf0cf6521
Merge: 292148f 61c3e91
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 13 15:13:51 2013 -0700

    Merge pull request #1525 from Sharpie/19713-exec-commands-must-be-strings
    
    (#19713) Validate exec commands to be type String

commit 61c3e91961e578970ed58c9dc2fc32f8d139c784
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Wed Mar 13 13:01:27 2013 -0700

    (#19713) Validate exec commands to be type String
    
    The `exec` type calls a pile of string-specific methods, such as `scan` and
    `split`, on the value of `command`. Validate that `command` is of type `String`
    so that Puppet can fail with a helpful message if the value was passed as a
    type such as `Array`.

commit cf75fa33597059d969a7685b8a5a6bb91b65d294
Author: Charlie Sharpsteen <chuck@puppetlabs.com>
Date:   Wed Mar 13 14:56:18 2013 -0700

    (#19713) Add tests for non-String exec commands
    
    Add tests that ensure `exec` resources raise errors if the value given for
    `command` is not of type `String`.

commit 2385b09228cefe6b8f5f09fea16bfa793ebc4a9f
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 13 11:49:32 2013 -0700

    (#16809) Remove refs to freebsd_special cron type
    
    The legacy test::unit crontab tests contained checks for the
    freebsd_special record line. Since those were not getting run by the
    normal rspec coverage it got missed when the freebsd_special line type
    was removed. This commit removes the outdated references.

commit cc5b125189ed4feab578b3176a439c4891817444
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 13 11:17:48 2013 -0700

    (#16809) Refactor crontab provider with block_eval
    
    Ruby 1.9 was failing to parse the previous implementation of the custom
    crontab record_line provider methods. This commit uses the FileParsing
    block_eval syntax to attach methods to the record_line object instead of
    using anonymous procs.

commit 004de27c798b26cd73f5f5cc85f5dfecea450e52
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Oct 6 15:50:17 2012 +0200

    (#16809) Use only one record_type in cron provider
    
    The cronprovider defines two record_types :crontab and :freebsd_special
    to handle the following crontab records:
    
        @daily /bin/my_daily_command
        0 0 * * * /bin/my_daily_command
    
    This has a few issues:
    
    a)
    The merging of the name (the comment before the cronentry itself) and
    the environment variables only happens for the :crontab record_type
    but not for the :freebsd_special record_type so information may get
    lost (#16809)
    
    b)
    When parsing an existing record the record_type can be automatically
    determined (depending on which regex matched) but when creating a new
    entry the record_type is undefined and the default :crontab is used.
    So if a new cronentry is created with the :special property set it is
    still treated as a crontab entry (so the to_line hook of the :crontab
    record_type is used and not of the :freebsd_special record_type)
    which is kind of confusing.
    
    c)
    It is really hard to change the time of a cronentry from the special
    format to a normal format (or vise versa) e.g. if we already have the
    following cronentry
    
        # Puppet Name: foo
        * * * * * /bin/foo
    
    and we have defined the following resource
    
        cron { "foo":
          special => daily,
        }
    
    the resource is treatd as in sync because the existing cronentry is
    parsed as a :crontab record_type and this record_type doesn't define a
    :special field that could be out of sync
    
    This patch now only uses one record_type that internally parses the
    timefield as either the old format (minute,hour,monthday,month,weekday)
    or the special format. This way the above issues go away (but the
    different to_line, post_parse hooks get a bit more difficult to handle
    both entries)

commit 292148fb216a919a1c43410928fd1c548fa9d51b
Merge: c30ecff 5b52de7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Mar 12 14:40:05 2013 -0700

    Merge remote-tracking branch 'upstream/3.1.x'
    
    * upstream/3.1.x: (49 commits)
      Update CHANGELOG, PUPPETVERSION for 2.7.21
      Add missing 2.7.20 CHANGELOG entries
      (#19391) Find the catalog for the specified node name
      Update PUPPETVERSION for 3.1.1
      (#19392) Don't validate key for certificate_status
      (#19392) Don't validate key for certificate_status
      run curl against the master on the master
      remove tests that do not run on 3.1+
      add quotes around paths for windows interop
      We can ( and should ) use grep instead of grep -E
      Don't assume master supports SSLv2
      Don't require openssl client to return 0 on failure
      Display SSL messages so we can match our regex
      Don't assume puppetbindir is defined
      Remove unnecessary rubygems require
      Run openssl from windows when trying to downgrade master
      Don't assume master supports SSLv2
      Don't require openssl client to return 0 on failure
      Display SSL messages so we can match our regex
      Don't assume puppetbindir is defined
      ...
    
    Conflicts:
    	lib/puppet/indirector/indirection.rb
    	lib/puppet/parser/templatewrapper.rb
    	lib/puppet/util/monkey_patches.rb
    	spec/unit/parser/templatewrapper_spec.rb

commit 5b52de7e2254fa83b36cc0cc67a231e313740786
Merge: a21ef97 f720e9e
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Mar 12 12:22:12 2013 -0700

    Merge branch '2.7.x' into 3.1.x
    
    Merge the 2.7.21 security release into 3.1.x, using the ours strategy. The
    fixes differed between 2.7.x and 3.1.x, so the code is different between the
    two branches. However 2.7.x needs to be merged in, so we use the ours strategy
    to make sure the keep the 3.1.x changes and don't bring in changes from 2.7.x.

commit f720e9e10255695c15dce0d8ecd124e08d08232a
Merge: 056a22e 24d45dc
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Mar 12 10:12:32 2013 -0700

    Merge branch 'security/2.7.20/february_code_orange' into 2.7.x
    
    * security/2.7.20/february_code_orange: (23 commits)
      Update CHANGELOG, PUPPETVERSION for 2.7.21
      Add missing 2.7.20 CHANGELOG entries
      (#19391) Find the catalog for the specified node name
      (#19392) Don't validate key for certificate_status
      Don't assume master supports SSLv2
      Don't require openssl client to return 0 on failure
      Display SSL messages so we can match our regex
      Don't assume puppetbindir is defined
      Remove unnecessary rubygems require
      Run openssl from windows when trying to downgrade master
      Separate tests for same CVEs into separate files
      Fix order-dependent test failure in rest_authconfig_spec
      Always read request body when using Rack
      Acceptance tests for CVEs 2013 (1640, 1652, 1653, 1654, 2274, 2275)
      (#19531) (CVE-2013-2275) Only allow report save from the node matching the certname
      Fix module tool acceptance test
      Updating module tool acceptance tests with new expectations.
      (#19392) (CVE-2013-1653) Validate instances passed to indirector
      (#19151) Reject SSLv2 SSL handshakes and ciphers
      (#19391) (CVE-2013-1652) Disallow use_node compiler parameter for remote requests
      ...

commit a21ef97425dced983614278beea6654e770f0f17
Merge: 4e908a5 6c3dd98
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Mar 12 09:43:15 2013 -0700

    Merge branch 'security/3.1.0/february_code_orange' into 3.1.x
    
    * security/3.1.0/february_code_orange: (26 commits)
      Update PUPPETVERSION for 3.1.1
      (#19392) Don't validate key for certificate_status
      run curl against the master on the master
      remove tests that do not run on 3.1+
      add quotes around paths for windows interop
      We can ( and should ) use grep instead of grep -E
      Don't assume master supports SSLv2
      Don't require openssl client to return 0 on failure
      Display SSL messages so we can match our regex
      Don't assume puppetbindir is defined
      Remove unnecessary rubygems require
      Run openssl from windows when trying to downgrade master
      Separate tests for same CVEs into separate files
      Fix order-dependent test failure in network/authorization_spec
      Always read request body when using Rack
      Acceptance tests for CVEs 2013 (1640, 1652, 1653, 1654, 2274, 2275)
      (#19531) (CVE-2013-2275) Only allow report save from the node matching the certname
      Fix module tool acceptance test
      Updating module tool acceptance tests with new expectations.
      (#19392) (CVE-2013-1653) Validate instances passed to indirector
      ...

commit c30ecff2579dad4cdbff6b26509fe7fe3a10fb5f
Merge: d1b7ab3 f63f1e1
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Mar 11 13:54:13 2013 -0700

    Merge pull request #1524 from Sharpie/19379-clarify-exec-logoutput
    
    (#19379) Clarify documentation for exec logoutput

commit f63f1e1591f248880bb234f44cf0d9725469b74d
Author: Charlie Sharpsteen <source@sharpsteen.net>
Date:   Mon Mar 11 11:38:39 2013 -0700

    (#19379) Clarify documentation for exec logoutput
    
    Re-wording to address two issues:
    
      - Explicitly state that logging the exit code is different from the logging
        the output and that this always happens.
    
      - Fix incorrect statement that `on_failure` triggers for non-zero exit codes.
        `on_failure` triggers when the exit code does not match any value specified
        by `returns`.

commit d1b7ab3fc1ba8433bb27c85ec961dcb79c442233
Merge: c07f0a9 bcd3999
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Mar 11 11:02:44 2013 -0700

    Merge branch 'maint/master/cla_link'
    
    * maint/master/cla_link:
      (maint) Update link to the contributor license agreement

commit bcd39992ff4ea9639813d183f6d5e17122fcbef2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Mar 11 11:01:38 2013 -0700

    (maint) Update link to the contributor license agreement
    
    New link: http://links.puppetlabs.com/cla as per Eric.
    
    [ci skip]

commit 24d45dc1c911e4dc28456444ca5ac9b321eb6383
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Mar 8 15:15:25 2013 -0800

    Update CHANGELOG, PUPPETVERSION for 2.7.21
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 4b0a7e2ed1c1878ac4c5bb9c759c1c549c645127
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Mar 8 15:14:44 2013 -0800

    Add missing 2.7.20 CHANGELOG entries
    
    The commits for 2.7.20 never made it into the CHANGELOG file.
    This commit adds them in.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 3ecd3761cdffacfd42f01e36571bc5036f504af1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Sun Mar 10 11:54:58 2013 -0700

    (#19391) Find the catalog for the specified node name
    
    Previously, the test was invoking the Catalog.indirection.find method
    but passing in a Node instance. This used to "work" in 2.7.x, because
    the compiler terminus only looked at `request.key`, in this case the
    node name, and ignored the `request.instance`.
    
    The test appears to verify that we can compile a node with the specified
    facts. But the test doesn't verify that the facts are in the returned
    catalog (they're not). So in reality, this test is passing when it
    shouldn't.
    
    To pass a Node instance through to the compiler, you need to use the
    `use_node` option, e.g. :use_node => node.to_yaml. To pass facts, use
    the use the `facts` option, e.g. :facts => facts.to_yaml.
    
    Since the test passes in a Node instance, the node is cached instead of
    the compiled catalog, which is one of the issues described in
    CVE-2013-1652.
    
    This commit changes the test to pass in the node.name, and it ensures we
    can compile a catalog for it.

commit 6c3dd98c01fc39249333e08545ebc6927462c6ee
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Mar 8 14:49:11 2013 -0800

    Update PUPPETVERSION for 3.1.1

commit c07f0a998501b9ce18e35ec2faed2bc480107660
Merge: 7e3d491 2284e83
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Mar 8 09:19:01 2013 -0800

    Merge branch 'juniorz-patch-1'
    
    * juniorz-patch-1:
      (#19663) Remove --include-dependencies flag in gem package provider
    
    closes #1517

commit 2284e837939628f81149e62fdc0f314ff077a776
Author: Reinaldo de Souza Junior <juniorz@gmail.com>
Date:   Mon Mar 4 11:03:32 2013 -0300

    (#19663) Remove --include-dependencies flag in gem package provider
    
    Without this patch applied the gem package provider will always pass the
    `--include-dependencies` flag to the gem command.  This flag has been
    deprecated in Rubygems for quite some time.  The behavior of including
    dependencies when installing a gem has been the default for some time,
    so this patch does not change behavior for any recent version of
    Rubygems since 0.9.5.
    
    Here is the comment from the pull request:
    
    This is a good explanation about the option: rubygems/rubygems#385
    
    It was already deprecated since rubygems 0.9.5 and was the default
    option since then.
    
    Unless someone is using a version of rubygems from mid 2007, this option
    is never being used
    https://github.com/rubygems/rubygems/blob/a00fc76fb6b959385331715c500af1eb25590405/History.txt#L1451

commit 7e3d491f0c910258f08d99e64d162abb01cc043c
Merge: 1e47c12 4e908a5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Mar 7 15:45:18 2013 -0800

    Merge branch '3.1.x'
    
    * 3.1.x:
      Ensure 'agent' subcommand is executed
    
    closes #1520

commit 4e908a576d43035ef2fe5c1306775956754b100f
Merge: 0a86a3f fb1386c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Mar 7 15:45:09 2013 -0800

    Merge branch 'fix/3.1.x/suse_init' into 3.1.x
    
    * fix/3.1.x/suse_init:
      Ensure 'agent' subcommand is executed

commit c24029980cbb450e2da7ed9990f8430c9ed19120
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Mar 7 15:40:15 2013 -0800

    (#19392) Don't validate key for certificate_status
    
    The certificate_status file terminus does not use the name attribute of the
    passed in instance. In order to preserve the existing API which doesn't
    require a name on the instance (and so gets the default of Puppet[:certname])
    we skip validation for this terminus.

commit eb71909be2e9a2e800297bd04896437ed4b47558
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Mar 7 15:40:15 2013 -0800

    (#19392) Don't validate key for certificate_status
    
    The certificate_status file terminus does not use the name attribute of the
    passed in instance. In order to preserve the existing API which doesn't
    require a name on the instance (and so gets the default of Puppet[:certname])
    we skip validation for this terminus.

commit fb1386c0b792ccedc975eeb6c27dec33ab702a1c
Author: Alex Cline <alex.cline@gmail.com>
Date:   Thu Mar 7 14:52:17 2013 -0500

    Ensure 'agent' subcommand is executed
    
    Ensure 'agent' subcommand is executed when PUPPET_SERVER is set in the puppet environment.

commit b87b7197d5f53589d0aca67fc2ee4d6fdc7630b1
Author: Justin Stoller <justin@puppetlabs.com>
Date:   Wed Mar 6 15:41:51 2013 -0800

    run curl against the master on the master

commit 28d80f0ffd9c54221f408d95aa40bf588b8d5af7
Author: Justin Stoller <justin@puppetlabs.com>
Date:   Wed Mar 6 15:35:15 2013 -0800

    remove tests that do not run on 3.1+

commit 672af80647d599fbcbf36c515d708f0c5b7d33aa
Author: Justin Stoller <justin@puppetlabs.com>
Date:   Wed Mar 6 13:44:25 2013 -0800

    add quotes around paths for windows interop

commit f6e19877c8af2e29e7b76bd08875db4699578710
Author: Justin Stoller <justin@puppetlabs.com>
Date:   Wed Mar 6 12:37:52 2013 -0800

    We can ( and should ) use grep instead of grep -E

commit 1e47c127d62cc2660c27495cdd61dcc85e4884db
Merge: 9801de5 0216916
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Mar 6 11:14:51 2013 -0800

    Merge branch 'pull-1502'

commit 0216916f0d540f6e1344692272deeed1b7234aec
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Mar 4 16:43:25 2013 -0800

    (maint) refactor Type::File#remove_existing
    
    Puppet::Type::File#remove_existing was providing too many behaviors and
    was becoming unreadable. It checked if a file could be backed up,
    performed the backup, failed if the backup failed, and conditionally
    removed files and directories.
    
    This commit refactors the method and extracts a number of different
    methods that each implement a part of the behavior desired. This commit
    also standardizes the return value of the method to boolean values and
    adds some documentation on the method signature and exceptions raised.
    
    Paired-With: Andy Parker <andy@puppetlabs.com>

commit 67fe0298cc6feaee0695dc5349e0fd3f79828ce3
Merge: 611b12d 406725d
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Wed Mar 6 03:14:01 2013 -0800

    Merge pull request #30 from puppetlabs/cooper/3.1.0/oranges
    
    Acceptance test improvements

commit 406725d2dad3fd0a90d49471c9cf9f2e2f3c4979
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 6 01:32:49 2013 -0800

    Don't assume master supports SSLv2
    
    Previously, the test tried to create an SSLv2 rogue master, and then
    check each agent's suitability (as to whether it's ruby supports SSLv2).
    But this fails on precise, as its ruby does not support SSLv2.
    Specifically the call to ssl_version = 'SSLv2' raises an exception.
    
    Since there is nothing special about the master, we just need to run a
    ruby process, this commit moves the rogue ssl server to the agent
    itself, and only those agents where SSLv2 is available.
    
    Since the agent may also be a master, it changes the rogue server's
    accept port from 8140 to 8150.

commit 0328aaf22864bbde4d74b544f741eabd14b103e8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 6 00:31:13 2013 -0800

    Don't require openssl client to return 0 on failure
    
    Previously, the test assumed openssl s_client would return 0 when the
    master rejected the SSLv2 connection, which is a bit odd.
    
    This commit ignores the exit code when determining if the passed passed
    or failed, and instead requires that a CLIENT-HELLO message be present,
    and a SERVER-HELLO message is absent.

commit 166bf79abb336757058117be1534d41cb6865557
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 6 00:20:19 2013 -0800

    Display SSL messages so we can match our regex
    
    On rhel6, `openssl s_client` doesn't display the SSL messages that we
    are trying to match, e.g. SERVER-HELLO. The `-msg` option must be used
    for them to be displayed.

commit 3e493e15846dc880bd9914bc43c6a808b0d0f16b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 6 00:00:17 2013 -0800

    Don't assume puppetbindir is defined
    
    The host variable `puppetbindir` is undefined on FOSS windows (unlike
    Unix), so this test was failing on Windows when trying to execute
    `/ruby`. This is really a bug in the harness as the eventlog
    acceptance test open-codes this logic as well.
    
    This commit changes it to fallback to `ruby`. It also simplifies the
    logic for detecting whether an agent supports SSLv2.

commit 8d199b2311fbcfd4d1dafe6f8f84f50840bd6a23
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Mar 5 23:56:08 2013 -0800

    Remove unnecessary rubygems require
    
    Previously, the test was failing on our rhel6 box which serves as the
    master for Windows acceptance tests due rubygems not being
    installed. Since we don't actually need rubygems to load openssl, it's
    safe to remove that line from the rogue sslserver script.

commit c42e6081b55c69fe76e85c3b4212eaf62c82ccb8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Mar 5 18:53:47 2013 -0800

    Run openssl from windows when trying to downgrade master
    
    The test assumed the `agents` array always contained a non-Windows host,
    which isn't always true. It also didn't take into account that the path
    for cert, key, etc contain spaces.

commit 9e5eac7708e2384bcb30cc558eee5743fbbb1a2f
Merge: 7d62aa0 a1c4abd
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Wed Mar 6 02:37:19 2013 -0800

    Merge pull request #29 from puppetlabs/cooper/2.7.20/oranges
    
    Acceptance test improvements

commit a1c4abd12d23957316eb6502f896b638db3d5e52
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 6 01:32:49 2013 -0800

    Don't assume master supports SSLv2
    
    Previously, the test tried to create an SSLv2 rogue master, and then
    check each agent's suitability (as to whether it's ruby supports SSLv2).
    But this fails on precise, as its ruby does not support SSLv2.
    Specifically the call to ssl_version = 'SSLv2' raises an exception.
    
    Since there is nothing special about the master, we just need to run a
    ruby process, this commit moves the rogue ssl server to the agent
    itself, and only those agents where SSLv2 is available.
    
    Since the agent may also be a master, it changes the rogue server's
    accept port from 8140 to 8150.

commit 60eebed233a6719409c603d71fc6374547920fa7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 6 00:31:13 2013 -0800

    Don't require openssl client to return 0 on failure
    
    Previously, the test assumed openssl s_client would return 0 when the
    master rejected the SSLv2 connection, which is a bit odd.
    
    This commit ignores the exit code when determining if the passed passed
    or failed, and instead requires that a CLIENT-HELLO message be present,
    and a SERVER-HELLO message is absent.

commit 12728c0a4a155c298cee5307dcfea446e4d54a90
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 6 00:20:19 2013 -0800

    Display SSL messages so we can match our regex
    
    On rhel6, `openssl s_client` doesn't display the SSL messages that we
    are trying to match, e.g. SERVER-HELLO. The `-msg` option must be used
    for them to be displayed.

commit 70cdc63dcbdc1edd8b244cacb5203131ddb47dd2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 6 00:00:17 2013 -0800

    Don't assume puppetbindir is defined
    
    The host variable `puppetbindir` is undefined on FOSS windows (unlike
    Unix), so this test was failing on Windows when trying to execute
    `/ruby`. This is really a bug in the harness as the eventlog
    acceptance test open-codes this logic as well.
    
    This commit changes it to fallback to `ruby`. It also simplifies the
    logic for detecting whether an agent supports SSLv2.

commit 9cbfb9d383406c7b000585f924fdd6917a6bb81f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Mar 5 23:56:08 2013 -0800

    Remove unnecessary rubygems require
    
    Previously, the test was failing on our rhel6 box which serves as the
    master for Windows acceptance tests due rubygems not being
    installed. Since we don't actually need rubygems to load openssl, it's
    safe to remove that line from the rogue sslserver script.

commit 0f4ac208def28bd9ef09db592db15c25e7aa02fd
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Mar 5 18:53:47 2013 -0800

    Run openssl from windows when trying to downgrade master
    
    The test assumed the `agents` array always contained a non-Windows host,
    which isn't always true. It also didn't take into account that the path
    for cert, key, etc contain spaces.

commit 611b12d3da3dca525ee09f6941057f6a67db1f54
Author: Justin Stoller <justin@puppetlabs.com>
Date:   Tue Mar 5 13:57:02 2013 -0800

    Separate tests for same CVEs into separate files
    
    fail tests instead of erroring when we know its a failure

commit 7d62aa0b05393022fc173a9ad5404314ebfe4196
Author: Justin Stoller <justin@puppetlabs.com>
Date:   Tue Mar 5 13:57:02 2013 -0800

    Separate tests for same CVEs into separate files
    
    fail tests instead of erroring when we know its a failure

commit 8f821313045ffb54660eeb1a64bf54be337ca42a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 5 17:51:06 2013 -0800

    Fix order-dependent test failure in network/authorization_spec
    
    This test was assuming the singleton auth config hadn't been created. A
    previous test does create one, so this test was failing. Now, we make
    sure the singleton instance is nil before testing.

commit 9801de5ab7013fcf1fad4c007f6c85604a47c9c9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Mar 5 17:04:41 2013 -0800

    (#19558) Fix acceptance test failure
    
    Without this patch applied the commit in 38ef0c5 causes a behavior
    change in the way error messages are formatted that fail to pass through
    the regular expression used in our Solaris 10 acceptance test suite.
    
    This patch addresses the problem by updating the regular expression to
    match the error message produced by the current behavior of the system.

commit 6143203f69bd62d06447750ffe0d60e08b3f9a50
Merge: 2e17aeb 0b2e848
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Mar 5 13:06:11 2013 -0800

    Merge branch 'domcleal-tickets/master/19558-validation-errors'
    
    * domcleal-tickets/master/19558-validation-errors:
      (#19558) Only catch Puppet::Error and ArgumentError when validating parameters
      (#19558) Add manifest file/line to parameter validation failures
      (#19558) Add resource and manifest context to type validation failures
      (maint) Add YARD to Puppet::Util::Errors

commit 7da95593b4006299d319b5d418fd994c6d0afad3
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 5 11:33:07 2013 -0800

    Always read request body when using Rack
    
    In certain versions of Passenger (all of them), leaving the request body
    unread will cause an EPIPE exception inside Passenger, resulting in a
    500 response. This is because Passenger makes a blocking write of the
    request body to the application (Puppet). If we respond without reading
    the body, this write is interrupted, which isn't handled properly by
    Passenger. So when processing requests, we make sure to have always read
    at least 1 character, which unblocks the write and lets Passenger
    continue.
    
    This issue is not present in other HTTP handlers.
    
    https://code.google.com/p/phusion-passenger/issues/detail?id=471
    
    Paired-With: Josh Cooper <josh@puppetlabs.com>

commit 61109fae41e0860af7d84fe2e575c6246d1b84ef
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 5 12:21:04 2013 -0800

    Fix order-dependent test failure in rest_authconfig_spec
    
    This test was assuming the RestAuthConfig singleton hadn't been created.
    A previous test does create one, so this test was failing. Now, we make
    sure the singleton instance is nil before testing.

commit a3d3c954bf78cbb0df33d769f442220dfc9f92ff
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 5 11:33:07 2013 -0800

    Always read request body when using Rack
    
    In certain versions of Passenger (all of them), leaving the request body
    unread will cause an EPIPE exception inside Passenger, resulting in a
    500 response. This is because Passenger makes a blocking write of the
    request body to the application (Puppet). If we respond without reading
    the body, this write is interrupted, which isn't handled properly by
    Passenger. So when processing requests, we make sure to have always read
    at least 1 character, which unblocks the write and lets Passenger
    continue.
    
    This issue is not present in other HTTP handlers.
    
    https://code.google.com/p/phusion-passenger/issues/detail?id=471
    
    Paired-With: Josh Cooper <josh@puppetlabs.com>

commit 2e17aeb3be8d9d75690a56f6e762d22e9d1d16fb
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 5 08:57:42 2013 -0800

    (Maint) Fix assertion about module tool output
    
    Commit b48402229adcd11b9f1293725f74703670f346c5 changed the output of
    the module tool so that it matched the options that is actually has. The
    acceptance test, however, was not updated at the same time. This updates
    the relevant tests to include the updated text.

commit 0b2e848681c5d98017f1479dd2b67655ddf0a654
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Mon Mar 4 23:55:27 2013 +0000

    (#19558) Only catch Puppet::Error and ArgumentError when validating parameters
    
    Parameter validation methods are expected to only throw Puppet::Error
    derivatives (i.e. via the fail() method) or ArgumentErrors, so specifically
    catch these.

commit 38ef0c5564de8062a1fccbc0bf9331cee8f7b6de
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Mar 3 12:11:19 2013 +0000

    (#19558) Add manifest file/line to parameter validation failures
    
    For consistency, provide manifest file and line number in the error message
    when a parameter fails to validate.

commit 5d5457d5969e6c7c1ccf19eee32955c06da64a22
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Mar 3 12:09:45 2013 +0000

    (#19558) Add resource and manifest context to type validation failures
    
    When a resource fails validation with a validate method defined at the type
    level (rather than individual parameters), provide additional context with the
    resource name, manifest file and line number.

commit 71d35e12753a529eff34eadd71877b7c01db7a7d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Mar 4 13:21:16 2013 -0800

    (#19090) Fixup failing windows spec tests
    
    Without this patch applied the spec examples are failing on windows.
    The root cause of this problem is that the Etc module does not respond
    to the `gid` method.
    
    This patch addresses the problem by extending the rescue block to catch
    NoMethodError exceptions in addition to the ArgumentError exceptions
    that were already being caught.
    
    References: [Build #634 (Mar 4, 2013 10:01:31
    AM)](http://links.puppetlabs.com/win_19090_spec)

commit 2246f79ecc24c67be8b8ad72c822a3a7934836b0
Merge: 9c22753 d0cd32b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Mar 4 09:26:27 2013 -0800

    Merge branch 'jjulien-bug#19090'
    
    * jjulien-bug#19090:
      (#19090) Fix user failure when group exists and gid is not specified

commit d0cd32bac64fe1efbe902e20cc07eac9f3b919b8
Author: John Julien <john@julienfamily.com>
Date:   Sat Mar 2 23:09:18 2013 -0600

    (#19090) Fix user failure when group exists and gid is not specified
    
    When a group matching the name of a user already exists on a system
    and the user resource does not contain a gid parameter, the execution
    of useradd fails.
    
    Normally useradd creates a group with an identical name to the user
    when -g is not provided on the command line.  In the case where the group
    already exists -g must be explicitly passed to useradd.

commit 99c505cfaf7ea51987a5f87217521886588b4ddd
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Mar 3 12:07:10 2013 +0000

    (maint) Add YARD to Puppet::Util::Errors

commit cb607d950b4841b956f977b32cb255c595a7b728
Author: Justin Stoller <justin@puppetlabs.com>
Date:   Thu Feb 28 14:52:48 2013 -0800

    Acceptance tests for CVEs 2013 (1640, 1652, 1653, 1654, 2274, 2275)
    
    (#14093) (CVE-2013-1640) Facts override template scope variables
    (#19391) (CVE-2013-1652) Validate improper query parameters
    (#19392) (CVE-2013-1653) Puppet kick
    (#19151) (CVE-2013-1654) Do not downgrade to SSLv2
    (#19393) (CVE-2013-1655) Add acceptance test for safe YAML de-serialization
    (#19456) (CVE-2013-2274) All your terminii belog to us!
    (#19531) (CVE-2013-2275) Add acceptance test for report save ACL

commit 79b875e941e24e6e28c594e2d102263ce63f1b9d
Author: Justin Stoller <justin@puppetlabs.com>
Date:   Thu Feb 28 14:52:48 2013 -0800

    Acceptance tests for CVEs 2013 (1640, 1652, 1653, 1654, 2274, 2275)
    
    (#14093) (CVE-2013-1640) Facts override template scope variables
    (#19391) (CVE-2013-1652) Validate improper query parameters
    (#19392) (CVE-2013-1653) Puppet kick
    (#19151) (CVE-2013-1654) Do not downgrade to SSLv2
    (#19393) (CVE-2013-1655) Add acceptance test for safe YAML de-serialization
    (#19456) (CVE-2013-2274) All your terminii belog to us!
    (#19531) (CVE-2013-2275) Add acceptance test for report save ACL

commit 9c22753eee23db85fb9a3774d25b26a468db8d7e
Merge: cb9927f 726f2a8
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 1 11:30:35 2013 -0800

    Merge branch 'pull-1512'

commit 726f2a82c669347cc3ccd7e76e4ec20b4bbe3664
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 1 11:28:41 2013 -0800

    (#19542) Update user type docs for linux managehome
    
    Commit d23906e adds support for updating the user home directory if the
    `managehome` parameter is true. This commit updates the user type
    documentation to note the Linux exception since the behavior change is
    only applicable to Linux.

commit cb9927f49fd1512720177ad77395a1586f86cbd1
Merge: 5fa06ee b484022
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Mar 1 10:27:39 2013 -0800

    Merge pull request #1513 from casharma/bugfix/module/18229
    
    (#18229) - Eroneous command given in puppet module error message

commit b48402229adcd11b9f1293725f74703670f346c5
Author: Carthik Sharma <carthik@puppetlabs.com>
Date:   Fri Mar 1 10:07:21 2013 -0800

    (#18229) - Eroneous command given in puppet module error message
    
    Fixed the error message to read --target-dir instead of --dir

commit d23906efc90683a10e3d1630dd241aa2f1b87e87
Author: codec <codec@fnord.cx>
Date:   Fri Mar 1 18:23:15 2013 +0100

    (#19542) useradd provider should support move-home option if managehome is enabled
    
    usermod has a flag (-m) to move a users home directory when it's being modified, this
    adds modifycmd to the useradd provider which will run usermod with the -m option.

commit 5fa06eeb303686f9d838c678390e83f273d2d8a7
Merge: a1b7d4c 0a86a3f
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Feb 28 23:00:59 2013 -0800

    Merge branch '3.1.x'

commit 0a86a3f479662677b0c6c45a95647cf5b48e4101
Merge: 51dab2e 056a22e
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Feb 28 23:00:32 2013 -0800

    Merge branch '2.7.x' into 3.1.x
    
    Conflicts:
    	ext/build_defaults.yaml

commit 056a22e007da6e7229ab7a515724eb0a56505066
Merge: cb27fd3 a02fee2
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Thu Feb 28 22:58:28 2013 -0800

    Merge pull request #1510 from MosesMendoza/maint/2.7.x/update_build_defaults
    
    [packaging] Update mocks for rpmbuilder mock format

commit e01e61e8909ec3ad4c873905a4dd9b952e3f4009
Merge: a59ed12 632e12d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 28 18:42:34 2013 -0800

    Merge remote-tracking branch 'puppet-cve-test/jjm/2.7.20/feb_co_2275_reports' into security/2.7.20/february_code_orange
    
    * puppet-cve-test/jjm/2.7.20/feb_co_2275_reports:
      (#19531) (CVE-2013-2275) Only allow report save from the node matching the certname

commit a02fee227a728e5acfaf92ab2350bfbb20c6747d
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Feb 28 18:41:15 2013 -0800

    [packaging] Update mocks for rpmbuilder mock format
    
    The Puppet Labs mocks created by rpmbuilder have assumed a new format, pl-el-*
    vs el-*, in order to avoid overwriting the configurations supplied by the mock
    package. This commit updates the mocks in puppet to reflect the new standard,
    so that we can continue to build packages with builders created with the
    rpmbuilder module. It also removes the "rc_mocks", which was deprecated in the
    packaging repo some time ago and are no longer used.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit a52013709b708ed346ea612f85e2b97d96fa66e2
Merge: 531a280 b9023b0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 28 18:29:40 2013 -0800

    Merge remote-tracking branch 'puppet-cve-test/jjm/3.1.0/feb_co_2275_reports' into security/3.1.0/february_code_orange
    
    * puppet-cve-test/jjm/3.1.0/feb_co_2275_reports:
      (#19531) (CVE-2013-2275) Only allow report save from the node matching the certname

commit b9023b0c919312df648e424f392aa88c9b081599
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Feb 28 16:43:32 2013 -0800

    (#19531) (CVE-2013-2275) Only allow report save from the node matching the certname
    
    Without this patch applied any authenticated client is able to save a
    report for any node by default.  This is a problem because the
    compliance feature of Puppet Enterprise expects reports to be submitted
    only from the node the report is associated with.
    
    This patch addresses the problem by restricting the access control rules
    in a similar manner to the catalog.  With this patch applied, the
    default behavior of the Puppet master will only allow reports to be
    saved when the node name matches the cert name.

commit 632e12d24d460b6dfd5cd3b65b2ad6397f2a2193
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Feb 28 16:43:32 2013 -0800

    (#19531) (CVE-2013-2275) Only allow report save from the node matching the certname
    
    Without this patch applied any authenticated client is able to save a
    report for any node by default.  This is a problem because the
    compliance feature of Puppet Enterprise expects reports to be submitted
    only from the node the report is associated with.
    
    This patch addresses the problem by restricting the access control rules
    in a similar manner to the catalog.  With this patch applied, the
    default behavior of the Puppet master will only allow reports to be
    saved when the node name matches the cert name.

commit 531a280b5000a42eb1bbd8bd42f1e9bbc64c0fc3
Merge: b05476a f63ed48
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Feb 26 14:47:08 2013 -0800

    Merge branch 'jnc/3.1.0/forge-regexp' into security/3.1.0/february_code_orange
    
    * jnc/3.1.0/forge-regexp:
      Fix module tool acceptance test
      Updating module tool acceptance tests with new expectations.

commit f63ed48513e3d1ead1e9399781aebc870f727156
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 7 08:51:56 2013 -0800

    Fix module tool acceptance test
    
    This test was failing due to a change on the forge server when rendering
    the description for a module.
    
    This commit changes the test to expect UNKNOWN for the description.

commit f6dbe992703b3c6a1e39c915df65f66d37bf53a7
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Wed Feb 6 11:45:12 2013 -0800

    Updating module tool acceptance tests with new expectations.

commit b05476a41c8bf16ab953e7d7b281863d23a6653b
Merge: 74e7e86 52be043
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Feb 25 12:24:26 2013 -0800

    Merge branch 'jjm_fix/3.1.0/reject_sslv2' into security/3.1.0/february_code_orange
    
    * jjm_fix/3.1.0/reject_sslv2:
      (#19151) Reject SSLv2 SSL handshakes and ciphers

commit 74e7e86732e68aa60c0c18f808730acb7c717fc4
Merge: b26af91 f877cf5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 25 11:27:12 2013 -0800

    Merge pull request #16 from puppetlabs/security/3.1.0/indirector-validation
    
    Security/3.1.0/indirector validation

commit f877cf5d63ea4b6d3bc110af6212e5187f900ee9
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Feb 21 15:10:35 2013 -0800

    (#19392) (CVE-2013-1653) Validate instances passed to indirector
    
    This adds a general validation method to check that only valid instances can
    be passed into the indirector. Since access control is based on the URI but
    many operations directly use the serialized instance passed in, it was
    possible to bypass restrictions by passing in a custom object. Specifically it
    was possible to cause the puppet kick indirection to execute arbitrary code by
    passing in an instance of the wrong class. This validates that the instance is
    of the correct type and that the name matches the key that was used to
    authorize the request.

commit a59ed12f9f3c484fdb504ea0cbf6cb7a82c5436a
Merge: ab97e86 7df884b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Feb 26 14:42:15 2013 -0800

    Merge branch 'jnc/2.7.20/forge-regexp' into security/2.7.20/february_code_orange
    
    * jnc/2.7.20/forge-regexp:
      Fix module tool acceptance test
      Updating module tool acceptance tests with new expectations.

commit 7df884be28ae124969eedeadc4a038cfe668b99e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 7 08:51:56 2013 -0800

    Fix module tool acceptance test
    
    This test was failing due to a change on the forge server when rendering
    the description for a module.
    
    This commit changes the test to expect UNKNOWN for the description.

commit 4a272ea61fbb1b9c65a16ee8582b75a1af6d41ca
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Wed Feb 6 11:45:12 2013 -0800

    Updating module tool acceptance tests with new expectations.

commit ab97e868e1be2f5678436b81a68dfba26c01125a
Merge: d04e659 be920ac
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Feb 25 12:01:13 2013 -0800

    Merge branch 'jjm_fix/2.7.20/reject_sslv2' into security/2.7.20/february_code_orange
    
    * jjm_fix/2.7.20/reject_sslv2:
      (#19151) Reject SSLv2 SSL handshakes and ciphers

commit d04e659172bc72a6e094abd6b09bbfcd92eefda0
Merge: 00756ae 0a7d61f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 25 11:56:52 2013 -0800

    Merge branch 'security/2.7.20/indirector/validation' into security/2.7.20/february_code_orange
    
    * security/2.7.20/indirector/validation:
      (#19392) (CVE-2013-1653) Validate instances passed to indirector
      (#19391) (CVE-2013-1652) Disallow use_node compiler parameter for remote requests
    
    closes #14

commit 0a7d61f3cc44e6e619e4ffb4db1953da646636bd
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Feb 21 15:10:35 2013 -0800

    (#19392) (CVE-2013-1653) Validate instances passed to indirector
    
    This adds a general validation method to check that only valid instances can
    be passed into the indirector. Since access control is based on the URI but
    many operations directly use the serialized instance passed in, it was
    possible to bypass restrictions by passing in a custom object. Specifically it
    was possible to cause the puppet kick indirection to execute arbitrary code by
    passing in an instance of the wrong class. This validates that the instance is
    of the correct type and that the name matches the key that was used to
    authorize the request.

commit 2705be49a0d2e188ff23b24e3eff36442d270671
Author: Erik Dalén <dalen@spotify.com>
Date:   Thu Feb 28 19:37:29 2013 +0100

    (#18110) spec tests for bug fix

commit 40c991e0b9cff59a0e81d3a2968ed9e5fe7baefa
Author: Erik Dalén <dalen@spotify.com>
Date:   Wed Feb 27 10:49:59 2013 +0100

    (#18110) Don't do recursive backup when not needed
    
    First check if we are actually going to replace the directory before
    starting to do a backup of it.

commit a1b7d4ce67f7492d8e13322f600cf3eaadc89b8d
Merge: f017798 daab99f
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 27 16:51:49 2013 -0800

    Merge branch 'pull-1506'

commit daab99f0ba72fc557a4c752b9d49d7ae143aad1b
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 27 16:46:01 2013 -0800

    (maint) update README_DEVELOPER.md with rake spec details

commit f0177980f1e3b16a7587e554e505df42f8725f33
Merge: bea1d01 35afb42
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 27 14:49:00 2013 -0800

    Merge pull request #1505 from djmitche/fix/bug19493/master
    
    (#19493) suggest a 'specifications/lib' symlink to make puppet.gemspec's require work

commit bea1d013f8e81174c42af2a9e4b72f926b1645bf
Merge: 06dabae 04e1efc
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 27 14:12:29 2013 -0800

    Merge branch 'pull-1504'
    
    This closes GH-1504.

commit 04e1efc5bd1c970054ab61100649b9f2c7ca9a73
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 27 14:09:10 2013 -0800

    (maint) Refactor ssl/host_spec.rb crl context
    
    The tests added in 81a5cbb added more checks around the
    certificate_revocation setting and overrided the local context settings.
    This commit splits the rspec context into two smaller contexts for each
    possible case and sets values in the before block accordingly.

commit 06dabae3acfc7a8857f364a1b47b9bea37aff1ca
Merge: ddcc4bc 657dccd
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Wed Feb 27 13:56:46 2013 -0800

    Merge pull request #1501 from adrienthebo/18092-cgi_unescape_enable_password
    
    (#18092) Use CGI.parse on network URI query

commit e78a5c660043368d002cf5503139a79880cd6a1a
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Wed Feb 27 14:29:38 2013 -0500

    (#19495) show how to run tests for n00bs like me

commit 35afb4257aa21660891b74782f5e39cf17f9e576
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Wed Feb 27 14:17:49 2013 -0500

    (#19493) suggest a 'specifications/lib' symlink to make puppet.gemspec's require work

commit 81a5cbb0297f9101a3b2ed4469b704c4abd9638e
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Mon Feb 25 20:13:53 2013 -0500

    (#17864) Don't check certificate_revocation if configured not to

commit 657dccd2b74edf8e9cc9c44b9ce96258dfe68019
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Feb 21 16:00:45 2013 -0800

    (#18092) Use CGI.parse on network URI query
    
    The current implementation of the network device enable password parsing
    is unable to handle characters like sharps and spaces in the password,
    which are valid passwords. This commit adds CGI parsing of the query
    string to only extract and unescape the enable query parameter.
    
    This supercedes GH-1327 and GH-1491.

commit ddcc4bcd5a169e61bcb6e272027cd465ba8cc53d
Merge: f04e9e3 51dab2e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Feb 26 16:27:25 2013 -0800

    Merge branch '3.1.x'
    
    * 3.1.x:
      (maint) Update rubygems source to use https

commit f04e9e37eaeefef29968eb3ac8e33e237d823dcd
Merge: e42cd9e fc5e341
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Feb 26 15:14:27 2013 -0800

    Merge branch 'pull-1494'
    
    This closes GH-1494

commit fc5e3416dd04dc155b0879fcd3ae0bdf173b968d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Feb 26 10:22:28 2013 -0800

    (maint) convert parsedfile helpers to let blocks
    
    This commit replaces the use of instance variables with `let` blocks in
    the parsedfile provider specs.

commit 2bdc66073b9b7c665621cbe81a343379bacc4325
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Feb 26 09:59:27 2013 -0800

    (maint) Refactor parsedfile specs to remove instance vars
    
    The current test coverage for the ParsedFile provider uses an instance
    variable referencing the class. This commit removes the instance
    variable use and replaces them by setting `subject` to an anonymous
    subclass of ParsedFile.

commit 51dab2e58eb867470488f2c944546ef8618be14b
Merge: 8dbfe78 392f5b5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 25 19:09:33 2013 -0800

    Merge branch '3.0.x' into 3.1.x
    
    * 3.0.x:
      (maint) Update rubygems source to use https

commit 392f5b541dab8c853c0eca491a6fae499e609b4d
Merge: 1f0ffd6 cb27fd3
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 25 19:09:03 2013 -0800

    Merge branch '2.7.x' into 3.0.x
    
    * 2.7.x:
      (maint) Update rubygems source to use https

commit cb27fd33549dc44512ce9655f34b7344abe20fdf
Merge: 41c44ae 379f5c2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 25 19:08:25 2013 -0800

    Merge branch 'maint/2.7.x/gemfile_https' into 2.7.x
    
    * maint/2.7.x/gemfile_https:
      (maint) Update rubygems source to use https

commit 379f5c22bf7744102963192e6d3e80cbce8c2f8c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 25 19:05:49 2013 -0800

    (maint) Update rubygems source to use https
    
    This gets ride of the warning with Bundler 1.3.0:
    
        The source :rubygems is deprecated because HTTP requests are
        insecure.
        Please change your source to 'https://rubygems.org' ...

commit e42cd9e06d288664723f961aec8b7777f1e6720d
Merge: e6b91aa 95d06cf
Author: Branan Purvine-Riley <branan@puppetlabs.com>
Date:   Mon Feb 25 17:41:50 2013 -0800

    Merge pull request #1499 from adrienthebo/parse-pmt-json-output
    
    (maint) Parse PMT JSON output when testing

commit 95d06cf37e457b2bcf70b4fcc973ba72ff162b50
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Feb 25 17:21:12 2013 -0800

    (maint) Parse PMT JSON output when testing
    
    JSON hash structures are unordered and when testing the output of the
    puppet module tool the output was assumed to be ordered. This commit
    extracts the outputted JSON and converts it into a Ruby data structure
    and performs checks on the data elements to ensure the output is
    correct.

commit 2f0502c6366ebd4dd0978639081d63e10f208876
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Feb 25 14:54:15 2013 -0800

    (#14985) Preserve casing on looked up values
    
    The initial fix for looked up values downcased everything that was being
    returned. This causes problems when the data is not a string that the
    previous behavior was to only do this for the calling_class and
    calling_module. This commit us returns to that behavior.

commit cfb5a7067d406bae5d349aa3915e981bc7e8ced9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Feb 25 12:59:31 2013 -0800

    (Maint) Clarify scope lookup rules
    
    The lookup rules for variables in the puppet language have always been a
    bit hard for me to understand. I knew the rules as
    
      the current scope => inherited => node => topscope
    
    but the code never seemed to express that clearly. This refactors the
    `lookupvar` method to extract out a few pieces to make that clearer.
    Specifically the mechanism for walking from a class to the enclosing
    node (which is why this gets the name "two-step" by some people) has
    been called out as a lookup of the `enclosing_scope`. Calling out the
    enclosing scope as a specific lookup allows for getting rid of the
    `:origin` part of the options hash, which was to provide a mechanism for
    skipping over some scope objects.
    
    This also tries to remove some duplication that was occurring because
    there was not a consistent symbol table concept. It turns out that the
    existing `Ephemeral` fits that nicely and so it now used as the scope's
    symbol table as well as for the ephemeral variables.

commit 70d62c63ae02ce2de35085f1be4601dc692d225f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Feb 25 12:56:11 2013 -0800

    (#14985) Describe behavior of calling_(class|module)
    
    The original tests for calling_module and calling_class used a mock,
    when this is really just a value that can be setup. It also didn't
    separate out and describe the behavior of the two pieces in the
    variations in which they can come up. Specifically the difference
    between a `define` and a `class` for the meaning of calling_class.

commit 45c707dac560c11eea8711c5388b5d42705b474a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Feb 22 02:09:53 2013 -0800

    (Maint) Use real scope in testing
    
    Using the real scope is completely possible in these tests since it has
    no dependencies on the outside world and is essentially a value object.
    Therefore it should be used in the tests to make them more
    comprehensive.

commit 841c78d9d3bedaf18de79fd4e082ed07d38d3a1e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Feb 22 02:08:43 2013 -0800

    (Maint) Require Hiera::Config to avoid warning
    
    When the hiera tests were run alone the puppet_backend_spec.rb issued a
    warning:
    
      /Users/andy/work/puppet/spec/unit/hiera/backend/puppet_backend_spec.rb:25:
      warning: toplevel constant Config referenced by Hiera::Config
    
    The warning was caused by a reference to Hiera::Config where Hiera was
    defined, but Hiera::Config was not. This resulted in getting the top
    level Config constant and a warning being issued. By requiring
    hiera/config this problem is avoided.

commit 8a6127d3c196e31cfc8a8141813cb6a319746192
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Feb 22 01:49:10 2013 -0800

    (#14985) Ensure hostclass finder is private
    
    The nested definition of the recurse_for_hostclass method caused that
    method to be created lazily and as a public method. By pulling it out to
    be declared outside the calling method it can be made private and
    created only once. It has also been renamed to show the intention
    instead of the mechanism (recursion).

commit 5247a84c455a3d49da572c492ef26681e9056d26
Author: Avishai Ish-Shalom <avishai@fewbytes.com>
Date:   Thu Nov 1 08:40:08 2012 +0200

    (#14985) Fix exception when nil is returned from inner scope

commit 0733c83027cd40be1bae55522ea5f1ad271806a1
Author: Avishai Ish-Shalom <avishai@fewbytes.com>
Date:   Fri Oct 5 17:04:26 2012 +0200

    (#14985) Fix test, return downcase values and check for nil scope.source

commit 61260622d47086dc0eb67ec69706b738920cd042
Author: Avishai Ish-Shalom <avishai@fewbytes.com>
Date:   Fri Oct 5 15:36:47 2012 +0200

    (#14985) Fix hiera does not lookup calling_class and calling_module

commit 5f7660979a21b640bfc2d4a21f65128347f9a51a
Author: Avishai Ish-Shalom <avishai@fewbytes.com>
Date:   Fri Oct 5 15:35:34 2012 +0200

    (#14985) Fix hiera lookup for calling_module and calling_class

commit e6b91aa1420381aedb0965f1590c03cd25d79184
Merge: 22fd89a 8dbfe78
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Feb 25 14:50:51 2013 -0800

    Merge branch '3.1.x'

commit 8dbfe78fda0a43263f107dd37f6faf8f94442473
Merge: f611385 806b92b
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Mon Feb 25 14:49:38 2013 -0800

    Merge pull request #1496 from haus/maint/3.1.x/add_f18_mocks_to_build_defaults
    
    Maint/3.1.x/add f18 mocks to build defaults

commit 806b92bb5ed4af85bf43a1ef2eba7dfd0b851880
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Feb 25 14:47:49 2013 -0800

    (maint) Add f18 mocks to build_defaults
    
    Fedora 18 has been released to the world, so we should build packages for it.
    This commit adds the fedora 18 mocks to the build_defaults so we can easily
    supply fedora 18 packages.

commit db5d5e752e22fe33f1a58c6ee7870bcd4aeeda9e
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Feb 25 14:47:10 2013 -0800

    (maint) Remove rc_mocks from build_defaults
    
    Packaging internals have been updated to no longer require rc_mocks, so this
    commit removes the rc_mocks from the build_defaults.

commit 22fd89a03532659588b7c63fb9942ca7c7d89c4a
Merge: 4b40119 b854cac
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Mon Feb 25 14:13:44 2013 -0800

    Merge pull request #1493 from haus/ticket/master/16553_add_portmat_wait_to_excludes
    
    (#16553) Exclude portmap-wait from upstart services

commit 52be043933d40aab3449214f2aa602ceb214f91e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sat Feb 16 15:23:40 2013 -0800

    (#19151) Reject SSLv2 SSL handshakes and ciphers
    
    Without this patch, SSL connections on older versions of Ruby will
    negotiate down to insecure modes of operation, specifically SSLv2.  This
    is a problem because SSLv2 needs to be rejected outright to meet
    security policies.
    
    This patch addresses the problem by changing the behavior of the
    OpenSSL::SSL::SSLContext class.  With this patch applied, all SSLContext
    objects will be initialized with a default cipher rule set that always
    contains the '!SSLv2' substring.  This has the effect of removing SSLv2
    ciphers from the cipher list and prohibiting them from being re-added by
    later elements in the cipher spec.
    
    Details regarding how OpenSSL behaves with this cipher string are
    available at: http://www.openssl.org/docs/apps/ciphers.html
    
    In order to see which ciphers are enabled for a specific version of the
    OpenSSL library, please see the output of the command:
    
        $ openssl ciphers $CIPHERS
    
    This command will display an ordered list of the ciphers enabled for use
    during the SSL handshake.
    
    This change is a monkey patch to MRI Core and will affect all SSL socket
    clients and servers.  The options and cipher list may still be
    explicitly set by passing an options hash with the :options and :ciphers
    keys to the SSLContext#set_params method.

commit be920acdb4762f6d813a29065ba210aef3ef612a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sat Feb 16 15:23:40 2013 -0800

    (#19151) Reject SSLv2 SSL handshakes and ciphers
    
    Without this patch, SSL connections on older versions of Ruby will
    negotiate down to insecure modes of operation, specifically SSLv2.  This
    is a problem because SSLv2 needs to be rejected outright to meet
    security policies.
    
    This patch addresses the problem by changing the behavior of the
    OpenSSL::SSL::SSLContext class.  With this patch applied, all SSLContext
    objects will be initialized with a default cipher rule set that always
    contains the '!SSLv2' substring.  This has the effect of removing SSLv2
    ciphers from the cipher list and prohibiting them from being re-added by
    later elements in the cipher spec.
    
    Details regarding how OpenSSL behaves with this cipher string are
    available at: http://www.openssl.org/docs/apps/ciphers.html
    
    In order to see which ciphers are enabled for a specific version of the
    OpenSSL library, please see the output of the command:
    
        $ openssl ciphers $CIPHERS
    
    This command will display an ordered list of the ciphers enabled for use
    during the SSL handshake.
    
    This change is a monkey patch to MRI Core and will affect all SSL socket
    clients and servers.  The options and cipher list may still be
    explicitly set by passing an options hash with the :options and :ciphers
    keys to the SSLContext#set_params method, or by calling the
    SSLContext#options= instance method as WEBrick does.  We cannot monkey
    patch SSLContext#options= because this method is implemented as a C
    extension to MRI and as such cannot be easily redefined.  Segfaults
    abound in MRI 1.8.5.

commit 516142ee05e986145cd952a13dec5f03e78f8c6b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Feb 21 15:08:08 2013 -0800

    (#19391) (CVE-2013-1652) Disallow use_node compiler parameter for remote requests
    
    Without this it is possible to bypass catalog access restrictions by passing
    in a node object for a different host. We also validate that facts provided
    match the node requested.

commit eef6d3851254a81eb6791bce933d7f5dc6ad5a0d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Feb 21 15:08:08 2013 -0800

    (#19391) (CVE-2013-1652) Disallow use_node compiler parameter for remote requests
    
    Without this it is possible to bypass catalog access restrictions by passing
    in a node object for a different host. We also validate that facts provided
    match the node requested.

commit 00756ae801f099ac2a61356dadd3ef74136dbfee
Merge: 6aedf44 bd942ec
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Sun Feb 24 23:25:04 2013 -0800

    Merge branch 'zaphod42/2.7.20/14093-string-template-overrides' into security/2.7.20/february_code_orange
    
    * zaphod42/2.7.20/14093-string-template-overrides:
      (#14093) Restore access to the filename in the template
      (#14093) Remove unsafe attributes from TemplateWrapper

commit bd942ecea2282eabc8b836a1a6bc105dde769b4f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Sun Feb 24 21:52:19 2013 -0800

    (#14093) Restore access to the filename in the template
    
    The change to fix certain variables interfering with template evaluation
    also removed the accessor method for file. It appears that this is a
    mechanism that had been used by others for identifying the name of the
    template being evaluated so that they can trace back from a file on a
    node to the module and template that created it. This restores that
    functionality.

commit cf6cf81678aa7b6b6f2c4a7706a5e6dfbb4c3d8a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Sun Feb 24 21:50:26 2013 -0800

    (#14093) Remove unsafe attributes from TemplateWrapper
    
    The attribute accessor for the :string attribute in the TemplateWrapper
    conflicted with a variable being in scope that is named string. The
    variable would take precedence and because of the way the
    TemplateWrapper accessed the value of the attribute, the variable's
    value would be used as the template.
    
    This changes the TemplateWrapper to completely remove :string as an
    attribute and only use local variables. This also removes the :file
    attribute in favor of a "private"-style naming of the instance variable.
    There are no collisions with @__file__ that would cause problems, but
    this should reduce the likelihood of them happening in the first place.
    
    This commit is modified from the original version to exclude changes to
    the specs that were not related to issue #14903, due to the scope code
    being so different in 2.7.x than 3.x.

commit 37b4ccdb9bce2bcb7bea1ea3c7b7d538e18ad25d
Author: Felix Frank <Felix.Frank@Alumni.TU-Berlin.de>
Date:   Sat Feb 23 23:18:34 2013 +0100

    Refactor the ParsedFile provider unit test
    
    The initial implementation of the unit tests for a simple provider
    inheriting ParsedFile was imperfect and full of repitition. The
    restructuring makes the code reflect the semantics a lot better.
    
    Based on suggestions from Adrien Thebo.

commit b854cac44723d778c737ebae1ac8b9cc5e15a1aa
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Feb 22 20:32:40 2013 -0800

    (#16553) Exclude portmap-wait from upstart services
    
    The portmap-wait upstart service is not a service by itself (it's a helper for
    the portmap service) and does not respond to the status command, it returns 1
    along with an error message. This commit adds portmap-wait to the excludes
    method of the init provider, which is also used by the upstart provider to
    exclude services from self.instances. This also adds the portmap-wait service
    to the upstart provider spec test to verify that it is correctly excluded from
    self.instances.

commit b26af91e1c3c933818883f156e4b352940b4e2a4
Merge: 4725c40 f1d0731
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Feb 22 14:38:42 2013 -0800

    Merge branch 'zaphod42-issue/3.1.0/14093-string-overrides-all-template-output' into security/3.1.0/february_code_orange
    
    * zaphod42-issue/3.1.0/14093-string-overrides-all-template-output:
      (#14093) Restore access to the filename in the template
      (#14093) Remove unsafe attributes from TemplateWrapper
      (#14093) Cleanup tests for template functionality

commit f1d0731f020376e42b6a6795d1875ef9312ba160
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Feb 5 07:15:50 2013 -0800

    (#14093) Restore access to the filename in the template
    
    The change to fix certain variables interfering with template evaluation
    also removed the accessor method for file. It appears that this is a
    mechanism that had been used by others for identifying the name of the
    template being evaluated so that they can trace back from a file on a
    node to the module and template that created it. This restores that
    functionality.

commit 4b401194ef190d0cf14a5fc2aebd44c789eaafd6
Merge: 432850f d7c6420
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Feb 22 09:44:44 2013 -0800

    Merge pull request #1492 from domcleal/tickets/master/19409-module-errors
    
    (#19409) Raise Puppet::Forge::Error::ForgeError on bad HTTP response from forge

commit d7c6420d12d09dd85da5aa325f9b19c87a5be0bf
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Feb 22 12:42:42 2013 +0000

    (#19409) Raise Puppet::Forge::Errors::ForgeError on bad HTTP response from forge
    
    When a bad HTTP response indicating an error, or an "error" string in the
    response is received from the forge, raise Puppet::Forge::Errors::ForgeError
    subclases rather than RuntimeErrors.
    
    This allows the error to be caught by the module face and the error rendered
    appropriately, i.e. as JSON if requested by the user.  Else fallback code for
    unhandled exceptions is used, causing the exception to only be written via
    logging.

commit 7ac1a44298147b0a90e08c90a67e53f1d5717384
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Feb 22 12:42:03 2013 +0000

    (maint) Add some YARD to Puppet::Forge

commit 4ca17d9c96d5645cd1a783167a939b87d729582e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Feb 4 07:27:12 2013 -0800

    (#14093) Remove unsafe attributes from TemplateWrapper
    
    The attribute accessor for the :string attribute in the TemplateWrapper
    conflicted with a variable being in scope that is named string. The
    variable would take precedence and because of the way the
    TemplateWrapper accessed the value of the attribute, the variable's
    value would be used as the template.
    
    This changes the TemplateWrapper to completely remove :string as an
    attribute and only use local variables. This also removes the :file
    attribute in favor of a "private"-style naming of the instance variable.
    There are no collisions with @__file__ that would cause problems, but
    this should reduce the likelihood of them happening in the first place.

commit 3b0178f7b28fda829b247ceccbf1a51e52e41c5e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Feb 4 06:26:08 2013 -0800

    (#14093) Cleanup tests for template functionality
    
    Some of the previous tests were unneeded (check for simple existance) or
    mis-named. This cleans those up. A few other tests were trying to
    indirectly test many things at once (the ones about access to instance
    variables). Instead of the indirect test this splits it into much more
    specific tests and statement of behavior.

commit 6aedf445c4848561cc0c8829f7954ec94f0f1c90
Merge: cb9696d f2a3d5c
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Thu Feb 21 15:41:07 2013 -0800

    Merge pull request #11 from puppetlabs/safely-yaml
    
    (#19393) Safely load YAML from the network

commit 432850fb74813eded3036f861e05d9266289c16c
Merge: 1c41afe 023441f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Feb 21 15:38:31 2013 -0800

    Merge branch 'zaphod42-issue/master/14093-string-overrides-all-template-output'
    
    * zaphod42-issue/master/14093-string-overrides-all-template-output:
      (maint) Kill Puppet::Parser::TemplateWrapper#scope=
      (Maint) Add YARD to TemplateWrapper
      (#14093) Restore access to the filename in the template
      (Maint) Remove special handling for symbols in scope
      (#14093) Remove unsafe attributes from TemplateWrapper
      (#14093) Cleanup tests for template functionality

commit 023441f293b5bef1bcc1a5361afc658d90de8bed
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Feb 21 15:32:31 2013 -0800

    (maint) Kill Puppet::Parser::TemplateWrapper#scope=
    
    This is dead code that is never called based on `ack` and replacing the
    method body with an thrown exception.  The scope instance var is stored
    in @__scope__ not @scope.

commit ee0b165e5d93f02665e20a44ecccc88652af268c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Feb 5 07:22:46 2013 -0800

    (Maint) Add YARD to TemplateWrapper
    
    This tries to document the methods that should be available to template
    authors. Not all methods are listed, since there may be some things that
    are mixed in somehow and there are all of the variable accesses provided
    via method_missing.

commit 4eed69670a132af876d03863ae140e3d8e29df52
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Feb 5 07:15:50 2013 -0800

    (#14093) Restore access to the filename in the template
    
    The change to fix certain variables interfering with template evaluation
    also removed the accessor method for file. It appears that this is a
    mechanism that had been used by others for identifying the name of the
    template being evaluated so that they can trace back from a file on a
    node to the module and template that created it. This restores that
    functionality.

commit f223b94800e6428f5b68b6339d6e80d657cfce9e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Feb 5 07:04:12 2013 -0800

    (Maint) Remove special handling for symbols in scope
    
    The Puppet::Parser::Scope no longer allows variable names that are not
    String objects, so the extra code to handle non-string variable names is
    no longer needed.

commit d72ef0dcca715fc0aa2d11234a7a22c73d43ed5c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Feb 4 07:27:12 2013 -0800

    (#14093) Remove unsafe attributes from TemplateWrapper
    
    The attribute accessor for the :string attribute in the TemplateWrapper
    conflicted with a variable being in scope that is named string. The
    variable would take precedence and because of the way the
    TemplateWrapper accessed the value of the attribute, the variable's
    value would be used as the template.
    
    This changes the TemplateWrapper to completely remove :string as an
    attribute and only use local variables. This also removes the :file
    attribute in favor of a "private"-style naming of the instance variable.
    There are no collisions with @__file__ that would cause problems, but
    this should reduce the likelihood of them happening in the first place.

commit ddbf7f4ff220d6eaa565d5845586816d3cea8145
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Feb 4 06:26:08 2013 -0800

    (#14093) Cleanup tests for template functionality
    
    Some of the previous tests were unneeded (check for simple existance) or
    mis-named. This cleans those up. A few other tests were trying to
    indirectly test many things at once (the ones about access to instance
    variables). Instead of the indirect test this splits it into much more
    specific tests and statement of behavior.

commit 1c41afe5f9078559e25cc6277724d92359281030
Merge: f116479 1dfa2df
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Feb 21 15:23:44 2013 -0800

    Merge pull request #1489 from adrienthebo/maint/master/parsedfile-human-readable-match-variables
    
    (maint) Use MatchData object over ruby global vars

commit 4725c40e20c444a0acf85401957527c8e26fa1a2
Merge: 480379d 940594b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 21 14:25:24 2013 -0800

    Merge remote-tracking branch 'puppet-cve-test/safely-yaml-3.1.0' into security/3.1.0/february_code_orange
    
    * puppet-cve-test/safely-yaml-3.1.0:
      (#19393) Safely load YAML from the network

commit 940594bb96b89f58df6573155f32c4acbc2aa6bb
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Feb 20 17:28:14 2013 -0800

    (#19393) Safely load YAML from the network
    
    When using Psych (only available in Ruby 1.9), YAML.load may in certain
    cases (!map: and !ruby/hash: tags) use the initialize and []= methods to
    create objects. These methods could potentially allow arbitrary code to
    be executed. We now add a safely_load method which parses the input
    first, checks it for dangerous tags, and fails if they are found. If the
    input is clean, we transform the result (as YAML.load would have done)
    and go on our merry way.
    
    This change is only applied to YAML coming in either HTTP requests or
    responses. YAML from the local system is trusted, as anyone who can
    write that YAML could do damage some other way.

commit f2a3d5c043669e9bdcbe022b465ebb5484c080b8
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Feb 20 17:28:14 2013 -0800

    (#19393) Safely load YAML from the network
    
    When using Psych (only available in Ruby 1.9), YAML.load may in certain
    cases (!map: and !ruby/hash: tags) use the initialize and []= methods to
    create objects. These methods could potentially allow arbitrary code to
    be executed. We now add a safely_load method which parses the input
    first, checks it for dangerous tags, and fails if they are found. If the
    input is clean, we transform the result (as YAML.load would have done)
    and go on our merry way.
    
    This change is only applied to YAML coming in either HTTP requests or
    responses. YAML from the local system is trusted, as anyone who can
    write that YAML could do damage some other way.

commit 1dfa2dfaab192678101fd8818763f642d836821e
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Feb 21 10:29:57 2013 -0800

    (maint) Use MatchData object over ruby global vars
    
    The implementation for native file headers for the ParsedFile providers
    made use of the Perl style global variables like $`, $', and $&. These
    are difficult to understand at first glance and equivalent behavior is
    provided by MatchData objects. This commit removes the global variables
    with a MatchData object for clarity.

commit f1164791da65f8e44ad394a2a37fb19598cd07ba
Merge: 8633138 62b937d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Feb 19 15:22:41 2013 -0800

    Merge pull request #1477 from dalen/ssl_error
    
    (#19271) Proper check for which cert to use in ssl error

commit 86331385e6263bf370a8e42f52f882d43882efd2
Merge: a10b85b ec462b7
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Feb 19 15:17:34 2013 -0800

    Merge pull request #1478 from dsd/fix/master/18781-webrick-old-client-compat
    
    (#18781) Be more tolerant of old clients in WEBrick server

commit a10b85bd9e7198ca71ef0461bcdfe5ff75698724
Merge: 4de6db1 c8fc89c
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Feb 19 11:54:36 2013 -0800

    Merge pull request #1487 from vaijab/fix/master/cmd_line_opts_with_systemd
    
    (#19323) ext/systemd: adding a way to specify cmd line options

commit 4de6db18ab52aa56e41eb25a8410c5148e845eff
Merge: 5d214b6 18de0fc
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Feb 19 10:19:34 2013 -0800

    Merge pull request #1483 from cprice-puppet/bug/master/replace_file_jruby_fix
    
    Explicitly cast Pathname in Puppet::Util#replace_file

commit c8fc89ca543a569a6ffe9c88518b2eb3f42f1463
Author: Vaidas Jablonskis <jablonskis@gmail.com>
Date:   Tue Feb 19 00:46:07 2013 +0000

    (#19323) ext/systemd: adding a way to specify cmd line options
    
    This patch adds a way to easily specify extra command line options for
    both puppetagent and puppetmaster services when starting them with
    systemd.
    
    It removes ExecPre command as the directory creation is now handled by
    the RPM install.
    
    Previously there was no way to pass in valid puppet agent/master command
    line parameters like '--config=/etc/puppet/puppetmaster.conf', etc. A
    lot of people use separate config files for the agent and the master
    services.
    
    To make it somewhat consistent I added a systemd supported way to read
    environment variables from a file '/etc/sysconfig/<servicename>', so
    people who use extra cmd line options already will be able to do that with
    systemd as well.
    
    When services are started by systemd, systemd will read the files which
    contain the below variables and will pass their values when starting
    puppet services (I used the same variable names as it's been used in
    redhat-like distros already):
    
    PUPPET_EXTRA_OPTS in /etc/sysconfig/puppetagent
    PUPPETMASTER_EXTRA_OPTS in /etc/sysconfig/puppetmaster

commit ec462b7b974fc34110437010f862780fb2ee39a3
Author: Daniel Drake <dsd@laptop.org>
Date:   Thu Feb 14 15:05:10 2013 -0600

    (#18781) Be more tolerant of old clients in WEBrick server
    
    In #18781 and #6117 there are cases of relatively simplistic puppet
    setups failing between old versions of the puppet client (which
    always use HTTP GET) and new versions of the puppet WEBrick server
    (which has a relatively low limit on the size of a valid GET: 2083
    bytes).
    
    While there are other non-WEBrick server options available, WEBrick
    has the advantage of simplicity, so it would be nice to keep it working.
    
    Here we patch the WEBrick constant which specifies the maximum size of
    a HTTP GET request, increasing it to a value that should work for common
    setups.

commit 18de0fc5367f652ee0cc8dbbae534fa7d635fd3d
Author: Chris Price <chris@puppetlabs.com>
Date:   Sun Feb 17 10:56:45 2013 -0800

    Explicitly cast Pathname in Puppet::Util#replace_file
    
    Puppet::Util#replace_file contains a call to File#rename
    where one of the arguments is of type `Pathname`.  The
    actual method signature requires two String arguments,
    and JRuby does not appear to implicitly cast in this
    situation--so all calls to `replace_file` were failing
    on JRuby.  This commit simply makes the cast explicit.

commit 5d214b6163e760f62fe645b547efd216c9edb1c0
Merge: 51901d9 2268d4a
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Feb 15 15:47:10 2013 -0800

    Merge pull request #1442 from jjulien/feature#7911
    
    (#7911) Allow managing local groups when duplicate names exist in a remote NSS database e.g. LDAP.

commit 51901d96be46255d2d5b50d79f5e9fe7054228f8
Merge: a3bee25 f611385
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Feb 15 14:38:24 2013 -0800

    Merge branch '3.1.x'

commit f611385551c52dfbc8a500ef5aee297f710bd61c
Merge: 8bb1705 1f0ffd6
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Feb 15 14:38:16 2013 -0800

    Merge branch '3.0.x' into 3.1.x

commit 1f0ffd62e317e5d59de826642f215b81ddfcd093
Merge: 11d049f 41c44ae
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Feb 15 14:38:07 2013 -0800

    Merge branch '2.7.x' into 3.0.x

commit 41c44aeb302c0235d6e6fdac1e8b1fefd4c8364a
Merge: 24a8e4c 9cc71b9
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Feb 15 14:37:57 2013 -0800

    Merge remote-tracking branch 'pr/1480' into 2.7.x

commit a3bee25167906464592b53fcd8740075dad406f9
Merge: f0afa75 e586ca0
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Fri Feb 15 11:21:07 2013 -0800

    Merge branch 'pull-1479'

commit e586ca024af357d63a823dc200513d3f4b27cc98
Author: Felix Frank <Felix.Frank@Alumni.TU-Berlin.de>
Date:   Sun Feb 3 21:54:03 2013 +0100

    (#593) crontab: drop vixie cron headers when writing crontabs
    
    This makes use of the "native header" of parsed files.
    
    Vixie cron headers should never be written back to disk, because
    cron will insert a new header, regardless of what's found in the
    temporary input file.
    
    The underlying issue is a cron bug, because vixie headers should
    (probably) not appear in `crontab -l` output. This is indeed fixed
    in newer versions of cron, so this workaround merely introduces
    compatibility with older systems.

commit 4e343334a54f0ab3e9481936ee7a7f6638f7be25
Author: Felix Frank <Felix.Frank@Alumni.TU-Berlin.de>
Date:   Sun Feb 3 21:53:35 2013 +0100

    (#593) parsedfile: add support for native file headers
    
    Some managed configurations (notably the vixie cron crontabs) are
    automatically prefixed with headers not unlike those generated by
    puppet providers themselves. This can lead to "mutual 1up" situations
    in which puppet and the third party software will insert header upon
    header in their respective output.
    
    This change introduces the a "native header" for a parsed file. Providers
    can define a regex object that will be used to identify the part of a parsed
    file that comprises such a vendor header.
    
    When writing the content back to disk, puppet will try and insert
    its own header underneath the vendor's headers. Additionally, providers
    can override a "drop native headers" field in order to have puppet
    skip the vendor header alltogether when writing file contents. This allows
    "smart" software like vixie cron to manage its header on its own.
    
    The unit tests are based on example code kindly provided by Jeff McCune.

commit f0afa7531a9e2c68794ba30c95df7614961f389a
Merge: 8d99bcb 5fab772
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Feb 14 18:17:14 2013 -0800

    Merge pull request #1481 from ahpook/18131-describe-list
    
    (#18131) Only truncate `puppet describe --list` on sentences

commit 5fab772ecb1ad03487458554b67eade214076931
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Thu Feb 14 17:59:15 2013 -0800

    (#18131) Only truncate `puppet describe --list` on sentences
    
    Previously the regexp which attempts to truncate the output
    of `puppet describe --list` at the end of a sentence, if it
    is within the first 45 characters of the doc string, actually
    truncated at the first period/full-stop character. This caused
    doc strings which include dots, such as `.k5login`, to be
    prematurely truncated.
    
    This commit causes it to instead only truncate at the first
    dot-space combination, which is a more reliable indicator of
    the end of a sentence.
    
    This also fixes a typo in the spec tests for this code, but
    digging further into the code to figure out how to test it
    effectively sent me down a rabbit-hole and I gave up.
    
    Paired-With: Michael Hall <mph@puppetlabs.com>

commit 9cc71b9435f15dd1b88dd6a49fa77312fb969cce
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Feb 14 17:37:26 2013 -0800

    [packaging] Remove natty from the deb pkg list, its EOL
    
    Ubuntu Natty is EOL, and we are no longer going to build or ship for this
    distribution. This commit removes it from the default list of distributions we
    build for in puppet.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 62b937d26a5d677ceeea091fd2062aeafaa6dc73
Author: Erik Dalén <dalen@spotify.com>
Date:   Thu Feb 14 18:44:22 2013 +0100

    (#19271) Proper check for which cert to use in ssl error
    
    Don't assume the puppet ca subject name starts with 'puppet ca'

commit 8d99bcbe6ebe6ca15868334bb52349911b58598c
Merge: 7d6515f 587d942
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Feb 13 17:22:01 2013 -0800

    Merge branch 'cprice-puppet-bug/3.0rc/15187-log-fatal-errors-to-console'
    
    * cprice-puppet-bug/3.0rc/15187-log-fatal-errors-to-console:
      (#15187) Ensure that fatal errors are logged to console
    
    closes #900

commit 587d942ce975b0ba5f566c71a3f5b78650deabb8
Author: Chris Price <chris@puppetlabs.com>
Date:   Sun Jul 1 19:29:26 2012 -0700

    (#15187) Ensure that fatal errors are logged to console
    
    This commit ensures that the agent always opens a console
    logging destination.  It will be closed when the agent
    has successfully initialized itself and switched to
    daemon mode, but if any errors occur before that point, the
    log messages will be available on the console.  Prior to
    this commit, fatal errors during startup were not logged
    to the console, which made it seem like the error
    was being swallowed or that the agent had started successfully
    even when it had not.

commit 7d6515f076715c1feab0addc99312c42fb8b578c
Merge: 44b8a9f a338438
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 13 17:13:16 2013 -0800

    Merge pull request #1473 from stschulte/ticket/master/initprovider_shutdowns_system
    
    Do not reboot system when runnnig puppet resource service

commit 44b8a9f826901bd30d6d61735adac64cdeff2e8c
Merge: 98451fe 3e1ab81
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 13 17:07:48 2013 -0800

    Merge pull request #1475 from stschulte/maint/master/systemd_test_coverage
    
    (maint) Improve systemd test coverage

commit 2268d4abd6af0891facb8f6b7cd423ac571f1829
Author: John Julien <john@julienfamily.com>
Date:   Wed Feb 13 18:05:38 2013 -0600

    (#7911) Moved libuser.conf to lib/puppet/util/libuser.conf
    
    Based on internal conversations at Puppet Labs it was recommended that the libuser.conf
    file be moved out of Puppet[:confdir]/provider and into the lib/puppet/util directory.
    
    Further discussion will be had and a decision to move this elsewhere may be made, but
    for the time being this is where it will stay.

commit 3e1ab816b2716617f71903c0788c2d8b667300cf
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Feb 13 01:28:50 2013 +0100

    (maint) Improve systemd provider test coverage

commit 01290fb15b81f18546455f45ed25b40d67428eb9
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Feb 10 23:26:38 2013 +0100

    (maint) Simplify systemd spec tests
    
    It seems to be easier to deal with real object instances instead of fake
    objects.

commit 98451fe1bb7d42a20136f54d160eda7d15c914d9
Merge: c9e1849 3bd37a2
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 13 15:41:19 2013 -0800

    Merge pull request #1474 from jeffmccune/add_yard_dependencies
    
    (maint) Add dependency information for yard & pry

commit 3bd37a26326876d585fe7d6008d26de135ce36e2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Feb 13 15:23:20 2013 -0800

    (maint) Add dependency information for yard & pry
    
    Without this patch `bundle exec yard server --reload` doesn't work.  Nor
    is it easy to develop interactively using pry.
    
    This is a problem because people who are developing Puppet need to be
    able to access the API documentation easily and the yard server is one
    such way.  This patch addresses the problem by adding a dependency on
    yard and redcarpet for the development group only.  This will prevent
    the yard and redcarpet gem from sucking in a large number of
    dependencies when running in a CI environment because these environments
    are expected to omit development only dependencies when bootstrapping
    using `bundle install --path vendor --without development`
    
    The previous attempt to add these dependencies in GH-1422 failed because
    the dependencies could not be resolved in our Windows CI infrastructure.
    This patch avoid the problem by limiting these development dependencies
    to the :ruby platform, which are defined as "C Ruby (MRI) or Rubinius,
    but NOT Windows" in the Bundler Gemfile manual.

commit a33843864ce2f01fb5ce2beb17288975b4ebf45e
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Feb 13 23:52:47 2013 +0100

    (#14615) Move exclude list into the init provider
    
    Some initscripts are not save to execute on different systems. Example:
    If you run `/etc/init.d/reboot.sh status` on a gentoo system you will
    immediatly reboot the system.
    
    This can be a problem if you run `puppet resource service` as puppet
    will try to get a list of services and then runs the status command on
    all of them.
    
    The issue was first addressed in redmine ticket #14615 and #14761 and
    introduced different exclude lists for the gentoo provider and the
    redhat provider. Unfortunately this did not resolve the problem because
    when running `puppet resource service` puppet will not just query the
    most suitable provider for a list of services but all suitable
    providers. So if the gentoo provider now hides the `reboot.sh` script,
    but the init provider (which is also suitable) does not, puppet will
    ask the init provider to get the status of the service. As a result
    the init provider will now happily reboot the system.
    
    Move the exclude lists into the init provider so the init provider does
    the filtering. Each provider that uses the `init` provider as its parent
    does not have to do any filtering anymore.
    
    This fix assumes that an initscript that has to be excluded on one
    system is never a valid initscript on another system. Given the recent
    list of excludes (reboot.sh, shutdown.sh, etc) this seems valid

commit f4cbffa173af81f6caf24ea97f72642f7ff0f3ac
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Feb 13 22:58:09 2013 +0100

    (maint) Simplify init provider instances tests
    
    Let the instances method create real provider instances and just check
    the returnvalue

commit c9e18492f73d82bb0acd4aac1df374eb1553af89
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 13 13:56:20 2013 -0800

    (maint) Exclude specs on 1.8 without activerecord
    
    Nested RSpec example groups using :if filters can override each other.
    In 0804eafef7d5dae2010b6fdaa0a86dee3b41f5e9 A new example group was
    added with an :if filter that was clobbering the parent :if filter. The
    current Gemfile installs activerecord when the :test or :development
    groups are used so this was masked in most runs of the spec tests. This
    was only unmasked when the specs were run with no features available.
    
    This commit resolves the broken filtering behavior by propagating the
    parent example group filter down to the ruby 1.8 child example group.

commit cf8940827671c9ad8fc42c50a192898da533fd76
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Feb 13 22:38:36 2013 +0100

    (maint) Be more explicit in init_spec expectations
    
    Instead of stubbing every call to File.directory? that may have side
    effects in other areas of puppet be more explicit in what we actually
    expect.
    
    This may also prevent tests to pass incidentally.

commit 0db4b27334cca1a4ea507dd0b25a83fb156d4efa
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Feb 13 22:09:05 2013 +0100

    (maint) Remove redundant code in init provider
    
    The test `!File.directory?` is redundant because if the item actually is
    a directory, we cannot reach that statement.

commit b0c8a645d86a02f91db7fa91faf0e482b49a3a8f
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Feb 13 21:44:25 2013 +0100

    (maint) Reduce amount of stubbing in init_spec
    
    It seems to be easier to work with real objects.

commit 378f22051b06deeb1447455f80c338c672814c02
Merge: 8c2f027 32eea81
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 13 10:44:33 2013 -0800

    Merge pull request #1468 from aboe76/systemd-service-archlinux
    
    (#16451) Use PATH to find systemctl for systemd service provider

commit 32eea81e3c2953497489075c11e6c5c629c31f3f
Author: Niels Abspoel <aboe76@gmail.com>
Date:   Sun Feb 10 11:06:09 2013 +0100

    (#16451) Use PATH to find systemctl for systemd service provider
    
    Without this patch Puppet has a difficult time locating the systemctl
    executable in recent versions of Archlinux.  This problem is caused by
    the executable moving from /bin/systemctl to /usr/bin/systemctl.
    
    This patch addresses the problem by eliminating the fully qualified path
    and instead relying on the PATH environment variable to locate the
    command.
    
    Unit test systemd_spec updated to test for this new behavior

commit 8c2f0271acda7887ae80ebd5f4d22acece37ad51
Merge: 33e822a f5f6dc9
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Feb 12 14:23:13 2013 -0800

    Merge pull request #1457 from gw0/fix-feature-detection-nil
    
    Fix feature detection error undefined method pointer on nil:NilClass.

commit 33e822a2e09237d38506692c967b54e19d991501
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Feb 12 11:14:29 2013 -0800

    (#18978) Redo acceptance test
    
    The previous test did not work when executed through the acceptance
    framework due to quoting issues. I fixed it on *nix, but it fails on
    Windows due to the RUBYLIB not being set correctly.
    
    This commit just changes the test to ensure we can authenticate the
    forge's SSL cert, which is the main motivation behind #18978 anyways.
    But since the module tool is not yet supported (#11276), this test is
    skipped on windows.

commit 8df5c6e6d392e6cb4d475e5439332fd4f7a0475b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Feb 12 08:40:44 2013 -0800

    (#18978) Assign HEREDOC to script variable
    
    Previously, this test was failing trying to call a method named script
    with the HEREDOC as an argument, and failing of course. Somehow I
    managed to delete the equals sign between the time I last ran the test
    and when I checked it in.

commit 4e73e104e4e15b18642c1b2233d999fa52959e42
Merge: 077de03 c2295b7
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 11 13:42:05 2013 -0800

    Merge branch 'domcleal-tickets/master/18494-ruby-2.0'
    
    * domcleal-tickets/master/18494-ruby-2.0:
      (#18494) Rearrange loop to remove Ruby 2.0 warning
      (#18494) Enable Travis building on Ruby 2.0.0
      (#18494) Make ActiveRecord-based inventory service unsupported under Ruby 2
      (#18494) Force literal strings in test to ASCII-8BIT encoding
      (#18494) Remove TypeError handling code used for tests
      (#18494) Fix error message test for Ruby 2.0
      (#18494) Fix Ruby version number format for Ruby 2.0.0-p-1
      (#18494) Change version comparisons to support Ruby 2.0
    
    closes #1470

commit c2295b7affdba0ca13052b20ca61c32f7578535e
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Feb 10 12:35:04 2013 +0000

    (#18494) Rearrange loop to remove Ruby 2.0 warning
    
    Ruby 2.0 warned of the complex assignments in the while loop:
    
      lib/puppet/file_serving/fileset.rb:139: warning: found = in conditional, should be ==
    
    The block that shifts to the next recursion level has been removed from the
    loop expression to prevent the interpreter from warning.

commit 7ac858296ccf4d88e14ec59208868c68660308a9
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Feb 10 11:14:22 2013 +0000

    (#18494) Enable Travis building on Ruby 2.0.0

commit 0804eafef7d5dae2010b6fdaa0a86dee3b41f5e9
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Feb 10 11:09:45 2013 +0000

    (#18494) Make ActiveRecord-based inventory service unsupported under Ruby 2
    
    ActiveRecord 3.0 under Ruby 2.0 has spec failures both here and upstream, and
    isn't supported anyhow.  Disable the ActiveRecord-based inventory service when
    running under Ruby 2.
    
      2) Puppet::Node::Facts::InventoryActiveRecord#save should retry on ActiveRecord error
         Failure/Error: Puppet::Node::Facts.indirection.save(facts)
         NoMethodError:
           undefined method `insert_record' for #<Array:0x0000001950d3b8>
         # ./lib/puppet/indirector/facts/inventory_active_record.rb:40:in `block (2 levels) in save'
         # ./lib/puppet/indirector/facts/inventory_active_record.rb:32:in `block in save'
         # ./lib/puppet/util/retryaction.rb:21:in `retry_action'
         # ./lib/puppet/indirector/facts/inventory_active_record.rb:27:in `save'
         # ./lib/puppet/indirector/indirection.rb:266:in `save'
         # ./lib/puppet/node/facts.rb:20:in `save'
         # ./spec/unit/indirector/facts/inventory_active_record_spec.rb:43:in `block (3 levels) in <top (required)>'

commit 72b91c2edabb61dee1088fae704181c425d0fef6
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Feb 10 09:52:23 2013 +0000

    (#18494) Force literal strings in test to ASCII-8BIT encoding
    
    The CA and directory service tests compare literal strings in the tests
    against ASCII-8BIT data from the app.  The default file encoding changed to
    UTF-8 in Ruby 2.0.0-rc2, so force file encoding to ASCII-8BIT to match the
    app's expected output.

commit b874cf9a87239842d4ee080d9f697b29d0fbcf18
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Feb 10 09:41:58 2013 +0000

    (#18494) Remove TypeError handling code used for tests
    
    For Ruby 1.9, commit 252c884 added code in the Puppet::Transaction::Event
    class to handle strings rather than a resource object that responded to []
    with symbols, for the purposes of testing.
    
    In Ruby 2.0, the TypeError message changed a bit, so the rescue didn't work as
    expected.  This is now reworked so the test passes in an object that responds
    appropriately.

commit 5609d86ee1499be7fcfa25172b7485f6668eed05
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Feb 10 09:38:53 2013 +0000

    (#18494) Fix error message test for Ruby 2.0

commit b79e584f8177ead5d08b49e91de059aeef17b470
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Feb 10 09:35:56 2013 +0000

    (#18494) Fix Ruby version number format for Ruby 2.0.0-p-1
    
    The additional hyphen between "p" and the patch number is now handled.

commit 66814620f502aeae03a38d768d1f2cf4ab4e9b01
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Feb 10 09:32:53 2013 +0000

    (#18494) Change version comparisons to support Ruby 2.0
    
    Ruby version comparisons should treat Ruby 1.8 as the exception and Ruby 1.9
    onwards as the norm.

commit 077de0310583ddb65db604bad6758aeccc59149d
Merge: 3da4dc9 8caa363
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 11 13:36:34 2013 -0800

    Merge branch 'domcleal-tickets/master/19167-extlookup-spec'
    
    * domcleal-tickets/master/19167-extlookup-spec:
      (#19167) Fix skipped tests due to Tempfile.new block not being run
    
    closes #1469

commit 8caa363bac72b0c973c9837f93a790f34b8504ca
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Feb 10 11:59:28 2013 +0000

    (#19167) Fix skipped tests due to Tempfile.new block not being run
    
    Tests for extlookup() key lookups were passing a block into Tempfile.new,
    which it doesn't run.  The initialization of the CSV file was performed and
    then extlookup() was called inside the block.  Since it isn't run, the tests
    aren't executed.
    
    This moves the tests out of the block and changes how the CSV file is created,
    since the extlookup() function doesn't take an absolute path to a CSV file.
    Instead a temporary directory is now created and the CSV file created inside.
    
    An incorrect test that should have checked for a raised error has also been
    fixed.

commit 3da4dc9e08f37a9a770d1c71adbf7ab0cc0c38d1
Merge: cde7d61 b56b763
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 11 11:33:19 2013 -0800

    Merge branch 'domcleal-tickets/master/7165-invalidate-refreshes'
    
    * domcleal-tickets/master/7165-invalidate-refreshes:
      (#7165) Invalidate refreshes after services are started
      (#7165) Properties can invalidate scheduled refreshes on change
    
    closes #1459

commit b56b763c3936153a4798ce772557d26241abb1c9
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Thu Feb 7 00:05:28 2013 +0000

    (#7165) Invalidate refreshes after services are started
    
    After a service is started (ensure transitions to :running), discard all
    scheduled refreshes which would otherwise cause a restart immediately after it
    had started.
    
    This enables the pattern of a file notifying a stopped service resource, which
    simply deploys the file, starts the service and leaves it running.

commit 9d59f2040a17fed7b2b60e35834ebb31aec3fd05
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Thu Feb 7 00:04:50 2013 +0000

    (#7165) Properties can invalidate scheduled refreshes on change
    
    An invalidate_refreshes option can now be specified on newvalue calls inside
    type definitions.  When a property is changed to a value with this option set,
    it causes all currently scheduled refreshes (from notify or subscribe) to be
    discarded after evaluation of the resource.
    
    This is designed for instances where a file resource is changed and refreshes
    a service resource.  The service itself would then be evaluated, the service is
    started and then it would be refreshed, causing an additional restart.  This
    change allows a type definition to specify that a property change to a
    particular value invalidates certain needless refreshes.

commit cde7d61e831a2413926858e28bb332622f2a9e74
Merge: f61a915 0e7bac0
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 11 11:11:33 2013 -0800

    Merge branch 'b1-systems-fix_signal_handler'
    
    * b1-systems-fix_signal_handler:
      Ignore splay time on SIGUSR1
    
    closes #1453

commit 0e7bac0d033ace19a00f7907b1c41021d27810c7
Author: Daniel Poelzleithner <poelzleithner@b1-systems.de>
Date:   Wed Feb 6 11:03:10 2013 +0100

    Ignore splay time on SIGUSR1
    
    If the agent is configured to use splay, receiving a SIGUSR1 while
    beeing in the splay loop will cause the agent to wait and instantly
    run as documented.
    
    The agent now skips the splay sleep when the signal is received.

commit f61a91514a2c791148e0273de1c7df9574c580ef
Merge: 1e99a4c bfdcd98
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Feb 8 14:15:26 2013 -0800

    Merge branch 'ticket/17474-indirection-false' of https://github.com/pcarlisle/puppet
    
    * 'ticket/17474-indirection-false' of https://github.com/pcarlisle/puppet:
      (#17474) Make it possible to return `false` from a terminus

commit 1e99a4cd37e4a83dc380dd1f05af5b711c2f039d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Feb 8 11:17:45 2013 -0800

    (#18978) Fix stray commas
    
    I experimented with some changes and forgot to undo them completely before
    submitting PR 1439. This commit removes the stray commas that caused
    CertOpenSystemStore to be an array instead of an Win32API object.

commit 140e7aa4917f3cabd5bd2edee1de35e99d553cfa
Merge: 7babca1 cd7d52a
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Fri Feb 8 10:23:24 2013 -0800

    Merge pull request #1439 from joshcooper/ticket/master/18978-windows-cacerts
    
    (#18978) Load default root certs on Windows

commit 7babca1f7d085065dfefd75689be2d81a0f01ac1
Merge: 4c9aa49 1b1ab9a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Feb 8 10:17:27 2013 -0800

    Merge branch 'ripienaar-feature/master/14544'
    
    * ripienaar-feature/master/14544:
      (#14544) Make puppet apply --write-catalog-summary produce resources and classes state files
    
    closes #1465

commit 1b1ab9a1df97012982b59fca0b4e12e6d4298835
Author: R.I.Pienaar <rip@devco.net>
Date:   Thu Feb 7 23:36:39 2013 +0000

    (#14544) Make puppet apply --write-catalog-summary produce resources and classes state files
    
    MCollective requires a classes.txt and resources.txt to function.  The
    agent application writes this by default but the apply application has
    no way to write these files.
    
    With the increased popularity of running puppet masterless opting
    instead to only run puppet apply on every node this is becoming a
    problem for mcollective users who wish to run this mode of puppet
    configuration management
    
    This commits adds a new flag to the apply application -
    --write-catalog-summary - which enables the creation of these 2 files
    leaving it off by default to avoid apply from stepping on the toes of an
    agent unless the user specifically request this behavior

commit 4c9aa499067abba13ea60ec67304fc083091a89f
Merge: ffc7a3c a0963df
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Feb 8 09:51:31 2013 -0800

    Merge branch 'richardc-fix/master/19148'
    
    * richardc-fix/master/19148:
      (maint) Cleanup whitespace errors
      (#19148) don't embed a Racc parser in naginator
      tweak the nagios grammar.ry so it reflects the parser
    
    closes #1466

commit a0963df3686a112a677c7df8b72f186ed549f958
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Feb 8 09:43:02 2013 -0800

    (maint) Cleanup whitespace errors
    
    No change in behavior, just cleaning up some white space errors found
    with git diff --check.

commit 20bf8129156bd10a365c730e13cd2fd3344249a1
Author: Richard Clamp <richardc@unixbeard.net>
Date:   Fri Feb 8 15:19:19 2013 +0000

    (#19148) don't embed a Racc parser in naginator
    
    Naginator embeds a parser engine which clashes with the one the DSL is
    using.  This leads to noisy runs like this:
    
        $ puppet apply -e 'nagios_host {"foo":}'
        racc/parser.rb:27: warning: already initialized constant Racc_Runtime_Version
        racc/parser.rb:28: warning: already initialized constant Racc_Runtime_Revision
        racc/parser.rb:30: warning: already initialized constant Racc_Runtime_Core_Version_R
        racc/parser.rb:31: warning: already initialized constant Racc_Runtime_Core_Revision_R
        racc/parser.rb:35: warning: already initialized constant Racc_Runtime_Core_Revision_C
        racc/parser.rb:39: warning: already initialized constant Racc_Main_Parsing_Routine
        racc/parser.rb:40: warning: already initialized constant Racc_YY_Parse_Method
        racc/parser.rb:41: warning: already initialized constant Racc_Runtime_Core_Version
        racc/parser.rb:42: warning: already initialized constant Racc_Runtime_Core_Revision
        racc/parser.rb:43: warning: already initialized constant Racc_Runtime_Type
        Finished catalog run in 0.08 seconds
    
    The fix is simply to not embed the parser engine, and use the same one as the puppet DSL.

commit c8bdc3a74407f8f4331c9fc86395e79a5d3f388a
Author: Richard Clamp <richardc@unixbeard.net>
Date:   Fri Feb 8 15:16:22 2013 +0000

    tweak the nagios grammar.ry so it reflects the parser
    
    The grammar.ry didn't match the parser.rb; what was in parser.rb was
    
        module_eval <<'.,.,', 'grammar.ry', 42
            def _reduce_10( val, _values, result )
        result = {val[0] => val[1]}
            result
        end
        .,.,
    
    Which couldn't have come from that grammar.ry which specified:
    
        var: PARAM VALUE icomment returns { result = {val[0],val[1]} }

commit ffc7a3cbb316ca4a2cef5338f2c81a0da962a3f6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Feb 8 09:49:10 2013 -0800

    Revert "Merge branch 'jeffmccune-yard_gemfile'"
    
    This reverts commit 09f097e73917b43336c9dd55dc90474e495f32c4, reversing
    changes made to 8f105246bc75c7cb7c77a4e2a14cb5ae211ea055.
    
    This is being reverted because the yard gem cannot be installed properly
    on Windows.
    
    Talking to @joshcooper, we're going to revert this now and figure out a
    better way to handle dependencies like this that have issues on some
    platforms.  Hopefully there's a way to satisfy a dependency on all
    platforms by default and exclude only those we know to be problematic.

commit 64b17d2688d273a14cd01aade80af7130a509d44
Author: John Julien <john@julienfamily.com>
Date:   Thu Feb 7 22:50:29 2013 -0600

    (#7911) Update pw provider specs to account for options hash passed to execute for creates

commit 63b86649eb0c74e217b6063f7c63a5d2997fa540
Author: John Julien <john@julienfamily.com>
Date:   Thu Feb 7 22:12:35 2013 -0600

    (#7911) Cleanup specs, removed unneeded comment

commit 054d60533b1ed5ee8cf51d363535ff142595703f
Author: John Julien <john@julienfamily.com>
Date:   Thu Feb 7 22:00:26 2013 -0600

    (#7911) Fixed Libuser.getconf, updated unit specs, removed conflicting expiry fix
    
    This commit change the Puppet::Util::Libuser module to look for libuser.conf in its new /etc/puppet/provider/libuser.conf location.  It also updates Puppet::Features::Libuser to only return true if the config file as well as the binaries are found.
    
    Updated the useradd and groupadd specs to expect :execute when called from create to now have 2 parametes.  A command and an options hash.
    
    During my work on this feature I added an exipry getter since the builtin getter didn't retrieve the correct values.  Before this patch was merged another commit came along that also set the proper getter. So I removed mine as it caused a conflict.

commit 0431f3be87480e6ddebb8193402227d2bec42343
Author: John Julien <john@julienfamily.com>
Date:   Thu Feb 7 17:28:41 2013 -0600

    (#7911) Moved location of libuser.conf

commit cfe7b68c61b4ba830ef72e5e806cd8e488388d81
Author: root <root@linux5.julienfamily.com>
Date:   Thu Feb 7 17:27:59 2013 -0600

    (#7911) Moved location of libuser.conf

commit e8f3fe3db05c3d7c25471cc2f4db382ec4a2bf7f
Author: John Julien <john@julienfamily.com>
Date:   Thu Feb 7 14:59:10 2013 -0600

    (#7911) Isolate command environment for libuser commands

commit 7592f6ed595dafd2f6fcb6e5a4755dfaeb37d7c5
Author: John Julien <john@julienfamily.com>
Date:   Wed Feb 6 08:13:59 2013 -0600

    (#7911) Removed custom exception class for duplicate UID/GID.  Using Puppet::Error now

commit ca0122b49b1d03b10c4856985fc96d2028f8727a
Author: John Julien <john@julienfamily.com>
Date:   Fri Jan 25 13:09:40 2013 -0600

    (#7911) Fixed failing spec because of invocation of function increase

commit f5c42984a202fb0ec2b26aaf3b1fe51ecea786a7
Author: John Julien <john@julienfamily.com>
Date:   Sat Jan 19 22:28:19 2013 -0600

    (#7911) Stabalized providers when using libuser commands so it would behave identical to the existing providers
    
    Performed exhaustive analysis of the differences between useradd/groupadd and luseradd/lgroupadd and coded around these differences to ensure that the useradd/groupadd providers behave identically with and without the forcelocal parameter being set.  The only difference being a local account is always created and managed when forcelocal is set to true.  The commands are very similar for the most part so there was not a huge need to diverge from the original code.  In all but one of the cases that did arise the solution was to make a subsequent usermod or groupmod call after the luseradd/lgroupadd command.  Since the usermod/groupmod commands will always act on local accounts first, this achieves the desired effect. The one case where a subsequent call would not suffice was the use of the allowdupe parameter. By default libuser will allow duplicate uid/gid where useradd/groupadd require an explicit -o.  The work around was to manually do a local check for a duplicate if using the libuser library and not intending to allow duplicates.  If a duplicate is found Puppet raises a DuplicateUID or DuplicateGID exception.

commit b62eeccb62b1ade3ad8f85d3abd62fb42f073166
Author: John Julien <john@julienfamily.com>
Date:   Fri Jan 18 12:47:56 2013 -0600

    (#7911) Removed function def libuser_conf which was made obsolete by Puppet::Util::Libuser

commit 3076524ad2f2abbcc4cada737b5b13eeb991cbde
Author: John Julien <john@julienfamily.com>
Date:   Fri Jan 18 12:44:48 2013 -0600

    (#7911) Added support for managing local users.  Also created Puppet::Util::Libuser for better reuse of common code.

commit fa334bcdddc98d6f6e3c1b97e70b9f1a1eb5cb14
Author: John Julien <john@julienfamily.com>
Date:   Thu Jan 17 21:02:38 2013 -0600

    (#7911) Allow managing local groups when duplicate names exist in a remote NSS database e.g. LDAP.
    
    Some applications require local accounts and the useradd/groupadd commands currently used by the provider will not create a local account if they already exist remotely.  The libuser commands luseradd/lgroupadd will allow a local name to duplicate a remote name.  So these commands are used to force the local account creation.  The libuser commands parse /etc/libuser.conf to determine which modules to use for creating users.  Files must be the module used to get the desired local account managment.  Because of this, it is necessary for Puppet to ship a libuser.conf file, which will only be used during a Puppet run, to ensure local account managment.  The libuser.conf file used by the luseradd/lgroupadd commands can be overrideen by setting the environment variable LIBUSER_CONF. Which is what Puppet does to make sure its version of the configuration file is used

commit 7f68d5cd1170fee928e4cf15d103c8066038339c
Merge: 9e35ccc 82e0775
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Feb 7 16:33:59 2013 -0800

    Merge branch 'pull-1192'

commit 9e35ccc0bb844d70580c3c92e458a737e3322fdb
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Feb 7 16:16:15 2013 -0800

    (main) Add puppet-acceptance/ to .gitignore

commit 09f097e73917b43336c9dd55dc90474e495f32c4
Merge: 8f10524 ea6783a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Feb 7 15:52:30 2013 -0800

    Merge branch 'jeffmccune-yard_gemfile'
    
    * jeffmccune-yard_gemfile:
      (maint) Add dependency information for yard and redcarpet

commit 8f105246bc75c7cb7c77a4e2a14cb5ae211ea055
Merge: fe465ed 740e535
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Feb 7 15:39:31 2013 -0800

    Merge pull request #1464 from adrienthebo/fixup_1329
    
    Update network_device spec to check for nil

commit 740e53597cc8b95df6144c8a01ed098c976f95b7
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Feb 7 15:21:06 2013 -0800

    (maint) Update network_device spec to check for nil
    
    Commit fe95a39 added a default value of false for instantiation of
    network transport types. I omitted that value and defaulted to nil since
    they're equivalent but didn't update the tests. This commits checks for
    nil instead of false.

commit fe465edc02d3bc3a0af91e5d1cd6430f61d8eb52
Merge: fe18d18 fe95a39
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Feb 7 15:03:06 2013 -0800

    Merge branch 'pull-1329'

commit fe95a399848bfc0eea407409758f6023640784d1
Author: Guillaume Rose <rose@netxp.fr>
Date:   Thu Dec 13 14:14:18 2012 +0100

    Add the debug parameter in device.conf

commit fe18d1806df7f95bbb296c7f429879bf512c9a1b
Merge: 9bab077 fa9a9dd
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Feb 7 14:51:29 2013 -0800

    Merge branch 'pull-1460'

commit 9bab07771a3c718a3197370fc5e4c9e573cf013c
Merge: c64a35c 8bb1705
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Feb 7 09:48:46 2013 -0800

    Merge branch '3.1.x'

commit 8bb17056419168ba7f39f45a1895bc0a67b1ea67
Merge: 89b5c9b f1ca70e
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Feb 7 09:48:23 2013 -0800

    Merge branch 'revert-1339' into 3.1.x

commit f1ca70e189a1b662dd824222b02a008e9314d462
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Thu Feb 7 09:47:48 2013 -0800

    Revert "Merge branch 'pull-1339' into 3.1.x"
    
    This reverts commit 7bd6a908a82b0502558564d32a7fa604cee3c5a3, reversing
    changes made to 480379d1f61d88e732bd10d6773845a788351ed3.
    
    This commit seems to be the cause of acceptance test failures so I'm
    backing this out until we get that cleared up.

commit c64a35c06afc731d50f7f4655f2edd09085d54c8
Merge: 7516ca6 89b5c9b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 7 09:24:35 2013 -0800

    Merge remote-tracking branch 'upstream/3.1.x'
    
    * upstream/3.1.x:
      Fix module tool acceptance test

commit 89b5c9b26c5c1e30155e9af2eb8bafc605d7dafe
Merge: e9d4d34 11d049f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 7 09:23:58 2013 -0800

    Merge remote-tracking branch 'upstream/3.0.x' into 3.1.x
    
    * upstream/3.0.x:
      Fix module tool acceptance test

commit 11d049f35ffcd27dcbed6d8b4e164b758312b5d5
Merge: e274756 24a8e4c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 7 09:22:36 2013 -0800

    Merge remote-tracking branch 'upstream/2.7.x' into 3.0.x
    
    * upstream/2.7.x:
      Fix module tool acceptance test

commit 24a8e4c112c163de751d8d3817183eb2128dbc8d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 7 08:51:56 2013 -0800

    Fix module tool acceptance test
    
    This test was failing due to a change on the forge server when rendering
    the description for a module.
    
    This commit changes the test to expect UNKNOWN for the description.

commit fa9a9dddd2ae14d59eab62f9e8284744c4ae83de
Author: Mathieu Mitchell <mmitchell@iweb.com>
Date:   Wed Feb 6 20:17:38 2013 -0500

    Fix encoding problem with test file

commit 9a2bbc90f1b1c6a5b4d0e81bd63fa7cca0761a45
Author: Mathieu Mitchell <mmitchell@iweb.com>
Date:   Wed Feb 6 19:14:16 2013 -0500

    Fixed URI encoding problem with requirement string
    
    When passing a requirement string with an unescaped URI character,
    such as '>= 1.0.3' to puppet module install, an error would be raised.
    Added URI escape to make_http_request to ensure all URIs are properly
    escaped.

commit 7516ca6fc8d604b54685c5ca186746c5e3a243ab
Merge: 39a2718 b58d96f
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 6 15:31:29 2013 -0800

    Merge pull request #1458 from richardc/master
    
    Fix a documentation bug in Puppet::Parser::Files

commit b58d96f904974f342a7d8533472b51d7dd954fa7
Author: Richard Clamp <richardc@unixbeard.net>
Date:   Wed Feb 6 23:22:34 2013 +0000

    fix a documentation comment for find_template
    
    The search order is absolute path, $templatedir, search in modules.

commit 39a2718d8d8c5b961351b305deb0f026717a1560
Merge: 52dccc8 aa67f14
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Feb 6 13:57:54 2013 -0800

    Merge pull request #1441 from joshcooper/maint/master/module-tool-windows
    
    (#11276) Module tool on windows

commit 52dccc8095041bef6de76d4856b620c8b4e8a980
Merge: 51f1406 e9d4d34
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 6 13:36:48 2013 -0800

    Merge branch '3.1.x'

commit f5f6dc9850d775832d9e34d4cc320544fb671495
Author: gw0 [http://gw.tnode.com/] <gw.2013@tnode.com>
Date:   Wed Feb 6 22:30:14 2013 +0100

    Fix feature detection error undefined method pointer on nil:NilClass.

commit e9d4d34c25ac84b8ae10688014a36fa68d786c01
Merge: 3e8210d b286234
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 6 13:20:54 2013 -0800

    Merge branch 'pull-1403' into 3.1.x

commit 51f14067442d3971fcb0c9c0bf5f851af9365e5c
Merge: ab440d9 3e8210d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Feb 6 12:57:42 2013 -0800

    Merge branch '3.1.x'
    
    * 3.1.x:
      Updating module tool acceptance tests with new expectations.
    
    closes #1456

commit 3e8210dc987cfde7e9ea2dd464e8910c6f98ced4
Merge: 7bd6a90 e274756
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Feb 6 12:57:16 2013 -0800

    Merge branch '3.0.x' into 3.1.x
    
    * 3.0.x:
      Updating module tool acceptance tests with new expectations.

commit e2747569827b39964812eb0052d7744575c1c164
Merge: 71fba90 e2e9415
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Feb 6 12:57:05 2013 -0800

    Merge branch '2.7.x' into 3.0.x
    
    * 2.7.x:
      Updating module tool acceptance tests with new expectations.

commit e2e9415da9a0082da965006c21c83655cbd1e9e8
Merge: f6edbb9 e228dcb
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Feb 6 12:54:31 2013 -0800

    Merge branch 'pvande-2.7.x' into 2.7.x
    
    * pvande-2.7.x:
      Updating module tool acceptance tests with new expectations.

commit e228dcb9a38fcf9e3e863ee5ae80a51a30bf72c8
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Wed Feb 6 11:45:12 2013 -0800

    Updating module tool acceptance tests with new expectations.

commit ab440d9652d53d34473247d6dd8860995874625c
Merge: 3adf713 7bd6a90
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Wed Feb 6 09:40:59 2013 -0800

    Merge branch '3.1.x'

commit 3adf7136fee92136bea8e9f4dbcc8be4825f8c7e
Merge: 480720f cc267a8
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Feb 6 08:27:41 2013 -0800

    Merge branch 'domcleal-tickets/master/17522-augeas-load-warn'
    
    * domcleal-tickets/master/17522-augeas-load-warn:
      (#17522) Only print load errors to debug with non-specific context

commit cc267a899380c539dd574755ebc23be0eece866f
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Wed Nov 14 18:03:14 2012 +0000

    (#17522) Only print load errors to debug with non-specific context
    
    Fixes a variable assignment that landed in the wrong branch during a conflict
    merge (a4451fb1).  Commit a8575f41 fixed a spec failure but the original code
    wasn't restored.
    
    This restores the original functionality in #14136 where a non-specific
    context (i.e. /files/etc) would be optimised (only load lenses for files under
    /etc) but since it was vague, would only log load errors to debug.  Instead,
    load errors were reported as warnings for non-specific contexts.
    
    Load errors will continue to be reported as warnings for supplied contexts if
    they're specific.

commit 480720fb1fcc3d704fba19562f8064b718292600
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Feb 5 16:24:10 2013 -0800

    Clarify example in comment for lookup_external_data_for
    
    The comment implied that we would lookup external data for a required
    argument, which is not true.

commit bfdcd98e511112f3e3d8bbb471a31f989ca0adab
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Feb 5 14:22:20 2013 -0800

    (#17474) Make it possible to return `false` from a terminus
    
    This manifested as an inability to retrieve the value `false` from hiera using
    data bindings. The find method on Puppet::Indirection interpreted this as no
    value being returned.

commit 7bd6a908a82b0502558564d32a7fa604cee3c5a3
Merge: 480379d 293600d
Author: Adrien Thebo <git@somethingsinistral.net>
Date:   Tue Feb 5 15:05:57 2013 -0800

    Merge branch 'pull-1339' into 3.1.x
    
    GH-1339 corrects the behavior of Puppet::Node::Environment.clear when dealing
    with the *root* environment and improves the related test coverage. It was
    originally targeted at the 2.7.x but as of 2013-02-05 only fixes for major
    issues will be merged into 2.7.x. Since this improves the quality of the code
    this has been merged into 3.1.x.

commit 293600d7e8ca7a1b0b48e96c49dd2afa240d3401
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Tue Dec 18 00:06:53 2012 +0000

    (#18187) Clear *root* environment when clearing caches
    
    When changing settings or initializing Puppet via TestHelper, the
    Puppet::Node::Environment.clear method is called to delete the cached
    environment objects, as they may reference cached module paths based on old
    values of settings.
    
    The *root* environment is a special case, as it acts as the current environment
    when no other environment has been created and set yet.  It can still have a
    module path based on current settings, so it too should be cleared along with
    other cached environments.
    
    Failure to reinitialize *root* causes failures when initializing Puppet via the
    TestHelper.  The Puppet::MetaType::Manager class uses the current environment
    in calls to Puppet::Util::Autoload, which starts as the default *root*
    enviroment.  The type loader is called a few times during TestHelper
    initialization and so if the module path is then changed (which triggers a
    .clear call), the *root* environment will contain paths based on old settings,
    so types won't load.
    
    Loading types based on the environment is new in 8173a6e6 (2.7.19).  3.x is
    unaffected as caching of module paths doesn't begin until
    app_defaults_initialized? changes to true.

commit 0663a570052f893efccb8482c1780c301b390151
Merge: f07ed03 2e3d891
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 4 16:37:00 2013 -0800

    Merge branch 'stahnma-add_in_NM_script'
    
    * stahnma-add_in_NM_script:
      Fixup to NetworkManager dispatcher to be compatible with systemd
      Incorporate Red Hat's NetworkManager fix into upstream
    
    closes #1356

commit 2e3d891c95966404083d65f591ffc345c6f949dc
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Sun Jan 6 22:29:14 2013 -0800

    Fixup to NetworkManager dispatcher to be compatible with systemd
    
    The previous patch from Red Hat was only compatible with sysV init
    systems. This patch modifies the script to enable systemd calls when
    appropriate.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit f54ca530ef5926cf15e62d24ebe9c804260fdf9c
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Dec 28 17:05:16 2012 -0800

    Incorporate Red Hat's NetworkManager fix into upstream
    
    Red Hat/Fedora have been carrying a patch to restart puppet if
    resolv.conf or other networking configuration settings are updated via
    Network Manager.  We should be doing this as well, as it's a good idea.
    
    The patch and problem are described in the following bugs:
    https://projects.puppetlabs.com/issues/2776
    https://bugzilla.redhat.com/532085
    
    Note this only applies to rpms, and only to builds for EL/Fedora. This
    patch/fix won't be applied/installed on any debian varient, sles, mac
    etc.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit f07ed031c88b086c81ab7dabe59bd9700f83d3ee
Merge: d038b2a 480379d
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Feb 4 10:19:06 2013 -0800

    Merge branch '3.1.x'

commit 480379d1f61d88e732bd10d6773845a788351ed3
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Feb 4 10:17:52 2013 -0800

    Update PUPPETVERSION to 3.1.0

commit d038b2a265357984cc119b8c23a39c57be75d81b
Merge: aafc1e1 9741e25
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jan 31 17:07:24 2013 -0800

    Merge branch 'dalen-modulo_operator'
    
    * dalen-modulo_operator:
      (#18950) Add modulo operator
    
    closes #1437

commit cd7d52a7b024533a53eecdf8c4e5a7d00a90775c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 28 22:26:48 2013 -0800

    (#11276) Load default root certs on Windows
    
    On Windows calling OpenSSL::X509::Store#set_default_paths does nothing. As
    a result, puppet is unable to make authenticated SSL connections to
    well-known SSL servers, like forge.puppetlabs.com.
    
    This commit adds a RootCerts class that loads the root certs from the
    Windows system cert store, and monkey patches the
    OpenSSL::X509::Store#set_default_paths to behave as expected on Windows.
    
    Note the actual semantics for set_default_paths are slightly different,
    in that on *nix, it sets the paths that openssl will look for trusted root
    certs, whereas this patch loads them into the X509::Store object on
    Windows. But the net effect is the same, we're specifying the set of root
    certs that we trust when authenticating SSL servers.
    
    This commit monkey patches openssl, because there isn't a central way to
    create SSL contexts in ruby. Specifically, open-uri hides the process of
    setting up the SSL context, so the caller doesn't have to "worry" about
    it. In doing so, it calls set_default_paths expecting that is all that is
    needed. But it makes it next to impossible for the caller to add other
    root certs.
    
    Specifically, the module tool uses open-uri to download tar.gz content,
    but that said the issue is not specific to the module tool.
    
    This commit also adds an SSL acceptance test.

commit aafc1e1ea5fb965356a7d045a9c960ea2bc8d911
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jan 31 11:30:42 2013 -0800

    (#1424) Make Struct::Passwd more platform agnostic
    
    The nameservice_spec was failing with `ArgumentError: struct size
    differs` on Windows, because the initialize method for Struct::Passwd
    takes different sets of arguments depending on flags set when ruby was
    compiled, e.g. HAVE_ST_PW_GECOS, HAVE_ST_PW_CHANGE, etc.
    
    This commit modifies the test to create a Struct::Passwd object using
    the 4 mandatory fields: name, password, uid, gid. Since the other
    optional fields weren't used in the test, this seems like the safest
    approach.
    
    This commit also excludes the test that relies on Struct::Group, because
    that class only exists if HAVE_GETGRENT is defined at compile time. This
    commit skips the test when run on windows.

commit 9741e25453d055fa2dc2b729b9ee16b5faf6d272
Author: Erik Dalén <dalen@spotify.com>
Date:   Tue Jan 29 20:55:38 2013 +0100

    (#18950) Add modulo operator
    
    The modulo arithmetic operator.

commit aa67f14bb947c7312b0880e0ab5d26bf0eaea0f6
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 28 21:48:35 2013 -0800

    (#11276) Expand Dir.pwd
    
    On Windows, Dir.pwd returns a path with backslashes, which confuses the
    relative path from, since it doesn't know that 'C:/' and 'C:\' are the
    same.
    
    This commit simply expands Dir.pwd which results in forward slashes.

commit 42c6d21a6c925d0b57c55c10239c6c82e92a1fb9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 28 21:45:59 2013 -0800

    (#11276) Checksum files in binary mode
    
    Previously, the puppet module tool would checksum a file in text mode. On
    Windows, this would cause the module tool to report that a module had
    local changes due to it computing the wrong MD5 checksum (due to File.read
    translating '\r\n' to '\n').
    
    This commit changes it to read the file in binary mode instead. This has
    no effect on non-Windows platforms.

commit 16497db69bc843f39d72695092041123259b48d9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 28 22:15:17 2013 -0800

    (#18986) Write to the console using Unicode Win32 APIs
    
    Previously, puppet on windows could not output unicode characters to the
    console reliably, such as the box drawing characters used by the module
    tool when displaying dependencies.
    
    Ruby 1.8 uses the ANSI Win32 APIs, e.g. WriteConsole, to write to the
    console. However, it uses the current console codepage. So if the current
    codepage cannot handle the unicode character we're trying to write, e.g.
    cp1252, then it displays garbage.
    
    Ruby 1.9 uses the Unicode Win32 APIs, e.g. WriteConsoleW. As such, it can
    correctly write unicode output, without being sensitive to the current
    codepage.
    
    However, because puppet writes ANSI escape sequences, we use the
    win32console gem to color the output. This win32console gem redefines the
    stdout and stderr streams to accomplish this, and sadly uses ANSI versions
    of Win32 APIs to write to the console. So it has the same problems as ruby
    1.8.
    
    This commit overrides the win32console classes, Console and IO, to ensure
    the Unicode APIs are used. This enables us to display ANSI escape
    sequences and unicode characters that may not be compatible with the
    current codepage.
    
    Longer term we should think about removing win32console gem altogether and
    moving to ruby 1.9, as these hacks would no longer be required. Though
    doing so would mean losing color output, or taking more drastic measures
    like ansicon.

commit 2387d6d756f7fc113682041eb68587fc66c8738b
Merge: 8893d10 fd8a487
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 30 11:47:03 2013 -0800

    Merge branch 'stschulte-ticket/master/user_expiry_solaris'd closes #1424
    
    * stschulte-ticket/master/user_expiry_solaris:
      Fix user expiry on Solaris
      Fix user expiry failures on ruby 1.8
      Revert "Revert "Merge branch 'stschulte-ticket/master/fixup_expiry'""

commit fd8a487b9f2039cb05b8328ca3fcf3c17eb74b4d
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Jan 23 21:34:36 2013 +0100

    Fix user expiry on Solaris
    
    The useradd provider can manage the expiry of a user account. To remove
    an expiry you can use `usermod -e '' alice` and on Solaris the man page
    states that providing `' '` would cause usermod to remove the expiry.
    This happens to be not true at least on Solaris 10 so treat Linux and
    Solaris the same.
    
    However setting the expiry date to a real date is different on Solaris.
    While Linux only accepts the date in the format YYYY-MM-DD, Solaris
    accepts multiple different formats but %Y-%m-%d is not one of them. So
    use the format %m/%d%/%Y when on Solaris which is also used in the useradd
    manpage (and did work on test box)

commit ae574ac7e6017ef3dda6355203620343a43b126c
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Jan 23 20:36:05 2013 +0100

    Fix user expiry failures on ruby 1.8
    
    Date.next_day is private on ruby 1.8 while it is public on ruby 1.9
    
    Convert the expiry to a date in a different way that works both on ruby
    1.8.7 and ruby 1.9

commit 94859fa2340f7bd324c6b3261dfa427d144dcce2
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Jan 23 20:29:27 2013 +0100

    Revert "Revert "Merge branch 'stschulte-ticket/master/fixup_expiry'""
    
    This reverts commit 1ddcb5e511e131645cfa89305784f66427374287.
    
    Conflicts:
        spec/unit/provider/user/useradd_spec.rb
    
    The original commit "Merge branch
    'stschulte-ticket/master/fixup_expiry'" was reverted because it caused
    failures on ruby 1.8 because Date.next_day and Date.prev_day are not
    public in ruby 1.8 (will the methods are publicly available in ruby 1.9)
    
    Revert the revert and reinstall the original commit to be able to fix
    the issues.

commit 8893d10e6016003b16d2f2d64fed6e6a3e479f15
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jan 29 13:05:31 2013 -0800

    Make envpuppet run under sh

commit 54d348547d5dce95a366c1383474516ee03d0799
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 29 18:09:45 2013 -0800

    Revert "Merge branch 'dalen-xor_operator' closes #1436"
    
    This reverts commit 285bc8c85b5e667d7293e640547aac3bbde75c15, reversing
    changes made to 47771e2892182fe78c34c55c5d433f16d6bb34d1.
    
    This patch is being reverted due to the following concerns raised on the
    pull request comment stream:
    
    XOR is also done with the same precedence as OR - this is has some
    effects:
    
        true or false xor true == false
        false xor true or false == true
    
    Was this intentional? I think this is going to make people confused, as
    opposed to setting the precedence of XOR to be lower (or higher) than OR
    to have a clear order of evaluation.
    
    Also, "Hate to be picky, but this is not 100% backwards compatible. If
    someone used a bare word xor in their manifests this would now not work,
    if someone has written an xor function it is now not callable. If I
    remember correctly using keyword as name is not supported for every
    construct."

commit 285bc8c85b5e667d7293e640547aac3bbde75c15
Merge: 47771e2 acc146e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 29 14:30:55 2013 -0800

    Merge branch 'dalen-xor_operator' closes #1436
    
    * dalen-xor_operator:
      (#18942) Add XOR operator

commit acc146e421dcae01d41d6a08f54ecf049e3e70d5
Author: Erik Dalén <dalen@spotify.com>
Date:   Tue Jan 29 16:08:18 2013 +0100

    (#18942) Add XOR operator
    
    Adds support for the xor boolean operator.

commit 47771e2892182fe78c34c55c5d433f16d6bb34d1
Merge: 8f72f72 d798dc7
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jan 28 18:12:26 2013 -0800

    Merge pull request #1435 from mrwacky42/patch-1
    
    Fix docs for --test.

commit d798dc77941cadfcf9ad6af2d58c9dca169c1046
Author: Sharif Nassar <mrwacky42+github@gmail.com>
Date:   Mon Jan 28 17:51:05 2013 -0800

    Update lib/puppet/application/agent.rb
    
    Fix docs to refer to actual option.

commit 8f72f7273fb537f6ad54ddf5f745f931c9c16a08
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Jan 25 14:04:14 2013 -0800

    Update PUPPETVERSION to 3.1.0-rc2

commit 59815517ac1e163ddee68fa8ac1f6e6c83b222ab
Merge: 0c73145 6308460
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Fri Jan 25 14:59:17 2013 -0800

    Merge pull request #1432 from haus/maint/3.1.x/add_extlookup2hiera_manpages
    
    Add extlookup2hiera manpages to redhat and debian packages

commit 63084604af4f6256a55675e6cbf4a1095e46edc8
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Jan 25 14:46:48 2013 -0800

    Add extlookup2hiera manpages to redhat and debian packages
    
    Now that a manpage exists for extlookup2hiera, it needs to be part of the
    redhat and debian packaging so it can be laid down correctly for those
    packages. This commit adds the manpage to the puppet package on redhat and the
    puppet-common package on debian.

commit 0c73145b0dd6cc1e7ea9f39bbf728c269128357e
Merge: aa58201 88d210e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jan 24 18:17:38 2013 -0800

    Merge pull request #1427 from hlindberg/deprecate-ruby-dsl
    
    Add deprecation warning for use of ruby dsl.

commit 88d210ee297feb7ae48aa66a9e42ea27fe19e63d
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Jan 25 02:27:01 2013 +0100

    (#18876) Add deprecation warning for use of ruby dsl.
    
    This adds a deprecation warning for parsing of ruby based manifests.
    Tests are updated to check that the deprecation warning is issued for
    ruby manifest, but not otherwise.

commit aa5820143691677ba2b4b8583907b1ad21302271
Merge: 24cf110 48b8266
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Thu Jan 24 16:48:01 2013 -0800

    Merge pull request #1426 from pcarlisle/revert-ruby-dsl
    
    Revert ruby dsl

commit 48b8266b8fa6477f792ee33beff01c4dd0186b47
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jan 24 15:21:10 2013 -0800

    Revert "Merge branch 'new-ruby-dsl-by-mlen'"
    
    This reverts commit 751efa9174adfe1bc0a5707855e6ba16ff2aed43, reversing
    changes made to 023cffdbb9b30945fbf4dcaded4f63428ce54ea7.
    
    Conflicts:
    	lib/puppet/dsl/context.rb
    	spec/unit/dsl/context_spec.rb

commit 40877fa9d0c529be69c1be4721507cff16d3911e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jan 24 15:19:51 2013 -0800

    Revert "Don't remove validate_arguments from backtraces"
    
    This reverts commit 368587acfc7a66fc7f95327ab53064e1c89541c5.

commit fc5a50343ddba8e26562d09d8cc102383eab67e0
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jan 24 15:17:04 2013 -0800

    Revert "(yardoc) Fix Ruby DSL yardoc."
    
    This reverts commit 8703898e714ac4fa4f7abbd13d8295bcf1df682e.

commit 0202b9af934c74e08b6790bdca809517477cce86
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jan 24 15:16:11 2013 -0800

    Revert "(#17845) Add @since 3.0.x EXPERIMENTAL to Puppet::DSL (transitive)."
    
    This reverts commit 2c8fc1ecef9a9f58bfe7075db712e2921e8025fa.

commit cd5277f037f6c819a5258b91aff9cff6a328dd20
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jan 24 15:16:03 2013 -0800

    Revert "(yardoc) Correct @since information in the Ruby DSL files."
    
    This reverts commit 61bdb05968e3c5efc14fd710da24bc7f963dcc52.

commit d17a57b14e180f5f353cf63a0a6d35028ff86d37
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jan 24 15:14:58 2013 -0800

    Revert "(yardoc) Refactor status for Puppet DSL; from @since to @status."
    
    This reverts commit 1c26453c7447a9771253e8342c08a67a05750071.

commit 62db41495cf50b1ac87d8d146eb872f77d9d0ad1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jan 24 15:07:58 2013 -0800

    Revert "Merge pull request #1419 from hlindberg/18458-Reload-Ruby-DSL"
    
    This reverts commit 7d0b22ac6df8e1742044831b7e805c09eeacbe8c, reversing
    changes made to 59f4327869d0858ac631277fe98c603941facf3e.

commit 24cf110d8b05759e5b29ac9bcf65b6a59c2f7de9
Merge: b471ea3 f45ec7b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 23 16:06:57 2013 -0800

    Merge branch 'glarizza-bug/master/16271_launchd_restart_action'
    
    * glarizza-bug/master/16271_launchd_restart_action:
      (maint) Whitespace only cleanup of launchd provider
      (#16271) Implement restart action for launchd
    
    closes #1197

commit f45ec7bc910e2b229e549e32690c9d9266521f6b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 23 16:05:59 2013 -0800

    (maint) Whitespace only cleanup of launchd provider
    
    Just removing some trailing whitespace and ugly blank lines.

commit 6718915ffeab0d45322fe91ccc70aed872a26cbf
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Mon Oct 1 20:43:45 2012 -0700

    (#16271) Implement restart action for launchd
    
    Previously, the launchd service provider did not accommodate a restart
    action. If a resource attempted the refresh the service, Puppet triggered
    an alert but did not actually restart the service. This commit adds a
    restart method that calls the stop and then start action on the service
    (since launchd doesn't actually have a restart action). Puppet.debug
    messages are also raised for debugging purposes.

commit b471ea3ce9cf50a598d1ffbc0899370b193174d1
Merge: 64fd71e 4841bdf
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jan 23 13:34:59 2013 -0800

    Merge branch 'issue/master/18636-rdoc-error-when-installing-gem' of git://github.com/zaphod42/puppet
    
    * 'issue/master/18636-rdoc-error-when-installing-gem' of git://github.com/zaphod42/puppet:
      (#18636) Extract named constants for contextual acceptability
      (#18636) Create only one always acceptable Proc
      (#18636) Change to friendlier way of specifying suitability
      (#18636) Remove reference to non-existant token

commit 64fd71e1bb99e574ce22778badc71afda9d76853
Merge: edaa64f ada535e
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Jan 23 13:10:45 2013 -0800

    Merge pull request #1379 from joshcooper/ticket/master/16752-openbsd-pkgconf
    
    (#16752) support pkg.conf on openbsd

commit edaa64f96ebf2fdadfe01550ff63116a933323bd
Merge: 7d0b22a 8df51b6
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Jan 23 12:23:54 2013 -0800

    Merge pull request #1423 from joshcooper/ticket/master/18755-include-prerelease-gems
    
    (#18755) Consider prerelease gems in the search path

commit 7d0b22ac6df8e1742044831b7e805c09eeacbe8c
Merge: 59f4327 95b50f6
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jan 23 10:51:50 2013 -0800

    Merge pull request #1419 from hlindberg/18458-Reload-Ruby-DSL
    
    18458, 18739 reload ruby dsl, make function call work

commit 95b50f6014a0246696fa6296eedc985b0b4fed4c
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jan 23 19:43:02 2013 +0100

    (#18458) Remove unnecessary test in always stale spec.
    
    Test example now removed in favor of a comment pointing to contrasting
    test for LoadedFile.

commit 4841bdfe182b0712e1ba5bc7f6a944d82b985590
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jan 23 09:18:53 2013 -0800

    (#18636) Extract named constants for contextual acceptability
    
    The various context checks used to be written inline. This caused a
    small amount of duplication and provided no name for when the block
    would determine that the token was acceptable. This extracts them all
    into constants and places them inside an inner module in order to keep
    track of them all. In addition the list of tokens that used to be
    constructed for every invocation of several of the blocks are extracted
    out and only created once during setup.

commit cfccce9ed23b9a4d4a6763a279a4eca6fecef15a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jan 23 08:56:52 2013 -0800

    (#18636) Create only one always acceptable Proc
    
    The previous code would create a new Proc that returned true for every
    instance of Token. This commit changes it so that only one is created.
    Although there are a finite number of long lived tokens, extracting the
    Proc out to a constant provides a name for it, which improves
    readability, and reduces the number of objects in memory.

commit 8df51b6e07df56b47fbbd39c8c25bbde4a7f5a9f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 22 21:33:56 2013 -0800

    (#18755) Consider prerelease gems in the search path
    
    Previously, if puppet 3.0.2 and 3.1.0.rc1 gems were installed using
    rubygems version 1.8 or greater, then puppet's autoloader would load
    code from both gems, giving precedence to the older gem.
    
    Puppet's settings code was loading the `Puppet::Type::Group` class from
    the 3.0.2 gem, but trying to call the `#exists?` method that was added
    in 3.1.0rc1, resulting in the "undefined method 'exists?' for nil"
    error.
    
    The root cause was due to `Gem::Specification.latest_specs` ignoring
    prerelease gems, by default, so it would report that the latest spec was
    3.0.2. Yet, executing `require 'puppet'` would activate the prerelease
    gem, 3.1.0.rc1, causing its lib dir to be appended to $LOAD_PATH.
    
    And since Puppet's autoloader combines the rubygems directories and
    $LOAD_PATH (roughly in that order), version 3.0.2 would take precedence.
    
    Note this issue is specific to rubygems 1.8 and up, since when using
    previous versions, puppet calls the deprecated method
    `Gem.latest_load_paths`, which alread considers prerelease gems when
    determining the latest installed gem.
    
    This commit simply modifies the call to `Gem::Specification.latest_spec`
    to consider prerelease gems when determining the latest installed
    version.

commit 59f4327869d0858ac631277fe98c603941facf3e
Merge: 35c8d8d 2961d63
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 22 22:00:56 2013 -0800

    Merge branch 'alexharv074-ticket/3.0.x/17295_puppet_not_sanity_checking_default_digest'
    
    * alexharv074-ticket/3.0.x/17295_puppet_not_sanity_checking_default_digest:
      (#17295) use SHA1 to sign CSRs when SHA256 is not available.
    
    closes #1413

commit 2961d6374c5ef4d38e6bbe60be9be73ab1d1762a
Author: Alex Harvey <alexharv074@gmail.com>
Date:   Mon Jan 14 12:56:57 2013 +1100

    (#17295) use SHA1 to sign CSRs when SHA256 is not available.
    
    Without this patch applied puppet fails to create a CSR
    with the following message -
    
        Error: Could not request certificate: uninitialized constant OpenSSL::Digest::SHA256
    
    This patch adds a class Puppet::SSL::CertificateSigner that
    takes care of signing certificates in CSR creation and via
    the CA.  This class assumes a default hash algorithm of
    SHA256 and if not available falls back to SHA1.  For the
    sake of FIPS 140-2 compliance it does not try MD5 or any
    earlier hash algorithms.

commit 14c394b03d5d0cebd625061583bbb1008291bd95
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jan 23 04:15:52 2013 +0100

    (yardoc) Fix yardoc comments and others after always-stale refactoring
    
    Some yardoc and regular comments did not reflect the change after the
    refactoring.
    
    Also corrects non intentional removal of empty line (debugging cruft).

commit 8da66fd5d253be89e72000d065dd99dc04c974a5
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jan 23 02:42:32 2013 +0100

    (#18458) Refactor "always-stale" LoadedFile into separate class.
    
    This refactors the always-stale functionality in LoadedFile by creating
    a derived class LoadedFileAlwaysStale and changing the initialization
    signature back to the original.
    
    The branch point in type_collection now picks the always-stale class if
    passed true.
    
    The loadedfile_spec is consequently changed back, a separate test added
    for LoadedFileAlwaysStale, and example cases added to
    type_collection_spec (to check if it picks the regular or the always
    stale implementation based on the passed flag).

commit 35c8d8def4fa4e58955338cb886a44906bf16977
Merge: 15fd642 ce73c71
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 22 15:02:58 2013 -0800

    Merge branch 'jeffmccune-committers_doc'
    
    * jeffmccune-committers_doc:
      (docs) Add COMMITTERS.md to guide committers
    
    closes: #1397

commit ce73c7123b7a40f6182941c8b328d5b16bdce6de
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 16 16:08:23 2013 -0800

    (docs) Add COMMITTERS.md to guide committers
    
    Without this patch the information a committer needs to possess in order
    to merge contributions is spread all over the place.  The information is
    also out of date.
    
    This patch addresses the problem by consolidating the information into a
    single place in the root of the project repository itself.
    COMMITTERS.md should replace the following documents:
    
     * http://projects.puppetlabs.com/projects/puppet/wiki/Engineering_Process_Minimal_HOWTO
     * http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Design_Guidelines
     * http://projects.puppetlabs.com/projects/puppet/wiki/Internal_Development_Process
     * http://projects.puppetlabs.com/projects/puppet/wiki/Engineering_done_done
    
    [ci skip]

commit ea6783a7f9de1da1b9578ffbc332c55086b27c56
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 22 14:58:50 2013 -0800

    (maint) Add dependency information for yard and redcarpet
    
    Without this patch `bundle exec yard server --reload` doesn't work.
    This is a problem because people who are developing Puppet need to be
    able to access the API documentation easily and the yard server is one
    such way.  This patch addresses the problem by adding a dependency on
    yard and redcarpet for the development group only.  This will prevent
    the yard and redcarpet gem from sucking in a large number of
    dependencies when running in a CI environment because these environments
    are expected to omit development only dependencies when bootstrapping
    using `bundle install --path vendor --without development`

commit 27719801a2ce19fc67aa7d567af1ad4a944b4e25
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jan 22 23:47:43 2013 +0100

    (#18458) Fix comment typos and removes unwanted required file.
    
    This fixes typos in comments and instead of just copying the same text
    in two location, there is now an updated explanation for what needs to
    be checked later in the typeloader case. The two locations "compiler"
    and "type_loader" now cross reference each other in the comments.
    
    An unused require was also removed.

commit 2b7231213710bb95ea1bbc0b355c7edf5acd99b3
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Jan 22 23:36:44 2013 +0100

    (#18458) Add test that "always stale" mode is supported for LoadedFile.
    
    This checks that the always stale mode for LoadedFile works.
    Later, this test (and the implementaton) may be removed as it is the
    intent to also be able to only do on demand reparsing of Ruby DSL.

commit ada535e3a125d383404f65bf7c0fc0aa90395507
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 22 12:12:37 2013 -0800

    (#16752) Refactor spec test
    
    Previously, the spec test replicated logic for how pkgadd is invoked,
    and did so inconsistently  -- whenever the resource's source ends in a
    slash, the get_version method gets called which invokes `pkginfo -I
    bash`, and the corresponding expectation was only sometimes set.
    
    This commit moves to two types of install expectations to helper
    methods, converts the test to use `let` blocks, and sets the parameters
    on the resource directly, instead of needing to define a `package`
    method. It also adds a test to ensure the source parameter is updated.

commit 15fd6425eaaaa7dd7510d7d1f5912627158948a2
Merge: 7836696 79b2ddb
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 22 12:33:55 2013 -0800

    Merge branch 'omcnet-fix/master/keywords_support_in_portage_provider'
    
    * omcnet-fix/master/keywords_support_in_portage_provider:
      Add tests for gentoo provider
      Fix portage-provider so that packages with keywords can be installed
    
    closes #1403

commit 79b2ddb8002f23cd742efecd5a763c5aaa4eee5c
Author: l <technik@omc.net>
Date:   Tue Jan 22 16:04:24 2013 +0100

    Add tests for gentoo provider

commit 9e7bf07580d79e5b68d28cc594162959cf2a8d7d
Author: l <technik@omc.net>
Date:   Thu Jan 17 15:29:25 2013 +0100

    Fix portage-provider so that packages with keywords can be installed
    
    This patch removes the --stable restriction from the portage provider,
    which made the installation of packages with keyword-restrictions impossible.
    By superimposing this restriction the provider broke in many installations
    and thus rendered puppet unusable for systems that relied on packages with
    keyword-restrictions. This applies for example to all packages provided by
    overlays.
    This fix puts the administrator back into the responsibility to decide which
    packages he/she wants to install.

commit ca4b4238b404f8e91858957b9596e7e6d91faae9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jan 18 13:53:43 2013 -0800

    (#16752) Added additional tests and allow key=value
    
    This commit adds tests to improve regexp detection. It also modifies the
    regexp to accept `installpath=path`, as openbsd does not require spaces
    around the equals sign.

commit b286234865054cb9b8a0879347040a3667315866
Author: l <technik@omc.net>
Date:   Tue Jan 22 16:04:24 2013 +0100

    Add tests for gentoo provider

commit 387de558ee6aaa67052557ada11237661019801e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jan 19 17:58:05 2013 +0100

    (#18739) Make calling functions from Ruby DSL work.
    
    The implementation called a function such as "include" on the scope,
    when it should have used "function_include". It also did not pass
    arguments in an array as expected by the scope.

commit 5393213c7c5523e46d174414ac37456b2f41a3f4
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sat Jan 19 17:15:27 2013 +0100

    (#18458) Make Ruby DSL manifests always reload.
    
    Ideally it should be possible to cache Ruby DSL manifests and reload on
    demand when a change is detected. Other issues prevent this at the
    moment.
    
    This change adds the ability to watch a file with an "always stale"
    option. This ensure that the cached environment will be recomputed the
    next time an agent checks in.
    
    The "always stale" option is used at the two locations where a Ruby DSL
    is parsed (for the site manifest, and when loading types).

commit 7836696060eb92361f907ba6df75a726f0d09289
Merge: 9442b01 fc4811d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jan 18 14:32:29 2013 -0800

    Merge branch 'ticket/14782-pmt-respect-environments'
    
    * ticket/14782-pmt-respect-environments:
      (#14872) PMT respect environment's module path

commit fc4811d92079338f056bf2e1f6febee0e25c0c18
Author: mruzicka <michal.ruzicka@cloudsmith.com>
Date:   Fri Dec 28 15:01:44 2012 +0100

    (#14872) PMT respect environment's module path
    
    This is a second version of a patch which fixes the
    Puppet::ModuleTool#set_option_defaults method such that it respects
    the specified environment (if any) when determining the default
    value for the --target-dir (the modules install directory) option.
    The patch overhauls the entire method in the process to make it more
    readable, and it also updates relevant unit tests and adds a pair
    of new acceptance tests (which in contrast to the original patch
    version don't depend on augeas).
    
    Reviewed by: Patrick Carlisle <patrick@puppetlabs.com>

commit e32912a5bbd6ab3568ef64a76fcc564164b738c8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 7 16:26:27 2013 -0800

    (#16752) Better installpath validation
    
    Previously, if pkg.conf contained an invalid installpath, then the
    openbsd package provider would accept it and set it as the package
    source. For example, `installpath`, `installpath=`,
    `installpath=/path`.
    
    This commit adds better input validation, so that we only set the
    package source if the regexp matches, otherwise we raise.

commit 49bfde0b8ab1d4c3a6443b3c9d10a9f48b70bc41
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jan 4 16:31:50 2013 -0800

    (#16752) Add tests for reading installpath from /etc/pkg.conf
    
    This commit adds tests for reading installpath from /etc/pkg.conf in the
    case that a 'source' has not be specified for the package.

commit 6a68c1349dd9cf9e5384a840d323b574648b35ec
Author: Jasper Lievisse Adriaanse <jasper@humppa.nl>
Date:   Wed Nov 28 14:16:40 2012 -0800

    (#16752) Add support for pkg.conf on openbsd
    
    Previously only local file sources were supported for openbsd
    packages. Pkg.conf is a mechanism that openbsd uses to download
    packages from HTTP sources as well. This patch adds checking for
    the presence of 'installpath' lines in pkg.conf and, if one
    are found and if the last character of an installpath line is a
    ::File::SEPARATOR (aka `/` character on openbsd) then it will
    become the value of the environment variable PKG_PATH previous to
    pkgadd invocation, which tells pkgadd to use the URL.

commit 9442b019e4f7710979d7aa44d76496fa49cbb08b
Merge: da88ed2 71fba90
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Jan 17 17:42:22 2013 -0800

    Merge branch '3.0.x'

commit 71fba90b31be2ae6e4133e868cfb7f0ad19ce947
Merge: 96cd436 f6edbb9
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Jan 17 17:41:13 2013 -0800

    Merge branch '2.7.x' into 3.0.x
    
    Keep 3.0.x Build-Depends of ruby (not the 2.7.x Build-Depends of ruby1.8)
    
    Conflicts:
    	ext/debian/control

commit f6edbb9215465abb0b49cb2d2edbbea6973830df
Merge: f8a8496 1fec5c8
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Thu Jan 17 17:29:44 2013 -0800

    Merge pull request #1412 from haus/ticket/2.7.x/17777_update_build_depends
    
    (#17777) Update debian build-depends to only use ruby1.8

commit 1fec5c8933228560424a0fa837291f4b4c749dca
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Jan 17 11:17:30 2013 -0800

    (#17777) Update debian build-depends to only use ruby1.8
    
    Previously puppet had a build-depends of ruby, which means that on wheezy and
    quantal, the default ruby of ruby1.9 was used to build puppet. Unfortunately,
    this means that the shebangs for bin/puppet refer to bin/ruby1.9.1 instead of
    ruby1.8. Puppet 2.7.x is installed in the ruby 1.8 specific libdir for ruby, so
    ruby1.9.1 has no way of loading puppet in this case. This commit updates the
    build-depends to correctly use ruby1.8 only, so bin/puppet gets the correct
    ruby which can load the correct libraries.
    Note: in mergeups from 2.7.x, this
    needs to be undone. The build-depends of ruby is correct for puppet 3 and
    later.

commit da88ed27944951323526883ebd87f181a004f719
Merge: 3d09c88 1f8c2c6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jan 17 13:47:06 2013 -0800

    Merge branch 'jaredcurtis-fix/master/15980'
    
    * jaredcurtis-fix/master/15980:
      (#15980) wrapping tests so that they're tested on both 'RedHat' and 'Not Redhat' sytems
      (#15980) Tests to confirm functionality of the cmd function
      (#15980) Test to verify that pip-python is used on Redhat systems
      (#15980) The pip provider doesn't work correctly on redhat based systems
    
    closes: #1348

commit 1f8c2c6f3c89c4a353eab837ce5190e4c7cc09bc
Author: Jared Curtis <jcurtis@ncircle.com>
Date:   Fri Dec 21 13:30:35 2012 -0800

    (#15980) wrapping tests so that they're tested on both 'RedHat' and 'Not
    Redhat' sytems

commit 32314ca678b58e945af08582674de6777c5ca12d
Author: Jared Curtis <jcurtis@ncircle.com>
Date:   Fri Dec 21 12:02:36 2012 -0800

    (#15980) Tests to confirm functionality of the cmd function

commit 2aca0cf15f994fc9a2a03d5d9af2833a0a6a041e
Author: Jared Curtis <jcurtis@ncircle.com>
Date:   Thu Dec 20 23:40:07 2012 -0800

    (#15980) Test to verify that pip-python is used on Redhat systems

commit 2023d6da05fad968feacfdfecdd0735577065caf
Author: Jared Curtis <jcurtis@ncircle.com>
Date:   Thu Dec 20 23:29:40 2012 -0800

    (#15980) The pip provider doesn't work correctly on redhat based systems
    
    Centos/RHEL/Fedora all use pip-python instead of pip

commit 3d09c88891a39314c1fecb1535eb5c227755bc19
Merge: 70267d4 369c000
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Thu Jan 17 11:49:20 2013 -0800

    Merge pull request #1404 from pdxmph/master
    
    (#18468) Further clarify messages in defaults for Debian init scripts.

commit 369c0006cd8eebd6b35b4595c8767e3442fb0a10
Author: Michael Hall <michael.hall@puppetlabs.com>
Date:   Thu Jan 17 11:11:13 2013 -0800

    Clarify the messages provided by the Debian puppet agent and master init scripts.

commit 70267d4ff62a421cf515bac4920b50e546ad9f64
Merge: 4f42285 611ea6e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jan 17 10:29:24 2013 -0800

    Merge pull request #1396 from pcarlisle/ticket/180260-selinux-stat-warnings
    
    (#18026) Don't warn on failed stats for selinux context

commit 3003b9f2aa339d6a73f7fe203722b56e440990bc
Author: l <technik@omc.net>
Date:   Thu Jan 17 15:29:25 2013 +0100

    Fix portage-provider so that packages with keywords can be installed
    
    This patch removes the --stable restriction from the portage provider,
    which made the installation of packages with keyword-restrictions impossible.
    By superimposing this restriction the provider broke in many installations
    and thus rendered puppet unusable for systems that relied on packages with
    keyword-restrictions. This applies for example to all packages provided by
    overlays.
    This fix puts the administrator back into the responsibility to decide which
    packages he/she wants to install.

commit 611ea6e726611003f43b17598c98f72e11f58ba5
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jan 16 17:24:31 2013 -0800

    (#18026) Don't warn on failed stats for selinux context
    
    We try to stat files to determine the default selinux context. This may happen
    before the file exists. A warning was recently added, and it seems to just be
    confusing and noisy, so this removes it.

commit 4f42285c808b5c75ddf23cd3d52293c5cfcfe09c
Merge: 3e89512 1500ee0
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Wed Jan 16 17:03:31 2013 -0800

    Merge pull request #1391 from zaphod42/issue/master/18468-confusing-message-in-deb-install
    
    (#18468) Clarify message in defaults for debian

commit 3e8951254f3cbf6d87962095992ff761af248e4d
Merge: 376dc8b 3ec077a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jan 16 15:55:24 2013 -0800

    Merge pull request #1395 from jjulien/bug#18662
    
    bug #18662 Fixed rpsec issue for useradd on Red Hat

commit 376dc8b93b7d985fe80a762cc29932e24b691884
Merge: 631e3f2 ea8901e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 16 15:25:29 2013 -0800

    Merge branch 'ryanuber-rpm-file-attr-workaround'
    
    closes #1385
    
    By Ryan Uber:
    * ryanuber-rpm-file-attr-workaround:
      Work-around for RH Bugzilla 681540 (defattr overrides in-line attr)

commit ea8901ee50a4b571ea1d4eac5bceecc638afa04e
Author: Ryan Uber <ru@ryanuber.com>
Date:   Wed Jan 9 18:39:49 2013 -0800

    Work-around for RH Bugzilla 681540 (defattr overrides in-line attr)

commit 631e3f24600efebefb17a1d1d2cb28490edcb926
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jan 16 13:40:02 2013 -0800

    Revert "Maint: Add ronn dependency for building man pages"
    
    This reverts commit 758d3a5b5e610e6bb668bae432acb400baf939fe.
    
    Bundle install installs all gems, including those in the development
    group. But the ronn gem requires the devkit on Windows. Since we are
    planning on moving the man page generation as a packaging step, I'm
    reverting this.

commit 45356089df557319b27b7be7261ce4aa67267954
Merge: 30b5ed1 fdf1d9e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jan 16 11:55:29 2013 -0800

    Merge pull request #1393 from joshcooper/maint/master/generate-manpages
    
    Regenerate manpages

commit 30b5ed1a5289bb3fda3ae9b69826dec8ac0a978d
Merge: 9595500 88735d4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jan 16 10:49:15 2013 -0800

    Merge pull request #1392 from joshcooper/maint/master/deprecate_dynamicfacts
    
    Maint: Deprecate dynamicfacts setting

commit 3ec077ae40b66f44b675198f8185d00145def1e1
Author: John Julien <john@julienfamily.com>
Date:   Wed Jan 16 06:01:35 2013 -0600

    (#18662) cleaned up #check_manage_home and #create test cases

commit b9ac0155c81da8965b7112ddff1b483c000f01fb
Author: John Julien <john@julienfamily.com>
Date:   Wed Jan 16 04:26:05 2013 -0600

    (#18662) Rewrote test case to stub out check_manage_home to account for RedHat systems

commit 2e68573f8b30e11d54765447101079c689bd7848
Author: John Julien <john@julienfamily.com>
Date:   Tue Jan 15 23:02:59 2013 -0600

    Fixed rpsec issue for useradd on Red Hat

commit ca1f946e60b5462705e3b3870c83094275b34551
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jan 15 15:14:45 2013 -0800

    (#18636) Change to friendlier way of specifying suitability
    
    The previous way of setting the suitability of a token was very hard to
    grasp for my feeble mind. It also caused RDoc to have problems parsing
    the code unless developers were always aware that they had to enclose
    the method definitions in stopdoc/startdoc.
    
    This changes it to provide a proc that determines suitability rather
    than trying to change the class after the fact. There may be a small
    performance hit because it is now two method calls, but I think this is
    much more maintainable.

commit 2699b7fd35edadc71b38ed3fa5b13274ab472baa
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jan 15 15:24:50 2013 -0800

    (#18636) Remove reference to non-existant token
    
    There is no CLASSNAME token. By trying to create the acceptable? method
    for it the code actually created the acceptable? method on nil.

commit fdf1d9e3b5e2231daf5ddf26f1460e1dbb3c972a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 15 12:48:34 2013 -0800

    Maint: Update man pages
    
    Updated the man pages via the `rake gen_manpages` task.

commit 758d3a5b5e610e6bb668bae432acb400baf939fe
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 15 12:22:49 2013 -0800

    Maint: Add ronn dependency for building man pages
    
    Add missing dependency so that the `rake gen_manpages` task works.

commit 88735d4237736d0a36ee82ba3dc0e13c52c0d465
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 15 11:49:35 2013 -0800

    Maint: Deprecate dynamicfacts setting
    
    The dynamicfacts setting was used to avoid recompiling catalogs when
    only transient related facts were modified, e.g. free memory. According
    to Luke, this optimization was removed when "we disabled staleness
    checking for catalogs, which was early in the 0.24 release cycle", see
    ticket #569.
    
    This commit deprecates the setting rather than removing it, because it
    the setting was actually used at one time, unlike `ca_md`.

commit 1500ee0b32f1d36efbc6901330ffbb85b20a6f66
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jan 15 12:02:22 2013 -0800

    (#18468) Clarify message in defaults for debian
    
    The comment that tried to explain the START property did not clearly
    align with the message generated by the installation:
    
      Setting up puppet (3.1.0-0.1rc1puppetlabs1) ...
      Starting puppet agent
      puppet not configured to start, please edit /etc/default/puppet to
      enable
      .
    
    This changes the comment in the file to include the word "Enable" so
    that a user can more confidently match it up to the "enable" word that
    shows up in the message. It also explains the effect of the different
    values.

commit 95955007dd89c00b98cd3bf4b2221e614538851f
Merge: fa4e395 b3af03c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 15 10:54:36 2013 -0800

    Merge branch 'adregner-fix/master/service_upstart_class_variable_access'
    
    * adregner-fix/master/service_upstart_class_variable_access:
      (#17713) make upstart_version an instance variable

commit b3af03c0fe85cc1e2dd5ac3b625f8f59b987db81
Author: Andrew Regner <andrew@aregner.com>
Date:   Sun Nov 18 23:34:16 2012 -0600

    (#17713) make upstart_version an instance variable
    
    This fixes the bug in some later versions of ruby which causes warnings
    to be thrown when this class variable gets set from an instance of the
    class.

commit fa4e3952926915d0d63e82fbc1949c301193ed29
Merge: 1ddcb5e 269a709
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jan 14 23:08:46 2013 -0800

    Merge branch 'reidmv-fix/master/formats_render_empty_hash'
    
    * reidmv-fix/master/formats_render_empty_hash:
      Fix empty hash console rendering bug
    
    closes #1380

commit 269a709905a06125bd7e8ce7abddcc66ffe82236
Author: Reid Vandewiele <reid@puppetlabs.com>
Date:   Tue Jan 8 10:59:10 2013 -0800

    Fix empty hash console rendering bug
    
    Previously, if a face action returned an empty hash Puppet would print
    out an error something like the following:
    
        err: undefined method `+' for nil:NilClass
        err: Try 'puppet help stack build' for usage
    
    The cause of the error was a method in network/formats.rb that did not
    account for the possibilty of an empty hash. This commit resolves the
    issue by adding logic to account for the empty hash scenario, rendering
    an empty hash as an empty string.

commit 1ddcb5e511e131645cfa89305784f66427374287
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jan 14 22:46:37 2013 -0800

    Revert "Merge branch 'stschulte-ticket/master/fixup_expiry'"
    
    This reverts commit ba6de834e4ef68926386fb6ccdcb657cf9ebe5a4, reversing
    changes made to 0f1de9a3926842fd3a4167e5fecf81f5fefe80b7.
    
    Reverted due to [build failure](http://goo.gl/9DQYF)

commit 338c78f6968a7a84acdf8c3e4ab4586399c04c62
Merge: ba6de83 c685573
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jan 14 22:28:01 2013 -0800

    Merge pull request #1384 from joshcooper/ticket/master/18440-macosx-service
    
    (#18440) Don't make class methods private

commit ba6de834e4ef68926386fb6ccdcb657cf9ebe5a4
Merge: 0f1de9a ee34c26
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jan 14 19:24:37 2013 -0800

    Merge branch 'stschulte-ticket/master/fixup_expiry'
    
    * stschulte-ticket/master/fixup_expiry:
      (#11675) Fix test failures in ruby 1.8.7
      Revert "Revert "Merge branch 'stschulte-ticket/master/11675_implement_expiry_retrieve'""

commit 0f1de9a3926842fd3a4167e5fecf81f5fefe80b7
Merge: 3f96ecd 30e1153
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jan 14 17:10:56 2013 -0800

    Merge pull request #1390 from joshcooper/maint/master/remove-ca_md-setting
    
    Maint: Remove dead ca_md setting

commit 30e115330b52d54dd47f6e117e0dd80f9f2e795a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 14 16:44:59 2013 -0800

    Maint: Remove dead ca_md setting
    
    The `ca_md` setting was added in commit bb4b5a54 in Aug 2005, but was
    never used in that commit or any subsequent commit.
    
    The setting itself is also confusing, because we create digital
    signatures on both the agent (when signing the CSR) and the CA (when
    signing the x509 cert).
    
    It's also confusing because both encryption and hash algorithms need to
    be specified when creating a digital signature, e.g.
    sha256WithRSAEncryption. But the existence of the `ca_md` property might
    encourage patches to allow the hash algorithm to be configured, but not
    the encryption algorithm.
    
    Long term, we'd like to eliminate hard coding of cryptographic
    parameters, as it makes it difficult to upgrade while maintaining
    compatibility across different versions of master and agents.

commit ee34c26b8c256adbf1ba3b58267a659d360c38d7
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Jan 14 23:53:21 2013 +0100

    (#11675) Fix test failures in ruby 1.8.7
    
    The spec tests for the Puppet::Type.addcmd method failed on ruby 1.8.7.
    
    The addcmd method builds a commandline to execute `useradd` with
    appropiate command line arguments. To build the commandline
    `add_properties` gets called which in turn calls
    `Puppet::Type.validproperties`. The order in which properties are returned
    can be considered undefinied so the whole `useradd` commandline can include
    arguments in random order. While the randomness does not make a difference for
    the useradd executable it causes spec failures on some systems.
    
    Sort the properties when building the useradd commandline. This way the
    result is consistent across all ruby versions and easier to test.

commit b46c16325f358a5e5d45d7693066406bb17772c1
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Jan 14 23:06:45 2013 +0100

    Revert "Revert "Merge branch 'stschulte-ticket/master/11675_implement_expiry_retrieve'""
    
    This reverts commit 3f96ecdc6dec2bb724cb60a36970f6199757e42a.
    
    The original commit series around issue 11675 have been reverted because
    they caused test failures and the policy is to revert such commits.
    
    Restore the commit series to be able to fix the failing tests.

commit 3f96ecdc6dec2bb724cb60a36970f6199757e42a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jan 14 10:35:18 2013 -0800

    Revert "Merge branch 'stschulte-ticket/master/11675_implement_expiry_retrieve'"
    
    This reverts commit ef7e01a0ae238969b29c97c263a1d37be3f05d5d, reversing
    changes made to fe573ff61ffd0f04150a8aff20b126285d26b18e.
    
    I'm reverting this commit because the spec tests are not passing on Ruby
    1.8.7.  The following error is being raised in CI http://goo.gl/ruC4e
    
    Failures:
    
      1) Puppet::Type::User::ProviderUseradd#addcmd should return an array with full command
         Failure/Error: provider.addcmd.must == ['/usr/sbin/useradd', '-G', 'somegroup', '-e', '2012-08-18', '-o', '-m', '-r', 'myuser']
           expected: ["/usr/sbin/useradd", "-G", "somegroup", "-e", "2012-08-18", "-o", "-m", "-r", "myuser"]
                got: ["/usr/sbin/useradd", "-e", "2012-08-18", "-G", "somegroup", "-o", "-m", "-r", "myuser"] (using ==)
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/expectations/fail_with.rb:33:in `fail_with'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/matchers/operator_matcher.rb:47:in `fail_with_message'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/matchers/operator_matcher.rb:69:in `__delegate_operator'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/matchers/operator_matcher.rb:59:in `eval_match'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/matchers/operator_matcher.rb:28:in `=='
         # /mnt/workspace/Puppet Specs (master)/gemset/@noFeatures/ruby/ruby-1.8.7/rvm/#rvm/spec/unit/provider/user/useradd_spec.rb:234
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `instance_eval'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:77:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:355:in `run_examples'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `map'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `run_examples'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:337:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `map'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `map'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/reporter.rb:34:in `report'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:25:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `autorun'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/bin/rspec:19
    
      2) Puppet::Type::User::ProviderUseradd#addcmd should pass -e " " on solaris if the expiry has to be removed
         Failure/Error: provider.addcmd.must == ['/usr/sbin/useradd', '-G', 'somegroup', '-e', ' ', '-o', '-m', '-r', 'myuser']
           expected: ["/usr/sbin/useradd", "-G", "somegroup", "-e", " ", "-o", "-m", "-r", "myuser"]
                got: ["/usr/sbin/useradd", "-e", " ", "-G", "somegroup", "-o", "-m", "-r", "myuser"] (using ==)
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/expectations/fail_with.rb:33:in `fail_with'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/matchers/operator_matcher.rb:47:in `fail_with_message'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/matchers/operator_matcher.rb:69:in `__delegate_operator'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/matchers/operator_matcher.rb:59:in `eval_match'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/matchers/operator_matcher.rb:28:in `=='
         # /mnt/workspace/Puppet Specs (master)/gemset/@noFeatures/ruby/ruby-1.8.7/rvm/#rvm/spec/unit/provider/user/useradd_spec.rb:247
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `instance_eval'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:77:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:355:in `run_examples'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `map'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `run_examples'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:337:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `map'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `map'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/reporter.rb:34:in `report'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:25:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `autorun'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/bin/rspec:19
    
      3) Puppet::Type::User::ProviderUseradd#addcmd should pass -e "" on other systems if the expiry has to be removed
         Failure/Error: provider.addcmd.must == ['/usr/sbin/useradd', '-G', 'somegroup', '-e', '', '-o', '-m', '-r', 'myuser']
           expected: ["/usr/sbin/useradd", "-G", "somegroup", "-e", "", "-o", "-m", "-r", "myuser"]
                got: ["/usr/sbin/useradd", "-e", "", "-G", "somegroup", "-o", "-m", "-r", "myuser"] (using ==)
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/expectations/fail_with.rb:33:in `fail_with'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/matchers/operator_matcher.rb:47:in `fail_with_message'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/matchers/operator_matcher.rb:69:in `__delegate_operator'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/matchers/operator_matcher.rb:59:in `eval_match'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-expectations-2.9.1/lib/rspec/matchers/operator_matcher.rb:28:in `=='
         # /mnt/workspace/Puppet Specs (master)/gemset/@noFeatures/ruby/ruby-1.8.7/rvm/#rvm/spec/unit/provider/user/useradd_spec.rb:255
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `instance_eval'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:77:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:355:in `run_examples'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `map'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `run_examples'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:337:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `map'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `map'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/reporter.rb:34:in `report'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:25:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `autorun'
         # /home/jenkins/.rvm/gems/ruby-1.8.7-p358@noFeatures/bin/rspec:19

commit ef7e01a0ae238969b29c97c263a1d37be3f05d5d
Merge: fe573ff 0f9c82e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jan 13 14:11:18 2013 -0800

    Merge branch 'stschulte-ticket/master/11675_implement_expiry_retrieve'
    
    * stschulte-ticket/master/11675_implement_expiry_retrieve:
      (#11675) Refactor useradd provider
      (#11675) Implement expiry in user provider
      (#11675) Add value munging for nameservice provider
      maint: Improve test coverage for nameservice provider
      maint: Add specs for password min age/max age
      (#11675) Remove duplicate flag on useradd

commit 0f9c82ef61ba21d8ca33630ab7105d82ce89d286
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jan 13 13:18:29 2013 +0100

    (#11675) Refactor useradd provider
    
    The useradd provider is a subclass of the nameservice provider and all
    the property retrieval and property installation is handled in the
    nameservice class.
    
    This works for most properties but does not work for properties that can
    be installed with usermod but cannot be retrieved with Etc.getpwnam. The
    useradd provider defines special getter methods for these properties
    (password_max_age, password_min_age, password, expiry). Because all of
    these more or less look exactly the same we can remove duplicate code.

commit aebe40089c6b54d20e4509f52f2892a6c67adeca
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jan 13 14:22:35 2013 +0100

    (#11675) Implement expiry in user provider
    
    The useradd and pw provider claim to support expiry of user accounts.
    And while they seem to be able to *set* the expiry, they don't seem to
    implement any way to *get* the current value.
    
    While this is still true for the pw provider (I am not familiar with
    AIX) it should now work correctly with the useradd provider.
    
    The expiry property uses munging at a provider level to convert
    correctly to and from :absent (useraccount should not expire).

commit 1541653907c159fc4f0bf335df0866ca7b715841
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jan 13 14:20:09 2013 +0100

    (#11675) Add value munging for nameservice provider
    
    The nameservice provider defines a helper method `options` to specify
    the flag for a property that will be used when creating the appropiate
    useradd/usermod commandline. This commit now adds the options `munge` and
    `umunge` to define methods that will automtically transformed the
    property value when building the useradd/usermod command or when
    retrieving the current value.
    
    This munging is realized at a provider level so a unified value can be
    used at a resource type level to represent different values at a
    provider level.
    
    One future use case could be the expiry property. We can define a value
    of :absent at a resource type level to represent "account should not
    expire" and represent it as '00-00-0000' in the pw provider and as ' '
    in the useradd provider.

commit c3d1907775ab667de5180558a8a6fc730f8d419b
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Dec 12 20:55:35 2012 +0100

    maint: Improve test coverage for nameservice provider
    
    The nameservice provider lacks a spec file so I tried to cover the most
    important methods.
    
    The changes to the nameservice provider itself do not imply any functional
    changes or changes in behaviour and are just there to make writing specs
    easier.

commit 3f0aec85dd7e02381ac283cd0928a918d0a2ac76
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu Nov 1 20:46:22 2012 +0100

    maint: Add specs for password min age/max age

commit 0f034bde7bcddfc8172464f259ab06e553bb9165
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Tue Oct 16 22:30:08 2012 +0200

    (#11675) Remove duplicate flag on useradd
    
    The check in the useradd provider caused puppet to add the expiry flag
    twice when adding a user.
    
    The addproperties method does already add the expiry flag to the
    argument list. The default flag (dash and first letter of the property)
    does also match what useradd expects, so everything just works "out of
    the box".
    
    The old method does also caused puppet to pass "-e EXPIRY" as ONE
    argument instead of two. Kind of surprising that useradd actually does
    not complain about that.

commit fe573ff61ffd0f04150a8aff20b126285d26b18e
Merge: 3671dcf 04084a9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jan 10 14:51:24 2013 -0800

    Merge pull request #1383 from Aethylred/fix/master/string_miscast_settings.rb
    
    Cast fqdn as string for gsub

commit 3671dcfc5d23fe6555c4c8e5422e49d0cf093e2e
Merge: f75abbd 3242788
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 9 16:54:51 2013 -0800

    Merge branch 'jjperry69-17716/master/17716_HPUX_user_provider'
    
    * jjperry69-17716/master/17716_HPUX_user_provider:
      (maint) Re-indent the HPUX user provider file
      (#17716) Improve the provider spec tests for hpux password management
      (#17716) HPUX_user_provider Updated to allow user provider to manage passwords on hpux in either normal or trusted computing modes. Updated spec file to make sure changes are in place. Specifically manages_passwords, user exists and password function returns a password.

commit 32427887851cecdb83ed0fcf8e025d4f6d1c201f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 9 16:50:59 2013 -0800

    (maint) Re-indent the HPUX user provider file
    
    Without this patch the hpux user provider uses 4 space soft tabs.  This
    patch re-formats the file to our 2 space soft tab standard.

commit 083719b1f596c16ee9f060130215148355f68b39
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 9 16:48:24 2013 -0800

    (#17716) Improve the provider spec tests for hpux password management
    
    Without this patch the behavior tests for the HPUX user provider are
    failing with this error:
    
        Failures:
          1) Puppet::Type::User::ProviderHpuxuseradd should return password entry if exists
             Failure/Error: @provider.password.should be_true
               expected: true value
                    got: nil
             # ./spec/unit/provider/user/hpux_spec.rb:43:in `block (2 levels) in <top (required)>'
    
    This patch fixes the problem by updating the spec tests to stub only when
    necessary.

commit c685573733b46a1c4c82292bb23285d86ca4b658
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jan 9 16:04:46 2013 -0800

    (#18440) Don't make class methods private
    
    Previously, the launchd service provider `enabled?` instance method was
    calling the `launchd_overrides` private class method, which is not
    allowed. This issue wasn't noticed, because the spec test was overly
    stubbing the provider.
    
    This commit makes the class methods public to avoid these sorts of
    problems in the future.

commit 5ebd0d5d609e8ba1fd1d3907fbc4d3cd45292a44
Author: James Perry <jjperry69@gmail.com>
Date:   Mon Jan 7 13:04:05 2013 -0500

    (#17716) HPUX_user_provider
    Updated to allow user provider to manage passwords on hpux in either
    normal or trusted computing modes. Updated spec file to make sure
    changes are in place. Specifically manages_passwords, user exists and
    password function returns a password.

commit 04084a9fc774340d80c5708d6eb1283d5b4f154f
Author: Aaron Hicks (Shiny-XPS) <hicksa@landcareresearch.co.nz>
Date:   Thu Jan 10 12:49:29 2013 +1300

    Cast fqdn as string for gsub

commit f75abbd1f39f4ca0871ee77854ad6e9c751031f6
Merge: 6766bf7 a5ebbcf
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Jan 9 14:44:12 2013 -0800

    Merge branch 'release/3.1.x/3.1.0-rc1'

commit 6766bf7ffa26303cbf3d988996635e547c441190
Merge: 922401c 9ca4833
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 9 10:22:41 2013 -0800

    Merge branch 'fix/master/14872_revert_pmt_modulepath'
    
    * fix/master/14872_revert_pmt_modulepath:
      Revert "Merge branch 'mruzicka-ticket/master/14872-PMT-respect-environments'"

commit a5ebbcf4944101af3e03f1bb5146e21fd099c69e
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Jan 9 10:21:38 2013 -0800

    Update PUPPETVERSION to 3.1.0-rc1

commit 9ca4833755862c1cf7f36150fc7dd035d1ffbfe5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 9 10:17:27 2013 -0800

    Revert "Merge branch 'mruzicka-ticket/master/14872-PMT-respect-environments'"
    
    This reverts commit 832dc76fe7305e3efebd4220498ad0353fbf8ab8, reversing
    changes made to 7490e18b915b50f7ee0204332d5dad20408cc8f1.

commit 922401cea83cfb85fc890f7f35a07505b09820f3
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jan 9 03:07:47 2013 +0100

    (yardoc) Fix mixup of 'is' vs. 'should' in Type#[](name) yardoc.
    
    The method was documented to return the 'is' value when it should have
    been the 'should' value. This commit corrects this.

commit 832dc76fe7305e3efebd4220498ad0353fbf8ab8
Merge: 7490e18 310f028
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 8 10:50:07 2013 -0800

    Merge branch 'mruzicka-ticket/master/14872-PMT-respect-environments'
    
    * mruzicka-ticket/master/14872-PMT-respect-environments:
      (#14872) PMT respect environment's module path

commit 310f028c76964689a275c9f5ace6ab9d53fb316e
Author: mruzicka <michal.ruzicka@cloudsmith.com>
Date:   Fri Dec 28 15:01:44 2012 +0100

    (#14872) PMT respect environment's module path
    
    This patch fixes the Puppet::ModuleTool#set_option_defaults method such that
    it respects the specified environment (if any) when determining the default
    value for the --target-dir (the modules install directory) option.
    The patch overhauls the entire method in the process to make it more readable,
    and it also updates relevant unit tests and adds a pair of new acceptance
    tests.

commit 7490e18b915b50f7ee0204332d5dad20408cc8f1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jan 7 17:53:01 2013 -0800

    (Maint) Use --api instead of generic --query in yardopts

commit 59c8729488aba1422b4363918cfd6fff9cf6f499
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jan 7 17:35:09 2013 -0800

    (Maint) Only show YARD docs for methods tagged with @api
    
    Without this, docs are generated for any method with a comment before it. They
    have the same appearance as methods marked public API. Rather than give the
    appearance that these are public, this makes it so only methods that have been
    given an explicit api classification are displayed. This will be very few at
    first, but lets us grow our API specification in a more dependable way.
    
    This also hides (void) on methods that don't return a meaningful value. Since
    void is not a meaningful term in Ruby, this seemed to give the most intuitive
    output.

commit cdd6b875702d7bb992cc81c1ca5dcc414794e0ef
Merge: b3c93a9 b73b289
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Mon Jan 7 16:47:38 2013 -0800

    Merge pull request #1375 from MosesMendoza/ticket/18394/fix_redhat_packaging
    
    (#18394) Remove puppet-queue.conf from redhat spec

commit b3c93a9fcd18e435055360bd0c350c06a0730281
Merge: 10a7945 71f70f3
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jan 7 16:43:57 2013 -0800

    Merge branch 'adrienthebo-maint/master/remove_unused_transaction_attributes'
    
    * adrienthebo-maint/master/remove_unused_transaction_attributes:
      (maint) remove unused attributes from transaction

commit 71f70f3ebaa03cd8b86fce178630d6aa618d3529
Author: Adrien Thebo <adrien@puppetlabs.com>
Date:   Tue Sep 4 11:08:24 2012 -0700

    (maint) remove unused attributes from transaction
    
    The :component attr_accessor became obsolete in
    4741eeff6bae987c9dfa9e06e2908ae91daa4d16, and the :configurator
    attr_accessor became obsolete in
    f17f19dae941b17a56c1fc83ed3a89712b98c427

commit 10a7945cfcf26c4a718ce4cbe787dcd1661ae614
Merge: 3422e89 314b506
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Jan 7 15:57:36 2013 -0800

    Merge pull request #1371 from pcarlisle/faces-yard
    
    (#18023) Preliminary YARD docs for Faces

commit 3422e890942d3a40379fce99375ae380e8ed60ce
Merge: e495e22 d7244e7
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Jan 7 15:57:10 2013 -0800

    Merge pull request #1377 from zaphod42/maint/master/update-readmes
    
    (Maint) Update README.md and README_DEVELOPER.md

commit d7244e71b5cb457b45ff8b4e2c9691ad9df18263
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jan 7 15:24:55 2013 -0800

    (Maint) Change to README.md for yard frontpage
    
    The README.md presents a much better intro into what puppet is, whereas
    the the README_DEVELOPER.md gets much more in depth in issues and
    gotchas.

commit 314b5067f909d425c5729deb527c47dfb683ec78
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Dec 12 11:24:52 2012 -0800

    (#18023) Preliminary YARD docs for Faces
    
    This adds some initial YARD docs for Faces. It attempts to cover at least the
    methods that are normally used in building faces.

commit 9568988b23a64b96e0b8a1228f3c9964edfc120d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jan 7 14:48:37 2013 -0800

    (Maint) Create sections of information
    
    Try to group things a little better into sections.

commit 9b163790ecde6e43642ac5f66be0642875f45a11
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jan 7 14:45:34 2013 -0800

    (Maint) Remove references to 'I'
    
    There is no 'I' in this document. Removing the first person allows us to
    be more direct in the language used for expressing things.

commit 3125c13dd9111c34805988322ebfbf13eacc75c7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jan 7 14:42:14 2013 -0800

    (Maint) Remove "RVM considered harmful"
    
    Many of the developers on puppet actually use RVM for developing. There
    is no need to call it out in this manner.

commit f39607c632d9d53ab81016f22603b05fad4a3d94
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jan 7 14:37:37 2013 -0800

    (Maint) Point users to mailing list and IRC

commit 42359afc475e68c42220c535e1a3c501fbeb902b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jan 7 14:33:24 2013 -0800

    (Maint) Update the supported ruby versions
    
    The list of ruby versions was incorrect (1.8.5 is no longer supported)
    and unclear (there is no best effort support of other versions). This
    simplifies the language there.

commit e495e227858d8d66e16baa451b9ee7a91d8ede3a
Merge: bc19ea9 f24192d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jan 7 10:48:55 2013 -0800

    Merge pull request #1368 from mrzarquon/osx_pkg_groupcheck
    
    Adds additional check for osx puppet group creation

commit b73b2895826de7999bc24c8cc3e13a5a6ec76a0e
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Sun Jan 6 20:36:53 2013 -0800

    (#18394) Remove puppet-queue.conf from redhat spec
    
    conf/puppet-queue.conf was removed from source in commit ade52f7, This broke
    puppet redhat packaging, which references the file explicitly. This commit
    updates the packaging to reflect its absence.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit bc19ea967d76e03e4874c2d87d369d6ec1d0252e
Merge: 46b811c 8e38dd9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jan 6 17:18:48 2013 -0800

    Merge pull request #1372 from jeffmccune/fix/master/gem_dependencies
    
    Relax gem dependencies on Facter and Hiera

commit 8e38dd9cf365450957033af7cea076dfe92a7dc9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sat Jan 5 21:45:50 2013 -0800

    Relax gem dependencies on Facter and Hiera
    
    Without this patch applied an older version of Hiera is
    automatically installed as a dependency installing Puppet.  This is a
    problem because there are important bug fixes happening in later minor
    versions of Hiera.  The same is true of Facter.  The cause of the
    problem is a tight specification of `gem :hiera, "~> 1.0.0"` which means
    "greater than 1.0.0 but less then 1.1.0".  1.1.2 is the current latest
    bug fix version of Hiera.
    
    This patch fixes the problem by relaxing the dependency to "~> 1.0"
    which means "greater than 1.0.0 and less than 2.0.0"

commit 46b811cff1c6bd6e6e66e4d58cfb825488fe3430
Merge: 17c2d6b 96cd436
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jan 6 16:42:03 2013 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      (maint) Add Travis CI support to active branches
    
    Conflicts:
    	.travis.yml
    	Gemfile

commit 96cd43638d232271472c589a5fd72eecef735335
Merge: 939abc7 f8a8496
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jan 6 16:40:50 2013 -0800

    Merge branch '2.7.x' into 3.0.x
    
    * 2.7.x:
      (maint) Add Travis CI support to active branches
    
    Conflicts:
    	.gitignore
    	Gemfile
    	puppet.gemspec

commit f8a849636d45b1e29137560ace25c3af0085fbc6
Merge: 08e45ed 0350afd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jan 6 16:39:46 2013 -0800

    Merge branch 'fix/2.7.x/travis_active_branches' into 2.7.x
    
    * fix/2.7.x/travis_active_branches:
      (maint) Add Travis CI support to active branches

commit 0350afd5c64e176e05df15cc408facd93748ee94
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jan 6 16:13:07 2013 -0800

    (maint) Add Travis CI support to active branches
    
    Without this patch all active branches do not have proper Travis configuration
    files.  This is a problem because Travis will exercise any branch pushed to the
    puppetlabs organization repository on Github.  The default behavior is to email
    notifications which is undesirable.
    
    To address this problem Travis configuration settings are added to an active
    branch.
    
    Active branches are those that have recent activity when compared against the
    following command:
    
        for k in `git branch -r |grep origin/|perl -pe s/^..//`
        do
          echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k|head -n 1`\\t$k;
        done | sort -r | grep origin
    
    Which should produce output like:
    
        2013-01-06 02:10:28 -0800 14 hours ago  origin/master
        2013-01-02 16:59:15 -0800 4 days ago    origin/3.0.x
        2012-12-18 10:36:18 -0800 3 weeks ago   origin/2.7.x
        2012-07-09 15:34:04 -0700 6 months ago  origin/2.6.x
        2011-11-03 15:02:03 -0700 1 year, 2 months ago  origin/0.24.x
        2011-10-21 23:15:37 -0700 1 year, 3 months ago  origin/0.25.x

commit 17c2d6bb36e5f2ba007db09fa30437d43bcf2e63
Merge: 2c220ca 625b85f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jan 6 02:10:28 2013 -0800

    Merge pull request #1373 from jeffmccune/feature/master/travis_ci
    
    (maint) Add Travis CI Support

commit 625b85f1966a073cd31faa24fecd93c361a4ce99
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jan 6 01:45:42 2013 -0800

    Future proof authstore ruby issue 7477
    
    Without this patch once a new patch level version of MRI comes out,
    Travis CI will start failing because the test that fails on
    `IPAddr.new('::2:3:4:5:6:7:8')` because of ruby issue 7477 [1].  This
    patch fixes the problem by raising an exception if the bugged code is
    still bugged.  When the issue is fixed the blocks of code that cause the
    examples to be marked as pending will pass without exception.
    
    [1]: http://goo.gl/Bb1LU

commit 3b75ad2058514218b6ad8d7711a3ad1c3ff13876
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jan 6 00:39:34 2013 -0800

    (maint) Add Travis CI Support
    
    This patch adds Travis support.  It also makes sure that `bundle install
    --path vendor` works with `bundle exec rake spec`.
    
    This patch should coincide with enabling Travis CI support for pull requests.
    A build status image is also included in the project README.

commit 2c220ca2040ac9a11f53545eda92d931a1c5e30e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jan 6 01:10:20 2013 -0800

    Fixup use of conditional pending
    
    Without this patch the tests aren't actually getting marked as pending
    because exceptions are being raised in the before blocks.  This patch
    addresses the problem by switching the declaration references to a lazy
    evaluated let method rather than a preemptive before block.  This
    prevents the exception and allows the pending methods to execute.

commit 607264ac637facd8cb084d8094b8acbe99100cb7
Merge: 11c8a55 e58102e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jan 6 01:00:20 2013 -0800

    Merge pull request #1367 from jeffmccune/fix/master/ipaddress_specs
    
    (maint) Skip IPv6 examples that cannot pass on MRI 1.9.3-p327

commit e58102e2139660e74892d78869435ddd4d0ebe8b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jan 6 00:51:06 2013 -0800

    (maint) Use conditional pending mechanism for ruby issue 7477
    
    Without this patch Daniel's concern isn't being addressed, "It seems
    like this would be much better handled with the "conditional pending"
    mechanism that rspec provides." [1]
    
    This patch switches over to conditional pending messages to disable the
    examples.
    
    [1]: http://goo.gl/5VzBa

commit 1227c5fd68e5f497a684367384cdb2eb2e290f8a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jan 3 14:54:37 2013 -0800

    (maint) Skip IPv6 examples that cannot pass on MRI 1.9.3-p327
    
    Without this patch applied the following examples fail on MRI
    1.9.3-p327, but not other versions.
    
    Failures:
    
      1) Puppet::Network::AuthStore::Declaration when the pattern is a valid IP such as ::2:3:4:5:6:7:8 should match the specified IP
         Failure/Error: @declaration = Puppet::Network::AuthStore::Declaration.new(:allow_ip,ip)
         ArgumentError:
           invalid address
         # ./lib/puppet/network/authstore.rb:252:in `new'
         # ./lib/puppet/network/authstore.rb:252:in `parse_ip'
         # ./lib/puppet/network/authstore.rb:171:in `pattern='
         # ./lib/puppet/network/authstore.rb:151:in `initialize'
         # ./spec/unit/network/authstore_spec.rb:304:in `new'
         # ./spec/unit/network/authstore_spec.rb:304:in `block (4 levels) in <top (required)>'
    
      2) Puppet::Network::AuthStore::Declaration when the pattern is a valid IP such as ::2:3:4:5:6:7:8 should not match other IPs
         Failure/Error: @declaration = Puppet::Network::AuthStore::Declaration.new(:allow_ip,ip)
         ArgumentError:
           invalid address
         # ./lib/puppet/network/authstore.rb:252:in `new'
         # ./lib/puppet/network/authstore.rb:252:in `parse_ip'
         # ./lib/puppet/network/authstore.rb:171:in `pattern='
         # ./lib/puppet/network/authstore.rb:151:in `initialize'
         # ./spec/unit/network/authstore_spec.rb:304:in `new'
         # ./spec/unit/network/authstore_spec.rb:304:in `block (4 levels) in <top (required)>'
    
    These failures are a result of Bug https://bugs.ruby-lang.org/issues/7477 in MRI itself.
    
    This patch addresses the problem by explicitly excluding the examples that will
    fail because of the bugged Ruby interpreter.  The patch targets very specific
    patch level versions of MRI so that future and past MRI versions will
    explicitly fail, notifying us when the root cause of the issue is resolved.

commit 11c8a55937f3ac56985ed138abebc0fec3778c54
Merge: 679e2c9 79889af
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jan 4 18:34:53 2013 -0800

    Merge pull request #1370 from hlindberg/yard2
    
    (#18023) Document user facing classes using yardoc and show api.

commit 79889af9ae0d7ffbcb25a4bb20a74602d2d706e2
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Dec 13 22:35:54 2012 +0100

    (#18023) Document user facing classes using yardoc and show api.
    
    This adds yardoc to user facing classes Type, Parameter, Property,
    Provider, Report, as well as classes used by these via inclusion or
    delegation and where documetation was most relevant to add at the source.
    
    This also includes puppet specific tags (@comment, and @dsl), puppet
    specific templates (shows DSL for elements marked with @dsl), as well
    as some general improvements to the default yard templates.
    
    As this is the first stab at providing more comprehensive code
    documentation, there are many unanswered questions in the documentation
    that are marked with @todo, or ??? to indicate uncertainty.
    More investigation is required to update these.
    
    Many methods are marked as being non api. As this documentation is not final,
    and only covers a portion of the puppet code base, the lack of a "private"
    tag being displayed should not yet be taken as authoritiative indication
    that it is api.

commit a576f25d9e09c27207dc9dcd42fbaead67c3266c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 10 14:50:42 2012 -0800

    Begin exposing Puppet::Type as public API.

commit 67d6b6f7b103eb3944e41d0bea095ad83a7ca80e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Dec 7 15:24:34 2012 -0800

    Add docs for lookupvar

commit 0947915b0b10f18e464f6f03e86f3cd390478472
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Dec 7 14:19:05 2012 -0800

    Flesh out documentation for Puppet::Parser::Functions
    
    This documents several previously undocumented methods in
    Puppet::Parser::Functions and marks everything that is considered public api

commit 72307e1f1bc026eabbe9a97c6404c717cf92a918
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Dec 7 14:14:06 2012 -0800

    Fix Puppet::Parser::Functions.arity
    
    This method was untested and used two methods that no longer exist.

commit a0bb51b50ef21af88de8df3cbc7bdfa96f848dad
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Dec 6 16:38:01 2012 -0800

    Get YARD for the Puppet module to show up correctly.

commit 679e2c9c8c46021f5693f87d3f1d4f78809204df
Merge: ba79c0d 8b740ef
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jan 4 15:37:58 2013 -0800

    Merge branch 'ticket/master/17994-wrong-mode-not-octal'
    
    * ticket/master/17994-wrong-mode-not-octal:
      (#17994) Handle setgid bit on Solaris specially
      (#17994) Generate a new file and dir each time

commit 8b740efab73869c38a032e0635b3e000f30a22f8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jan 4 11:35:24 2013 -0800

    (#17994) Handle setgid bit on Solaris specially
    
    From the Solaris chmod man page, "For directories, the set-gid bit can
    only be set or cleared by using symbolic mode." As a result, the test
    that attempted to chmod the start_mode for a directory to 2744, and then
    verify puppet could apply `g-s` fails, because the start_mode was never
    set correctly.
    
    We could use puppet to set the start_mode, as it correctly applies 2744
    to a directory. But that breaks other tests that aren't expecting puppet
    to magically make readable directories executable.
    
    We could express start_mode as a symbol, `u=rwx,go=4,+s`, but that
    requires reworking whether we expect a mode change or not.
    
    So for now, we just skip the test on Solaris.
    
    It also adds tests for u+s, g+s, u+t when modifying an existing
    file/dir.
    
    Another thing to keep in mind is that Solaris supports a mandatory
    locking flag 'l'. When mode 2750 is applied to a file (so the permission
    for the group class is executable), then the setgid bit is set as
    expected: -rwxr-sr--
    
    However, if the permission for the group class is not executable (2644),
    then the bit corresponds to mandatory file locking: -rw-r-lr--

commit ba79c0d94c36aa3dc318de3e73cbce634b009d8e
Merge: a622f0e ade52f7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jan 4 12:48:37 2013 -0800

    Merge pull request #1369 from nfagerlund/fileserver_conf
    
    Fileserver conf/auth.conf improvements

commit 076a5d53e1739cbfb530fe25211b2f71be4ed892
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jan 4 11:11:52 2013 -0800

    (#17994) Generate a new file and dir each time
    
    Previously, the test would reuse the same file and dir each time,
    assuming that the chmod would set the initial mode correctly at the
    start of each test using a numeric mode. However, on debian (at
    least):
    
        SETUID AND SETGID BITS
        ...
        You can set or clear the bits with symbolic modes like
        u+s and g-s, and you can set (but not clear) the bits with
        a numeric mode.
    
    Since we can't reliably set the initial mode using chmod, this commit
    modifies the test to delete the file/dir at the start of every
    test. This ensures that state from one test doesn't leak across.
    
    Also, modifies the assert_match to account that the file path may
    contain special regexp characters that need to be escaped.

commit ade52f729d70c64796d4a81e9e20bee1ab1de7f9
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Fri Jan 4 11:01:40 2013 -0800

    Maint: Remove example puppet-queue.conf file
    
    This was not a Puppet configuration file; it was a stompserver config
    file for use with puppetqd. Which is to say, it was a config file for a
    third-party non-production-quality toy backend for a deprecated feature.
    I am very sure that we don't need to keep it in the codebase.

commit c43cb68107df5ae084351b44f5c2b1b76f5c56ea
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Fri Jan 4 11:01:06 2013 -0800

    Maint: Improve example tagmail.conf file with comments

commit 1fbb4dca534984aac2a5beb314225176e2b3f36f
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon Dec 10 17:58:01 2012 -0800

    (#17448/#17449/#18045) Update fileserver.conf and auth.conf examples
    
    These files still referred to the regime whereby access control lived in
    both files and auth.conf usually delegated to fileserver.conf, except
    when it didn't. In the meantime, we've improved auth.conf and partially
    broken fileserver.conf, and in conversations with the core team, it's
    become clear that we don't necessarily WANT to fix fileserver.conf,
    especially if not doing so will lead to better and more centralized
    access control.
    
    Unfortunately, an awkward period seems unavoidable. This commit
    attempts to describe what users SHOULD do and give enough hints that it
    will be easy to do so, at the cost of a certain windiness.
    
    NOTE ESPECIALLY that we're now using the word "deprecated," as the
    warnings-and-prefs-based deprecation plan outlined at #18045 has been accepted.

commit f24192d7e3d2d155af7f475e09e0497fbf76562b
Author: Chris Barker <cbarker@puppetlabs.com>
Date:   Fri Jan 4 10:57:45 2013 -0500

    Adds additional check for osx puppet group creation
    
    Accounts for circumstances where the puppet user is created, but the
    puppet group is not (created user via syspref window).
    
    Previously would not create group if user already existed

commit a622f0e0e067e32ebf1efb154ff36b2d8602072f
Merge: 226655d 7e3e79d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jan 3 17:00:25 2013 -0800

    Merge branch 'ticket/master/17994-wrong-mode-not-octal'
    
    * ticket/master/17994-wrong-mode-not-octal:
      (#17994) Rework symbolic mode acceptance test
      (#17994) Add tests for directory creation
      Maint: Remove duplicate tests
      Maint: Cleanup spec test
      (#17994) Fix wrong (decimal) mode causes sticky bit to be set.

commit 7e3e79dc8775f157bdbd407eb87b1b606017fbc2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jan 3 16:10:41 2013 -0800

    (#17994) Rework symbolic mode acceptance test
    
    Previously, the acceptance test was only testing that puppet could
    modify the mode of an existing file/dir, but not when creating them. As
    a result, #17994 went undetected.
    
    This commit adds tests for that as well as adding test coverage for
    other cases, such as the user 'a', which is short-hand for 'ugo', the
    operation '-', permissions 's' and 't', and the absence of any
    permission (o=).
    
    In the process it uncovered a bug, when puppet applies ugo=rwxs to a
    file, it results in 07777 instead of 06777. This is filed as #18355
    
    One important thing to note about symbolic modes is that puppet always
    uses a umask of 022 when applying the mode to file/directories that it
    creates. When only a partial symbolic mode is specified, e.g. u=r, the
    resulting mode will be 0444 (file) 0455 (directory), which may not be
    what you expect. To ensure you don't accidentally grant more permissions
    than intended (such as when setting root's umask to 077), it is
    recommended that you fully specify the symbolic mode, e.g. 'u=r,go='
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit 2ec00055b0f3f00781e374a6ff487126d0ddc31c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 19 11:46:21 2012 -0800

    (#17994) Add tests for directory creation
    
    Adds tests to cover when creating directory and mode is specified as
    either an octal or symbolic mode.
    
    I was unable to actually create a directory (Dir.mkdir) and then stat it
    to verify the mode was set correctly, because on some ruby
    implementations, Dir.mkdir ignores special mode bits. On my Mac, for
    example, calling Dir.mkdir(path, 01777), results in mode 00777. However,
    puppet does the right thing, because it calls `property_fix` on the file
    type, which goes through each property and ensures each is in sync.
    
    Since the sticky-bit behavior is system-dependent, I'm setting an
    expectation on the Dir object, and that at least detects the bug
    reported in #17994.

commit 2fe21cccc019107d6eb543641777e92ac18d13ce
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 19 10:28:23 2012 -0800

    Maint: Remove duplicate tests
    
    Commit 8d212629 duplicated some tests, this commit removes them.

commit 19307a9e9b3241c569ada093f47902dd9f54d689
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Dec 18 15:42:32 2012 -0800

    Maint: Cleanup spec test
    
    This commit changes the ensure spec to use let blocks and eliminates
    stubbing of file resources.

commit a8f6b71f6161f4b80e047443e3e4b74691ae074b
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Dec 7 19:52:10 2012 +0100

    (#17994) Fix wrong (decimal) mode causes sticky bit to be set.
    
    A decimal mode/mask of 755 is clearly wrong; it should have been 0755.
    The problem causes the sticky bit (and what not) to be set instead of
    what was intended.

commit 226655da05d0df88f021b878a9803682fc88bc5a
Merge: 2f0c5e2 33a398a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jan 3 16:28:45 2013 -0800

    Merge branch 'mrrcollins-bug17898'
    
    * mrrcollins-bug17898:
      Bug #17898 - pkgdmg provider broken since version 2.7.13 under OS X 10.5 Leopard http://projects.puppetlabs.com/issues/17898

commit 33a398a1f2bcc54111b19c2789eee23efc3e982f
Author: Ryan 'Gozar' Collins <github@ryancollins.org>
Date:   Tue Dec 4 17:00:24 2012 -0500

    Bug #17898 - pkgdmg provider broken since version 2.7.13 under OS X 10.5 Leopard
    http://projects.puppetlabs.com/issues/17898
    
    Dir.mktmpdir doesn't exist under Ruby 1.8.6 or older. This adds it, using code from https://github.com/puppetlabs/hiera/pull/47/files which uses code from ruby-1.8.7-p357/lib/ruby/1.8/tmpdir.rb

commit 2f0c5e250646ee1e1922ddf5e27f6849f20ecf1b
Merge: b6e4cc1 3bd5e67
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jan 3 16:09:02 2013 -0800

    Merge pull request #1332 from joshcooper/ticket/master/15529-reinitialize_app_defaults
    
    (#15529) Reinitialize app defaults before all and each test

commit b6e4cc1c110a4d6ee70b63d209100f22bbda89b5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jan 3 15:43:28 2013 -0800

    (Maint) Use string for exclusion instead of symbol
    
    The proper way to exclude from a platform is to use a string. The symbol
    does not actually exclude (but also doesn't raise an error)

commit 0709e333e6d14ed0cfce8c4f84f3642d65f8c470
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jan 3 15:40:10 2013 -0800

    (Maint) Exclude ownership test from windows
    
    Windows does not try to manage ownership of settings files and
    directories right now, so this needs to exclude it. Also, since it runs
    across agents, it needs to make sure it only does what an agent can do,
    which means it can only use "apply" and not "master".

commit aa56381715cef1fbc2b712a38cdebea766262fa8
Merge: 416dfd4 dd66ae9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jan 3 13:44:16 2013 -0800

    Merge pull request #1363 from haus/feature/master/add_postflight_for_osx
    
    Add postflight for OSX packages to add puppet user, group

commit 416dfd468af5e878ddc8e711a477b2ecf6027646
Merge: b2054ca 15c4388
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jan 3 13:10:19 2013 -0800

    Merge branch 'dalen-file_metadata_srv'
    
    * dalen-file_metadata_srv:
      (#18162) Honor fileserver SRV record for file metadata requests

commit 15c43889dfa097cad6d1800f22dd25b7624e5590
Author: Erik Dalén <dalen@spotify.com>
Date:   Mon Dec 17 18:17:46 2012 +0100

    (#18162) Honor fileserver SRV record for file metadata requests
    
    File content requests uses the x-puppet-fileserver SRV record, but file
    metadata requests used the x-puppet SRV record.
    
    Adds test for the functionality.

commit b2054ca7848123e5592b9420b37d66058228dda9
Merge: 01b4541 d5a9ad0
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jan 3 13:04:20 2013 -0800

    Merge branch 'dalen-srv_ca'
    
    * dalen-srv_ca:
      (#18161) Honor CA SRV record for all types of CA requests

commit d5a9ad055e22af2f44062406a6c3afa45c94a0d9
Author: Erik Dalén <dalen@spotify.com>
Date:   Mon Dec 17 17:46:37 2012 +0100

    (#18161) Honor CA SRV record for all types of CA requests
    
    For certificate requests, certificate status requests & certificate
    revocation list requests puppet used the x-puppet srv record instead of
    the x-puppet-ca record.
    
    Adds tests for the issue.

commit 01b454140384add66c7e53b971f1e31deede60fe
Merge: 4be9d35 939abc7
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 2 16:59:33 2013 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      (maint) Update bundle dependencies

commit 939abc7a558ce69c3f8ce688b2163e7d364c7cb5
Merge: 68780d9 4573e70
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 2 16:59:15 2013 -0800

    Merge branch 'maint/3.0.x/update_bundle_dependencies' into 3.0.x
    
    * maint/3.0.x/update_bundle_dependencies:
      (maint) Update bundle dependencies

commit 4573e70017bd27d96128a0681348a4a11d63f95f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 2 16:49:41 2013 -0800

    (maint) Update bundle dependencies
    
    Without this patch applied the bundle dependencies for Facter and Hiera
    are too conservative.  For example hiera 1.1.2 is currently released and
    available via rubygems.org, but Bundler will never install this specific
    version in our CI infrastructure because the specified dependency is '~>
    1.0.0' which means greater than or equal to version 1.0.0 but less than
    version 1.1.0.'  Similarly Facter 1.7 will never be used even though it
    is backwards compatible and a valid satisfaction of the dependency
    between Puppet 3 and Facter > 1.6.2.
    
    This is a problem because Facter and Hiera follow semantic version
    guidelines.  This means we should be able to depend on any minor version
    of a particular major version and have some reasonable guarantee of
    backwards compatibility.  settings to match Hiera master.
    
    This patch simply updates the dependency specifications for all of the
    libraries that are currently following semantic version guidelines.

commit 4be9d354022653d086fbbb9bbbdaf9703f22e38f
Merge: 78d69b6 68780d9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 2 16:48:22 2013 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      (maint) Fix spec failure in hiera_spec try 2

commit 68780d9d47a7c002262db60095fe86a66a2e24b5
Merge: 739f81c 62d36c9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 2 16:47:59 2013 -0800

    Merge branch 'fix/3.0.x/hiera_default_try2' into 3.0.x
    
    * fix/3.0.x/hiera_default_try2:
      (maint) Fix spec failure in hiera_spec try 2

commit 62d36c9ebbc794ce7b430d4786a87717f83d691e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 2 15:09:09 2013 -0800

    (maint) Fix spec failure in hiera_spec try 2
    
    Without this patch applied Puppet behavior tests are failing against
    Hiera 1.0.0 because of the addition of a new, backwards-compatible,
    default setting named `merge_behavior`.
    
    This patch addresses the problem by only testing the configuration keys
    we expect specific values for.  If the resulting configuration has
    additional keys then we ignore them.
    
    The related patch in Hiera is 4ac8372, "Add deep-merge feature to
    backend lookups"
    
    The related patch in Puppet that fails to pass against earlier versions
    of Hiera is f980e17.

commit 78d69b664f8d488eafc47cd3fd17cd68a6e61a0e
Merge: 21266eb d531225
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jan 2 16:31:45 2013 -0800

    Merge pull request #1361 from zaphod42/tickets/master/17371-conf-mode
    
    (#17371) Re-initialize settings metadata after run_mode determined

commit d5312255d15b5fe8d3269e38bcdc0a86e1994418
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Dec 20 17:01:03 2012 -0800

    (#17371) Add acceptance test for applying correct privileges

commit 4036d927cf2d73b2f6843f8c97100c69254a54f4
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Wed Nov 14 13:30:39 2012 +0000

    (#17371) Re-initialize settings metadata after run_mode determined
    
    Currently metadata for settings (e.g. mode, owner) is initialized during
    parsing of the config file, at which point the run_mode isn't known.  The
    initialization loops over each section of the config and since one of the
    sections is determined by the run_mode, this means it doesn't get searched.
    Setting file metadata inside a section such as [master] has no effect.
    
    This patch causes the setting metadata to be set twice - once during early
    startup before the run_mode is known (for settings used globally) and again
    once the run_mode is known so that configuration in specialised sections take
    effect.

commit 21266ebb6ffc49a7fc3b471109b7cce2e3e5c1ef
Merge: a56ae96 6d71054
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Jan 2 15:53:26 2013 -0800

    Merge pull request #1344 from zaphod42/issue/master/9862-cannot-run-without-puppet-group
    
    (#9862) Fix puppet cannot run without puppet group on the system

commit a56ae9643e636e3ed5a5d02bcba1fb54fb9b6f73
Merge: d7bbaa2 739f81c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 2 15:14:27 2013 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      (maint) Fix spec failure in hiera_spec

commit 739f81c7e91d9c76e310f07df9e9a690b69937cb
Merge: c284c91 f980e17
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 2 15:13:51 2013 -0800

    Merge branch 'fix/3.0.x/hiera_default_config_spec' into 3.0.x
    
    * fix/3.0.x/hiera_default_config_spec:
      (maint) Fix spec failure in hiera_spec

commit f980e173bde9e15377f619b9a79a3c509fd26212
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 2 15:09:09 2013 -0800

    (maint) Fix spec failure in hiera_spec
    
    Without this patch applied Puppet behavior tests are failing against
    Hiera master because of the addition of a new, backwards-compatible,
    default setting named `merge_behavior`.  This setting defaults to
    `:native` and has no change in behavior in the default case.  The specs
    are failing because they compare against the entire list of default
    settings, comprehensively.
    
    This patch addresses the problem by updating the list of default
    settings to match Hiera master.
    
    The related patch in Hiera is 4ac8372, "Add deep-merge feature to
    backend lookups"

commit d7bbaa2a695e800c98437d7b06f913254dc2b333
Author: Garrett Honeycutt <garrett@puppetlabs.com>
Date:   Wed Jan 2 16:50:24 2013 -0500

    (#18298) Use `==` not `include?` in useradd provider
    
    Andy raised the concern we should use `==` instead of `include?` since
    we are checking a single value. This commit addresses the concern.

commit 6d71054fa9751b7794590efed3fa1310e4578f52
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jan 2 14:22:27 2013 -0800

    (#9862) Document management of file owners and groups
    
    This adds YARD docs for methods and classes that are part of managing
    owners and groups of files (and directories).

commit 8d89d0d90650a143460cba74e46248842c27270b
Merge: 7dc5edb fab9f76
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 2 11:49:40 2013 -0800

    Merge branch 'ghoneycutt-tickets/master/18298_useradd_switch_operatingsystem_to_osfamily'
    
    * ghoneycutt-tickets/master/18298_useradd_switch_operatingsystem_to_osfamily:
      (maint) Whitespace only cleanup of useradd provider
      (#18298) Make useradd use osfamily not operatingsystem

commit fab9f76f32e6efd4a44b6c9b550a5f5bdc58fba0
Author: Garrett Honeycutt <garrett@puppetlabs.com>
Date:   Wed Jan 2 09:07:30 2013 -0500

    (maint) Whitespace only cleanup of useradd provider
    
    Cleans up whitespace issues found while hacking on the useradd provider.

commit 5025fa591f9de61b51b53cfa49042a55041a145d
Author: Garrett Honeycutt <garrett@puppetlabs.com>
Date:   Wed Jan 2 09:03:57 2013 -0500

    (#18298) Make useradd use osfamily not operatingsystem
    
    This patch addresses ticket #18298 and uses the osfamily fact instead of
    the operatingsystem fact. This change allows us to decouple the list of
    RedHat derivatives from the useradd provider and rely on the osfamily
    fact.

commit dd66ae9e52af4e5ee7ded6a832d511f7e38acd82
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Dec 6 11:40:08 2012 -0800

    Add postflight for OSX packages to add puppet user, group
    
    Previously, users installing the Puppet package for OS X would need to create
    their own user and group to run `puppet apply` successfully or to set up a
    puppet master. This also was out of line wiht our other puppet packages, which
    do create the puppet user and group. This commit adds a postflight script to
    the OS X packaging that will create a puppet user and group if they don't
    already exist.
    
    Note: this commit depends on packaging changes to install the postflight during
    OS X packaging and will be inert until that change is made.

commit f9646a84b449e604a0138686daefdfaa013106e6
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jan 2 11:10:30 2013 -0800

    (#9862) Promote user/group logic to first class
    
    Some core logic of the setting, which is how to manage the user and
    group, was hidden inside obtuse if conditions. This tries to make it
    clearer what is happening, at the expense of being longer, by promoting
    the different values available for owner and group to classes that can
    contain the logic for how to deal with that particular value.

commit 42d09d581ffa943dcb0e9faf0724610c3c3954ab
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jan 2 11:08:22 2013 -0800

    (Maint) Ensure tests are hitting the right ascpect
    
    The previous tests were not very careful about making sure that they
    were going to be going down the right branches to test the path that
    they wanted. This makes some of the branch selection more explicit so
    make the tests a bit more robust to change.

commit 7dc5edb07faab4ddb1f852b8859d47b862830444
Merge: 4e276fc c284c91
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Dec 26 15:55:51 2012 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      Update lib/puppet/version.rb for 3.0.2

commit c284c915fb041257ce46cf49d4acd40f791ac96f
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Dec 26 14:23:46 2012 -0800

    Update lib/puppet/version.rb for 3.0.2

commit 1cf7ecad5f64d9b0f4bbf4c2dd55160881e9ee63
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Dec 19 11:46:01 2012 -0800

    (#9862) Add acceptance test for issue
    
    This checks to make sure that when puppet is run without a specific
    user/group present it doesn't fail. Instead it just ignores the given
    user. When a user/group is present then it will manage the ownership.

commit 4e276fc5d8b12adbc11fc8c9967124dec1797475
Merge: 538c4fb fbd859f
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Wed Dec 19 11:26:08 2012 -0800

    Merge pull request #1303 from haus/maint/master/add_deprecation_warning_to_install_rb_on_tests_flag
    
    Warn when using --[no-]tests flags in install.rb

commit fbd859fd02d176137cc9102854be50c04f2912a2
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Nov 29 14:24:36 2012 -0800

    Warn when using --[no-]tests flags in install.rb
    
    The tests flag isn't functional anymore, as there are no tests in the test
    directory to run. This commit adds a warning for users of the tests flag that
    the flag is useless. It also changes the default value for the tests flag to
    false and promises that we will remove the flag entirely in the future.

commit 73dfca1e4f63becec6bcc0668131716491bbf943
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 18 17:08:37 2012 -0800

    (Maint) Invert logic to make it more straightforward
    
    The logic for testing if a group or user were available tried to
    short-circuit, but ended up being less clear than if it just branched.
    It also created a variable that wasn't actually used later.

commit 006c5def4ae12a0a9c0f8fbadd3354457d51ac93
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 18 15:42:34 2012 -0800

    (#9862) Do not manage the group if it doesn't exist
    
    The previous behavior for managing the group of a file meant that if the
    group didn't exist puppet errored when trying to set permissions. This
    changes the behavior to check for the existance of the group and in the
    case of the group not existing (and we don't expect it to be created
    because `:mkusers` is false) then the group is not managed.
    
    There were several alternatives that were possible:
    
      * use the primary group of the "root" user
      * use the primary group of the `:owner` for the file
    
    Neither of these were compellingly better alternatives, since this
    should only be happening when puppet hasn't been fully configured on the
    system.

commit a0430b46cb24283bba4da18bc6b8f34892f7ed0f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 18 14:00:08 2012 -0800

    (#9862) Allow group to be root
    
    The previous behavior allowed the group parameter to be set to root, but
    it still selected the configured "service" group. This is contrary to
    what is done for the owner parameter and seems to have been an
    accidental behavior.
    
    This commit brings this portion of the group handling in line with user.

commit b2204d093ea03e70fbaf500d61fd54119f1edfdc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 18 13:56:59 2012 -0800

    (Maint) Remove duplication in parameter checking

commit c140ce56ebd770b8b00c23913e2a9bb85bd16040
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 18 13:53:06 2012 -0800

    (Maint) Show the actual allowed values for group
    
    The error message for the group parameter had gotten out of sync with
    what the allowed values actually were. This updates the message to
    include all of the allowed values.

commit 7a3804554422d3f5438acf0fc293f990920f49e0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 18 13:50:59 2012 -0800

    (Maint) Clarify error message for invalid group and owner
    
    The previous error message for an invalid owner looked like:
    
      Error: Could not intialize global default settings: Internal error: The :owner setting for Where Puppet stores dynamic and growing data.  The default for this setting is calculated specially, like `confdir`_.: vardir must be either 'root' or 'service', not 'gnats'
    
    That message was not very clear as to what had just gone wrong because
    it is providing far too much information. This commit changes the
    message too:
    
      Error: Could not intialize global default settings: The :owner parameter for the setting 'vardir' must be either 'root' or 'service', not 'gnats'
    
    This applies to both the owner and group parameters.

commit 538c4fb8dd6b1c53fb7e4341d9ddace989c48feb
Merge: 7debf73 1d2660a
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Tue Dec 18 12:13:00 2012 -0800

    Merge pull request #1342 from haus/maint/master/more_spec_fixes
    
    (maint) Remove xargs rm on empty file list from puppet.spec.erb

commit 1d2660af22ff1f945a8858bab55a5956b12a036e
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Dec 18 11:57:04 2012 -0800

    (maint) Remove xargs rm on empty file list from puppet.spec.erb
    
    There are no empty files in examples, so the `xargs rm` call on that directory
    fail. This commit removes that line and adds a --no-run-if-empty to the other
    xargs call in that section. This commit also moves conf/puppet-queue.conf to an
    existing examples directory instead of examples/etc/puppet, which no longer
    exists.

commit 7debf73cc142dbf56b125ef1afea5502eca1448e
Merge: 4ad67e8 14a23bc
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Tue Dec 18 11:31:03 2012 -0800

    Merge pull request #1341 from haus/maint/master/remove_examples_munging_from_puppet_spec
    
    (maint) Remove non-existent files from puppet.spec.erb

commit 14a23bc1ea97aaf055dbb4e9137be993298592bd
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Dec 18 11:26:31 2012 -0800

    (maint) Remove non-existent files from puppet.spec.erb
    
    In commit 966d6aba0da295acbab88fc1f61927dec0a8ef2e, some files in examples were
    removed. These files are referenced in the redhat spec and sed is called on
    them, which would cause builds to fail. This commit removes those lines from
    the spec file.

commit 4bf2095fd68f9387a273c4ae8a62dea727a1691f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 18 10:49:58 2012 -0800

    (Maint) Remove duplicate tests
    
    Now that the behavior around selecting the right owner and group is
    explicitly tested there is no need for the tests around the internal
    method to determine whether to use a service user or not. This removes
    those tests and fixes up the names of some of the replacement tests.

commit e885702f91dd9265fe7859d110bc80efb88ce963
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 18 10:45:00 2012 -0800

    (Maint) Move variable closer to point of use

commit 4ad67e8dc240a7259e8febe62bc999b5bb9da775
Merge: 96d7771 a2ae25d
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Dec 18 10:37:23 2012 -0800

    Merge branch '3.0.x'

commit a2ae25d9059a9cf250f197908f29d4531bf0e655
Merge: f0e07db 08e45ed
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Dec 18 10:37:03 2012 -0800

    Merge branch '2.7.x' into 3.0.x

commit 08e45ed1425bc3f99a7a78c135b13aa399060e04
Merge: 8941d67 24aef9e
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Tue Dec 18 10:36:18 2012 -0800

    Merge pull request #1340 from haus/maint/2.7.x/remove_f15_mocks_from_build_defaults
    
    (maint) Remove f15 mocks from build_defaults.yaml

commit 24aef9e2b75c8758208b346bf1dd8c4f73984ae3
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Dec 18 10:33:03 2012 -0800

    (maint) Remove f15 mocks from build_defaults.yaml
    
    Fedora 15 is EOL, and we no longer build packages for f15, so this commit
    removes f15 from the list of final and rc mocks in ext/build_defaults.yaml.

commit bb3fd8fa8fcfa88aac2c351fd48714b025a21561
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Dec 17 17:51:55 2012 -0800

    (Maint) Cleanup tests for group to actually test the logic
    
    The previous tests for group behaviour of the file setting was not very
    clear as to the logic it tried to implement. This changes the tests and
    makes clear that the group behavior is a little odd in that if 'root' is
    specified it still uses the service group.

commit 6e103be8e1925fba8fec566fafa745d58b2c96d5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Dec 17 17:31:32 2012 -0800

    (Maint) Cleanup tests for owner to actually test the logic
    
    The previous tests around the owner behavior for a file setting did very
    little to test the logic around what actual owner will be used when.
    This commit changes the tests to make them more clearly define the
    behavior of the owner selection.

commit 96d777195a35909147c21da30be42f56f6f15585
Merge: f60af04 f0e07db
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Dec 14 14:33:01 2012 -0800

    Merge branch '3.0.x'

commit f0e07db000f89049814581882adf13396cf1d00e
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Dec 14 14:27:09 2012 -0800

    Update PUPPETVERSION for 3.0.2-rc3

commit 27642e68790ac0d78c411ec8fd960a3d41bbd46a
Author: Hunter Haugen <h.haugen@gmail.com>
Date:   Thu Dec 13 12:52:46 2012 -0800

    (#10963) Collector overrides should work in Ruby 1.9
    
    Increase arity of child_of? meta_def to 1
    
    child_of? defined for Puppet::Resource::Type objects has an arity of 1,
    but the meta_def of the same function created by
    Puppet::Parser::Collector objects has an arity of 0. This throws errors
    when the meta_def method is called with arguments. This commit matches
    the arity so that this error will not be present.

commit d6ddb102fc8375d987d96d80682ad4d19fc12173
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 11 16:02:29 2012 -0800

    (Maint) Fix syntax error in module generate template
    
    Commit 0d3b84249 introduced a syntax error in the template for
    generating the init.pp file. This fixes that syntax error.

commit f60af044487c61c721d9008887ce982278b2f032
Merge: 5b554c2 b2793b8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Dec 13 16:48:35 2012 -0800

    Merge pull request #1334 from zaphod42/issue/master/10963-collected-resources-on-ruby-1.9
    
    (#10963) Collector overrides should work in Ruby 1.9

commit b2793b87be4932060568e42bcd30212af5a3da7c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Dec 13 16:02:38 2012 -0800

    (#10963) Test resource collection inside a class/define
    
    This adds a test for the issue reported and fixed in a8aef51. It turns
    out that the problem only manifests when the collect is done inside a
    `class` or `define`.  This test has been verified to fail without the
    patch.

commit 570297f53fb22f34b11b8399fea1c25c8bbd76b2
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Dec 13 15:35:08 2012 -0800

    (Maint) Change collector tests to be more intent revealing
    
    The previous tests did very little to inform anyone what the behavior of
    the collector was expected to be in various situations. This changes the
    tests to be individually split out, named, and transformed into
    manifests that use the feature.

commit 5b554c20eb972997833196c3cf54475e75f6d5ad
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Dec 13 15:23:54 2012 -0800

    Revert "(Maint) Remove unneeded parse_file method"
    
    This reverts commit 2d00869443831227ee2c4e1f3a3c09ca31845424.

commit 704643bdde1e3f71958ffba0259a972710ca979c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Dec 13 15:13:09 2012 -0800

    Revert "(Maint) Remove unused method sectionlist"
    
    This reverts commit f3d0c7315d84ac120ef302244f885cc394f4be31.

commit a6fba3815fe8ca65b9701fd60cb115accb7f8a35
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Dec 13 14:38:02 2012 -0800

    (Maint) Reformat collector test to make it easier to read
    
    The previous layout was very compact and did not make the parts very
    clear. This simply reformats it some to make the different parts a
    little clearer.

commit 3d5463c68644ef3b5002348faa63d18b9a5be797
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Dec 13 14:17:49 2012 -0800

    (Maint) Canonization is for saints
    
    The proper name for this sort of thing is canonicalization or
    normalization.

commit c71aab351d37fa6d26ecc6619f9d4502ceecde65
Merge: 0cf232b 462d9a5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Dec 13 14:06:25 2012 -0800

    Merge branch 'maint/master/cleanup-config-parsing' of git://github.com/zaphod42/puppet
    
    * 'maint/master/cleanup-config-parsing' of git://github.com/zaphod42/puppet:
      (Maint) Remove code to support multiple config files
      (Maint) Remove unused method sectionlist
      (Maint) Remove unneeded parse_file method
      (Maint) Use value translator directly
      (Maint) Extract value translator for settings
      (Maint) Extract class to encapsulate value translation
      (Maint) Move initialize near top

commit a8aef51ce4e0c66ae98b618e415b49a71d1cedb9
Author: Hunter Haugen <h.haugen@gmail.com>
Date:   Thu Dec 13 12:52:46 2012 -0800

    (#10963) Collector overrides should work in Ruby 1.9
    
    Increase arity of child_of? meta_def to 1
    
    child_of? defined for Puppet::Resource::Type objects has an arity of 1,
    but the meta_def of the same function created by
    Puppet::Parser::Collector objects has an arity of 0. This throws errors
    when the meta_def method is called with arguments. This commit matches
    the arity so that this error will not be present.

commit 3bd5e679314c9e39a42bbc14655e4f32eb8b2cf3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 12 15:10:41 2012 -0800

     (#15529) Initialize settings before executing puppet specs
    
    Previously, Puppet's settings were not initialized until the first
    example was executed. Depending on the test being executed, this could
    cause errors that $confdir was not initialized. For example, if the
    first spec test to be executed contained:
    
        Puppet::Interface.faces.each do |name|
          it "should ... #{name}" do
            ..
          end
        end
    
    Then the test would blow up, since the call to `faces` happens before
    the spec_helper's before each block is executed.
    
    This commit ensures Puppet's application default settings have been
    initialized before any test code executes. A similar change will need to
    be made in puppet_spec_helper.

commit 0bc1a80281404b70472c2cadadbb1c0e6e44f90d
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Thu Sep 6 21:10:02 2012 +0100

    (#15529) Initialize app settings before all and each test
    
    Adds a new initialize() call to the TestHelper API, designed to be run before
    all testing and further loading commences.
    
    It initializes Puppet settings using the proper initialize_app_defaults call
    rather than setting items individually, so the settings class correctly states
    the app has been initialized.  This then makes the autoloader set up paths as
    it queries this value to determine if the libdir and others have been set up
    and it can autoload from them.
    
    Patch modified by Josh Cooper <josh@puppetlabs.com>

commit 7e645cc1746c5e552e7f7d31af012780696e9e50
Author: Guillaume Rose <rose@netxp.fr>
Date:   Thu Dec 13 11:52:00 2012 +0100

    Disable debug log in the transport

commit 0cf232bd87a03497ed7d79f46aa9e0ddf1815d33
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 12 17:32:37 2012 -0800

    Maint: Only validate that 6 digits of precision can be roundtripped
    
    Previously, the spec test was failing on ec2 jenkins nodes running ruby
    1.9. The test would fail, because the time object contained
    nanoseconds, but the roundtripped version was truncated to only
    microseconds.
    
    This test truncates the time object to contain only microseconds in a
    way that is compatible with both ruby 1.8 and 1.9.
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit 9fc77df7feb5aeefb2ef335dfb5be9bf8b4c5288
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 12 15:40:19 2012 -0800

    Maint: Skip yaml/timezone specs on Windows
    
    Previously, the tests were failing on Windows because ruby 1.8.7 does
    not take into account the TZ enviroment variable when creating Time
    instances. Ruby 1.9 does take this into account, but the timezone
    identifier must be specified using MS-specific syntax, e.g. EST5EDT.
    
    This commit marks those tests as pending on Windows, so that if/when
    they start working, the test will fail and we can re-enable them.
    
    It also adds a test to ensure we can at least round-trip YAML (all
    within the same timezone) on all platforms.
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit 3a63d287bc06615479c3fe99a2f3eb4842530121
Merge: a2c72e4 c5ee6d9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Dec 12 11:52:11 2012 -0800

    Merge pull request #1330 from zaphod42/issue/master/15496-incorrect-zaml-utc-offset
    
    (#15496) Correctly determine timezone offset

commit c5ee6d97420b365eb39b636b1d6f3572a7800d3b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Dec 12 11:17:52 2012 -0800

    (#15496) Remove duplication of checks in ZAML tests
    
    The tests previously were fairly disjoint and had many instances of
    checking that a value round-tripped through YAML correctly. This starts
    to pull them together and make use of common assertions. It also tries
    using rspec matchers in order to achieve this. Ideally the matchers
    would compose, but I don't see how to do that with the rspec interface.

commit a3f7ace89cdd20a047f6bda5f749b0971ad6dd52
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Dec 12 10:52:17 2012 -0800

    (#15496) Expand testing of Time serialization to cover more cases
    
    The original tests for testing the Time error were sufficient for that
    one bug, but we didn't have much around other cases for timezones. This
    expands the coverage to try to reach more potential edge cases.

commit a2c72e4fac2304fcd6a4d70c7a48a79fa86478fc
Merge: 12fa524 7519e42
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 12 10:34:51 2012 -0800

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      Make spec_helper manage tmpdir.

commit 7519e42606b76139e88fc2dba410e6585022761c
Merge: 81ca2a7 8941d67
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 12 10:30:38 2012 -0800

    Merge remote-tracking branch 'upstream/2.7.x' into 3.0.x
    
    * upstream/2.7.x:
      Make spec_helper manage tmpdir.
    
    Conflicts:
    	spec/spec_helper.rb

commit 8941d675a27a858ec63261dbbd0203bf66d2176d
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Nov 7 23:27:43 2012 +0100

    Make spec_helper manage tmpdir.
    
    This adds management of the ENV[TMPDIR] when running rspec tests using
    spec_helper. Before tests are being run, a temporary directory is
    created under the current tmpdir. This temporary directory is then set
    as the ENV[TMPDIR].
    
    After all tests have been run, this temporary directory is removed.
    The directory is created with the prefix "rspecrun" to easily identify
    it in case the spec testing crashes before having cleaned up.
    
    Conflicts:
    
    	spec/spec_helper.rb

commit 12fa52444db211a3de72c8a8308009186d261182
Merge: ae41090 f2505b9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Dec 12 09:05:15 2012 -0800

    Merge pull request #1326 from nfagerlund/maint_cruft_of_doom
    
    Maint: remove cruft in examples/

commit 857dcaf0bb77cc209034259ba487a4b7baddb472
Author: Guillaume Rose <rose@netxp.fr>
Date:   Wed Dec 12 17:11:36 2012 +0100

    Remove unused verbose parameter, add debug in the transport

commit 1d4af279698182702673c6ae96afb0251a34b369
Author: Guillaume Rose <rose@netxp.fr>
Date:   Wed Dec 12 16:51:32 2012 +0100

    Extract connection and disconnection behaviours

commit b6689e8ff6d908e843e4a0ac34c71c80d36fada5
Author: Guillaume Rose <rose@netxp.fr>
Date:   Wed Dec 12 16:40:04 2012 +0100

    Explicit use of the device given the block

commit abcf9666a68b2e4bd233ae91961bdbdf62e819c6
Author: Guillaume Rose <rose@netxp.fr>
Date:   Wed Dec 12 16:39:30 2012 +0100

    Fix spaces

commit c4aa4b9028847037cde3bf843b258a63fa9e15f8
Author: Guillaume Rose <rose@netxp.fr>
Date:   Wed Dec 12 15:25:40 2012 +0100

    Use method execute instead of transport.command

commit ae41090bb901811ea5e1cf5f9982ece3a2c9b0cc
Merge: 9c81499 070cf4a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 11 17:16:29 2012 -0800

    Merge pull request #1322 from joshcooper/ticket/master/18041-delete-list-loaded
    
    (#18041) Remove Autoload.list_loaded method

commit 9c81499059e2aa33239395ec1249d60d1e2e1c66
Merge: 62ffed0 728fcc7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 11 17:05:24 2012 -0800

    Merge branch 'ticket/master/7316-command-line-modulepath'
    
    * ticket/master/7316-command-line-modulepath:
      (#7316) Give test file a more descriptive name
      (#7316) Do not run on windows
      (#7316) Test faces from modules using a module
      (Maint) Fix syntax error in module generate template
      (#7316) Use tempfile utilities for managing files
      (Maint) Allow creating a test file with default options
      (#7316) List subcommands in a supported manner
      (Maint) Clarify what the options to less are
      (#7316) Add acceptance test for loading face from module
      (#7316) Warn if script action is reloaded
      (#7316) Append module plugin directories to $LOAD_PATH
      (#7316) List faces using an autoloader
      (#7316) Refactor listing and requiring of applications
      (#7316) Add method to expand autoloaded paths

commit 728fcc7888356aafb1cfc6f0f9a2ee257a8fdddf
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 11 16:57:45 2012 -0800

    (#7316) Give test file a more descriptive name

commit 23fedf2f9bcfeddd76026d72880edb47ab3776bd
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 11 16:53:57 2012 -0800

    (#7316) Do not run on windows
    
    Because the test uses the module tool, this test cannot be run on
    windows.

commit 849aaf41c20819f3f2f1109912c2f94bca7aaf2b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 11 16:39:23 2012 -0800

    (#7316) Test faces from modules using a module
    
    Previously the test that we could load faces from modules did so by
    constructing a module in the configured modulepath. A more complete test
    is to install a module that contains a face and ensure that we can
    execute the face that has been installed in that manner. This commit
    changes the test to do that.

commit 44edc94e0ffc90458fe6b58edc8a2d4c8f6c04d5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 11 16:02:29 2012 -0800

    (Maint) Fix syntax error in module generate template
    
    Commit 0d3b84249 introduced a syntax error in the template for
    generating the init.pp file. This fixes that syntax error.

commit 6c0ea17dc505890597e445da4c8e61d49cbbe840
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 11 15:32:53 2012 -0800

    (#7316) Use tempfile utilities for managing files

commit f1f7d665749b9ff7afd382c86471cbf74fe34213
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 11 15:30:37 2012 -0800

    (Maint) Allow creating a test file with default options
    
    Previously even an empty hash of options needed to be specified, this
    allows it to be left off to get the defaults.

commit 62ffed02021cf3af0d15f09bf7c6ee418e94ea7b
Merge: a5dc617 81ca2a7
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Dec 11 15:19:06 2012 -0800

    Merge remote-tracking branch 'origin/3.0.x'

commit c88209037a74f0cfa0b975fe79e2631b80c74779
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 11 15:04:25 2012 -0800

    (#7316) List subcommands in a supported manner
    
    The man face's call to `available_subcommands` was missed when that
    method was deprecated. This makes sure it calls the new method.

commit 81ca2a770aac8802b7e93cf32b88c71231bae87e
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Dec 11 14:49:01 2012 -0800

    Update PUPPETVERSION to 3.0.2-rc2

commit 067e9e04fde10245588f5d5eabb866c8c3d9942a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Dec 11 14:27:46 2012 -0800

    (Maint) Clarify what the options to less are
    
    The comment for an assignment to the LESS environment variable didn't
    provide any insight into what was being done. This expands on the
    comment so that the reader can know a bit better what all of "random"
    letters mean.

commit a5dc617350fe8a0e15ad4708fa852be34ea1cfda
Merge: 86f7e5e a58e4db
Author: nfagerlund <nick.fagerlund@puppetlabs.com>
Date:   Tue Dec 11 10:53:49 2012 -0800

    Merge pull request #1320 from jumanjiman/reportfrom
    
    tagmail: s/reportform/reportfrom/

commit f2505b912cedbaf8f637ade2895e14db188c56b4
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon Dec 10 15:37:56 2012 -0800

    Maint: Remove sample_module example
    
    We already have enough documentation of basic module structure.

commit 966d6aba0da295acbab88fc1f61927dec0a8ef2e
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon Dec 10 15:35:51 2012 -0800

    Maint: Remove mac_dscl and pkgdmg examples
    
    These are basic user/group/package resources, and need no further documentation
    beyond the type reference.

commit d6b44bcd35edd8395b8d7fd1a7e0654b7ffc3c44
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon Dec 10 15:11:11 2012 -0800

    Maint: Remove "ghost file" to obtain extra power from deathless wraiths

commit a81a44b51dbffd71c8c71393f61a98d7c78cdf55
Merge: cd3e7e2 48e6801
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Dec 10 16:12:43 2012 -0800

    Merge pull request #1324 from joshcooper/ticket/3.0.x/18047-revert-user-confdir
    
    (#18047) Revert change to user confdir

commit 604e568f824511a2350313512c0743386bcddcfb
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon Dec 10 15:10:06 2012 -0800

    Maint: Move example fileserver.conf and tagmail.conf files to conf

commit 30d122d3df9654d42e2d6157042d212b4f65e853
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon Dec 10 14:53:58 2012 -0800

    Maint: Remove conf/epm.list
    
    EPM is dead dead dead. This file has no use anymore.

commit 2f3e5eb64d5617fc7f663cffb88c4f86151c9418
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon Dec 10 14:45:44 2012 -0800

    Maint: Remove a lot of messy and ancient do-nothing code from examples
    
    It's not clear what this code was doing in there, and it has not been
    touched in years. I am pretty sure it was just unused clutter.

commit dad411e1df11f144fd7b1bbbe293108f6d49dfd2
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon Dec 10 13:37:13 2012 -0800

    Maint: Remove outdated example puppet.conf
    
    This example file used the old and now disabled [puppetd]-style config
    blocks. Since it appeared to be unused and unmaintained, it seemed safer
    to delete it than to update it and wait for it to fall out of sync again.

commit 87ee7db3dd1c781bf2b64387213ae7320b9cc0f5
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon Dec 10 13:36:23 2012 -0800

    Maint: Remove example namespaceauth.conf files
    
    Namespaceauth.conf is dead dead dead. These example files are no longer useful.

commit 48e6801e77ba97ec96dfd2c6dbd7a5f38840c0e9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Dec 7 20:20:45 2012 -0800

    (#18047) Revert change to user confdir
    
    In 3.0, the default user confdir (and vardir) was changed from ~/.puppet
    to the Dir::LOCAL_APPDATA/PuppetLabs. However, when puppet is run as a
    non-administrator, puppet will attempt to create its confdir, e.g.
    C:\Users\albert\AppData\Local\PuppetLabs\puppet, and fail because the
    parent PuppetLabs directory doesn't exist.
    
    This wasn't an issue in 2.7.x, because the confdir was ~/.puppet, so the
    parent directory always existed.
    
    This commit restores the previous behavior for non-administrators. No
    changes are required for administrators, because the MSI installer creates
    the necessary directories within COMMON_APPDATA.

commit 182071c045c39f82d5df70af7b72aacf8a51b6a3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Dec 6 21:10:06 2012 -0800

    (#7316) Add acceptance test for loading face from module
    
    This acceptance tests verifies that we can load a face application from
    an environment-specific modulepath. It ensures the face is an available
    application, that we can get help for the face, and that we can execute
    a simple action, and an action that requires utility code to perform the
    action.

commit 6131fb6e498a1f45c02061c04b4eb26a52d3f3e1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 5 21:24:28 2012 -0800

    (#7316) Warn if script action is reloaded
    
    In commit 6f38feba for #12763, we no longer prevent actions from being
    reloaded, e.g. during pluginsync. But this only applies for "normal"
    actions, not script actions.
    
    This commit makes a similar change for script actions so they're
    consistent.
    
    With that said, the whole reloading of actions is dubious. If the action
    is declared within the body of the face, then the action will be
    required along with the face, and neither can be reloaded. Only if the
    action is in a separate file will it be loaded via the Autoloader, and
    therefore be reloadable.
    
    Also, it doesn't appear we can reload default actions, though we can
    reload script actions (if they were originally loaded).

commit 4f99f25cd36ccbe6e49b2739848e8e7bda8e3a35
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 5 15:52:14 2012 -0800

    (#7316) Append module plugin directories to $LOAD_PATH
    
    Previously, face applications delivered as a module could not be loaded.
    This is because FaceCollection has problems loading code. For one, it
    require's faces and actions within, but load's actions that reside in
    different files. So it conceivable that a reloaded face application
    could run with older faces, but newer actions.
    
    Second, if we load the face, it will call Puppet::Interface.define,
    which will check if the face has already been loaded by calling
    FaceCollection[name, version]. But that will attempt to load the face
    that we're currently loading, getting into an infinite loop.
    
    Third, the help face application gets a list of available application
    names from Application. This list includes applications from gem and
    module paths. However, the help face application fails to load faces
    which reside in the modulepath, since it's using require and not going
    through the Autoloader.
    
    While faces could be modified to use an Autoloader, the longer term plan
    is to stop pretending we can reload code in ruby, i.e. always require
    based on the current $LOAD_PATH.
    
    This commit adds a `each_plugin_directory` method that yields each
    module plugin directories based on the current environment. It also
    modifies the CommandLine to append those directories,  unless we are
    loading the master or agent applications.
    
    In the case of an agent, the libdir is always in the $LOAD_PATH, and it
    will load pluginsync'ed files from there. This aspect of #4248 has been
    fixed for sometime.
    
    In the case of master, we compile catalogs in the context of the
    client's environment, not necessarily the environment the master itself
    is configured to use. As such, we only want to autoload custom functions
    from those modules, not require them. In other words, we don't want those
    modules in the $LOAD_PATH to start with. This aspect of #4248 (the
    ability to load utility module code from a custom function) is not
    fixed, and can't really be fixed until we move to one process per
    environment compilation.
    
    In the case of apply, we compile catalogs, but always in its current
    environment, so we can safely append to the $LOAD_PATH. And same for
    face applications. As a result, the help face can load other faces from
    modules.

commit 38571f51b4adca0d9cb4d4b84829bbabe31b00ad
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 5 15:47:47 2012 -0800

    (#7316) List faces using an autoloader
    
    Previously, calling Puppet::Interface.faces generated a
    different list of face applications than those included in
    Puppet::Application.available_application_names, since the former only
    considered the $LOAD_PATH, and the latter used an Autoloader, which
    includes gem directories and the current environment's modulepath.
    
    From what I can tell, the method is never used, as puppet itself
    accesses faces via Puppet::Interface[name, version] method. However, if
    someone had called `faces` it would have excluded faces that could be
    loaded via require.

commit cdd3385230c5fe36b4420701cf3cc63618322d33
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 5 15:10:52 2012 -0800

    (#7316) Refactor listing and requiring of applications
    
    Previously, the logic for listing and requiring applications was in two
    places, CommandLine and Application, respectively.
    
    The CommandLine contained logic, basically duplicated from the
    Autoloader, to walk a search path and generate a list unique
    applications relative to 'puppet/application'.
    
    The Application contained logic for requiring the application from
    'puppet/application', duplicating the logic from CommandLine.
    
    This commit moves the logic for listing available applications to the
    Application class, which delegates to its autoloader. Note the
    autoloader already takes gem and module paths into account, so no change
    in functionality there.
    
    This commit also deprecates the CommandLine available_subcomands
    instance and class methods.

commit e0577e11931f3f5e5f60a1f2ee019f85646d57e4
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Fri Dec 7 13:07:41 2012 -0800

    (#15496) Adds tests for our Time#to_zaml serialization
    
    These exercise the to_zaml monkey-patch to Time by comparing the
    output of the method, given a couple of strange (fractional offset,
    both east and west of GMT) time zones, against known-good YAML
    for the same moment in time -- which happens to be the Mayapocalypse.
    
    Without the fix in d2c816a, the test for the condition in #15496
    fails with the same incorrect offset described by the bug author:
    
      1) Pure ruby yaml implementation should correctly serialize Time objects, even in oddball timezones
         Failure/Error: t.should == serialized
           expected: "--- 2012-12-12 12:12:00.000000 -04:30"
                got: "--- 2012-12-12 12:12:00.000000 -05:30" (using ==)
         # ./spec/unit/util/zaml_spec.rb:56
    
    So this seems likely to be testing the right thing.

commit 070cf4a38fc771d4153efe953bd39d267c38e18e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Dec 7 13:19:08 2012 -0800

    (#18041) Remove Autoload.list_loaded method
    
    The list_loaded method was broken in 6700adca in 0.24.0, because the
    yielded `hash` parameter was always nil -- we're collecting on a sorted
    array of keys, not the `loaded` hash.
    
    Since anyone calling this method would always receive a NoMethodError,
    and the code is never called from anywhere in puppet or spec, it is safe
    to remove without deprecation.

commit a58e4db1811facba1d9eb790de09b26fbd822158
Author: Paul Morgan <jumanjiman@gmail.com>
Date:   Fri Dec 7 12:17:25 2012 -0500

    tagmail: s/reportform/reportfrom/
    
    Fix trivial typo in description of the `reportfrom` config option.
    
    This coincides with a similar fix in
    `puppet-docs/source/references/*/report.markdown` and is needed
    to prevent the typo from propagating into the docs.
    
    Signed-off-by: Paul Morgan <jumanjiman@gmail.com>

commit 86f7e5e4106e00d2b87f7f385a4a65815dae61fd
Merge: ec1a51c ed07df8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Dec 6 16:27:57 2012 -0800

    Merge pull request #1317 from zaphod42/issue/master/16753-list-all-nodes
    
    (#16753) Re-introduce node yaml files

commit ed07df88b95ca348df108e6647c76b1cf74f18dd
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Dec 6 16:14:29 2012 -0800

    (#16753) Remove use of routes file in test
    
    It turns out that the routes file used by this test was not needed as
    there is a command line option for setting the one terminus that it
    needs.

commit cff8ef1605d710a398931c57de4c03d81a9e5798
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Dec 6 15:56:00 2012 -0800

    (#16753) Verify by using puppet node search
    
    Previously, the test checked that the yaml file was written by looking
    at a specific file on the filesystem. This is, however, not the
    guarantee that was asked for in the bug. This changes the test to check
    that the data is available by using a puppet subcommand to read the
    available data and so allows us to modify in the future how to actually
    store the data.

commit d2c816a138bdf9e54acbc67100e404a893183eae
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Thu Dec 6 12:19:27 2012 -0800

    (#15496) Correctly determine timezone offset
    
    A user reported the incorrect offset in reports for hosts
    in the timezone "America/Caracas", which is -04:30 from GMT.
    The zaml time interpolation did not handle negative fractional
    timezones correctly, because Ruby rounds down when integer
    division results in a remainder, which caused "-4.5" to result
    in "-5".
    
    This patch coerces the denominator into a float, so the printf
    formatting's truncation works correctly.

commit 2027a4070ac2bdb4a7ad5fb3617f40b5ff16f512
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Dec 5 16:31:39 2012 -0800

    (#16753) Improve test to check contents of written file
    
    The previous test didn't check that the file was written with the right
    contents. This checks at least a portion of the contents. This also
    simplifies the test a bit to use a temp directory for holding the auth
    file that is used to allow the agent access to the master.

commit b3bcb6dd385a5a9bca88c56b0e454eac9ac33dcc
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Dec 5 16:06:01 2012 +0100

    (maint) Fix spelling error in message for interrupt.

commit 4025e440af842e79b8af0504b0f44215a7d715b1
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Dec 5 02:42:29 2012 +0100

    (#16753) Fix issue with facter terminus not being set to yaml.
    
    There were two methods with the same name (setting up app defaults for
    master). This made facter use a terminus that did not allow saving.

commit 87993c8cf29140f9d2963791eea5e6c3479d16fe
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Dec 5 17:34:57 2012 -0800

    (#16753) Change name of 'Woy' to 'WriteOnlyYaml'
    
    This commit also contains cleanup of trailing whitespace.
    The name change means using :write_only_yaml instead of :woy.

commit 6b2ab70e53cdd1ccd1b679646328b10a1019db40
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Nov 30 22:33:36 2012 +0100

    (#16753) Make it possible to turn off the woy cache.
    
    Since the :woy cache is on by default for the master application
    and this means that there will be a cache file for every node that talks
    to the master there should be a way to turn this off. This commit adds a
    node_cache_terminus setting (nil by default), and with an app default of
    :woy for the master application.

commit b530a1d72b87b22173c5537f5adb7726bbcf315d
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Nov 30 22:28:04 2012 +0100

    (#16753) Add acceptance test for write only yaml cache.

commit 6bbec301975e94b3c2a12b1bb0428feb917c4b46
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Nov 30 16:49:50 2012 +0100

    (#16753) Add write only YAML cache for nodes.
    
    This is done to allow node information to be written in the same fashion
    it has been done in earlier puppet versions for the purpose of being
    available to query this cache with the YAML terminus.

commit b240673f1ffb61938065b93500651d41f4e23ac7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 5 15:07:51 2012 -0800

    (#7316) Add method to expand autoloaded paths
    
    Several places use an Autoloader to list files that could be loaded
    relative to some prefix, e.g. puppet/application. But then the same
    prefix is specified again when requiring a specific instance, e.g.
    
        require File.join('puppet', 'application', name)
    
    This commit adds an Autoload instance method to expand a path, so the
    above becomes:
    
        require @loader.expand(name)

commit ec1a51c2abdc4247d5a42637226845c2be093b81
Merge: 87aaffb cd3e7e2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Dec 5 11:44:44 2012 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      (Maint) Add YARD tags to return_globbed_list_of_file_paths method
      Update launchd test for 1.9.3

commit cd3e7e2154c89f94c64b4ee2b1c8446d990a4815
Merge: 2a7697d 74daa17
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Dec 5 11:44:36 2012 -0800

    Merge branch 'glarizza-bug/3.0.x/17624_spec_failure' into 3.0.x
    
    * glarizza-bug/3.0.x/17624_spec_failure:
      (Maint) Add YARD tags to return_globbed_list_of_file_paths method
      Update launchd test for 1.9.3

commit 74daa176c7c3dfdc1af03bf4ca4253e7890c9452
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Dec 5 11:43:15 2012 -0800

    (Maint) Add YARD tags to return_globbed_list_of_file_paths method
    
    This should help align the expectations of the spec files with the
    implementation itself.

commit f43244723bb6310052bf47d85ccce1387537eafe
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Wed Dec 5 09:55:27 2012 -0800

    Update launchd test for 1.9.3
    
    Previously, the spec tests for the launchd service provider would
    fail on Ruby 1.9.3 because the mocked objects for the launchd_paths
    and return_globbed_list_of_file_paths methods would return strings
    and not arrays (and in Ruby 1.8.7, you could call .each on a string
    and have it return the string object).  This commit fixes that by
    returning an Array and not a String.

commit 87aaffbf6f0e3d2214bb3056c5481b1c96a4fe09
Merge: 1c26453 677abda
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Dec 5 16:40:29 2012 +0100

    Merge branch 'master' of ssh://github.com/puppetlabs/puppet.git

commit 1c26453c7447a9771253e8342c08a67a05750071
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Dec 5 16:39:58 2012 +0100

    (yardoc) Refactor status for Puppet DSL; from @since to @status.
    
    This adds @status EXPERIMENTAL and removes the same note from @since.

commit bd4a56622ead3a5c5d2f8c297b262ce1bb1b99ac
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Dec 5 16:38:54 2012 +0100

    (yardoc) Add @status (transitive) and @comment (hidden) doc tags.
    
    This adds two supported tags to the yardoc processing:
    
    @status, a transitive tag for marking a state such as EXPERIMENTAL on
    a documentable element and everything it contains.
    
    @comment, a hidden tag that allows part of a comment that is otherwise
    processed as documentation to be excluded from the processing.
    
    # This is documentation
    # @comment but this is not
    #   and this is also part of the comment
    #
    def something(); end

commit 677abda765bf6092b4e100c91a57753a44af44ff
Merge: 6981a50 2a7697d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Dec 4 16:34:36 2012 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      [15929] [17624] Handle malformed plists

commit 2a7697d18d228ab88df5aaeea58f043f0cfabf4d
Merge: 76779bc 16d2d9a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Dec 4 16:34:17 2012 -0800

    Merge branch 'glarizza-bug/3.0.x/17624_launchd_fails' into 3.0.x
    
    * glarizza-bug/3.0.x/17624_launchd_fails:
      [15929] [17624] Handle malformed plists

commit 16d2d9a855f30ce4db68be4139cf38c77fe86c13
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Mon Dec 3 14:49:00 2012 -0800

    [15929] [17624] Handle malformed plists
    
    Previously, if launchd encountered a plist that did NOT have a 'label' key, or
    a malformed plist that plutil couldn't read, Puppet would throw a stacktrace or
    log a nebulous error that looked like:
    
    `Error: Could not run: No resource and no name in property hash in launchd
    instance`
    
    That was not ideal. This commit will catch the situation where a plist is
    missing a 'label' key Puppet is skipping the plist.  It will also catch the
    case the where a plist is malformed and plutil cannot read it.  With either
    condition, the commit adds code that logs a Puppet.warning and skips the
    malformed plist gracefully.

commit 6981a50a5551ffe0f92364e40383e9676831d729
Merge: dbdf2e0 76779bc
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Dec 4 15:53:54 2012 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      Update Documentation to YARD standard
      Update spec tests
      Clean up comments
      Create base64_decode_string
      Provide wrapper method for new StringIO objects
      Do not fail if ShadowHashData doesn't exist
      Wrap user plist retrieval into get_users_plist()
      Wrap ShadowHashData setting into its own method
      Optimize calls for operating system version

commit 76779bcf312d049754cf8668af18f52c8fe5feaa
Merge: 6730edb 4a1bc10
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Dec 4 15:49:35 2012 -0800

    Merge branch 'glarizza-bug/3.0.x/12833_fix_salt' into 3.0.x
    
    * glarizza-bug/3.0.x/12833_fix_salt:
      Update Documentation to YARD standard
      Update spec tests
      Clean up comments
      Create base64_decode_string
      Provide wrapper method for new StringIO objects
      Do not fail if ShadowHashData doesn't exist
      Wrap user plist retrieval into get_users_plist()
      Wrap ShadowHashData setting into its own method
      Optimize calls for operating system version

commit 4a1bc106edfd2d2019f5d3da0b1ca297d288a43d
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Nov 30 16:10:17 2012 -0800

    Update Documentation to YARD standard
    
    Previously, class documentation was listed AFTER the class
    definition instead of BEFORE it. This commit modifies each
    class's documentation to realign it prior to the class
    definition.

commit a925d455e7acabea08fe058c4f38d0168f3f4971
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Nov 30 14:26:09 2012 -0800

    Update spec tests
    
    This commit updates the spec tests for the directoryservice
    user provider according to recent commits that introduced
    helper methods for common behavior.  These tests should be
    tighter around behavior that was difficult to test (testing
    StringIO objects), as well as adding tests to catch edge-
    cases (10.6-style users that exist in 10.8).
    
    First shot at spec tests

commit 4338d99752471509ecb80afecf1987e39508b678
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Nov 30 14:24:04 2012 -0800

    Clean up comments

commit b0a05e81242785b32a4679621ba12bca846a0a19
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Nov 30 14:23:50 2012 -0800

    Create base64_decode_string
    
    Previously, the code for Base64 decoding a hex string into
    a binary string was provided inline within the body of the
    provider methods that needed this behavior.  This meant that
    code was duplicated, but, more importantly, to test the
    behaviour you would need to mock out the Base64.decode64
    method, which is not the best case in the world.
    
    To remedy this, this commit creates a new method, base64_decode_string,
    and wraps the necessary behaviour within that method.  This should
    reduce code duplication and also make it easier to test.

commit 297e93d8a761db4a3cfd4d08dec79c322705be3b
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Nov 30 14:20:40 2012 -0800

    Provide wrapper method for new StringIO objects
    
    Previously, StringIO objects were being created directly from
    the provider methods. This worked just fine, except for the
    fact that the StringIO objects were identified by a serial number.
    When you would try to provide rspec test coverage around these
    provider methods, you could never provide a complete match for
    the StringIO objects as you would first need to mock StringIO.new,
    and then hope that the serial numbers matched.
    
    This commit wraps the StringIO.new method into its own provider
    method called 'new_stringio_object', which makes it easier to mock
    for rspec tests.

commit 9ff9a804d88f26383319c2047078c29209d5ff77
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Wed Nov 28 11:39:47 2012 -0800

    Do not fail if ShadowHashData doesn't exist
    
    It's possible that a user account on a 10.7 or 10.8 machine
    could still have an old-style password hash that's been stored
    on-disk versus being stored in the user's plist (this occurs
    if a machine has been upgraded from 10.6 to 10.7 or 10.8).
    With this edge-case, the ShadowHashData key would be absent
    in the user's plist, and thus the shadow_hash_data variable would
    be false and not a Hash (as is expected).  Previously, there was
    no check for if the shadow_hash_data key was a Hash (it was assumed).
    This commit adds that check and handles a false value without failing.

commit a0e4d13a83feb9523a307cca4a567d63f8803e02
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Wed Nov 28 11:34:55 2012 -0800

    Wrap user plist retrieval into get_users_plist()
    
    Previously, the act of retrieving the user's plist was
    performed on an ad-hoc basis by running the plutil command.
    Because this binary is only available on OS X, it needed
    to be stubbed out to successfully test its behavior on
    Linux. To make this process easier (and also encapsulate
    the behavior into its own method for future upgrades), the
    plutil call has been wrapped in its own method
    (get_users_plist).

commit cb682bd27cbeba4cf7de37facda355bc2dda89e7
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Wed Nov 28 11:31:12 2012 -0800

    Wrap ShadowHashData setting into its own method
    
    Previously, the act of setting the ShadowHashData key in the
    user's plist was performed in the set_salted_sha512() and
    set_salted_pbkdf2() methods.  This commit wraps that behavior
    into its own method for uniformity.
    
    There was also a condition where a user account that has an
    old-style password hash (10.6 or earlier) could exist on a
    10.7 or 10.8 machine that had been upgraded.  If this user
    hadn't logged-in to the machine, then their password hash
    would continue to be stored on-disk (versus being stored
    in the ShadowHashData key of the user's plist). Previously,
    the code made the assumption that if the machine had an
    operating system version of 10.7 or 10.8, then the
    ShadowHashData key would exist in the user's plist. This
    was a false assumption, based on the edge case I described
    previously.  This commit adds the check for the ShadowHashData
    key in the set_shadow_hash_data method and will adapt accordingly.

commit b708a415dd7c7e1fb0bd35ea70c7ba0d3f03dd5c
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Mon Nov 26 22:00:03 2012 -0500

    Optimize calls for operating system version
    
    Previously, Facter.value() was being called every time the operating
    system version was required in the directoryservice user provider.
    This commit creates a method on the instance of the class that memoizes
    the lookup for the operatingsystem version.

commit dbdf2e04c0910190ed900c3cfd9dcb8ce5c30afb
Merge: 4b65455 6730edb
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Dec 4 10:06:08 2012 -0800

    Merge branch '3.0.x'

commit 4b65455a0be9d97c02411b90a7d0d0aef89ad126
Merge: 8703898 d3f6f67
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Mon Dec 3 15:00:58 2012 -0800

    Merge pull request #1308 from ryanuber/master
    
    (#17866) Fix permissions regression for logdir in puppet.spec.erb

commit 8703898e714ac4fa4f7abbd13d8295bcf1df682e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Sun Dec 2 23:19:51 2012 +0100

    (yardoc) Fix Ruby DSL yardoc.
    
    This fixes all inline documentation to use yardoc and markdown.
    (Only contains changes to documentation, which should now be viewable,
    hopefully meaningful, as well as navigable with yard).

commit d3f6f67f5df8e2eb3b2b2b455d8f5d3db63310a8
Author: Ryan Uber <ryuber@cisco.com>
Date:   Sat Dec 1 12:30:46 2012 -0800

    Fix for logdir perms regression in puppet.spec.erb (#17866)

commit 61bdb05968e3c5efc14fd710da24bc7f963dcc52
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Nov 30 23:29:52 2012 +0100

    (yardoc) Correct @since information in the Ruby DSL files.
    
    The format should be @since major.minor comment.
    This commit changes the @since tags to @since 3.1 EXPERIMENTAL

commit 6730edb99ad75f482d787bb5612e0c278c8287fd
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Nov 29 15:34:54 2012 -0800

    Update PUPPETVERSION to 3.0.2-rc1

commit 3222337b1fb81c94bfac1bd8b8e74c26af9b673f
Merge: 882a457 49aed48
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Nov 29 16:27:07 2012 -0800

    Merge pull request #1299 from lotheac/dont_use_svcprop
    
    don't use smf properties for config on solaris

commit 882a45746081ee794dc3eb4bd88fa2760a866071
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Nov 30 00:55:08 2012 +0100

    Correct change of [] and []= to have additional options.
    
    There was an error referencing unknown variable "option" vs, "options"
    This also adds yard doc and makes it clear that options are not API.

commit dfddbffe8566e5b02312ff91308dde26fe62cecb
Merge: 57e1db0 43148bd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Nov 29 15:41:23 2012 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      (#17856) Fix docs re: hasrestart's default value

commit 43148bdaa11c313a14157f3f6182281921077524
Merge: 125a487 0cd02fd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Nov 29 15:40:46 2012 -0800

    Merge branch '2.7.x' into 3.0.x
    
    * 2.7.x:
      (#17856) Fix docs re: hasrestart's default value

commit 0cd02fd81f073371ba1c84253562ef6cdd8f325f
Merge: f92d2a0 6b92508
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Nov 29 15:37:50 2012 -0800

    Merge branch 'nfagerlund-17856_fix_wrong_hasrestart_docs' into 2.7.x
    
    * nfagerlund-17856_fix_wrong_hasrestart_docs:
      (#17856) Fix docs re: hasrestart's default value

commit 6b925088aaf9a67b1237536c7344e17b873d2d18
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Thu Nov 29 15:17:53 2012 -0800

    (#17856) Fix docs re: hasrestart's default value
    
    As part of a docs revision in commit 455c9aab, I put in the wrong default
    value for hasrestart, probably after getting it confused with hasstatus.
    In fact, it defaults to false. This commit corrects the error.

commit 57e1db0c026ad69f772a21853bade5e5c773b71b
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Nov 29 15:20:18 2012 -0800

    Keep Scope#[]/[]= signatures the same as lookupvar/setvar
    
    The optional options hash argument was lost while converting these from
    aliases to proper methods. This restores that argument.

commit 4620e46eb96c2aa20a2e3dcefaff78ce5c5fa2a3
Merge: e6830c2 2c8fc1e
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Nov 29 14:00:06 2012 -0800

    Merge pull request #1302 from hlindberg/17845-yard-doc-ruby-dsl
    
    (#17845) Add yard doc to DSL::* and Parser::Scope showing API status.

commit e6830c2d17c3ba97b8ebdf8344b616e5850ce3d9
Merge: efa2b2f 125a487
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Nov 29 13:53:05 2012 -0800

    Merge branch '3.0.x'

commit 2c8fc1ecef9a9f58bfe7075db712e2921e8025fa
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Nov 29 03:41:56 2012 +0100

    (#17845) Add @since 3.0.x EXPERIMENTAL to Puppet::DSL (transitive).
    
    This marks all the modules and classes in the Puppet::DSL namespace
    to be @since 3.0.x EXPERIMENTAL. (The @since tag is the only tag except
    @api that is transitive, and unlike @api, the @since tag outputs the
    text that follows.

commit ab0d104e413a43fced328a5bd58330f8db870d9f
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Nov 29 03:21:21 2012 +0100

    (#17845) - Add YARD doc to [] and []= in scope (= API)
    
    The scope is passed to the Ruby DSL and is thus exposed to those that
    author Ruby DSL logic. Since the same scope is also used by the Ruby DSL
    implementation itself it is difficult to shield the user from access to
    the real object. Instead, the methods that are API should be marked.
    
    This commit adds "PUBLIC API" and a more doc text to the only two
    methods that are considered to be API.
    
    This required that the aliased methods [] and []= where changed to real
    methods as it was not possible to mark the implemented methods as non
    api while the aliases were api (there is a difference in parameter
    passing to the operators and the underlying methods).

commit 125a487f482f562987b6b9e0e1475877a38ed875
Merge: e0f4405 03e2e0e
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Thu Nov 29 13:50:39 2012 -0800

    Merge pull request #1301 from haus/maint/3.0.x/remove_unused_test_code
    
    Maint/3.0.x/remove unused test code

commit e0f44051e8cba8c601cecd0b924f105afd4c030d
Merge: b0fe503 2ca239f
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Thu Nov 29 13:44:08 2012 -0800

    Merge pull request #1300 from haus/ticket/3.0.x/17853_allow_install_from_outside_source_root
    
    (#17853) Allow install.rb to execute from outside of source root

commit 03e2e0ec34d2ce921c45f5e83c110d4c37e5c7e9
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Nov 29 13:35:17 2012 -0800

    Remove gem.rake from 3.0.x
    
    gem.rake is no longer used in 3.0.x because of the new workflow using the
    packaging repo. It was still required in 2.7.x because 2.7.x still shipped with
    sbin files and the gem.rake did some magic with moving sbin to bin. This commit
    removes the rake task.

commit 09e353e2f78c02a97fa57af9067c59ee74882b72
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Nov 29 13:32:37 2012 -0800

    Remove nonexistent files from the rdoc glob
    
    CHANGELOG, TODO, Install, README and README-library don't exist anymore (if
    they ever did), so this commit removes them from the rdoc glob while globbing
    all of the current READMEs that are in puppet.

commit 806a4043d5163205c95c1159ed3fc6b3244ab958
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Nov 29 13:26:20 2012 -0800

    (maint) Remove unused tests bits from install.rb
    
    There are no tests in the test directory in Puppet past 3.0, so the run_tests
    method and the tests globs are no longer needed. This commit removes those
    mentions of tests from install.rb.

commit 2ca239f66068dafbb06b904a9cacccbe3a2fecc1
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Nov 28 23:11:39 2012 -0800

    (#17853) Allow install.rb to execute from outside of source root
    
    Previously if install.rb was invoked when outside of the source root, all of
    the globs would fail to find bins, libs, etc, or worse if run from / it will
    find the binaries in /bin and copy them to bindir. This commit addresses that
    by running the install after cding into the directory containing the install.rb
    file.

commit efa2b2f7e777190740c07282d5859d7bf3f9b9ce
Merge: 6aad399 0f408e9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Nov 29 12:04:06 2012 -0800

    Merge branch 'jmccann-augeas_add_clearm_support'
    
    * jmccann-augeas_add_clearm_support:
      (#16112) Add Augeas clearm command support

commit 0f408e9f9a8c84656f4e5ccded20b128bf84ba5f
Author: jmccann <jacob.m.mccann@usps.gov>
Date:   Fri Aug 24 11:54:56 2012 -0500

    (#16112) Add Augeas clearm command support
    
    Without this patch applied, When trying to use clearm in augeas provider
    I get the following error:
    
        err: /Augeas[boot_grub_menulst_kernel_param_timekeeping_use_tsc]:
        Could not evaluate: Unknown command clearm
    
    This patch fixes the problem by using the Ruby augeas bindings to test
    if the clearm command is supported.  If it is not, the catalog run
    fails, otherwise it continues.
    
    This support does not take the form of a new parameter.  Instead, the
    patch follows the existing augeas convention of using the `changes`
    parameter.

commit 49aed48c1f6853e1d231737b063246af38e01a25
Author: Lauri Tirkkonen <lotheac@iki.fi>
Date:   Thu Nov 29 20:19:21 2012 +0200

    (#17861) start agent with no options on Solaris
    
    Command line options override puppet.conf, so having a svc property and
    using it is not the right way. In contrast, the Debian packaged
    puppet agent runs with no options; let's do that here as well.

commit b0fe503c65cbc9897bfd8a32ee533b9a8deb6b4d
Merge: eb21e13 5a71b9f
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Nov 28 16:39:33 2012 -0800

    Merge pull request #1218 from haus/maint/3.0.x/update_suse_init_and_defaults
    
    Maint/3.0.x/update suse init and defaults

commit 5a71b9f15e0ec5e7072becf7885d46ab2709dbc9
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Wed Nov 28 15:31:28 2012 -0800

    (#6631) Remove runlevel 4 from default-start, add requires, buildrequires
    
    As stated in the ticket, runlevel 4 is not defined on suse, so the init scripts
    should not have a default-start on runlevel 4. Additionally, because we ship
    logrotate rules in the package, the package needs to depend on logrotate. The
    buildrequires of klogd and sysconfig are needed as buildtime dependencies as
    noted in the ticket.

commit 6aad3992cb3853aa76db1419b87f9d2ef64c9071
Merge: 4dd67d9 eb21e13
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Nov 28 15:29:47 2012 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      Update module acceptance tests for changed log output
      (#16676) Clarify file format restrictions around comments
      (#16488) Add `--puppetport` to list of kick options
      (#17554) Use agent run_mode when resolving runinterval

commit eb21e139cd403bf573907a154527100d49d1ee2b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Nov 28 10:47:44 2012 -0800

    Update module acceptance tests for changed log output
    
    Log message at the `notice` level now print "Notice: " again, so all the
    module tool tests which include every character of output, even color codes,
    had to be updated. This change is signed off by the module tool team lead and
    ux person.

commit 4dd67d94933dea5de7e91a194a67252b9b47da07
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Nov 28 20:56:33 2012 +0100

    (#17844) Change 'my' to 'ruby_eval' for evaluation in Object's scope.
    
    This changes the Ruby DSL escape from the shackles of BasicObject
    adapted to be used for evaluating Puppet Ruby DSL statements. (i.e. to
    get to 'require' and other methods available on Object), by renaming it
    from "my" to "ruby_eval".

commit db56c79934e18ca3e8eafe47ff6d7f016c610ef3
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Thu Oct 4 17:18:51 2012 -0700

    (#16676) Clarify file format restrictions around comments
    
    Previously the help text at the top of the generated config files
    did not describe what the file format ought to be. There is a
    description in the documentation (guides/configuration.html),
    but our inline docs should be consistent with that. This led
    to confusion and bugs like #16676 and #16672.
    
    Now we state clearly that whole-line comments are allowed but
    not partial-line comments. Plus I got to use the word 'octothorpe'.

commit 119367a94fdd6a91490464932b442ca7ca189093
Author: Eric Sorenson <eric@cipater.local>
Date:   Thu Oct 4 23:26:57 2012 -0700

    (#16488) Add `--puppetport` to list of kick options
    
    The fact that the kick application uses the `--puppetport` agent
    option in a special way (to _connect_ to agents, rather than
    to listen) was not previously documented, as #16488 points out.
    
    This commit adds a simple description to the option output in
    `puppet help kick`

commit 368587acfc7a66fc7f95327ab53064e1c89541c5
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Nov 27 17:01:33 2012 -0800

    Don't remove validate_arguments from backtraces
    
    This seems knid of unsafe and totally unnecessary

commit 751efa9174adfe1bc0a5707855e6ba16ff2aed43
Merge: 023cffd af4f755
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Nov 27 16:50:31 2012 -0800

    Merge branch 'new-ruby-dsl-by-mlen'
    
    * new-ruby-dsl-by-mlen:
      Whitespace and formatting cleanups
      Add new Ruby DSL by Mateusz Lenik.

commit af4f7554b589a5f49d12e15945fee455f11f4af5
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Nov 27 16:46:54 2012 -0800

    Whitespace and formatting cleanups
    
    Reflow some comments and fix trailing whitespace. These were extracted from
    the Ruby DSL changes in the previous commit.

commit c71da1830819488539c582beecf699d3910f78f3
Author: Mateusz Lenik <mt.lenik@gmail.com>
Date:   Thu Nov 15 01:44:25 2012 +0100

    Add new Ruby DSL by Mateusz Lenik.
    
    This adds new Ruby DSL features by Mateusz Lenik.
    This was developed as a Google Summer of Code project.
    
    This commit contains all of the new Ruby DSL work in one single commit.

commit 7bcc5c28f51c5d6fad2b329f460fd0ea65dba73c
Merge: 819c1bf 61093b9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 27 16:29:58 2012 -0800

    Merge pull request #1292 from joshcooper/ticket/3.0.x/17554-runinterval
    
    (#17554) Use agent run_mode when resolving runinterval

commit 023cffdbb9b30945fbf4dcaded4f63428ce54ea7
Merge: 02ee271 819c1bf
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 27 15:57:34 2012 -0800

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (#16728) Unify handling of log coloring and prefixing
      Revert "Fix Ruby 1.8.5-incompatible code in Transaction#eval_generate"
      (#17820) Avoid allocating and copying hashes unnecessarily
      (#12670) Improve the yum provider description
      (#17158) clarify documentation on behavior of `replace` toward symlinks in file type
      (#16178) Stop checking for :undefined
      (Maint) Remove duplication and mocking from tests
      (Maint) Require Hiera::Backend where it is used
      (#16178) Add test for behavior of false values in lookup
      (#16178) Handle the case where temp_answer is false but defined.

commit 819c1bf04cc83b7ada54183a539a675136fbb54d
Merge: c034691 f92d2a0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 27 15:50:14 2012 -0800

    Merge remote-tracking branch 'upstream/2.7.x' into 3.0.x
    
    * upstream/2.7.x:
      (#17820) Avoid allocating and copying hashes unnecessarily
    
    Conflicts:
    	lib/puppet/transaction.rb

commit c034691783bedf1226def87c4c36a1333674f943
Merge: ab7a88d 05185f8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 27 15:43:23 2012 -0800

    Merge branch 'ticket/3.0.x/17820-slow-eval-generate' into 3.0.x
    
    * ticket/3.0.x/17820-slow-eval-generate:
      Revert "Fix Ruby 1.8.5-incompatible code in Transaction#eval_generate"

commit f92d2a06dc8a6cea234fd50bae01a9482d996c33
Merge: cb9696d 3caa393
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 27 15:29:37 2012 -0800

    Merge branch 'ticket/2.7.x/17820-slow-eval-generate' into 2.7.x
    
    * ticket/2.7.x/17820-slow-eval-generate:
      (#17820) Avoid allocating and copying hashes unnecessarily

commit ab7a88d145a9703c7811435528a071cd6fdf8bb4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Nov 7 10:57:46 2012 -0800

    (#16728) Unify handling of log coloring and prefixing
    
    Previously the logging would omit the Notice prefix for log messages at
    the notice level. This is a change from how things had worked in 2.7
    where all log messages got a prefix of the log level.
    
    This commit unifies all of the handling of log level colorization and
    output by using a data-driven style and by doing so re-adds the Notice
    prefix for the notice log level.

commit 02ee271c8b08b64ef019ab19f6c835e1c6ccc9a2
Merge: 66afb1a bc11a77
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 27 13:41:50 2012 -0800

    Merge pull request #1296 from joshcooper/ticket/master/7316-restore-unknown-subcommand
    
    (#7316) Restore unknown subcommand behavior

commit bc11a77ea3eafb3fbd03a8a372b16ba2702bfe56
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 27 11:51:08 2012 -0800

    (#7316) Restore unknown subcommand behavior
    
    The output of puppet with an unknown subcommand changed unexpectedly. If
    version arguments were specified (-V or --version), then the puppet
    version was no longer displayed. If no version arguments were specified,
    then the "See 'puppet help' ..." message was no longer displayed.
    
    This commit consolidates the version and help message behavior into a
    NilSubcommand, and modifies the UnknownSubcommand to extend it, thereby
    preserving the behavior that existed in 3.0.x.
    
    It also adds tests for behavior that was only partially covered in the
    acceptance test `ticket_17458_puppet_command_prints_help.rb`

commit 05185f8d0d5e01da9eddfe7a5e6c546b9403a0c7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Nov 26 22:30:30 2012 -0800

    Revert "Fix Ruby 1.8.5-incompatible code in Transaction#eval_generate"
    
    This reverts commit 737c2f66476b2379f2546150856ea1cd7fdde08a.
    
    The commit above was implemented to maintain compatibility with ruby
    1.8.5, but resulted in a severe performance penalty ~500 times slower.
    Since Puppet 3 is not compatible with ruby 1.8.5, this commit restores
    the original version which is much faster.

commit 3caa3937f266db3def679644123731ab6acbc481
Author: Linus Sellberg <sellberg@gmail.com>
Date:   Mon Nov 26 22:06:29 2012 -0800

    (#17820) Avoid allocating and copying hashes unnecessarily
    
    Commit 737c2f66 was implemented to ensure portability with ruby 1.8.5,
    but in doing so, it caused severe performance problems, likely due to
    allocating a hash, and then merging that, and returning a copy of the
    merged hashes.
    
    This commit eliminates the performance issue by not attempting to
    merge the hashes, while maintaining compatibility with ruby 1.8.5.
    
    The original code implemented in commit 7002eff7 should be restored in
    3.x as that is even faster than this commit, but does not maintain
    compatibility with ruby 1.8.5.
    
    Reviewed-by: Josh Cooper <josh@puppetlabs.com>

commit 61093b9e258b44538a6cb75b8050e46e97cdbebd
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Nov 26 21:34:06 2012 -0800

    (#17554) Use agent run_mode when resolving runinterval
    
    Previously, the windows service was invoking `puppet config print
    runinterval` to determine how frequently to invoke the puppet agent.
    However, that only takes into account the main section, not the agent
    section, and runinterval is agent-specific.
    
    This commit changes the windows service to invoke `puppet agent
    --configprint runinterval` which takes into account the agent
    section of the settings.

commit 66afb1a96bb4591319df8f5c3e8e9fdb1a6478c2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Nov 26 16:40:27 2012 -0800

    (#7316) Ensure changes to mutable CommandLine wrapper don't affect ARGV
    
    In commit 1390faee94, we created a mutable CommandLine wrapper, but in
    doing so, it had a reference to the original args that the CommandLine
    was created with. However, several places in puppet and specs modify
    `CommandLine#args`, such as `FaceBase#parse_options`. In particular, if
    a CommandLine instance is created with the default set of arguments,
    then FaceBase would mutate ARGV, causing order dependent test failures
    that assumed ARGV was empty.
    
    This commit ensures the CommandLine wrapper is constructed with a
    duplicate set of arguments, that when modified, do not affect the
    original set of arguments that the CommandLine was created with.
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit 08387b73660ee5be7569dbead8267aea08749cdc
Author: Michael Hall <michael.hall@puppetlabs.com>
Date:   Fri Oct 26 11:30:47 2012 -0700

    (#12670) Improve the yum provider description
    
    Without this patch applied it is unclear that the `uninstallable` feature does not also
    remove dependencies when removing a package. This is a problem because users may expect
    dependent packages will be removed.
    
    This patch clarifies the behavior of the yum provider by improving the
    description docstring.

commit 637fc29ff9de33e81c2aba3a544317314e7059e5
Author: Michael Hall <michael.hall@puppetlabs.com>
Date:   Mon Oct 29 12:51:49 2012 -0700

    (#17158) clarify documentation on behavior of `replace` toward symlinks in file type
    
    Without this patch applied the behavior of `replace` toward symlinks in the file type isn't
    made explicit. This is a problem because some other parameters note differences where
    symlinks are concerned, and the lack of mention of symlinks in `replace` creates a sense
    of ambiguity for some users.
    
    This patch clarifies the behavior of `replace` toward symlinks by improving the description
    docstring.

commit dfc4e3aa3f15c3e2b21d372fa2ce2f4043eb7c01
Merge: 1f744cf 2cf09c1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Nov 26 14:01:43 2012 -0800

    Merge branch 'issue/master/7316-load-faces-from-modules'
    
    * issue/master/7316-load-faces-from-modules:
      (Maint) Create a mutation preserving wrapper for CommandLine
      (#7316) Document API used by CommandLine
      (Maint) Separate discovery of subcommand name from args
      (Maint) Simplify logic to find subcommand name
      (#7316) Clarify parameters to construct a CommandLine
      (Maint) Remove unused instance variables
      (Maint) Extract classes to handle different subcommand types
      (#7316) Reorder subcommand handling logic
      (Maint) Remove distracting comments
      (#7316) Do not try to require the application
      (#7316) Load puppet/util as early as possible
      (#7316) Use the public API for initializing settings
      (Maint) Stop changing internals of object during test

commit 2cf09c1bcc4f722e24a26513eb7b6e1971bc8228
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Nov 21 15:07:09 2012 -0800

    (Maint) Create a mutation preserving wrapper for CommandLine
    
    When the CommandLine class was changed to parse its options difference
    and no longer hold onto a reference to the discovered options the
    application option parsing code stopped working correctly because it
    depended on being able to modify those values and have CommandLine hold
    onto the modifications. This behavior caught be by surprise and took a
    long time to track down where that occurred.
    
    This commit preserves both the new behavior of CommandLine and the old
    behavior of Application by creating a wrapper that can hold onto the
    values from CommandLine in a manner that Application can modify, which
    creates a separation between the two classes.

commit e1135d6311ecafa0298b9778748d651669e66728
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Nov 21 13:06:30 2012 -0800

    (#7316) Document API used by CommandLine
    
    This commit adds documentation to the methods and classes used by
    CommandLine in order to bootstrap puppet, load an application, and
    execute it.

commit 7a8577dd103482431d0ab2cd561807e155e4767d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 20 17:23:33 2012 -0800

    (Maint) Separate discovery of subcommand name from args
    
    The discovery of subcommand and args was tied together. This separates
    them and should make the rules around the subcommand name and the
    arguments to that command a little clearer and independent of eachother.

commit 46f672540215d8d52a663c882e1118f43765aa83
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 20 17:05:29 2012 -0800

    (Maint) Simplify logic to find subcommand name
    
    The previous logic around figuring out the subcommand name duplicated a
    check for options and had an implicit check for an empty list of
    arguments. This makes it more straightforward.

commit 3719b812a84a9e73f41e1c30cbfd10618f9645a4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 20 16:46:31 2012 -0800

    (#7316) Clarify parameters to construct a CommandLine
    
    This adds documentation around the parameters that are to be passed to a
    CommandLine constructor. It turns out that one of them is unused and so
    the tests around it being special are removed and the documentation
    states that it is unused.

commit 1390faee9462ed2d2f65b14b6ee87b8b00139b31
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 20 16:32:37 2012 -0800

    (Maint) Remove unused instance variables

commit 88d87cb5d2f78cc969cebeb4e2fccdb3db4088b4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 20 16:28:32 2012 -0800

    (Maint) Extract classes to handle different subcommand types
    
    Previously the logic about how to find and execute the different kinds
    of subcommands were all tied together in a single conditional structure.
    This made it harder to isolate the different styles. This commit
    extracts them out into individual classes for execution and a single
    method to decide which execution class is needed for the given
    subcommand.

commit 042581ce7bba673de7068ba96e47d2f6ae2ce420
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 20 15:37:21 2012 -0800

    (#7316) Reorder subcommand handling logic
    
    The previous logic for handling subcommands was a mixture of negation
    and unless which made it hard to follow. This untangles it by nesting
    the conditions in a more natural manner.

commit 576d07ffc87452c8db4ceb20d123d381dc46b5a9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 20 15:30:21 2012 -0800

    (Maint) Remove distracting comments
    
    The comments did nothing to elucidate the code. Removing them puts the
    code closer together and easier to follow.

commit 649f7b58ee81d182485a40adc3b1317fe0606da0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 20 15:28:07 2012 -0800

    (#7316) Do not try to require the application
    
    The previous behavior of the CommandLine trying to load the application
    is unneeded and duplicates what the Puppet::Application.find method
    does. There is no need to do it. This commit removes CommandLine trying
    to require the application.

commit cc5258f713cb5a85754ba8417d4aa2f4a02416b4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 20 15:23:28 2012 -0800

    (#7316) Load puppet/util as early as possible
    
    Previously the puppet/util code was only loaded after the system had
    been running. This pattern of loading has sometimes lead to bad
    dependency cycles that have gone undetected. This moves the loading to
    be earlier so that we can catch those kinds of problems if they come up.

commit 74df53a422175078a6a8345f0bf21ea111faa935
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 20 15:14:11 2012 -0800

    (#7316) Use the public API for initializing settings
    
    Previously the Puppet::Util::CommandLine code would use unpublished APIs
    for initializing the application. Although this worked, it caused at
    least two problems.
      1) The command line code was tied to the internals of puppet
      2) The public API could not actually be used for achieving what the
      command line code did
    
    This commit changes the Puppet::Util::CommandLine class to start using
    the public API of Puppet.initialize_settings for initializing puppet.
    This required adding a new parameter to initialize_settings so that the
    command line arguments could be passed in. It also required removing the
    restriction that application_defaults can only be initialized once,
    since the public behavior of the initialize_settings method is to
    initialize both global and application settings at once.

commit ad3f0c847826dd41f042a9c4ede3bcc47b7bfd5d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Nov 21 14:25:33 2012 -0800

    (Maint) Stop changing internals of object during test
    
    Previously the test depended on the internal implementation of
    CommandLine (specifically the @args instance var) to control the test.
    This makes the test very brittle. This changes it to use the public
    interface of CommandLine.

commit 6729760338d88dadfdeb61a71b84ac787140bd21
Merge: 06ba7d5 03f658f
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue Nov 20 15:35:10 2012 -0800

    Merge pull request #1282 from zaphod42/issue/3.0.x/16178-hiera-puppet-backend-does-not-handle-false
    
    (#16178) Handle the case where the value found is false

commit 1f744cf5935acfeaaf934044159e9f5a67277718
Merge: 5ca331f 3c754b3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 20 11:15:26 2012 -0800

    Merge branch 'maint/master/more-scoping-examples'
    
    * maint/master/more-scoping-examples:
      (Maint) Test interplay of colliding names

commit 3c754b3155ade264c09ba7edd2686416057a03e7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 20 10:41:47 2012 -0800

    (Maint) Test interplay of colliding names
    
    This adds tests to ensure that the way scope is handled in the case of a
    variable name colliding with a class name is nailed down. It also adds a
    case to call out that nodescope is different from topscope.

commit 5ca331f359208f2f87ff110b02603ca57734a3a5
Merge: 5b3f371 06ba7d5
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Nov 19 17:49:40 2012 -0800

    Merge branch '3.0.x'
    
      * Merge-up after 2.7.20 release

commit 06ba7d5f81d43b2fd08fe6c101708cb4856d023c
Merge: c5eda44 cb9696d
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Nov 19 17:49:20 2012 -0800

    Merge branch '2.7.x' into 3.0.x
    
    Conflicts:
    	lib/puppet/version.rb

commit 5b3f371fe4393411449a8c6b299a63e00f1195f5
Merge: 35c5e26 c5eda44
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 19 16:29:24 2012 -0500

    Merge branch '3.0.x'
    
    * 3.0.x:
      (#17488) Handle SELinux errors gracefully
      (#17488) Capture access violations for selinux context of file resources

commit c5eda44b99a3530a00febe91ed1d7c894499b1f9
Merge: 0971c24 d47d09c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 19 16:29:14 2012 -0500

    Merge branch 'fix/3.0.x/17488_selinux' into 3.0.x
    
    * fix/3.0.x/17488_selinux:
      (#17488) Handle SELinux errors gracefully
      (#17488) Capture access violations for selinux context of file resources

commit d47d09c6aa63e27ad25d342672d8d359739a39f6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 12 14:57:59 2012 -0500

    (#17488) Handle SELinux errors gracefully
    
    Without this patch applied the SELinux support in Puppet does not
    gracefully handle errors when running unprivileged.  This is a problem
    because `puppet --noop` is often run as a normal user.
    
    This patch addresses the problem by catching exceptions raised for no
    such file or directory and permission denied errors.  Puppet issues a
    warning when these exceptions are handled.
    
    The behavior without this patch applied is:
    
        [jeff@pe-centos6 ~]$ puppet apply --noop --execute "file { '/root/chuj': ensure => absent; }"
        Permission denied - /root/chuj
    
    Which causes Puppet to prematurely abort.  With this patch applied,
    Puppet finishes the catalog run and issues a warning to the user:
    
        [jeff@pe-centos6 ~]$ puppet apply --noop --execute "file { '/root/chuj': ensure => present; }"
        Warning: /File[/root/chuj]/seluser: Could not stat; Permission denied - /root/chuj
        Warning: /File[/root/chuj]/selrole: Could not stat; Permission denied - /root/chuj
        Warning: /File[/root/chuj]/seltype: Could not stat; Permission denied - /root/chuj
        Warning: /File[/root/chuj]/selrange: Could not stat; Permission denied - /root/chuj
        Warning: /File[/root/chuj]: Could not stat; permission denied
        /File[/root/chuj]/ensure: current_value absent, should be present (noop)
        Class[Main]: Would have triggered 'refresh' from 1 events
        Stage[main]: Would have triggered 'refresh' from 1 events
        Finished catalog run in 0.04 seconds

commit 76b2629b2a432d8e6c69767797910b310b2dcf0b
Author: Lubomir Rintel <lubo.rintel@gooddata.com>
Date:   Fri Aug 10 17:35:45 2012 +0200

    (#17488) Capture access violations for selinux context of file resources
    
    ...and deal with them gracefully without aborting the run.
    A simple reproducer of the problem (abort), to be run unprivileged:
    
    puppet apply --execute "file { '/root/chuj': ensure => absent; }"
    
    (#17488) Don't abort while checking managedhome on nonexistent user provider
    
    The user resource itself should fail itself and this prevents falling back to
    that. Simple test case (unprivileged):
    
    before$ puppet apply --execute 'user { "kokot": managehome => true }'
    Parameter managehome failed: Validate method failed for class managehome: undefined method `manages_homedir?' for NilClass:Class
    after$ puppet apply --execute 'user { "kokot": managehome => true }'
    err: Could not find a suitable provider for user
    notice: Finished catalog run in 0.10 seconds

commit cb9696de4e2c56df0368ef7bb7120c033fd1c138
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Nov 19 13:02:38 2012 -0800

    Update lib/puppet/version.rb for 2.7.20

commit 35c5e26c56cf9ce7284347915b87570cbd5da9c6
Merge: 2293c50 b2235d7
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Mon Nov 19 12:19:43 2012 -0800

    Merge pull request #1283 from zaphod42/maint/master/cleanup-hiera-puppet-merge
    
    (Maint) Remove the hiera-puppet readme

commit 2293c5068a200699461addee51dae2f635523412
Merge: 9ca4e54 7f6adf1
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 19 10:41:41 2012 -0500

    Merge branch 'feature/master/define_version_api'
    
    * feature/master/define_version_api:
      Improve Puppet.version API to help automate releases

commit 7f6adf1dda3d15d57425136529b5b8a5b30ed147
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 19 10:35:56 2012 -0500

    Improve Puppet.version API to help automate releases
    
    Without this patch applied, it is difficult to fully automate releases
    because the `PUPPETVERSION` constant in code must be updated, creating a
    new version of the code.  This circular dependency makes it very
    difficult to use `git describe` as the basis for a version string.
    
    This patch addresses the problem by providing a way to break the
    circular dependency.  With this patch applied, Puppet will use the
    contents of `lib/puppet/VERSION`, if it exists, as the version string.
    This VERSION file is not intended to be version controlled therefore
    changing it does not create a new version in history as does changing
    the code itself.
    
    This patch defines the public API to maintain the software version for
    package maintainers.

commit b2235d7ea22973564de0f9536327b97d5ab5c249
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Nov 16 14:27:23 2012 -0800

    (Maint) Remove the hiera-puppet readme
    
    The hiera-puppet documentation was not reflective of how to actually use
    the puppet backend. This information needs to be cleaned up and moved
    into the real puppet or hiera documentation. It is still available in
    the old hiera-puppet repo, but is going to be removed from here for now.

commit 03f658f1aa68d167175280cd3a45fce9f9d12867
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Nov 16 14:06:05 2012 -0800

    (#16178) Stop checking for :undefined
    
    Puppet no longer returns :undefined as a special value from variable
    lookups. This commit removes this extra check from the Hiera puppet
    backend.

commit 9ca4e54ef0e785925121d9478cb545bfff8abf83
Merge: a12da0f 0971c24
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Nov 16 10:54:26 2012 -0800

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (#17007) Restore pre-3.0 command execution behavior
      (#17007) Restore exec terminus behavior
      (#17007) Make failonfail and combine explicit
      (#17007) Restore pre-3.0 execute semantics when calling deprecated method
      (#17007) Restore pre-3.0 execute semantics

commit 0971c2464432e66c4b91c46b5c255433bdd087c7
Merge: f0785ff 5e65a60
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Nov 16 10:32:59 2012 -0800

    Merge pull request #1276 from joshcooper/ticket/3.0.x/17007-restore-execute-semantics
    
    (#17007) Restore execute semantics

commit a0df02c005f3952638eebcdd94e45f2c22321d66
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Nov 15 17:52:13 2012 -0800

    (Maint) Remove duplication and mocking from tests
    
    The tests used to have a large amount of duplication around setting
    configuration values for Hiera, this extracts them into a common spot
    and also removes some of the mocking that was being done in order to
    make the tests a little more straightforward and less tied to the
    implementation.

commit 453249f5db6c0fe947bfc2acad97cca18cfa2231
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Nov 15 17:51:04 2012 -0800

    (Maint) Require Hiera::Backend where it is used
    
    Previously the Hiera::Backend::Puppet_backend code assumed that
    Hiera::Backend had already been included. This was not true, at least in
    the tests. This commit has the backend require the files that it expects
    to already be loaded for it to work correctly.

commit 5e65a60095241742465a262ad4446c2cf5b4919a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 13 16:17:35 2012 -0800

    (#17007) Restore pre-3.0 command execution behavior
    
    Prior to 3.0, commands were executed using Puppet::Util.execute
    without any arguments, so failonfail and combine were true. In commit
    89d57e72a, released in 3.0, provider commands were modified so that
    the provider could supply options to the execute method. In doing so,
    the default options were set to an empty hash, changing the default
    failonfail and combine arguments to false.
    
    This commit restores the pre-3.0 command execution behavior, such that
    failonfail and combine are true.

commit acd01b543537f1fb30ae57836452c7dd2a1f6219
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 13 16:01:48 2012 -0800

    (#17007) Restore exec terminus behavior
    
    Previously, the exec terminus attempts to call the execute method with
    failonfail true semantics, but due to commit 8b76be30 for #3836, which
    added the combine parameter, the execute method was actually being
    called with failonfail false. As a result, the ExecutionFailure
    exception was never being raised.
    
    This commit restores the failonfail true semantics by making it
    explicit, while preserving the combine => false behavior implemented
    for #3836.

commit 490a721db83d7945ce9e6ca02174820edaf5fce8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 13 15:49:44 2012 -0800

    (#17007) Make failonfail and combine explicit
    
    Previously, many providers called Puppet::Util.execute with an
    argument(s), which had the side-effect of defaulting failonfail and
    combine to false.
    
    This commit does not change any behavior. Instead in places where
    execute is called with arguments, it explicitly sets failonfail and/or
    combine to false. This way it's less confusing as to what the provider
    is doing.

commit fd2a8476bb85a4f005411232daa194bb1e6ab17a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 13 15:39:27 2012 -0800

    (#17007) Restore pre-3.0 execute semantics when calling deprecated method
    
    Previously, Puppet::Util.execute(command) had different semantics than
    Puppet::Util::Executor.execute(command) due to the `arguments` parameter
    defaulting to an empty hash.
    
    As a result, the former defaulted failonfail and combine to false,
    whereas the latter defaulted them to true.
    
    This commit changes the Puppet::Util.execute method to pass its
    arguments directly through. The only difference between the two is that
    the former issues a deprecation warning.

commit f913176f34ea4b63657995eada2ee1f42cff2863
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 13 15:34:23 2012 -0800

    (#17007) Restore pre-3.0 execute semantics
    
    Prior to 3.0, the failonfail and combine arguments defaulted to true
    provided no other arguments were specified. However, if any argument
    was specified, even an empty array, or unrelated arguments,
    e.g. stdinfile, then failonfail and combine defaulted to false.
    
    These semantics don't make sense, but it's how failonfail and combine
    have worked since 2fcbc7f5433fab36b60bedf5a97dd610ef231721 (0.22.4)
    and efe9a833c43358e23ae252456a07b37cc9904a0a (0.24.7),
    respectively. Changing the semantics breaks providers that specify an
    argument, e.g. squelch, and are not expecting an ExecutionException to
    be raised.
    
    For now, this commit just restores the pre-3.0 semantics for execute.
    
    In the future, we should create a new execute method with the desired
    semantics, and then deprecate the old execute method, filed as #17603.

commit e8434b0bafbf8599e674a3061df475e89f44df71
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Nov 15 16:43:16 2012 -0800

    (#16178) Add test for behavior of false values in lookup
    
    This adds a test around the fix to treat a false value in a hierarchy as
    a real value.

commit 376601448e3a65361ad6618998056dd6c64b8539
Author: Matt Callaway <mcallawa@genome.wustl.edu>
Date:   Tue Sep 18 16:47:33 2012 -0500

    (#16178) Handle the case where temp_answer is false but defined.
    
    Consider:
    
    ````
      class foomodule::params {
        $myitem = false
        ...
    ````
    
    The current code won't handle this because `if temp_answer` is the same
    as `if false`.
    
    This commit changes it to use `temp_anser.nil?` instead.

commit a12da0f487b5abbb26e8ca899759ea2104e94002
Merge: edbbae6 1399c94
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Nov 15 16:10:46 2012 -0800

    Merge branch 'maint/master/fix-lint-warnings-in-example-code'
    
    * maint/master/fix-lint-warnings-in-example-code:
      (Maint) fixing all lint warnings

commit 1399c943734bad162b924d44d6662151cfbd496f
Author: Henrik <henrik@haf.se>
Date:   Tue Aug 28 14:01:29 2012 +0200

    (Maint) fixing all lint warnings
    
    This commit changes the examples provided for hiera-puppet so that they
    conform to the puppet coding guidelines as enforced by puppet-lint

commit edbbae6d2afc04a81755cf597cf949ca726fb48e
Merge: b1346ca f0785ff
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Nov 15 12:55:36 2012 -0800

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (#12833) Only manage iterations when salt is being managed
      Add a manages_password_salt feature for user type

commit f0785ffdda04211240440209a7716c4f7d299665
Merge: c25b28d 1788469
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Nov 15 11:24:52 2012 -0800

    Merge branch 'bug/master/12833_fix_salt' into 3.0.x
    
    * bug/master/12833_fix_salt:
      (#12833) Only manage iterations when salt is being managed
      Add a manages_password_salt feature for user type

commit 1788469616ec39fb6bedbd6713a7f255fd38abe2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Nov 15 11:22:29 2012 -0800

    (#12833) Only manage iterations when salt is being managed
    
    The salt and iterations properties are inputs to the PBKDF2 function,
    and should both only be managed when the provider manages the password
    salt feature.

commit 34df4cd9b4e52b3bf5262be5e30b41f197a1b464
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Wed Nov 14 19:38:01 2012 -0800

    Add a manages_password_salt feature for user type
    
    Previously, the user type implemented the 'salt' property for
    PBKDF2-style password hashes. Unfortunately, this caused user
    providers that didn't implement getter/setter methods for the salt
    property to raise errors.
    
    This commit implements a user type feature called 'manages_password_salt'
    that is required for the salt property. Because of this change, only
    the providers that require the salt property should implement the
    manages_password_salt feature, thus saving the other user type
    providers from raising unnecessary errors.

commit b1346cadd016473db05a39ca8be5a5afdc61307d
Merge: a3f5d5b c25b28d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Nov 14 11:19:04 2012 -0500

    Merge branch '3.0.x'
    
    * 3.0.x:
      (#17492) Fix --run_mode=foo global option parsing

commit c25b28d9c9b891e1f1de9f80b8ca2032ce5ecc09
Merge: e4e16db 612f53a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Nov 14 11:13:49 2012 -0500

    Merge branch 'domcleal-tickets/3.0.x/17492-runmode' into 3.0.x
    
    * domcleal-tickets/3.0.x/17492-runmode:
      (#17492) Fix --run_mode=foo global option parsing

commit 612f53ad3b7678ffb4b3e8bad0a412730a0b1c17
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Wed Nov 14 15:48:16 2012 +0000

    (#17492) Fix --run_mode=foo global option parsing
    
    Without this patch applied Puppet behaves as expected when given
    `--run_mode user`, but not when given `--run_mode=user`.  This is a
    problem because The Foreman passes arguments to Puppet as a single
    argument in the argument vector and this exceptional behavior is a
    blocker for The Foreman supporting Puppet 3.
    
    This patch fixes the problem by removing the --run_mode argument from
    the argument vector after the option_parser is done processing.  This
    prevents subsequent option parsing from trying to process the option and
    failing to do so.
    
    Original commit message:
    
    parse_global_options now supports --run_mode=foo style arguments as well
    space-separated arguments.
    
    Reviewed-by: Jeff McCune <jeff@puppetlabs.com>

commit a3f5d5b3cd72a762f129dcf288c274f36c8f9ef6
Merge: 84252af e4e16db
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Nov 12 17:21:11 2012 -0800

    Merge branch '3.0.x'
    
    * (#17445) Update logrotate for debian

commit e4e16db50e30a1c82ca4f68dc5d72d83194af1c3
Merge: f523907 360a1a3
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Mon Nov 12 17:17:57 2012 -0800

    Merge pull request #1262 from haus/ticket/3.0.x/17445_fixup_logrotate_rules
    
    (#17445) Update logrotate for debian

commit 84252af755063d3357758339b52a97eea4a4b6e1
Merge: 7c0ab7a f523907
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 12 20:16:38 2012 -0500

    Merge branch '3.0.x'
    
    * 3.0.x:
      (#17294) Remove empty puppet/provider/interface/base file

commit f52390775f6b66156bfe6148f46c6c9db6739ec6
Merge: 960ab6b 96aeda6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 12 20:16:31 2012 -0500

    Merge branch 'fix/3.0.x/17294_remove_empty_file' into 3.0.x
    
    * fix/3.0.x/17294_remove_empty_file:
      (#17294) Remove empty puppet/provider/interface/base file

commit 96aeda6c56aced2ac3331f5a9c15c2f54c3478a7
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 12 20:10:54 2012 -0500

    (#17294) Remove empty puppet/provider/interface/base file
    
    Without this patch there is a zero byte file located in the Puppet
    library directory structure.  This is a problem because empty files are
    considered errors when producing RPM packages.  I could not find any
    reason this file exists, or any instances of this file being loaded.
    Removing the file does not cause any apparent spec test failures.
    
    This patch fixes the problem by removing the file from the tree.

commit 7c0ab7a4779aebca3ba1eca7cb9d7a502ce07dfb
Merge: bb98644 960ab6b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 12 18:03:12 2012 -0500

    Merge branch '3.0.x'
    
    * 3.0.x:
      [12833] Refactor directoryservice user provider
      (#17447) Stop puppet before returning in debian init script
      (maint) Remove trailing whitespace, retab puppet.init

commit 960ab6b03e32ed770ecdab4bf2bc269d532b8001
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Wed Aug 8 07:53:45 2012 -0700

    [12833] Refactor directoryservice user provider
    
    Previously, the OS X directoryservice user provider could not handle
    10.8 users due to version 10.8 of OS X implementing PBKDF2-style
    password hashing/stretching. The user provider also struggled with
    setting 10.7-style passwords in a single run due to the way that
    passwords are stored in OS X versions 10.7 and higher.
    
    The `dscl` binary is in charge of changing user attributes, and CAN be
    used to set a user's password, but it must be provided with a plaintext
    password. We have discovered no way to use `dscl` or `dsimport` and pass
    it a password hash that will be set for a user. Because of this fault,
    the user's plist located in /var/db/dslocal/nodes/Default/users must be
    directly modified. Because the `dscl` command maintains its own caching
    system, changes made using the dscl command will not be immediately written
    to disk. Conversely, DIRECT CHANGES to the user's plist file will NOT be
    recognized by the dscl command unless you flush its cache. Flushing the
    dscl cache is an asynchronous action, however, so you must sleep long
    enough for dscl to read-from/write-to disk.
    
    With the mechanism for reading/writing passwords cleaned up, the problem
    remains that 10.8 uses PBKDF2 passwords that rely on a `salt` and `iterations`
    value. These three values (the hash, the salt, and the iterations value)
    together form a unique key that comprise the user's password. Because
    the salt and iterations values must be specified, the user type had to
    be modified to allow these values to be passed in a user resource
    declaration. This change does not break clients on versions of OS X
    older than 10.8.
    
    With these two faults in mind, the decision was made to completely
    re-write the directoryservice user provide so that it shed its reliance
    on the lib/puppet/provider/nameservice/directoryservice plugin and was
    completely independent. This commit refactors the directoryservice user
    provider according to the aforementioned deficiencies and implements
    tests for the new user provider.

commit 8b342ee6cae4f8d3b1ed8bd555a036abca2c612a
Merge: 3297c6d 5a23d8b
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Mon Nov 12 14:59:01 2012 -0800

    Merge pull request #1260 from haus/ticket/3.0.x/17447_fixup_init_script
    
    Ticket/3.0.x/17447 fixup init script

commit bb986440a7ec7c2e1548ccc599e7393a30127d4e
Merge: 8e720d9 94e2032
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 12 17:58:07 2012 -0500

    Merge branch '3.0.x'
    
    * 3.0.x:
      [12833] Refactor directoryservice user provider
      Update lib/puppet/version.rb for 2.7.20-rc1

commit 94e2032e91434416bf384a3b530d7e7a5b091267
Merge: 3297c6d 4bfafdb
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 12 17:57:55 2012 -0500

    Merge branch 'fix/3.0.x/glarizza_12833_user_refactor' into 3.0.x
    
    * fix/3.0.x/glarizza_12833_user_refactor:
      [12833] Refactor directoryservice user provider

commit 4bfafdb866148dac09bd6325dc737985a824d902
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Wed Aug 8 07:53:45 2012 -0700

    [12833] Refactor directoryservice user provider
    
    Previously, the OS X directoryservice user provider could not handle
    10.8 users due to version 10.8 of OS X implementing PBKDF2-style
    password hashing/stretching. The user provider also struggled with
    setting 10.7-style passwords in a single run due to the way that
    passwords are stored in OS X versions 10.7 and higher.
    
    The `dscl` binary is in charge of changing user attributes, and CAN be
    used to set a user's password, but it must be provided with a plaintext
    password. We have discovered no way to use `dscl` or `dsimport` and pass
    it a password hash that will be set for a user. Because of this fault,
    the user's plist located in /var/db/dslocal/nodes/Default/users must be
    directly modified. Because the `dscl` command maintains its own caching
    system, changes made using the dscl command will not be immediately written
    to disk. Conversely, DIRECT CHANGES to the user's plist file will NOT be
    recognized by the dscl command unless you flush its cache. Flushing the
    dscl cache is an asynchronous action, however, so you must sleep long
    enough for dscl to read-from/write-to disk.
    
    With the mechanism for reading/writing passwords cleaned up, the problem
    remains that 10.8 uses PBKDF2 passwords that rely on a `salt` and `iterations`
    value. These three values (the hash, the salt, and the iterations value)
    together form a unique key that comprise the user's password. Because
    the salt and iterations values must be specified, the user type had to
    be modified to allow these values to be passed in a user resource
    declaration. This change does not break clients on versions of OS X
    older than 10.8.
    
    With these two faults in mind, the decision was made to completely
    re-write the directoryservice user provide so that it shed its reliance
    on the lib/puppet/provider/nameservice/directoryservice plugin and was
    completely independent. This commit refactors the directoryservice user
    provider according to the aforementioned deficiencies and implements
    tests for the new user provider.

commit 8e720d94fc3510ddfaace3692bc1e2af4b25a116
Merge: 4b119ef f04763a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 12 17:21:33 2012 -0500

    Merge branch 'fix/master/document_parser_newfunction'
    
    * fix/master/document_parser_newfunction:
      (maint) Document Puppet::Parser::Functions.newfunction

commit f04763a18fe75b02d676937ce673c066e4a86a7a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 12 10:36:59 2012 -0500

    (maint) Document Puppet::Parser::Functions.newfunction
    
    Without this patch we have no YARD inline documentation for the
    `Puppet::Parser::Functions.newfunction` class method.  This is a problem
    because this is a very important user facing method that provides an API
    that must remain stable across semantic versions.
    
    This patch addresses the problem by documenting all of the options,
    parameters, and user facing behaviors of the `newfunction` method.  In
    addition, references to docs.puppetlabs.com, the stdlib module (which
    heavily relies on this API), and the builtin template() function are
    provided.
    
    This patch also clearly documents the semantics of the new `:arity`
    optional parameter.

commit 3297c6dc936630b627bd9cfd48f9fb92143ad7cb
Merge: 031e07b 1d01f2a
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Nov 9 14:19:37 2012 -0800

    Merge branch '2.7.x' into 3.0.x
    
    Conflicts:
    	lib/puppet/version.rb

commit 1d01f2a9dab472156449f59cf254c139e8b7fe02
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Nov 9 11:55:48 2012 -0800

    Update lib/puppet/version.rb for 2.7.20-rc1

commit 4b119efb784436cdba4a4417aeb6f8a383d7bf62
Merge: d5729d4 031e07b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Nov 8 17:10:00 2012 -0800

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (#17458) Re-enable performance fix

commit 031e07be4561675146110b0517adf2caa0f63ad5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Nov 8 16:58:15 2012 -0800

    (#17458) Re-enable performance fix
    
    Previously, commit 20efe94 tried to only require puppet if it wasn't
    loaded. However, defined?(Puppet) was always true when called by
    absolute_path?, so the require was never executed.
    
    Commit 327aff5, changed it to always require puppet, due to the way
    puppet is required in 2.7.x. However, in 3.0.x, puppet is required at
    the very beginning of command_line.rb (which is why 3.0.x didn't have
    the same problem as 2.7.x).
    
    This commit restores the behavior in 3.0.x, of never requiring puppet
    from the absolute_path? method. I didn't want to make this change in the
    merge commit, so it's clear why the logic is different.

commit d5729d4920b5618e9891fcd101ede05e11d5f280
Merge: a6721be 327aff5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Nov 8 16:56:18 2012 -0800

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (#17458) Add acceptance test for executing external subcommands
      (#17458) Partial revert of "don't rebuild regexp every time"
      Revert "(#17458) Load 'puppet' at the right time"
      (#17458) Load 'puppet' at the right time

commit 327aff506403490e538747b786cd23fbfe2b0467
Merge: f9aec3f b6679a7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Nov 8 16:51:11 2012 -0800

    Merge remote-tracking branch 'upstream/2.7.x' into 3.0.x
    
    * upstream/2.7.x:
      (#17458) Add acceptance test for executing external subcommands
      (#17458) Partial revert of "don't rebuild regexp every time"
      Revert "(#17458) Load 'puppet' at the right time"
      (#17458) Load 'puppet' at the right time

commit b6679a7274b4330b7c0c347c4fad4283baddd8a8
Merge: d7daba4 d16d357
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Thu Nov 8 15:37:37 2012 -0800

    Merge pull request #1271 from joshcooper/ticket/2.7.x/17458-undo-performance-fix
    
    (#17458) Undo minor performance change in 2.7.x

commit d16d357c278bf40222a75f41d6a1f21107acbe9e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Nov 8 14:51:34 2012 -0800

    (#17458) Add acceptance test for executing external subcommands
    
    Commit 20efe94 broke running `puppet` and `puppet-*` external
    subcommands. This adds an acceptance test to make sure puppet doesn't
    blow up when given an unknown external subcommand.
    
    Paired-with: Josh Cooper <josh@puppetlabs.com>

commit fd92eb14be2b0179580af8097d17ff3552178c15
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Nov 8 14:50:13 2012 -0800

    (#17458) Partial revert of "don't rebuild regexp every time"
    
    In commit, 20efe94, a change was made to Puppet::Util.absolute_path? to
    require the Puppet module only if necessary. This was done as an
    optimization since re-requiring a file is much slower than checking if a
    constant is defined.
    
    However, defined?(Puppet) is always true when called within the
    Puppet::Util.absolute_path? method, so effectively, absolute_path? would
    never require the Puppet module, when previously it used to, in certain
    exceptional flows.
    
    In the normal flow, it wasn't an issue, because when puppet runs an
    internal subcommand (Application), the app requires the Puppet module,
    which loads features, which creates an autoloader, which calls the
    absolute_path?  method.  At this point, requiring puppet is not needed.
    
    However, if an external subcommand was specified, e.g.  `puppet foo`,
    where `puppet-foo` is an external executable, or if no subcommand was
    specified, e.g.  `puppet`, the CommandLine would attempt to resolve the
    external subcommand using Puppet::Util.which, which calls absolute_path?
    at a time when the Puppet module and features haven't been loaded,
    causing #17458.
    
    Ideally, the exceptional cases should be requiring puppet rather than
    relying on the absolute_path?  method to do so.  However, in 3.x, this
    entire logic has been reworked.  In 3.x, the default confdir/vardir
    locations are solely based on whether we're running as root or not, and
    not the application's run_mode setting.  As a result, we can and do
    require puppet early on.
    
    For 2.7.x, the safest thing is to revert the change in the require
    'puppet' behavior.

commit 28229d75339aaa49a7d87a48958ec5ad8e6d3fb6
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Nov 8 14:34:38 2012 -0800

    Revert "(#17458) Load 'puppet' at the right time"
    
    Commit b5ed15baadffb22b789cebfab7a76e2ab43c7d14 attempted to require
    'puppet' at the right time, but failed. The command_line required puppet
    before the application was required and its run_mode determined. As a
    result, `puppet master` was using the default :user run_mode, causing
    its pidfile to be named 'agent.pid' among other things.
    
    This comit reverts b5ed15ba.

commit a6721bea610f9af59fc1637bf0cecec978603c8f
Merge: 014862f 96dfb12
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Nov 8 11:37:44 2012 -0800

    Merge branch 'davedash-patch-1'
    
    * davedash-patch-1:
      (maint) Add expectation pip does not use -e flag
      Removing -e options from pip provider.

commit 96dfb12be3f8157bc103d19562fc43a5e1c4a6a9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Nov 8 11:36:02 2012 -0800

    (maint) Add expectation pip does not use -e flag
    
    Without this patch we don't have an automated way to validate the
    expectation that the pip package provider does not execute with the `-e`
    flag present.
    
    This patch makes this expectation explicit and automatically verifiable.

commit 014862f763136c85ea07e3c7cd1769b0e3405625
Merge: 92bb123 f9aec3f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Nov 7 17:21:00 2012 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      (#17361) Re-enable agent forking for catalog run

commit f9aec3fd5c7148eae72e5c29371d895d6f72c591
Merge: 229e3fd 4d1a2f8
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Nov 7 17:20:50 2012 -0800

    Merge branch 'fix/3.0.x/daemon_forking' into 3.0.x
    
    * fix/3.0.x/daemon_forking:
      (#17361) Re-enable agent forking for catalog run

commit 4d1a2f83d9d864a39e4a3bf0767ab2cb25af69b9
Author: Patrick Mooney <patrick.f.mooney@gmail.com>
Date:   Tue Nov 6 17:44:38 2012 -0600

    (#17361) Re-enable agent forking for catalog run
    
    Commit 6812ee9fc51f327f3a74fc6a6c0eefd9758d0134 introduced agent forking as a
    means of controlling the persistent heap size of the Puppet daemon. This
    functionality was inadvertently disabled in the conflicting merge commit
    23a1a17bebaadbb9b3a1611f34ae46d06b531136.  This is a problem since the agent
    fails to utilize this memory-saving code path.
    
    This patch alters Puppet::Agent.initialize to include should_fork as an
    additional argument.  Puppet::Application::Agent and Puppet::Run were also
    updated to reflect the new method signature.  The agent is instantiated with
    should_fork enabled during normal operation.  For --onetime runs and when
    instantiated via "puppet kick", should_fork disabled.  In order to preserve the
    Puppet::Agent.initialize API for any external users, should_fork has a default
    value of true.
    
    Affected unit tests have been updated to reflect the expected forking behavior.

commit 92bb12340f2ab9fddc5a7a954169cc2a32ab64d7
Merge: 9fd4afb 51bbc2f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Nov 7 16:43:07 2012 -0800

    Merge branch 'dalen-service_locales'
    
    * dalen-service_locales:
      (#4695) Puppet should not reset locale for services

commit 9fd4afbb4b2dcb06940253002e9b2157c51a1dfe
Merge: 7275429 b1e6de2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Nov 7 16:27:45 2012 -0800

    Merge branch 'dalen-function_arity'
    
    * dalen-function_arity:
      (#15989) Tests for function arity
      (#15989) Set arity on functions
      (#15989) Allow setting arity on functions

commit 7275429349cacd20fd51386a6d36cce14366b1cb
Merge: 5a29b81 229e3fd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Nov 7 15:09:56 2012 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      (maint) Fix hiera_include spec tests
      Maint: Clarify that the managehome parameter will delete a home directory

commit 229e3fdf76f68005eff0f9919af647fe36cf9f29
Merge: 87b3d29 5906ead
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Nov 7 15:09:39 2012 -0800

    Merge branch 'maint/3.0.x/fix_hiera_include_specs' into 3.0.x
    
    * maint/3.0.x/fix_hiera_include_specs:
      (maint) Fix hiera_include spec tests

commit 5906eadf5c74029b1d3a6d4c982faa71acac8aa6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Nov 4 09:27:20 2012 -0800

    (maint) Fix hiera_include spec tests
    
    Without this patch applied, the hiera_include function spec tests are
    not examples of actual behavior.  In the spec tests the stubbed methods
    would return an empty array, which would then be forwarded straight away
    to the include parser function.  The example did not have the
    expectation that this would raise an error.
    
    This behavior is a problem because adding arity checking to the
    functions becomes more difficult if theses examples are not
    demonstrating exepcted behavior.  Instead, the change to check arity
    causes these examples to fail unexpectedly.
    
    This patch fixes the problem by setting the expectations of the actual
    behavior of the hiera_include functions more accurately.  An empty array
    is no longer returned from the stubbed Hiera behaviors.  This patch
    causes us to expect the system to take exception with trying to include
    a non-existent class.

commit 5a29b816b17330b05d15c8e3d9156408b1ca3d04
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Nov 7 23:27:43 2012 +0100

    Make spec_helper manage tmpdir.
    
    This adds management of the ENV[TMPDIR] when running rspec tests using
    spec_helper. Before tests are being run, a temporary directory is
    created under the current tmpdir. This temporary directory is then set
    as the ENV[TMPDIR].
    
    After all tests have been run, this temporary directory is removed.
    The directory is created with the prefix "rspecrun" to easily identify
    it in case the spec testing crashes before having cleaned up.

commit 87b3d29539cd931daff96621fcce11c2c27ac57e
Merge: f93032b 6cf1a5c
Author: nfagerlund <nick.fagerlund@puppetlabs.com>
Date:   Wed Nov 7 11:20:15 2012 -0800

    Merge pull request #1265 from nfagerlund/clarify_managehome
    
    Maint: Clarify that the managehome parameter will delete a home director...

commit 6cf1a5c71b6d406800fa2a24883c149e3121de6b
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Wed Nov 7 11:18:35 2012 -0800

    Maint: Clarify that the managehome parameter will delete a home directory
    
    Users have sometimes been surprised that managehome will delete a home
    directory when removing a user. This commit makes that explicit.

commit d7daba4d2dc7b736117cea8ea6fb746944e2fdf2
Merge: 075b23e b5ed15b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 6 16:51:55 2012 -0800

    Merge branch 'issue/2.7.x/17458-puppet-fall-down-go-boom' of git://github.com/zaphod42/puppet into 2.7.x
    
    * 'issue/2.7.x/17458-puppet-fall-down-go-boom' of git://github.com/zaphod42/puppet:
      (#17458) Load 'puppet' at the right time

commit b5ed15baadffb22b789cebfab7a76e2ab43c7d14
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Nov 6 16:16:24 2012 -0800

    (#17458) Load 'puppet' at the right time
    
    Previously the Puppet::Util.which method tried to compensate for the
    puppet.rb file not being loaded at the right time by trying to load it
    itself. When a performance improvement was added (commit 20efe94) to
    check if this needed to be done it broke the codepath for executing
    external puppet-* commands.
    
    This commit fixes this by requiring 'puppet' at the right place in the
    entry point (Puppet::Util::CommandLine) and removing the workaround in
    Puppet::Util.which.
    
    Paired-with: Josh Cooper <josh@puppetlabs.com>

commit 360a1a346bf943f65c84d103107614cec989363f
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Nov 6 13:05:41 2012 -0800

    (#17445) Update logrotate for debian
    
    Previously logrotate would run the postrotate script n times where n was equal
    to the number of logs matching the pattern. This could cause puppet to
    misbehave if it received several HUP or USR2 signals at once as noted in the
    ticket. This commit adds a sharedscripts line to the logrotate rule, which
    tells logrotate to only run the postrotate script once, for all matching log
    files found.

commit 5a23d8b95bf05584dd8a9cba5aab13dfc029707a
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Nov 6 10:56:26 2012 -0800

    (#17447) Stop puppet before returning in debian init script
    
    Without the retry flag, the stop call in the debian init script isn't
    guaranteed to stop the puppet agent or master. This commit adds a 2 step
    timeout to the init scripts. A TERM signal is sent first, and after 10 seconds
    if the process is still running a KILL signal is sent. The unneccessary sleep
    call is also removed from the restart case. This affects both agent and
    master init scripts.

commit d94831916060028a0c7a330e9fe8e6b2f0bab342
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Nov 6 10:55:18 2012 -0800

    (maint) Remove trailing whitespace, retab puppet.init
    
    This removes trailing whitespace from ext/debian/puppet.init and also retabs it
    to use 4 space tabs instead of the mix of hard and soft tabs that were present
    previously.

commit 5991f1a8d7d59408f8f0de136b8d5861639d6427
Merge: 2cd3827 f93032b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 5 14:42:34 2012 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      Maint: Improve explanation of exec type's "creates" parameter

commit f93032ba96c68f74bbfec87d63e7ba3e6e5e1f6d
Merge: 263d02d 075b23e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 5 14:42:06 2012 -0800

    Merge branch '2.7.x' into 3.0.x
    
    * 2.7.x:
      (#7422) Support arrow syntax with metaparams
      rm packaging artifacts in rpm spec, debian rules
      Fix build targets for 2.7.x
      Preserve timestamps when installing files
      Replace dashes with dots for gem version
    
    Conflicts:
    	ext/build_defaults.yaml
    	ext/debian/rules
    	ext/redhat/puppet.spec.erb
    	tasks/rake/gem.rake

commit 2cd3827c44059995050f0911aa9d65e3d9a1f03a
Merge: d4c27e6 b98b1ad
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 5 14:36:41 2012 -0800

    Merge branch '3.0.x'
    
    * 3.0.x:
      (#7422) Support arrow syntax with metaparams
      rm packaging artifacts in rpm spec, debian rules
      Fix build targets for 2.7.x
      (#15513) Clarify target attribute for cron
      Preserve timestamps when installing files
      Replace dashes with dots for gem version

commit b98b1add46c4ab80321df95533dd12097e47aced
Merge: 63404d1 075b23e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 5 14:30:55 2012 -0800

    Merge branch '2.7.x' into 3.0.x
    
    * 2.7.x:
      (#7422) Support arrow syntax with metaparams
      rm packaging artifacts in rpm spec, debian rules
      Fix build targets for 2.7.x
      Preserve timestamps when installing files
      Replace dashes with dots for gem version
    
    Conflicts:
    	ext/build_defaults.yaml
    	ext/debian/rules
    	ext/redhat/puppet.spec.erb
    	tasks/rake/gem.rake

commit 075b23e31fdb03e46cf5e4d875d7c7262ec0da7f
Merge: a18e46e 0524a0a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Nov 5 14:18:26 2012 -0800

    Merge branch 'fix/2.7.x/7422_fix_relationship_append' into 2.7.x
    
    * fix/2.7.x/7422_fix_relationship_append:
      (#7422) Support arrow syntax with metaparams

commit 0524a0a00f5d5271a6c96090c0ded69f0aaf1b62
Author: Dan Bode <dan@puppetlabs.com>
Date:   Mon Nov 5 00:44:46 2012 -0800

    (#7422) Support arrow syntax with metaparams
    
    Attempts to combine the arrow syntax with
    metaparams lead to the following error message:
    
    Error: undefined method `<<' for {}:Hash
    
    For example, the following code:
    
      Notify['one'] -> Notify['three']
    
      notify { 'one':
        before => Notify['two']
      }
      notify { 'two': }
    
      notify { ['three', 'four']: }
    
    Causes this issue. This is because relationships
    appended with the -> syntax assume that the current
    list of dependencies are an array.
    
    Given that, it is not surprising that the following
    code is valid at the moment:
    
      Notify['one'] -> Notify['three']
    
      notify { 'one':
        before => Notify['two', 'four']
      }
      notify { 'two': }
    
      notify { ['three', 'four']: }
    
    In this case, the dependency resources are already
    expressed as an array before the arrow syntax appends
    the additional dep.
    
    This commit converts everything to an array before
    trying to append additional relationships to that
    array. The fact that the second code snippet already
    works demonstrates that Puppet already supports
    appending additional refs to an array of refs.

commit 263d02dfab3ffc9b8ea3f860d6557f266bc91ac2
Merge: 63404d1 d80d8ba
Author: nfagerlund <nick.fagerlund@puppetlabs.com>
Date:   Mon Nov 5 11:33:04 2012 -0800

    Merge pull request #1258 from nfagerlund/exec_creates_param
    
    Maint: Improve explanation of exec type's "creates" parameter

commit d80d8ba27145c3c27883e63e2fbe49d19d3d661f
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon Nov 5 10:59:03 2012 -0800

    Maint: Improve explanation of exec type's "creates" parameter
    
    The "creates" parameter was still causing user confusion (see re-opening
    of issue #8612), so this commit revises it to be more wordy and
    hopefully totally unambiguous.

commit 39d34caba890b1f305558e7cd954e91965316426
Author: Dave Dash <dd+github@davedash.com>
Date:   Fri Nov 2 15:41:02 2012 -0700

    Removing -e options from pip provider.
    
    -e causes a few problems with puppet:
    
    1. it tries to install to /root/src.
    2. It makes the items editable, which isn't useful.
    3. reapplying puppet will cause pip to re-install.
    
    Removing -e should help.

commit a18e46e7960291a53fd8e6e8c36b6fe109149a93
Merge: 4d841fc fc6571e
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Fri Nov 2 17:16:29 2012 -0700

    Merge pull request #1255 from MosesMendoza/maint/2.7.x/packaging_fixes
    
    Maint/2.7.x/packaging fixes

commit fc6571eb4c684c46b885fbbce77951ce0947500b
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Nov 2 15:06:00 2012 -0700

    rm packaging artifacts in rpm spec, debian rules
    
    The 2.7.x packaging will include misc packaging artifacts we shouldn't
    ship. This commit removes them in packaging.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit b1adcd2e4298618d69c792584a85e6b4b38e6926
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Nov 2 14:49:39 2012 -0700

    Fix build targets for 2.7.x
    
    This commit revises the lists of cows and mocks to build against to remove
    redundant and unnecessary targets given Puppet is noarch.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 4d841fc962954fbd4a0a1e3a309d7e96400672e5
Merge: 152f484 6da5aa8
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Fri Nov 2 14:38:22 2012 -0700

    Merge pull request #1254 from MosesMendoza/maint/2.7.x/fixup_gem_task
    
    Replace dashes with dots for gem version

commit d4c27e66f626aa18d71b4c8119940fe5acb57a0f
Merge: 4cbeaba eb34c6b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Nov 2 12:17:03 2012 -0700

    Merge branch 'ticket/master/7622-remove-confine-true-with-feature'
    
    * ticket/master/7622-remove-confine-true-with-feature:
      (#7622) Deprecate and remove features.pson?

commit 4cbeaba039c7728e1cd2450e2cd6e4c8088b846a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Nov 1 14:44:52 2012 -0700

    Maint: Fix typo
    
    Previously, we were passing in a string instead of an array, and in ruby
    1.8, you can call select on a string, but not in ruby 1.9.

commit 42f3fa72fe9afb492984d352ac01ea5e102dbbe0
Merge: d6c5b0a 386293f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Nov 1 14:13:42 2012 -0700

    Merge pull request #1252 from joshcooper/maint/master/refactor-ssl-file
    
    Maint/master/refactor ssl file

commit 386293f2a831b0dafe5f3befdb90758d7b4e48e3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 31 15:56:59 2012 -0700

    Maint: Fix poorly mocked test
    
    Previously, the test was calling into the settings subsystem, which had
    the undesirable effect of loading facter, and that generated errors
    (though they weren't fatal) due to the expectation on FileTest
    interferring with Facter's operatingsystem fact on debian6, at least.
    
      Could not retrieve operatingsystem: unexpected invocation:
      FileTest.exists?('/etc/debian_version')
    
    This commit changes the test so that we don't calling into the settings
    code.

commit beaea041cd322018ce7d098a8f33ab2f2a2e41f9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 31 15:24:43 2012 -0700

    Maint: Cleanup order dependent test failure
    
    Previously, this would fail:
    
        rspec --order random:786 spec/unit/indirector/ssl_file_spec.rb
    
    because several of the examples set global state on the
    Puppet::Indirector::SslFile class.
    
    This commit adds an after each block to clean up.

commit 7ddfccada72277b546d3ffe5fc133eb60417db0b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 24 08:39:14 2012 -0700

    Maint: Refactor code for loading ssl files
    
    Prior to this commit, the code for creating a model and loading it from
    a file was duplicated in two places. Also, the
    `renaming_files_with_uppercase` method was being called after the
    existence checks, complicating the logic.
    
    This commit moves the duplicate code to a single method. It also moves
    the `renaming...` method earlier, so that we get into a sane state as
    soon as possible.
    
    Finally, it adds a deprecation warning for some crazy behavior in the
    `rename_files_in_uppercase`. The `search` method may return an uppercase
    name, since it just walks the directory. But if `find` is called on the
    uppercase name, then the file gets lowercases, so that subsequent calls
    to `search` return the lowercased name. See #17307.

commit d6c5b0a70039c54eea4fb21bea19b66b68437d23
Merge: 37d3f37 534adcc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Nov 1 11:19:13 2012 -0700

    Merge branch 'maint/master/remove-pending-tests'
    
    * maint/master/remove-pending-tests:
      (Maint) Remove pending test
      (Maint) Remove unimplemented tests
      (Maint) Remove unimplemented tests
      (Maint) Remove unimplemented tests
      (Maint) Remove pending tests
      (Maint) Remove unimplemented tests
      (Maint) Remove unimplemented tests
      (Maint) Remove unimplemented tests

commit 534adccec3e5a4afdcda76ad4e1fcc6b9c877a50
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Nov 1 11:03:16 2012 -0700

    (Maint) Remove pending test
    
    This test is documented in bug #6634 and can be added back in when work
    is done to fix the issue.

commit a8d9ea56eed428f0cdedd99aef36b11f5926a29d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Nov 1 10:36:06 2012 -0700

    (Maint) Remove unimplemented tests

commit d295ae874192653125666f86a213a4e4c7fb249e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Nov 1 10:34:58 2012 -0700

    (Maint) Remove unimplemented tests
    
    These tests were waiting for redhat to change something about their
    service systems, but there was no work in progress to make these
    changes. At the time the work is done, these tests can come back.

commit 22ab8c3df53a84ac0b12663597eaeeb9a5c1b4f3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 31 16:12:32 2012 -0700

    (Maint) Remove unimplemented tests

commit a62b91abba7d449ca988ce7baf5179e238f95bab
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 31 16:10:59 2012 -0700

    (Maint) Remove pending tests
    
    These tests have been pending since they were written in 2009

commit fa148a5deb6a93d007f5f987f696145221aed023
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 31 16:04:33 2012 -0700

    (Maint) Remove unimplemented tests

commit fa7504a056812b957435a251223862d6704eb305
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 31 16:03:40 2012 -0700

    (Maint) Remove unimplemented tests

commit f65890d0e838233a5c0d71d8ef06c8086028ce93
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 31 16:02:10 2012 -0700

    (Maint) Remove unimplemented tests

commit 152f484e71883abedd842f3e8d174ca2b49d8353
Merge: 5c61f32 0cc80ad
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Wed Oct 31 13:43:20 2012 -0700

    Merge pull request #1247 from MosesMendoza/maint/2.7.x/preserve_timestamps_install.rb
    
    Preserve timestamps when installing files

commit 63404d1db17c830e871f186a15357df75909020a
Merge: df7369e e330bf5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 31 13:41:56 2012 -0700

    Merge branch 'pdxmph-cron_type' into 3.0.x
    
    * pdxmph-cron_type:
      (#15513) Clarify target attribute for cron

commit e330bf5f0f7aa3deab357a1d5fc1d87dc87b2c69
Author: Michael Hall <michael.hall@puppetlabs.com>
Date:   Wed Oct 24 09:36:09 2012 -0700

    (#15513) Clarify target attribute for cron
    
    Without this patch applied the behavior of `target` in the cron type isn't made clear.
    This is a problem because users report trying to use a file as the target instead of
    the intended username, producing unexpected results.
    
    This patch clarifies the behavior of `target` by improving the description docstring.

commit 0cc80ad165a4f93bb7cf9258dac3038cec2cb118
Author: Todd Zullinger <tmz@pobox.com>
Date:   Thu Jul 12 00:34:28 2012 -0400

    Preserve timestamps when installing files
    
    Without the preserve option, ruby's FileUtils.install method uses the
    current time for all installed files.  For backup systems, package
    installs, and general pedantic sysadmins, preserving timestamps makes a
    small improvement in the world.

commit 6da5aa847c1d34aa290526440de129882dd61cc1
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Oct 31 13:17:42 2012 -0700

    Replace dashes with dots for gem version
    
    When switching out to using git-describe for versioning from
    source, gem versioning breaks because dashes are not allowed.
    This simple fix replaces the dashes with dots, which are.
    Note that in a merge-up to 3.0.x, this commit will conflict.
    Default to 'ours' in a merge-up, this file does not even exist
    in 3.0.x and shouldn't.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 37d3f37784885923a5fcdea5ae56d564b9ec8b77
Merge: de1142d df7369e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 31 12:49:46 2012 -0700

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (#17260) Include link to information about deprecation
      Update Rakefile to make rspec optional
      Remove the asc file from the source of spec file
      (#17260) Warn when variables contain hyphens
      Edit description of hyphenated variables compatibility setting
      (#10146) `-` in variable names should be deprecated!
      (#16791) Remove tests for unused behavior
      (#16791) Re-instate deprecated symbolize and symbolizehash!
      Eliminate `symbolize` everywhere, and remove it.
      (#16791) Revert "Merge branch 'feature/2.7.x/json-terminus-backport' of https://github.com/daniel-pittman/puppet into 2.7.x"
      (#16791) Revert "Maint: Fix intermittently failing spec test"
      (#16791) Revert "Merge branch 'perf/2.7.x/backport-activesupport-hook-disabling' of https://github.com/daniel-pittman/puppet into 2.7.x"
      (#14822) Use feature confine for feature tests during run
      (#14822) Re-evaluate features if they previously were false

commit df7369ea727a33352c905bc6fb985e6139101ff0
Merge: 177e707 5c61f32
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 31 12:44:58 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.0.x
    
    * upstream/2.7.x:
      (#17260) Include link to information about deprecation
      Update Rakefile to make rspec optional
      Remove the asc file from the source of spec file
      (#17260) Warn when variables contain hyphens
      Edit description of hyphenated variables compatibility setting
      (#10146) `-` in variable names should be deprecated!
      (#14822) Use feature confine for feature tests during run
      (#14822) Re-evaluate features if they previously were false
    
    Conflicts:
    	ext/build_defaults.yaml
    	ext/redhat/puppet.spec.erb
    	lib/puppet/defaults.rb

commit 177e7073381ba8d40bac48df60676174ecf0c23e
Merge: f9d70b5 d892859
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 31 12:41:23 2012 -0700

    Merge commit 'd892859' into 3.0.x
    
    * commit 'd892859':
      (#16791) Remove tests for unused behavior
      (#16791) Re-instate deprecated symbolize and symbolizehash!
      Eliminate `symbolize` everywhere, and remove it.
      (#16791) Revert "Merge branch 'feature/2.7.x/json-terminus-backport' of https://github.com/daniel-pittman/puppet into 2.7.x"
      (#16791) Revert "Maint: Fix intermittently failing spec test"
      (#16791) Revert "Merge branch 'perf/2.7.x/backport-activesupport-hook-disabling' of https://github.com/daniel-pittman/puppet into 2.7.x"

commit 5c61f3201453f5a047dc06fb9b31b2c61e76bd19
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 31 11:11:21 2012 -0700

    (#17260) Include link to information about deprecation
    
    Previously the deprecation warning did link the user to any additional
    information about the warning. This adds a link that can be followed to
    get a better explanation of the issue and how to resolve it.

commit e9bd45f2cdbc8192867bc2bcf53eafe7c9a8070c
Merge: e6b8413 858e4b4
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Oct 30 16:59:26 2012 -0700

    Merge pull request #1245 from haus/make_rspec_optional_in_rakefile
    
    Update Rakefile to make rspec optional

commit 858e4b4b2045503cd47b3565690dd5de08e153fe
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Tue Oct 30 16:26:38 2012 -0700

    Update Rakefile to make rspec optional
    
    Currently rspec is a hard dependency to using the Rakefile for puppet. This
    means that users on platforms without native rspec packages can't use the
    Rakefile to do other things, like build packages. This commit moves the require
    on rspec and rspec/core/rake_task into a begin/rescue block and wraps the call
    to Rspec::Core::RakeTask in an `if defined?` conditional so it is only invoked
    if Rspec is loaded and available.

commit e6b841304bdc7bc1b899eeed9f2327ce62a35e4f
Merge: cf0bfc1 0c1991f
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Tue Oct 30 16:07:00 2012 -0700

    Merge pull request #1244 from stahnma/fix_build_defaults_for_community
    
    Remove the asc file from the source of spec file

commit 0c1991ff37de868ed64037c0947689b585df04a4
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Tue Oct 30 15:51:45 2012 -0700

    Remove the asc file from the source of spec file
    
    The asc file was never used during builds. This commit removes it as a
    requirement to build puppet.  This will help with nightly builds and
    allow easier community adoption of our build system (along with
    automation).
    
    This commit has already been made in the 3 series of puppet.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit cf0bfc1b99abfe685a4a0d5dabb3f4eb9e16408d
Merge: d019047 bd0caf5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Oct 29 17:43:16 2012 -0700

    Merge pull request #1243 from zaphod42/feature/2.7.x/17260-deprecation-warning-for-hyphens-in-variables
    
    (#17260) Issue warning for hypens in variables

commit bd0caf57e10f0cf896537a52e21f8ec96b1e9d98
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Oct 29 17:18:17 2012 -0700

    (#17260) Warn when variables contain hyphens
    
    Previously the deprecation warnings for hyphens in variables
    incorrectly warned even when there were no hyphens in the variable.
    There was also no warning about hypens in variable interpolations when
    the bare-word form of interpolation was used, e.g. "${foo-bar}".
    
    This commit causes those two cases to warn correctly and also cleans up
    the tests to be more directed to just the lexing of specific tokens.
    This also removes some duplication that crept in around checking and
    issuing the warning.
    
    Paired-with: henrik.lindberg@cloudsmith.com

commit 35b9ff2c5b5423149526dbb1497b2000376e3dd9
Author: Nick Fagerlund <nick.fagerlund@gmail.com>
Date:   Mon Oct 29 13:36:51 2012 -0700

    Edit description of hyphenated variables compatibility setting
    
    This commit shortens and tightens the description of this setting.

commit 5ee25589224c146395c2372a8998db978f235a79
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Oct 27 12:49:08 2012 -0700

    (#10146) `-` in variable names should be deprecated!
    
    In commit b26699a2 I fixed an accidentally introduced change to the lexer,
    allowing `-` to be part of a variable name.  That had lasted for a while and
    was surprisingly popular.  It was also hugely ambiguous around `-` as minus,
    and led to all sorts of failures - unexpected interpolations to nothing -
    because of that.
    
    A much better strategy would have been to deprecate the feature, issue proper
    warnings, and include an option to allow users to toggle the behaviour.
    
    Initially defaulting that to "permit", and eventually toggling over to "deny",
    would have made the whole experience much smoother - even if this was totally
    documented as not working, and was a clear bug that it changed.
    
    So, thanks to prompting from Benjamin Irizarry, we do just that: introduce the
    configuration option, default it to "deny" to match current behaviour, but
    allow users the choice to change this back.
    
    Please be aware that allowing variables with `-` might break all sorts of
    things around, for example, Forge modules though.  Most people write code to
    the documented standard, and their code might well totally fail to work with
    this changed away from the default!
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit eb34c6bf37c6dc55f68674497f714239b9caa1d9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Oct 26 16:16:38 2012 -0700

    (#7622) Deprecate and remove features.pson?
    
    PSON is always available and so the pson feature was only used for the
    side-effect of requiring the pson files. This commit deprecates the pson
    feature and moves the requires to the puppet.rb file so that PSON is
    available early on.

commit 51bbc2f280ec651b5bb4e00f6fca9e793d54451a
Author: Erik Dalén <dalen@spotify.com>
Date:   Fri Oct 26 18:15:35 2012 -0400

    (#4695) Puppet should not reset locale for services
    
    Don't reset locale when starting services, we don't parse their output
    so there is no need.
    
    This avoids having different locales for services depending on if they
    are started on boot or started by puppet.

commit d019047c826de02949d2a0b98db38f65716bc5fd
Merge: d892859 1a2e8fc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Oct 26 14:44:27 2012 -0700

    Merge pull request #833 from domcleal/tickets/2.7.x/14822-feature-runtime
    
    (#14822) Ensure providers can run if features are delivered during a run

commit d892859becf764fc8f7b8232059b41db077d5c9d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Oct 26 14:37:20 2012 -0700

    (#16791) Remove tests for unused behavior
    
    The symbolize change caused two tests for the behavior around invalid
    inputs to start failing. Looking at the tests, they are testing code
    that would never reasonably be called with these kinds of values since
    there are only a few places that call the methods being tested and those
    use hard coded values. The fix here is to remove the tests that were
    failing.

commit de1142d87c16e61474d85879f0b62f36da62f1cb
Merge: 73d4237 7174058
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 25 17:07:48 2012 -0700

    Merge branch 'dalen-create_resources-virtexport'
    
    * dalen-create_resources-virtexport:
      (#15081) Update create_resources() inline documentation
      (#15081) Make virtual resources work with create_resources

commit 7174058ea3243857cebce86a2b0a7a3130ddadac
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 25 17:01:49 2012 -0700

    (#15081) Update create_resources() inline documentation
    
    Without this patch the create_resources function inline documentation is
    not up to date with the patch to enable creation of virtual and exported
    resources.
    
    This patch fixes the problem by including examples of how to create
    virtual and exported resources using the create_resources function.

commit c9c40a4f611eeb63a35233ed08e339fe9ffd1a20
Merge: 5c96254 aba3c67
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 25 16:57:09 2012 -0700

    Merge branch 'ticket/2.7.x/16791-cleanup-performance-backports' into 2.7.x
    
    * ticket/2.7.x/16791-cleanup-performance-backports:
      (#16791) Re-instate deprecated symbolize and symbolizehash!
      Eliminate `symbolize` everywhere, and remove it.
      (#16791) Revert "Merge branch 'feature/2.7.x/json-terminus-backport' of https://github.com/daniel-pittman/puppet into 2.7.x"
      (#16791) Revert "Maint: Fix intermittently failing spec test"
      (#16791) Revert "Merge branch 'perf/2.7.x/backport-activesupport-hook-disabling' of https://github.com/daniel-pittman/puppet into 2.7.x"

commit aba3c67ace319335ca6e05c7f614cdbedfe10487
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Oct 25 16:07:42 2012 -0700

    (#16791) Re-instate deprecated symbolize and symbolizehash!
    
    The cherry-pick of commit a09df46f58187ad9ff0f599de47cd8c1e0a417eb to
    remove the use of symbolize throughout the code base also removed the
    symbolize method, as well as the symbolizehash! method. The cherry-pick
    was needed so that the methods could be deprecated without puppet
    issuing warnings from using them.
    
    This commit puts the two methods back and also places a deprecation
    warning in them.

commit 7af8c6e4d031d48a5a2bac4fea34ed5716cb2b24
Author: Erik Dalén <dalen@spotify.com>
Date:   Sat Sep 22 20:39:41 2012 +0200

    (#15081) Make virtual resources work with create_resources
    
    Without this patch the create_resources function is unable to create
    virtual or exported resources.  This is a problem because the resources
    created by create_resources are not a first class citizen with respect
    to resources created from the Puppet DSL, or other means.
    
    This patch fixes the problem by allowing the create resources function
    to accept type names prefixed with @ or @@.
    
    For example, the following puppet manifest works with this patch
    applied.
    
        create_resources('@file', {'/etc/foo' => {'ensure'=>'present'}})
        realize(File['/etc/foo']

commit 65b5c5cf1dc3d8dd52fa20f7317c5aa1e9943539
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jul 13 15:30:08 2012 -0700

    Eliminate `symbolize` everywhere, and remove it.
    
    The whole `symbolize` API was confusing and complex: because it didn't do any
    type enforcement, just passed through arbitrary data, we had very unclear API
    in a whole pile of places.
    
    This replaces that method entirely with a more rigid definition: we intern in
    a bunch of places, add the occasional clear failure mode, and then delete the
    original definition.
    
    This eliminates one point of complexity from the codebase.
    
    (These other uses have no notable performance penalty, just code complexity
     and clarity issues.)
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    
    Conflicts:
    
    	lib/puppet/parser/functions.rb
    	lib/puppet/provider.rb
    	lib/puppet/provider/nameservice/directoryservice.rb

commit 3cda4f411793b61eb2efeba212fd70fbe56c140f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Oct 25 13:59:20 2012 -0700

    (#16791) Revert "Merge branch 'feature/2.7.x/json-terminus-backport' of https://github.com/daniel-pittman/puppet into 2.7.x"
    
    This reverts commit ba969173ffad096401bc5d0df44b17324318ca03, reversing
    changes made to 5e3fbcae67cfe4e3eb0564735742354bf85d79e7.
    
    This change had introduced a new terminus for the catalog indirection
    that wrote json files instead of yaml. Unfortunately the changes didn't
    include actually being able to configure puppet to use this. This left
    the decision about whether to backport another functionality change, or
    to undo this change.
    
    Since 2.7 is supposed to be a stable branch and should only be receiving
    bug fixes, this change does not really belong in the 2.7 series. All of
    the other backported performance fixes are small tweaks to existing
    behavior, whereas this one provides a new set of functionality.
    Therefore this change will not be made in the 2.7 series.

commit 1e5baeed7704edc3b436e0ab63e8cf657e50d990
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Oct 25 13:58:38 2012 -0700

    (#16791) Revert "Maint: Fix intermittently failing spec test"
    
    This reverts commit e45961f2a4160875ed1069b18734d3a6456af831.
    
    This commit is being reverted in order to completely and cleanly revert
    ba96917.

commit 13ab9566cc2e161faddf30bd9caff99e7a67f08f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Oct 25 13:56:32 2012 -0700

    (#16791) Revert "Merge branch 'perf/2.7.x/backport-activesupport-hook-disabling' of https://github.com/daniel-pittman/puppet into 2.7.x"
    
    This reverts commit 3d747177c3e3f690effe620d2f38c7a7d0f7d2d9, reversing
    changes made to e45961f2a4160875ed1069b18734d3a6456af831.
    
    This change to how puppet interacts with ActiveRecord causes problems
    for systems that load puppet inside Ruby on Rails. Foreman encountered
    this. Rather than introduce this change that can break existing installs
    of puppet, this performance is not going to be part of 2.7.

commit 73d423773bce0d154bc1a2a7869c5bddcf5f3278
Merge: a7c7ecb f9d70b5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 24 21:50:13 2012 -0700

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (#16581) Fix mis-stubbed test

commit f9d70b57e3531ae61e28bfbf3a183e40c8add701
Merge: 8b7862c 5c96254
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 24 21:49:23 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.0.x
    
    * upstream/2.7.x:
      (#16581) Fix mis-stubbed test

commit 5c962547d08e8028af5e7624fa22a7d4174de887
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 24 21:37:26 2012 -0700

    (#16581) Fix mis-stubbed test
    
    Previously, the spec test failed because it was stubbing the
    `sid_for_account` method that the scheduled_task provider no longer
    called. This wasn't noticed on my system, because I had a local 'bob'
    user, so that test would still "pass" incorrectly, but fail in CI.
    
    This commit removes the `stubs` and adds `expects` for each test as
    appropriate.

commit a7c7ecbeefd42500f2306b255e7502e1ae0353ac
Merge: 49b2270 8b7862c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 24 17:15:13 2012 -0700

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (#16581) Refactor code for sid validation
      (#16581) Deprecate sid_for_account
      (#16581) Use native Win32 APIs to resolve SIDs in file provider
      (#16581) Use native Win32 APIs to resolve SIDs in providers
      (#16581) Documentation changes
      (#16581) Use win32-security gem to resolve SIDs
      (#16581) Refactor code for converting string and binary sids

commit 8b7862c075cebace3e4c22f3a12ab3374475892f
Merge: a094088 f382547
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 24 17:14:36 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.0.x
    
    * upstream/2.7.x:
      (#16581) Refactor code for sid validation
      (#16581) Deprecate sid_for_account
      (#16581) Use native Win32 APIs to resolve SIDs in file provider
      (#16581) Use native Win32 APIs to resolve SIDs in providers
      (#16581) Documentation changes
      (#16581) Use win32-security gem to resolve SIDs
      (#16581) Refactor code for converting string and binary sids
    
    Conflicts:
    	Gemfile.lock
    	lib/puppet/util/windows.rb

commit f38254701b7910363ad6fd006411526f78475b40
Merge: e1fa8bd f08fc39
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 24 17:05:49 2012 -0700

    Merge pull request #1225 from joshcooper/ticket/2.7.x/16581-slow-sid-resolution
    
    (#16581) Don't use WMI to resolve SIDs

commit 49b22704e51b4d7af05c3c30f4fb3f3e7553d5d9
Merge: d4cd24a a094088
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Oct 24 15:12:12 2012 -0700

    Merge branch '3.0.x'
    
    * 3.0.x:
      (#11042) indirect via the property to convert group names to numbers

commit a094088088ed68d5ffa50608f6dd9ffcccbf394f
Merge: 31a6d49 e1fa8bd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Oct 24 15:12:03 2012 -0700

    Merge branch '2.7.x' into 3.0.x
    
    * 2.7.x:
      (#11042) indirect via the property to convert group names to numbers

commit e1fa8bdc062e9c14857c151e5dca00210a72b1e8
Merge: e31d2a8 c305a32
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Oct 24 15:11:50 2012 -0700

    Merge branch 'nhemingway-fix/2.7.x/11042_ldap_provider_group_names' into 2.7.x
    
    * nhemingway-fix/2.7.x/11042_ldap_provider_group_names:
      (#11042) indirect via the property to convert group names to numbers

commit c305a329953541de17feb24b2745bd0eb1110dd6
Author: Neil Hemingway <neil.hemingway@netbanx.com>
Date:   Mon May 28 16:27:22 2012 +0100

    (#11042) indirect via the property to convert group names to numbers
    
    The puppet documentation for managing users says of the attribute gid
    "Can be specified numerically or by name".  The ldap provider does not
    support specifying by gid by name as (at least on RedHat 389 Directory
    Server), it generates a syntax error.  Converting groupnames to numeric
    group id resolves the issue.
    
    Reviewed-by: Jeff McCune <jeff@puppetlabs.com>

commit f08fc399b5ba122ab210ce74f33dc5c4bcff5201
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 24 11:22:32 2012 -0700

    (#16581) Refactor code for sid validation
    
    Previously, the windows file provider knew too much about how to validate
    a sid, e.g. catching a specific windows-specific exception.
    
    This commit moves that logic into a `valid_sid?` method and updates the
    file provider to call it. In doing so, the logic for `string_to_sid_ptr`
    is simplier, in that it always expects a block.
    
    It also removes tests that were refactored into sid_spec.rb in an earlier
    commit.

commit d4cd24a37abf1053b4878cdb1faaaa55c3478b36
Merge: c78b580 2aa2e40
Author: nfagerlund <nick.fagerlund@puppetlabs.com>
Date:   Tue Oct 23 16:18:09 2012 -0700

    Merge pull request #1231 from pdxmph/ssh_key_desc
    
    Clarifying description for ssh_authorized_key key attribute.

commit 2aa2e40fe61c8ec5bd804ad229fc398d17207063
Author: Michael Hall <michael.hall@puppetlabs.com>
Date:   Tue Oct 23 16:02:27 2012 -0700

    Clarifying description for key attribute.

commit c78b580fc1eae3d0cb02aa81dc83ede2d4861872
Merge: 1dd0b39 31a6d49
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Oct 22 12:14:44 2012 -0700

    Merge branch '3.0.x'
    
    * 3.0.x:
      (#16798) Add more tests to cover revoke by serial number
      (#16798) Update revocation by serial number documentation
      (#16798) Fix certificate revocation by serial number
      Ensure the year in the module template is correct.

commit 31a6d491f7e473ef4167c697fe405b1ff18e0859
Merge: 4ca42c8 e31d2a8
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Oct 22 12:05:39 2012 -0700

    Merge branch '2.7.x' into 3.0.x
    
    * 2.7.x:
      (#16798) Add more tests to cover revoke by serial number
      (#16798) Update revocation by serial number documentation
      (#16798) Fix certificate revocation by serial number

commit e31d2a80980ade49eb1c77004bbc1226ac2fe960
Merge: e6865c4 92f0688
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Oct 22 12:05:22 2012 -0700

    Merge branch 'bug/2.7.x/16798_revoke_cert_by_serial' into 2.7.x
    
    * bug/2.7.x/16798_revoke_cert_by_serial:
      (#16798) Add more tests to cover revoke by serial number
      (#16798) Update revocation by serial number documentation
      (#16798) Fix certificate revocation by serial number

commit 92f06882c95ebca465e21cc7e3be2987287bef71
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Oct 22 12:00:09 2012 -0700

    (#16798) Add more tests to cover revoke by serial number
    
    Without this patch there is only one test covering the revoke by serial
    number behavior.  This isn't a problem in and of itself, but I'd like to
    see a bit more coverage around the common behavior of mixed-case and the
    not-so-common behavior of extremely large serial numbers.
    
    This patch adds spec tests for both behaviors.

commit b55d88567f9d96165c0b9e2f96d936e39284294e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Oct 22 11:57:50 2012 -0700

    (#16798) Update revocation by serial number documentation
    
    Without this patch the documentation mis-represents how revocation by
    certificate serial number occurs.  When revoking by serial number rather
    than common name, the serial number must be represented as a hex-encoded
    string with a prefix of '0x'.
    
    This patch simply removes the mention of representing the serial number
    as a decimal encoded string.

commit 5e8236fb559d7c17c264636a2301b75454f38979
Author: Sean Millichamp <sean.millichamp@secure-24.com>
Date:   Fri Oct 5 09:05:43 2012 -0400

    (#16798) Fix certificate revocation by serial number
    
    The documentation states that you should be able to revoke
    a SSL certificate with 'puppet cert revoke <hex_serial>'
    but in practice that doesn't work. This patch enables that
    functionality and adds a unit test to check for that scenario.

commit c60a82dc483ca20c315f31503ebccccb38906715
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 19 11:56:37 2012 -0700

    (#16581) Deprecate sid_for_account
    
    This commit eliminates the code for using WMI to resolve SIDs, since it is
    very slow in domain environments. It also adds a deprecation warning if
    any provider calls this method, as they should be using
    `Puppet::Util::Security::SID.name_to_sid` instead.

commit c86e68598a5bff5396c9231a2e85c5d9fc2f0113
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 19 11:50:41 2012 -0700

    (#16581) Use native Win32 APIs to resolve SIDs in file provider
    
    Previously, the file provider used the ADSI module to resolve SIDs, which
    is very slow in domain environments.
    
    This commit changes it to use the Puppet::Util::Windows::Security module
    instead. Ideally, the `name2id` and `id2name` methods could be eliminated
    and instead have the uid & gid methods delegate directly to the Security
    module. But they can't, because the Security module is not require'd on
    non-Windows platforms.

commit 9291ae220e0ac5f85d8e6d47504ced34985a4cfc
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 19 11:44:41 2012 -0700

    (#16581) Use native Win32 APIs to resolve SIDs in providers
    
    Previously, the Windows user, group, and scheduled_task providers used WMI
    to resolve SIDs, but it is very slow in a domain environment.
    
    This commit changes the providers to use the `Puppet::Util::Windows::SID`
    module instead, and has been observed to be 6000 times faster.

commit 3d360e7fb79ba1342fe3ea0c658f59886954ed35
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 19 11:48:42 2012 -0700

    (#16581) Documentation changes
    
    Clarify how `name_to_sid` and `string_to_sid_ptr` are different with
    respect to accounts that exist versus those that don't. The former returns
    nil if the account doesn't exist, while the later doesn't.

commit be848e6569ebce6dfc27a087bc5836b0fb01f49c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 19 12:10:03 2012 -0700

    (#16581) Use win32-security gem to resolve SIDs
    
    This commit adds methods for resolving Windows account names into binary
    encoded SIDs and back. Account names may be specified with or without the
    domain component, or as a SID string. So all of the following are
    equivalent names for the LocalSystem account:
    
        NT AUTHORITY\SYSTEM
        SYSTEM
        S-1-5-18
    
    There is a bug[1] in the `SID.string_to_sid` method in versions of
    win32-security prior to 0.1.4, so this commit updates the Gemfile
    accordingly.
    
    [1] https://github.com/djberg96/win32-security/pull/1
    
    Conflicts:
    
    	spec/unit/util/windows/sid_spec.rb

commit da3aea49e6c7d7a6ffa9871293329adc26089900
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 15 15:11:38 2012 -0700

    (#16581) Refactor code for converting string and binary sids
    
    This commit moves the methods that were previously part of the security
    module into a sid module, and adds tests that only execute on windows due
    to its reliance on the `win32/security` gem.

commit 4ca42c887965dba8f2490921444f3ed03a4f6705
Merge: 8127fca 0d3b842
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Oct 19 09:18:14 2012 -0700

    Merge pull request #1228 from stahnma/fix_module_tool_year_template
    
    Ensure the year in the module template is correct.

commit 0d3b84249efbcb21222d3def0af16b62c66a79c3
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Thu Oct 18 16:52:01 2012 -0700

    Ensure the year in the module template is correct.
    
    Previous to this commit the year in the `puppet module generate`
    template was hard-coded to be 2011. Since it is not 2011 anymore, this
    is problematic.
    
    This commit addresses this by calling Time.now.year inside the erb
    template.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit 1dd0b3929694a8abafca0a2f8a4ac9a329e88be0
Merge: 3350feb 8127fca
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 18 16:15:02 2012 -0700

    Merge branch '3.0.x'
    
    * 3.0.x:
      (maint) Update mailmap for git shortlog
      (maint) Update mailmap for git shortlog

commit 8127fcad8141d66cd827f4ddfc9fbca47042cb38
Merge: 9e9cff5 e6865c4
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 18 16:14:50 2012 -0700

    Merge branch '2.7.x' into 3.0.x
    
    * 2.7.x:
      (maint) Update mailmap for git shortlog

commit 9e9cff5823ab121547fd6f4b5a27c6bee7696702
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 18 16:14:46 2012 -0700

    (maint) Update mailmap for git shortlog

commit 3350feba43ca6fa6cf5e3aa3b8ec915cbdd18073
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 18 16:14:06 2012 -0700

    (maint) Update mailmap for git shortlog

commit e6865c4b7581d076458ce44c1f16c1d9c3a91ab5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 18 16:12:08 2012 -0700

    (maint) Update mailmap for git shortlog

commit a070b98ffc1550afe65d1f780057cb452444ca46
Merge: e055b6c 003d4a2
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Oct 18 14:43:41 2012 -0700

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (Maint) Update Gemfile for use in Puppet Labs Jenkins

commit 003d4a238192522ffed6188e5527e8c1105ef4e6
Merge: b6eb793 c6b8e7f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Oct 18 14:41:53 2012 -0700

    Merge branch 'bundler' into 3.0.x
    
    * bundler:
      (Maint) Update Gemfile for use in Puppet Labs Jenkins

commit c6b8e7fce004ea393f7821b6e576568cc77f035b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Oct 18 14:39:01 2012 -0700

    (Maint) Update Gemfile for use in Puppet Labs Jenkins
    
    This updates the Gemfile to have all of our dependencies that we need to
    running in Jenkins. It also allows us to develop locally using the
    Gemfile by specifying FACTER_LOCATION and HIERA_LOCATION as environment
    variables that bundler will use for getting facter and hiera.

commit e055b6cdf5d8e7b92317e7bd961e45454102379f
Merge: e3a9a25 b6eb793
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 18 12:26:59 2012 -0700

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (Maint) Skip enc test on RHEL6
      Update PUPPETVERSION for 3.0.1

commit b6eb7938f3142d013b25ed293de84156a0158c9a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 18 11:25:14 2012 -0700

    (Maint) Skip enc test on RHEL6
    
    The windows acceptance tests were failing because we're having trouble
    installing sqlite3 on the master (el6). This commit results in the test
    being skipped on windows as no suitable hosts can be found.

commit 1d7d7cbfd70bc464b42c6d4bb74c712b691629fd
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Oct 18 09:53:18 2012 -0700

    Update PUPPETVERSION for 3.0.1

commit e3a9a25452060384cfdd86c0237f809b9b616238
Merge: b183e57 4732217
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 17 13:17:35 2012 -0700

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (#17000) Use --no-client argument to prevent agent from starting
      (Maint) Exclude test from windows

commit 4732217d0968994eab41079ba28d04a4d5bb5f2a
Merge: 94239ea 609432a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 17 13:16:48 2012 -0700

    Merge branch 'ticket/3.0.x/17000-puppet-kick-acceptance' into 3.0.x
    
    * ticket/3.0.x/17000-puppet-kick-acceptance:
      (#17000) Use --no-client argument to prevent agent from starting

commit 609432aee390b3e8bbbef9a5af1233c6de3cecf2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 17 13:06:30 2012 -0700

    (#17000) Use --no-client argument to prevent agent from starting
    
    Previously, the acceptance test would start a daemonized and listening
    agent, and then attempt to kick it from the master. However, when the
    agent started, it would automatically retrieve and apply a catalog. If
    kicked during this time, the agent would return exit code 3, which is
    ambiguous, since it could mean we're not authorized to kick the agent,
    an SSL error prevented us from connecting, the agent couldn't find the
    `run` indirection (which this acceptance test is attempting to ensure
    never happens), or who knows what else.
    
    In the case that the agent was 'running', the test would attempt to
    retry the kick, but on centos55, the test would get into an infinite
    loop.
    
    This commit uses the `--no-client` agent argument to ensure the agent
    only applies catalogs when it's kicked. In doing so, all of the retry
    logic in the acceptance test can be removed.

commit b183e57f1a37efeb456cf48d2f18d04ebd2da899
Merge: d4dda1b 7825e9d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 17 09:32:02 2012 -0700

    Merge pull request #1227 from slindberg/ticket/3.x/7962_duration_setting_description
    
    (#7962) Reopen: Added description of 'duration' settings format.

commit d4dda1b1b025589af794fc129d2997b62b21c28e
Merge: 5f33c0f 2ea29e5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Oct 16 11:16:13 2012 -0700

    Merge pull request #1209 from ahpook/16768_no_client_docs
    
    (#16768) Clarify documentation about the purpose of --no-client

commit 94239ea0d5901224f51eb723c0104948a273398a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Oct 16 10:45:36 2012 -0700

    (Maint) Exclude test from windows
    
    The windows tests run with a rhel 6 master right now, this has been
    written to work with ubuntu 10 and centos 5. That provides enough
    coverage that this feature works without having it also run on rhel 6.

commit 7825e9d17669b7ce111947c241e9e42fceef8078
Author: Steven Lindberg <stevenjohnlindberg@gmail.com>
Date:   Sat Sep 15 13:44:25 2012 -0700

    (#7962) Added description of 'duration' settings format.
    
    Descriptions for settings of the DurationSetting type indicate that they
    'can be specified as a duration'. This adds the description of how a
    duration should be specified to the configuration reference section.
    
    This also adds back a pertinant sentence accidentally removed from the
    `ca_ttl` setting description.

commit 5f33c0fba47dba81f7c8ddbfb738d64985c011bf
Merge: d6ce04a 0634933
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Oct 15 18:31:03 2012 -0700

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (Maint) Fix acceptance test to work on centos5
      (#16698) Exclude enc+storeconfig test from solaris
      Update PUPPETVERSION for 3.0.1-rc1

commit 0634933d0a808c2f9101cd5eddf55cc474d98ad1
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Oct 15 18:29:43 2012 -0700

    (Maint) Fix acceptance test to work on centos5

commit 1f1254c565bab3579046222ffbdac1dfb330a0ab
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Oct 12 11:36:10 2012 -0700

    (#16698) Exclude enc+storeconfig test from solaris
    
    This test was written only with ubuntu and centos in mind. Testing only
    on those platforms should be enough and maintaining it on too many
    platforms because of the package installations would be a burden.

commit 84c000eb1703dc74f91c43e823e78b6c88fc6323
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Thu Oct 11 17:11:35 2012 -0700

    Update PUPPETVERSION for 3.0.1-rc1

commit d6ce04a2f17d1697bccf7c25cc788f193fad5325
Merge: c8d115a 54da4c9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 11 16:11:20 2012 -0700

    Merge remote-tracking branch 'upstream/3.0.x'
    
    * upstream/3.0.x:
      (#16922) Quote strings that contain ":"
      (#16922) Quote strings that contain ":"
      fail better in package repo rake tasks
      (#16376) Fix rails compatibility layer for activerecord < 3.0

commit 54da4c90fc03881bed2b5cb1dac55463f4a9fde6
Merge: 25db17b 9d7965b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 11 16:03:55 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.0.x
    
    * upstream/2.7.x:
      (#16922) Quote strings that contain ":"
      fail better in package repo rake tasks
      (#16376) Fix rails compatibility layer for activerecord < 3.0

commit 9d7965bfa6530234cd01bee5cd3144fc85ae00e2
Merge: 8fb16c8 dc50ec7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 11 16:01:18 2012 -0700

    Merge branch 'backport-colon' into 2.7.x
    
    * backport-colon:
      (#16922) Quote strings that contain ":"

commit dc50ec7e6dfd7f315d026e1cec1048a6a5efd690
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Oct 11 15:45:48 2012 -0700

    (#16922) Quote strings that contain ":"
    
    Part of the performance work on the ZAML code caused a regression on how
    to convert values that contain a colon into YAML strings. This becomes a
    problem when a string ends in a colon and that line in the YAML output
    is followed by another line.
    
    An example of the incorrect output is:
    
      ---
      a: a:
      b: 1
    
    This patch causes that to be output correctly as:
    
      ---
      a: "a:"
      b: 1

commit 25db17b6c42217e353ed4ffa60adf16926e36503
Merge: 8df9825 6c47ba9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 11 15:51:06 2012 -0700

    Merge branch 'ticket/3.0.x/16922-colon-on-fact-names-causes-problem' of git://github.com/zaphod42/puppet into 3.0.x
    
    * 'ticket/3.0.x/16922-colon-on-fact-names-causes-problem' of git://github.com/zaphod42/puppet:
      (#16922) Quote strings that contain ":"

commit 6c47ba97153a7f8ff800daf2d12783a3c4f13bc5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Oct 11 15:45:48 2012 -0700

    (#16922) Quote strings that contain ":"
    
    Part of the performance work on the ZAML code caused a regression on how
    to convert values that contain a colon into YAML strings. This becomes a
    problem when a string ends in a colon and that line in the YAML output
    is followed by another line.
    
    An example of the incorrect output is:
    
      ---
      a: a:
      b: 1
    
    This patch causes that to be output correctly as:
    
      ---
      a: "a:"
      b: 1

commit c8d115a6ff54435b909be29cc30889829836863b
Merge: 5536f4d 8df9825
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 11 15:24:36 2012 -0700

    Merge branch '3.0.x'
    
    * 3.0.x:
      (#16769) Fix header too long error with ExportCertData
      (#16698) Add acceptance test for using store configs with an enc
      (#16698) Do not set Node cache_terminus for storedconfigs

commit 8df982503be14a811b74ed9699e6a1b590c8cd04
Merge: b9fd53e 6d917aa
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 11 15:23:39 2012 -0700

    Merge branch 'fix/3.0.x/16769_export_cert_data_too_long' into 3.0.x
    
    * fix/3.0.x/16769_export_cert_data_too_long:
      (#16769) Fix header too long error with ExportCertData
    
    Paired-with: Henrik Lindberg <henrik.lindberg@cloudsmith.com>

commit 6d917aada70052a76851cd62b4d33507f2fc15b5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 11 15:09:29 2012 -0700

    (#16769) Fix header too long error with ExportCertData
    
    Without this patch new Puppet agent nodes who do not yet have a signed
    certificate will receive this error message when Apache is configured
    with the +ExportCertData option.
    
        Error: Could not request certificate: Error 400 on SERVER: header too long
        Exiting; failed to retrieve certificate and waitforcert is disabled
    
    This is a problem because Puppet doesn't run at all.
    
    The root cause is that we didn't take into account the edge case where a
    Puppet agent is operating as an anonymous SSL client without a signed
    certificate.  In this situation, the  SSL_CLIENT_CERT environment
    variable is set, but is the empty string.
    
    Worse, the OpenSSL error message is mis-leading because the certificate
    is not present rather not "too long."
    
    This patch fixes the problem by explicitly checking if the data is empty
    or nil.

commit b9fd53e61e36280cbd52c7d4e18f8ab64ac17f82
Merge: 9ee0578 5a7fd97
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 11 14:54:54 2012 -0700

    Merge branch 'ticket/3.0.x/16698-enc-does-not-work-with-store-configs' of git://github.com/zaphod42/puppet into 3.0.x
    
    * 'ticket/3.0.x/16698-enc-does-not-work-with-store-configs' of git://github.com/zaphod42/puppet:
      (#16698) Add acceptance test for using store configs with an enc
      (#16698) Do not set Node cache_terminus for storedconfigs

commit 5536f4d2d2b12c7deac1ba3647879f56bbb34703
Merge: 7615cca 9ee0578
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 11 11:51:34 2012 -0700

    Merge branch '3.0.x'
    
    * 3.0.x: (29 commits)
      (Maint) Update config.ru to fix issue with vardir
      Update suse puppet.spec for Telly
      Update suse client.init for new pidfile, process name
      (#16801) Update suse server.init and remove mongrel refs
      Remove unused suse packaging files
      Update redhat logrotate to signal correct process
      (#16801) Remove mongrel references
      (#16801) Remove mongrel_spec.rb as it is no longer in use.
      (#16801) Remove mongrel references from manpage
      (#16801) Remove lib/puppet/network/http/mongrel
      Maint: Remove unused $prog variable from redhat puppetmaster init script
      Maint: Retab puppetmaster init scripts
      (#16801) Remove mongrel references from init scripts
      (#16757) Prevent using rubygems when bundler is in use
      (#16757) Don't require rubygems
      (#16757) Deprecate Puppet.features.rubygems?
      (#16757) Move rubygems require to application entry point
      (#15717) Kick agent using its fqdn
      (#15717) Acceptance tests for puppet kick
      Fix up dependencies for Hiera and Facter in RubyGems.
      ...

commit 9ee05785b13710a3b3ab66c9870a6e67f6aa99ca
Merge: 38f975f 623fa02
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 11 11:51:02 2012 -0700

    Merge branch 'maint/3.0.x/config_ru_vardir' into 3.0.x
    
    * maint/3.0.x/config_ru_vardir:
      (Maint) Update config.ru to fix issue with vardir

commit 623fa028147a3eb6602c8911a437d210ce56990b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 11 11:43:19 2012 -0700

    (Maint) Update config.ru to fix issue with vardir
    
    Without this patch the config.ru example only contains the --confdir
    argument.  This is a problem because when Puppet starts from config.ru,
    it will automatically be switched by Passenger to the EUID of the owner
    of the file.  Puppet will still try to write to the default vardir of
    ~/.puppet/ in this situation which may be a problem because $HOME might
    be ~root.
    
    This patch fixes the problem by adding the --vardir option to the
    example with the default value of /var/lib/puppet

commit 5a7fd97701484413c3c59df9facee74c39b4fd9c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Oct 10 15:21:44 2012 -0700

    (#16698) Add acceptance test for using store configs with an enc
    
    This adds a simple test that the ENC is not shadowed by the store
    configs. There is no check that the store configs actually can be used.
    That is another whole that should be plugged at another time.

commit a728098a59800316d0e0f9088af5993e2a871518
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Oct 11 11:40:37 2012 -0700

    (#16698) Do not set Node cache_terminus for storedconfigs
    
    The hook on the storedconfigs setting would try and setup the terminuses
    so that they were properly wired up to the store configs. One part of
    this was to set the `cache_terminus` for the `Puppet::Node` to
    `:store_configs`. However, up until commit
    5a79d9abd96e73ff166527cdee69a30da8ab0f87 this was overridden by the
    master application to be `:yaml`. That commit removed this so that an
    ENC was able to be authoritative, but once it was removed the store
    configs cache terminus was left on and interferred with the ENC.
    
    This commit removes the cache for the `Puppet::Node` since there is no
    need for it and all it does is interfere with fetching node data. The
    `Puppet::Node::Facts` store configs code will actually create the entry
    in the `host` table that is needed.

commit 7615ccaced47b3fbc461a67e0ab72a0d3266cbd6
Merge: b22eb3c 96fea41
Author: nfagerlund <nick.fagerlund@puppetlabs.com>
Date:   Wed Oct 10 17:11:36 2012 -0700

    Merge pull request #1219 from nfagerlund/document_all_termini
    
    Maint: Document every terminus, especially static_compiler

commit 96fea41207300e5bbf22a3345f185be5c292c798
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Oct 10 17:04:00 2012 -0700

    Docs: Clarify that the "puppet" filebucket is magic to the static compiler
    
    When Jeff was documenting this, he was tripped up for an extended period by
    the necessity that the filebucket be named exactly "puppet". This is
    non-obvious enough that we should always mention it in the same breath that we
    mention the static compiler's existence.

commit e45fbc15472328db3dc9273bb7da0db5abd73509
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Oct 10 14:45:50 2012 -0700

    Maint: Document every terminus, especially static_compiler
    
    Many termini were added to the codebase without a desc string. This commit
    adds one to every extant terminus, although the instrumentation ones simply
    say "undocumented."

commit 38f975f29bf4b2668fba9c6a65c1a94c57423176
Merge: 740eb4b d10c2d1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 8 16:45:13 2012 -0700

    Merge branch 'maint/3.0.x/update_suse_init_and_defaults' into 3.0.x
    
    * maint/3.0.x/update_suse_init_and_defaults:
      Update suse puppet.spec for Telly
      Update suse client.init for new pidfile, process name
      (#16801) Update suse server.init and remove mongrel refs
      Remove unused suse packaging files
      Update redhat logrotate to signal correct process

commit d10c2d13ac24aa75b5509dfae5079e489d92c600
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Oct 8 15:56:39 2012 -0700

    Update suse puppet.spec for Telly
    
    In Puppet 3.0, the ruby requirements have changed, as have certain packaging
    locations. Many binaries have also been removed, as they were deprecated in the
    2.7 series. This commit updates the ruby dependency to >= 1.8.7, moves the
    packaging file locations from conf to ext, and removes references to sbin and
    other removed binaries.

commit d56a0258df124164d6133778673b54ad2654510a
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Oct 8 15:55:13 2012 -0700

    Update suse client.init for new pidfile, process name
    
    The binary used to start the puppet agent process has changed in Puppet 3.0, as
    has the pidfile location. This commit updates calls to startproc, checkproc,
    and killproc to use a pidfile to ensure the correct process is used, and not
    the `puppet master` or other process. It also updates the pidfile location to
    match reality and adds agent to the PUPPET_OPTS so the correct application is
    started.

commit c44379f4a5c8499067cb71bc43ccdffb07729779
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Oct 8 15:52:03 2012 -0700

    (#16801) Update suse server.init and remove mongrel refs
    
    The binary used to start the puppetmaster process has changed in Puppet 3.0, as
    has the pidfile location. Built-in mongrel support has also been removed. This
    commit adds a warning if mongrel settings are detected and also updates calls
    to startproc, checkproc, and killproc to use a pidfile to ensure the correct
    process is used, and not the `puppet agent` process. It also updates the
    pidfile location to match reality and adds master to the PUPPETMASTER_OPTS so
    the correct application is started.

commit 5674ba1b340407deaeaf607c25429e82d29c4e9c
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Oct 8 15:47:23 2012 -0700

    Remove unused suse packaging files
    
    The suse puppet.spec references the redhat logrotate, fileserver.conf,
    puppet.conf files, so the suse files were never used and only created 3 sets of
    2 identical files to maintain.  This commit removes those files.

commit 36e2610accbffa790dad0ef511559f614c2e1380
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Mon Oct 8 15:44:26 2012 -0700

    Update redhat logrotate to signal correct process
    
    As the puppet master has moved from the removed binary puppetmasterd to the
    puppet binary, this commit updates the logrotate rule for redhat to signal the
    `puppet master` process instead of the non-existent puppetmasterd process.

commit 740eb4b90dcea2995f50aa16842c74a42c0f6770
Merge: 577d633 b773d20
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 8 14:59:39 2012 -0700

    Merge branch 'ticket/3.0.x/16801_remove_mongrel_from_init_scripts' into 3.0.x
    
    * ticket/3.0.x/16801_remove_mongrel_from_init_scripts:
      (#16801) Remove mongrel references
      (#16801) Remove mongrel_spec.rb as it is no longer in use.
      (#16801) Remove mongrel references from manpage
      (#16801) Remove lib/puppet/network/http/mongrel
      Maint: Remove unused $prog variable from redhat puppetmaster init script
      Maint: Retab puppetmaster init scripts
      (#16801) Remove mongrel references from init scripts

commit b773d20d87ed5b9d85775f9d51b26d511cc43b43
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 8 14:40:14 2012 -0700

    (#16801) Remove mongrel references
    
    Remove references to mongrel setups, which are no longer supported.

commit dfa1cbcb194ddf50b0415ea405098d1cb9c49b46
Author: Stijn Tintel <stijn.tintel@staff.telenet.be>
Date:   Wed Oct 3 16:23:49 2012 +0200

    (#16801) Remove mongrel_spec.rb as it is no longer in use.
    
    Previously, all of the tests were being skipped because
    `Puppet.features.mongrel?` is always false. These tests are no longer
    valid as the source it's trying to test has been deleted.

commit 623521e9208b4b5b1ca9690d77f3664fa328da8a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 8 14:32:30 2012 -0700

    (#16801) Remove mongrel references from manpage

commit 869d9020132be7a8c8cba6277f4006f24b12ff1b
Author: Stijn Tintel <stijn.tintel@staff.telenet.be>
Date:   Wed Oct 3 16:29:14 2012 +0200

    (#16801) Remove lib/puppet/network/http/mongrel
    
    Mongrel support was removed for #15733 in commit a113907c, but it was
    accidentally added back when #7962 was merged in commit 12d81c7.
    
    This commit removes the code again.

commit 4ea21c57f4e54c6cac7fda3daaa779c3958d85c6
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Oct 5 19:36:10 2012 -0700

    Maint: Remove unused $prog variable from redhat puppetmaster init script

commit 5e4ba1cf72fff8f3e000c77cfec337d7af821be3
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Oct 5 19:34:50 2012 -0700

    Maint: Retab puppetmaster init scripts
    
    This commit replaces all 2 space tabs and hard tabs with 4 space tabs and adds
    a vim tab explanation at the bottom of both init scripts.

commit eab19c539183a8436c86dd36384845c9eefb762f
Author: Matthaus Owens <matthaus@puppetlabs.com>
Date:   Fri Oct 5 18:59:23 2012 -0700

    (#16801) Remove mongrel references from init scripts
    
    Built-in mongrel support has been removed in Puppet 3.x, so the puppetmaster
    init scripts and defaults files should no longer mention them or try to use
    them as options. This commit removes the code paths that reference mongrel and
    --servertype. It also adds checks to both init scripts to check for multiple
    ports or puppetmasters set. In those cases it prints a warning to the user
    explaining that only one puppetmaster, on one port, will be started. It also
    explains where the setting can be updated.

commit 577d633f6f60ea72a0a933c9323fba74cc101382
Merge: 1c9bf81 793957c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 8 11:13:20 2012 -0700

    Merge branch 'ticket/3.x/16757-rubygems' into 3.0.x
    
    * ticket/3.x/16757-rubygems:
      (#16757) Prevent using rubygems when bundler is in use
      (#16757) Don't require rubygems
      (#16757) Deprecate Puppet.features.rubygems?
      (#16757) Move rubygems require to application entry point
      (#16757) Don't load rubygems if bundler is running
      (#16757) Only load rubygems in bin/puppet

commit 793957c20764b63896e40ed0a1fa1fdcace744f9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 5 14:55:09 2012 -0700

    (#16757) Prevent using rubygems when bundler is in use
    
    Previously, the `has_rubygems?` method only took into account whether
    the `::Gem` constant was defined. However, bundler also defines this
    constant. As a result, puppet could load code from rubygem directories
    that bundler did not want us to see.
    
    Also, the spec tests failed when invoking rspec via bundler, because
    we didn't correctly mock whether rubygems was available or not.
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit d94c1b3fe3d5bd2fb2665599dc40076c032327a4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 5 14:51:54 2012 -0700

    (#16757) Don't require rubygems
    
    Previously, the windows service code was explicitly requiring
    rubygems. While not breaking anything, it's not desirable, as the
    environment should load rubygems, or not, instead of the service code
    itself.
    
    This code changes the daemon batch file to execute rubyw with rubygems
    support enabled.
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit 1f9b40d83b45e770130cca182c3509c00ac940da
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 5 14:49:31 2012 -0700

    (#16757) Deprecate Puppet.features.rubygems?
    
    Loading rubygems inside an library is wrong, it needs to be controlled
    by the environment.
    
    Previously, several puppet features relied on the side effect of
    loading rubygems as a result of evaluating the feature. This is no
    longer necessary now that rubygems loading is handled in the
    Puppet::Util::CommandLine entry point.
    
    This commit adds a deprecation warning if `Puppet.features.rubygems?`
    is invoked, and reinstates the previous behavior of requiring rubygems
    to maintain backwards compatibility.
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit fd22019e7dc3dcb7eabe4665661cdcafdebe58c0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 5 14:45:37 2012 -0700

    (#16757) Move rubygems require to application entry point
    
    The previous commit removed the side-effect of loading rubygems as a
    result of evaluating the `Puppet.features.rubygems?` feature. As a
    result, the puppet script was the only place where we loaded rubygems,
    breaking rack setups.
    
    This commit moves the loading of rubygems into the
    Puppet::Util::CommandLine, which is effectively puppet's entry point
    for both command line and rack setsups.
    
    In addition, `Bundler::Setup` doesn't always seem to exist, at least
    not in all versions of bundler, so instead we're using `::Bundler` to
    detect if it's loaded.
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit 1c9bf812df9c9b1a464431009a3b74e8e6ae69af
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 5 10:26:24 2012 -0700

    (#15717) Kick agent using its fqdn
    
    Previously, the acceptance test would fail if `puppet kick` verified the
    SSL certificate of the target, and the hostname it connected to didn't
    match what was in the certificate.
    
    The `agent` string contains the agent hostname as specified in the
    configuration file, not the fqdn. Also, the agent and master may be in
    different domains.
    
    This commit modifies the test to query the agent for its fqdn, and then
    puppet kick's that.

commit b1e6de22c9cf881015c939f54a97b85b362d71e7
Author: Erik Dalén <dalen@spotify.com>
Date:   Wed Oct 3 08:35:56 2012 +0200

    (#15989) Tests for function arity
    
    Test that setting arity on functions work as it should.

commit 9ed6fcea48591cda58db1379b58cd39dfbdca684
Author: Erik Dalén <dalen@spotify.com>
Date:   Sun Sep 30 21:54:17 2012 -0700

    (#15989) Set arity on functions
    
    Set the arity on builtin functions.

commit a5b6c2a9fffbc83f35f04837a32626cc5efd09f8
Author: Erik Dalén <dalen@spotify.com>
Date:   Thu Aug 16 00:57:05 2012 +0200

    (#15989) Allow setting arity on functions
    
    The arity value works the same way as for blocks in Ruby.

commit 2ea29e5d2bc6cc1c4a435e270301c145a06e0a23
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Fri Oct 5 00:04:40 2012 -0700

    (#16768) Clarify documentation about the purpose of --no-client
    
    Per user comments on the mailing list and in #16768, they thought
    a SIGUSR1 would trigger an agent running with --no-client, which
    it doesn't.
    
    This commit clarifies the documentation to match reality: only
    a puppet kick will trigger an agent running with --no-client.

commit b22eb3c443d1161653f58c270dee1b5f88676c5f
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Fri Oct 5 00:44:17 2012 +0200

    (#4388) Fix false negative test using removed authconfig setting

commit 11816c4c62b72f27c3f9abcdea1fe45a1dcfafb9
Merge: 217c396 5a52dd6
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Oct 4 14:44:13 2012 -0700

    Merge pull request #1204 from nfagerlund/ticket/4388/remove_authconfig
    
    (#4388) Remove the dead `authconfig` setting

commit 217c396cbc909c74d731ca16b158f40ed5084e92
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Oct 4 14:29:37 2012 -0700

    Revert "Merge pull request #1190 from jeffmccune/fix/master/7316_load_faces_from_modulepath_try4"
    
    This reverts commit bdda511d06ed6f89b58343e815585957a33db94e, reversing
    changes made to 8f9699cee0d1028d538b0a26aa5bc885751b6d46.
    
    Conflicts:
    	lib/puppet/settings/config_file.rb

commit 0819a9e7cf15ac87f0e3b6db6e835bc5cc73966e
Merge: 3aaa582 e5f3dac
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 4 14:27:47 2012 -0700

    Merge branch 'ldapnodes_setting' into 3.0.x
    
    * ldapnodes_setting:
      (#16585) Remove dead ldapnodes setting

commit 5a52dd679caefc7f8648dfb4f06f6f25fd69ae9d
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Oct 4 13:45:02 2012 -0700

    (#4388) Remove the dead `authconfig` setting
    
    As of commit 4b6db1c6f3bb383d8309c5d98cb6236862caf085 or so, this setting is
    no longer referenced anywhere in the Puppet code. It used to point to the
    namespaceauth.conf file, which we no longer consult for any purpose. The setting
    should go away.

commit 3aaa5820e4373b336da80711335a997e69e235d9
Merge: ffd5657 01574c9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 4 12:34:10 2012 -0700

    Merge branch 'ticket/3.0.x/15717-puppet-kick' into 3.0.x
    
    * ticket/3.0.x/15717-puppet-kick:
      (#15717) Acceptance tests for puppet kick
      (#15717) Allow pluginsync as an option to Puppet::Run
      (#15717) Require puppet/run in the agent

commit 01574c961e9a2f8e91617304737276b6f0ba2e7d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 3 17:10:56 2012 -0700

    (#15717) Acceptance tests for puppet kick
    
    Previously, the acceptance test for #3172 only verified that `puppet
    kick` could be given a target host to connect to, and would verify that
    exit code 3 was returned. This exit code can mean connect failed, which
    is what the test was attempting to verify.
    
    However, exit code 3 can also mean `puppet kick` failed to verify the
    SSL server's certificate, or auth.conf doesn't allow access to /run, or
    something bad happened on the remote agent end -- in our case #15717.
    
    This commit updates the acceptance test for #3172 so it's clear what
    it's actually testing.
    
    It also adds an acceptance test to verify that the master can kick an
    agent, and that the agent reports the kick was successful. It also
    verifies that running `puppet kick` generates a deprecation warning.
    
    While researching these issues, I've discovered that `--ignoreschedules`
    doesn't work and hasn't for sometime, see #5975. The option is also not
    documented in the puppet kick documentation.
    
    Also, the `--pluginsync` option doesn't do anything, since in Puppet 3,
    pluginsync is enabled by default, and the ability to specify
    `--no-pluginsync` doesn't make much sense in an agent/master
    environment.

commit ffd56577b9affe77dade154ba6a965349c27603b
Author: Will Farrington <wfarr@github.com>
Date:   Tue Oct 2 14:20:41 2012 -0700

    Fix up dependencies for Hiera and Facter in RubyGems.
    
    Since Puppet 3.0 promises to follow semver, the dependencies should take
    this into account. This means now that only patch releases of Facter and
    Hiera will be pulled in for patch releases of 3.0, and the version
    dependency must be bumped for any minor or major release appropriately.
    
    This also fixes a bug in the Hiera dependency due to the segment
    comparisons in the RubyGems version resolver. Because there was no `.`
    before the `rc` in the current dependency (`1.0.0rc`) this resulted in
    the comparator looking at `1.0` and selecting the first version `>=`
    than it, in this case `1.1.0.rc`. I assume this is unintended and that
    the target was meant to resolve to Hiera `1.0.0`.

commit 0ef65d10e33a1d451ba917eb158912e806bce056
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Sep 27 14:29:01 2012 -0700

    (#16757) Don't load rubygems if bundler is running
    
    If bundler is handling gems we don't want to load rubygems ourselves, as it
    can conflict and cause loading of system gems beyond what bundler has set up.

commit 00866562c830df286a3d0723e4af6568300aadc6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Sep 27 14:24:05 2012 -0700

    (#16757) Only load rubygems in bin/puppet
    
    Under some setups it is necessary that we don't load rubygems ourselves (such
    as running bundler in stand-alone mode). This change gives the user control
    over loading rubygems, at the cost that they are now required to load rubygems
    if loading puppet with rack.

commit 7d0e1bde2ec9cb02aa9978159b992405f50c33aa
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Oct 2 15:30:07 2012 -0700

    (#15717) Allow pluginsync as an option to Puppet::Run
    
    Commit 62420c6ff02133e7bf6254cff83ddb3511a1ea41 changed the way that
    agents decided to perform a pluginsync to have a flag passed in. The
    initialize method of Puppet::Run tries to validate the options passed in
    and failed when it recieved the new option. This makes the new option
    validate and restores the ability to use puppet kick.

commit 7a532022e526cacc3461408bdb17cd4c35a6772b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Oct 2 15:03:15 2012 -0700

    (#15717) Require puppet/run in the agent
    
    Commit 81c73fd0d0d0a9ad4a7f2cb5386d5956739a89aa had accidentally removed
    any requires of the `puppet/run` file and so the code needed for kick
    was not being loaded. This adds loading of that file back into the agent
    application.

commit 55043e362c6ab897669a4fe82709307d503809f6
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Oct 2 11:20:01 2012 -0700

    (Maint) Clean up config file parsing
    
    The main loop of parsing the config file has a lot of error handling
    directly in it. This makes it harder to follow the main flow and less
    obvious what it is doing. This pulls out some of that checking and
    removes duplication around creating a new section.

commit bdda511d06ed6f89b58343e815585957a33db94e
Merge: 8f9699c 3b7977a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Oct 2 10:55:57 2012 -0700

    Merge pull request #1190 from jeffmccune/fix/master/7316_load_faces_from_modulepath_try4
    
    (#7316) Do not set default values for confdir and vardir in the master
    
    Conflicts:
    	lib/puppet/settings.rb
    
    Merge conflict config file parsing related to a disallowed section replicated
    in the config_file.rb parser.

commit 8d59823fa1877fd28d834cfcd8528057a30cd0b0
Merge: d947192 144bb76
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Oct 1 16:44:16 2012 -0700

    Merge pull request #1194 from jeffmccune/fix/3.0.x/16637_default_confdir_and_vardir
    
    (#16637) Fix default confdir and vardir with puppet master as normal user

commit 462d9a518f585b80e143a4d517956e49e7f25ce1
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Oct 1 11:44:21 2012 -0700

    (Maint) Remove code to support multiple config files
    
    Support for merging config files had been removed, but some of the
    supporting code was missed during the removal. This removes the rest of
    the support in settings.rb to handle merging multiple config files.

commit f3d0c7315d84ac120ef302244f885cc394f4be31
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Sat Sep 29 13:37:54 2012 -0700

    (Maint) Remove unused method sectionlist
    
    This method isn't being used anywhere, even in other projects that I
    checked.

commit 2d00869443831227ee2c4e1f3a3c09ca31845424
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Sat Sep 29 13:33:37 2012 -0700

    (Maint) Remove unneeded parse_file method
    
    This method simply delegated to another class. There were no users
    outside of the settings.rb file, and so it is just inlined.

commit 74d70fb6fec0d68059c074afcbf1de53861c30b4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Sat Sep 29 13:25:57 2012 -0700

    (Maint) Use value translator directly
    
    This removes an unneeded method that simply called through to the value
    translator. There don't seem to be any users outside of the settings.rb
    file that were actually using this method.

commit bd0748589bdecbcdbe7d9d20782bfff54001e7d2
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Sep 27 09:03:06 2012 -0700

    (Maint) Extract value translator for settings
    
    Pulled out a class for the translating of values that are going to be
    used as settings and added tests around that code.

commit b232d69db8713a28e6f4237af17bb788a73b197d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Sep 26 10:46:54 2012 -0700

    (Maint) Extract class to encapsulate value translation
    
    The value translation code has been buried deep inside the general
    settings handling, which has made it hard to find, reuse, and test. This
    pulls out a class that can be used for setting value translation.

commit 7bdd38e1eebd2e66da46eb1e09b636c56937b115
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Sep 26 10:34:14 2012 -0700

    (Maint) Move initialize near top
    
    The initialize method was hard to find buried down after line 300. This
    moves it closer to the top so that a reader of the code and more quickly
    see how things are setup.

commit 8f9699cee0d1028d538b0a26aa5bc885751b6d46
Merge: f1383ee cbb73d8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Oct 1 16:13:28 2012 -0700

    Merge pull request #1195 from zaphod42/maint/master/split-up-settings
    
    (Maint) Split out config file parsing

commit cbb73d82242babdce7db171014486c2b3caa79d4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 25 15:35:38 2012 -0700

    (Maint) Add test coverage around config file parsing
    
    This adds coverage for, I think, all of the config file structure
    parsing behavior. Since the value transformations are not currently part
    of this parsing code, they are not taken into account.

commit 58e36f52e83407dc2e9beddda3bb55d316d9c9ef
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 25 15:34:28 2012 -0700

    (Maint) Raise a Puppet ParseError instead of a RACC::ParseError

commit 0e60b118ceb920decc840ae30a656160b14f06d1
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 25 11:42:53 2012 -0700

    (Maint) Create a config file parser only once

commit 692890591c59e40eef735bdc6761706e8c692acf
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 25 11:40:30 2012 -0700

    (Maint) Move config file parser to its own file
    
    This extracts the config file parsing into its own class so that is can
    be worked with independently of the rest of the settings system.

commit cfe8bd47c0c5519775322646c3078d14505818ec
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 24 15:44:26 2012 -0700

    (Maint) Pull config file parsing into a class
    
    The parser for config files used to be tied up with all of the other
    logic for handling configuration settings. This takes the first step in
    encapsulating that parsing into a class that is dedicated to just
    parsing a configuration file.

commit 8fb16c875a6abfbed34015f86472e3ff81137fc9
Merge: b65b39e f8a4ddc
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Mon Oct 1 13:48:12 2012 -0700

    Merge pull request #1136 from haus/ticket/2.7.x/16376_update_rails_compatibility_layer
    
    (#16376) Fix rails compatibility layer for activerecord < 3.0

commit 144bb76a7e825a221fd1cb5a20728c8cf5c03264
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Sep 30 11:40:53 2012 -0700

    (#16637) Fix default confdir and vardir with puppet master as normal user
    
    Without this patch `puppet master` will select the wrong default confdir
    and vardir values when running as a non root user.  This is a problem
    because permission denied errors result trying to create the system
    directories when running as a non-system user.
    
    This patch fixes the problem by removing the explicit check for the
    master run mode in Puppet::Util::RunMode#which_dir

commit 10bb730e2126ddc09cc08a4e6c64b7e99e11b2d4
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Sep 30 11:46:11 2012 -0700

    (#16637) Add spec test for non-root puppet master confdir and vardir
    
    This patch simply adds test coverage to catch regressions in
    [16637](http://projects.puppetlabs.com/issues/16637)

commit 9478aab27ff29d3bb47a4fd79cfadc184e6474de
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Sep 30 11:49:38 2012 -0700

    (maint) Add yard generated documentation to git ignore
    
    This patch simply adds the yard generated documentation to the gitignore
    list.

commit 68a2b3475d0859e5bf2a2d25ea9827ec8753909f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Sep 30 11:24:31 2012 -0700

    (maint) Add .yardopts file
    
    This patch makes it easy to generate documentation, including private
    methods.  The assumption is that code will be marked up in markdown
    style yard comments.  YARD tags are documented at: [YARD Tags
    Overview](http://rubydoc.info/docs/yard/file/docs/Tags.md)
    
    The YARD documentation is currently intended for Puppet developers and
    community contributors.  While useful for end users, YARD documentation
    is not intended for new users or end users who are not developing on
    Puppet.

commit f1383ee3350cd93ad4df0f91a8923bcee4f68531
Merge: f6c6afa d144b6e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Sep 30 10:40:14 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      sample_module.pp refactored text: include sample-module into include sample_module
      This will fix Refactor #16643.
      Update lib/puppet/version.rb for 3.0.0

commit d144b6ed0d8071fb34a3c97b8cd135531d729c79
Merge: 340fdf8 d947192
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Sep 30 10:40:03 2012 -0700

    Merge branch '3.0.x' into 3.x
    
    * 3.0.x:
      sample_module.pp refactored text: include sample-module into include sample_module
      This will fix Refactor #16643.

commit d94719213bf21a138735b55a88dca487148ffdb0
Merge: 340fdf8 6561754
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Sep 30 10:39:40 2012 -0700

    Merge branch 'fix/3.0.x/16643_sample_module_rename' into 3.0.x
    
    * fix/3.0.x/16643_sample_module_rename:
      sample_module.pp refactored text: include sample-module into include sample_module
      This will fix Refactor #16643.

commit 65617544b23dc2f50ba6d2c398359815257890ee
Author: Niels Abspoel <aboe76@gmail.com>
Date:   Sun Sep 30 17:11:38 2012 +0200

    sample_module.pp refactored text: include sample-module into include sample_module

commit 5412e1f11f41793e91c4f0308769fd5bf5a14c29
Author: Niels Abspoel <aboe76@gmail.com>
Date:   Sun Sep 30 17:08:19 2012 +0200

    This will fix Refactor #16643.
    
    The Hyphen ‘–’ in name only unofficially supported in some puppet
    versions.
    
    Fix: sample-module name changed into sample_module which is supported.

commit 340fdf8e4e0000b725a730445e660c12429e7bb4
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Sep 28 10:29:29 2012 -0700

    Update lib/puppet/version.rb for 3.0.0

commit 82e0775b870eb6ad0572082af1bca03fb34a5776
Author: Peter Hamilton <Peter@aerofs.com>
Date:   Thu Sep 27 10:23:17 2012 -0700

    Fixed unhandled --ignoreschedules in puppet kick

commit 3b7977a049cff3e94035d3c7acc04b4106930de4
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Sep 26 10:52:08 2012 -0700

    (#7316) Do not set default values for confdir and vardir in the master
    
    Without this patch applied `puppet master` will explicitly set the value
    for confdir and vardir inside of
    Puppet::Application::Master#app_defaults.  This is a problem because
    it calls a method that does not exist while trying to do so.
    
    This patch fixes the problem by implementing the intended behavior
    documented in #15337, and specifically in commit 38cba0a.  This intended
    behavior is:
    
      1: If provided, use explicit puppet.conf in `--confdir`
      2: If root, use system puppet.conf
      3: Otherwise, use ~/.puppet/puppet.conf

commit 9b16fe0d9bd8c72ddb470810a55c00ddff143b13
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Sep 26 11:03:42 2012 -0700

    (#7316) Add spec coverage for Puppet::Application::Master#app_defaults
    
    Without this patch we don't have any spec test coverage for the
    app_defaults instance method of the Puppet::Application::Master class.
    This lack of coverage is problem because cherry picking the confdir and
    vardir patch from PR-882 in commit b064ee63 appears to work just fine
    after resolving the merge conflicts.  Things were not fine, however,
    because the app_defaults method makes a call that raises an exception
    and none of our spec tests caught this issue.
    
    The acceptance tests did, however, by exercising the command `puppet
    master --configprint pidfile`

commit 58b78c845d174830b5fc7771a3b28f74d9dda574
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Sep 26 09:59:11 2012 -0700

    Revert "Revert "Merge branch 'fix/3.x/7316_load_faces_from_modulepath_try3' into 3.x""
    
    This reverts commit ef3fe695fd0be5ff2b5aeb563f34f62a0f503831.

commit f6c6afa555cceaf37b40f65e741cadd7bedbc2fb
Merge: 911e283 964847b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Sep 26 13:44:52 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (Maint) Remove rspec from shebang line
      Update description of HTTP/HTTPS report
      Updating PUPPETVERSION for 3.0.0-rc8
      Update default cows and mocks

commit 964847b267093bd72a9154e13e7a6ec37ce62b0a
Merge: 1de6242 45af286
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Sep 26 11:44:35 2012 -0700

    Merge pull request #1188 from jeffmccune/maint/3.x/kill_rspec_shebangs
    
    (Maint) Remove rspec from shebang line

commit 45af286dfb41ee664747b7109640ef88750b8979
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Sep 26 11:27:21 2012 -0700

    (Maint) Remove rspec from shebang line
    
    Without this patch Ruby 1.9 is still complaining loudly about trying to
    parse the spec files.  The previous attempt to clean up this problem in
    edc3ddf works for Ruby 1.8 but not 1.9.
    
    I'd prefer to remove the shebang lines entirely, but doing so will cause
    encoding errors in Ruby 1.9.  This patch strives for a happy middle
    ground of convincing Ruby it is actually working with Ruby while not
    confusing it to think it should exec() to rspec.
    
    This patch is the result of the following command run against the source
    tree:
    
        find spec -type f -print0 | \
          xargs -0 perl -pl -i -e 's,^\#\!\s?/(.*)rspec,\#! /usr/bin/env ruby,'

commit 1de6242ab5a39c1ba05db8cd8b30b71f7996d2f7
Merge: 4a2bfd1 68b38c3
Author: nfagerlund <nick.fagerlund@puppetlabs.com>
Date:   Tue Sep 25 15:41:43 2012 -0700

    Merge pull request #1186 from nfagerlund/http_report
    
    Update description of HTTP/HTTPS report

commit e5f3daceea7ac6afa42e1d780ab698fffef91c18
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Sep 25 15:38:06 2012 -0700

    (#16585) Remove dead ldapnodes setting
    
    This setting has been dead code since 0.24.0, and its value is never read.
    This commit removes it.

commit 68b38c37cc0202203df39bf7a7cb637c4bf096ef
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Sep 25 15:37:02 2012 -0700

    Update description of HTTP/HTTPS report
    
    The HTTP report handler can now support HTTPS. This commit updates its
    description accordingly

commit 4a2bfd1f59c68bd124f665b0ea9e0ed15cf37c44
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Sep 25 14:00:41 2012 -0700

    Updating PUPPETVERSION for 3.0.0-rc8

commit 4d5f5cf227a1a53faf4c410179a9b1e35a224395
Merge: 26554ee bcd7afa
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Tue Sep 25 13:58:23 2012 -0700

    Merge pull request #1185 from haus/maint/3.x/update_default_cows_and_mocks
    
    Update default cows and mocks

commit bcd7afa6f2380e1a4095193d0126c8821672ac75
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Sep 25 13:52:45 2012 -0700

    Update default cows and mocks
    
    Previously, the default mocks and cows were set to build for both arches.
    Because puppet is a noarch package, building against i386 mocks and cows is
    sufficient and reduces overall build time. This also adds cows for debian
    stable and unstable.

commit 911e283a14530af68743945f4cda9e7e0ebc603e
Merge: 30da528 26554ee
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Sep 25 12:20:41 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#16567) Remove :lexical setting default
      Stub DataBinding in undef param tests
      Revert "Merge branch 'fix/3.x/7316_load_faces_from_modulepath_try3' into 3.x"

commit 26554ee9627d3299add65bc22580866be27b8d8a
Merge: 3ab78b6 4d0f472
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 25 11:20:02 2012 -0700

    Merge branch 'ticket/3.x/16567-useless-setting-for-lexical-scope' into 3.x
    
    * ticket/3.x/16567-useless-setting-for-lexical-scope:
      (#16567) Remove :lexical setting default

commit 4d0f472e644f86968f7a9fa91bdde822cafd1505
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 25 11:19:18 2012 -0700

    (#16567) Remove :lexical setting default
    
    This default is not used, nor does it appear to have ever been used.

commit 3ab78b6798b2307dce45e9fa4153b8ea1cbdb26f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Sep 25 10:34:58 2012 -0700

    Stub DataBinding in undef param tests
    
    This was causing failures when hiera was not configured properly since we
    aren't trying to test hiera in these tests.

commit da40d8d791f9a6723ff8f1efeb986b89c496ca9c
Merge: 30da528 ef3fe69
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 25 09:42:50 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      Revert "Merge branch 'fix/3.x/7316_load_faces_from_modulepath_try3' into 3.x"

commit ef3fe695fd0be5ff2b5aeb563f34f62a0f503831
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 25 09:35:21 2012 -0700

    Revert "Merge branch 'fix/3.x/7316_load_faces_from_modulepath_try3' into 3.x"
    
    This reverts commit b277bb3874ecd50e1cd6e600bf6d36e3240d5510, reversing
    changes made to bdf193640701e9a107b1c6f6661499b31fdefb4d.
    
    These changes are being backed out because they referenced a undefined
    methods (`default_global_config_dir` and `default_global_var_dir`).
    After fixing that locally, there was still a problem with `puppet help`
    printing out a large number of warnings because it could not load face
    code correctly.
    
    I think we need to step back from this, re-evaluate what is happening,
    and try a new approach.

commit 30da528e9c8ac345d1020d1cbeee02598174a3c5
Merge: fa4c2f0 2180e7b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 24 17:51:35 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      Extract methods from set_default_parameters and improve test coverage
      (#16221) Make undef not override default parameters

commit 2180e7bb0ade9bb651f5f12ac4334cee2ac03213
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 24 17:41:38 2012 -0700

    Extract methods from set_default_parameters and improve test coverage
    
    Refactor the set_default_parameters method in Puppet::Resource to be split
    into several methods and improve the test coverage around default parameters
    and undef.

commit b8f50a44b558900391d441f0161099b9baf46c49
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 24 16:22:07 2012 -0700

    (#16221) Make undef not override default parameters
    
    In 2.7.x, passing undef as an argument to a parameterized class will result in
    the argument using the default value given in the class definition. This was
    inadvertently changed, so the variable would not be set at all. This change
    reverts to the 2.7.x behavior.

commit fa4c2f08c14a5d7fa9d08a01900d0b072bc56d03
Merge: 5d231e1 b277bb3
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Sep 24 17:03:11 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (maint) Fix Failed to load face errors
      (#15214) Remove confdir and vardir from run_mode
      Revert "Merge branch 'revert/3.x/faces_from_modulepath' into 3.x"

commit b277bb3874ecd50e1cd6e600bf6d36e3240d5510
Merge: bdf1936 2aab9f0
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Sep 24 17:02:52 2012 -0700

    Merge branch 'fix/3.x/7316_load_faces_from_modulepath_try3' into 3.x
    
    * fix/3.x/7316_load_faces_from_modulepath_try3:
      (maint) Fix Failed to load face errors
      (#15214) Remove confdir and vardir from run_mode
      Revert "Merge branch 'revert/3.x/faces_from_modulepath' into 3.x"

commit 2aab9f03d9f6ddaf71f5367239d0622a8a8f2aea
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Sep 20 23:54:27 2012 -0700

    (maint) Fix Failed to load face errors
    
    Without this patch applied Telly will spew out a bunch `Error: Failed to
    load face foobar` errors when `puppet help` is run.  These errors look
    like:
    
        Error: Failed to load face help:
        no such file to load -- puppet/face/0.0.1/help
        Error: Failed to load face ca:
        no such file to load -- puppet/face/0.1.0/ca
        Error: Failed to load face catalog:
        no such file to load -- puppet/face/0.0.1/catalog
        Error: Failed to load face certificate:
        no such file to load -- puppet/face/0.0.1/certificate
        Error: Failed to load face certificate_request:
        no such file to load -- puppet/face/0.0.1/certificate_request
        Error: Failed to load face certificate_revocation_list:
        no such file to load -- puppet/face/0.0.1/certificate_revocation_list
        Error: Failed to load face config:
        no such file to load -- puppet/face/0.0.1/config
        ..etc.. for each face, but then see the regular help output.
    
    The problem is that the regular expression changed in a previous patch
    in my #7316 work, causing load errors resulting from checking for
    version specific faces to pass through the exception handler.
    
    This patch fixes the problem by tightening up the regular expression to
    catching both version specific faces and "current" face load errors.
    
    The `Puppet.debug` statement is also wrapped inside of a conditional so
    that we don't log spam and we can accurately see if we're actually
    loading multiple times or not.  The expectation is that `require` will
    only load the file once and return false on subsequent calls.

commit c7c81548cbb378eaeda48a07a11f0c36a1d81ced
Author: Chris Price <chris@puppetlabs.com>
Date:   Sun Jun 24 19:35:11 2012 -0700

    (#15214) Remove confdir and vardir from run_mode
    
    Prior to this commit, the vardir and confdir settings were tied to
    run_mode.  This caused a chicken-and-egg problem where you could not
    initialize the confdir and vardir until you'd loaded the
    application/subcommand, because that is the first point in time where
    you'd know the run_mode.  However, without knowing the confdir/vardir
    ahead of time, it's impossible to know where all you might need to look
    to try to find the application/subcommand for loading.
    
    This commit decouples those settings from run_mode.  The default values
    for them are now set solely based on whether the user is root or not.
    Individual applications may override these defaults a bit later in the
    life cycle (e.g., 'master' does this).
    
    Conflicts:
    	lib/puppet/settings.rb
    	lib/puppet/util/autoload.rb
    	lib/puppet/util/run_mode.rb
    	spec/unit/util/run_mode_spec.rb

commit e33c088c44ced271a72fb2cc63fd9b74c455224d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Sep 24 15:49:14 2012 -0700

    Revert "Merge branch 'revert/3.x/faces_from_modulepath' into 3.x"
    
    This is a "revert-the-revert" commit.
    
    This reverts commit 87ea7a8849f90a232f2bb683fb8a2ce1573a21db, reversing
    changes made to 8dff14b9c5a3cdd99ede63dbcbb2dbe00b457926.

commit 5d231e1c7a640bbc9c65e76bd6545a0b48dd955f
Merge: df9beab bdf1936
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 24 12:07:18 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      Pass wrapped real scope to DataBinding
      Updating lib/puppet/version.rb for 3.0.0-rc7
      Removing hiera-puppet dependency from project_defaults
      (#13435) Use SHA256 for puppet agent --fingerprint
      (#13435) Convert digest to string in cert interface
      Remove svn specific code from install.rb
      Remove references to CHANGELOG in packaging

commit bdf193640701e9a107b1c6f6661499b31fdefb4d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 24 11:40:44 2012 -0700

    Pass wrapped real scope to DataBinding
    
    We were passing only facts into the DataBinding terminus, but Hiera needs to
    be able to lookup variables on the scope. We now pass a scope, but wrap it
    with Puppet::DataBinding::Variables to avoid exposing anything but variable
    lookup.
    
    This fixes the error in Puppet 3.0rc7 where variables like %{environment} were
    not properly interpolated in hiera.conf (and likely elsewhere).

commit 228eeb5c404e8f20c63fa8cabeae6795995ec59c
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 21 15:20:53 2012 -0700

    Updating lib/puppet/version.rb for 3.0.0-rc7

commit 12871d4d065788c387188f02726a2ac0278aa1b5
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 21 15:17:54 2012 -0700

    Removing hiera-puppet dependency from project_defaults
    
    Hiera-puppet is no longer a gem dependency, as it is merged into core puppet.
    This commit removes it from ext/project_data.yaml.

commit 4b96227da398016c9b39ed23bead127f0a9436fc
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Sep 21 14:42:32 2012 -0700

    (#13435) Use SHA256 for puppet agent --fingerprint
    
    Earlier changes to make SHA256 the default everywhere overlooked the agent
    --fingerprint option. This makes SHA256 the default there.

commit 50aeb874e7408543d53122f9b27f2c489be75c93
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Sep 21 14:26:39 2012 -0700

    (#13435) Convert digest to string in cert interface
    
    The list method of the cert interface was relying on an implicit cast to
    string of the message digest, which was not reliable across all ruby versions.

commit 81a87678bf726fea044f622bb87937d4ebb225ba
Merge: 2abd6dc 668e314
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri Sep 21 14:31:23 2012 -0700

    Merge pull request #1182 from haus/maint/3.x/fixup_install_rb
    
    Remove svn specific code from install.rb

commit 668e314c80ada25285da88d4cec85ca932c6e211
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 21 14:19:31 2012 -0700

    Remove svn specific code from install.rb
    
    We no longer need to exclude .svn files from puppet, as it is now using git.

commit 2abd6dcdb30e946bed569830c9f69fef54fc1b70
Merge: 940c3e4 9f01586
Author: Matthaus Owens <mlitteken@gmail.com>
Date:   Fri Sep 21 12:15:59 2012 -0700

    Merge pull request #1181 from MosesMendoza/maint/3.x/fixup_packaging_from_changelog_removal
    
    Remove references to CHANGELOG in packaging

commit 9f0158648695f8c2ebefa09034a6239482041a16
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Sep 21 12:03:40 2012 -0700

    Remove references to CHANGELOG in packaging
    
    Now that the CHANGELOG is removed, references to
    it in various packaging artifacts should be removed.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit df9beabc51f8660ae992019c5330926c59e880b4
Merge: 92a44e5 940c3e4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Sep 21 11:36:45 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      Update debian ruby dependencies to include 1.9
      Add --ruby flag to install.rb
      (#13435) Use new digest code when generating a CSR
      (#13435) Use digest algorithm from CSR for fingerprint
      Replace Config::CONFIG with RbConfig::CONFIG
      Remove sbin references from install.rb
      Remove CHANGELOG file
      Update docs w/ new default logoutput value from ticket #10907
      Update puppet.spec, bump required ruby to 1.8.7
      Set ca_location in ca face

commit 940c3e4dc5da9787ffdf0b2cab177c9d94eb6545
Merge: 3443586 97c8b0c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Sep 21 11:35:57 2012 -0700

    Merge pull request #1172 from pcarlisle/ticket/3.x/13435-sign-csrs-with-sha
    
    Ticket/3.x/13435 sign csrs with sha

commit 3443586c85b916130153190e7de0143648eaf787
Merge: edd222e 12933af
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Sep 21 11:26:12 2012 -0700

    Merge pull request #1174 from haus/maint/3.x/bump_required_ruby_to_187
    
    Update puppet.spec, bump required ruby to 1.8.7

commit edd222e681838b3c9439b6f4fc94bda6a2900632
Merge: 713d11a c23a64a
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Sep 21 11:25:30 2012 -0700

    Merge pull request #1176 from MosesMendoza/maint/3.x/remove_CHANGELOG_file
    
    Remove CHANGELOG file

commit 713d11a85b72c33eedb1659d25f01eb780d5fd2d
Merge: bd08169 9351940
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Sep 21 11:24:57 2012 -0700

    Merge pull request #1173 from haus/maint/3.x/add_19_deps_to_debian
    
    Update debian ruby dependencies to include 1.9

commit bd08169d65acb9444dee36feec06aa322f17bca3
Merge: ca62a5a be2816d
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Fri Sep 21 11:22:20 2012 -0700

    Merge pull request #1180 from haus/maint/3.x/update_install_rb_for_3x
    
    Maint/3.x/update install rb for 3x

commit 935194053db40958a10082482de4976e9e755b30
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed Sep 19 17:05:02 2012 -0700

    Update debian ruby dependencies to include 1.9
    
    The previous set of debian dependencies were all ruby 1.8 specific. Puppet 3.x
    has full ruby 1.9 support, so this commit adds the option of ruby 1.9 for all
    of Puppet's dependencies. It moves the sitelibdir to be vendordir, which is the
    current debian standard for ruby projects with ruby support for both 1.8 and
    1.9. It also updates all of the dependencies to be just ruby instead of ruby1.8
    | ruby 1.9.1 and adds 1.9 equivalents for all ruby libraries. This commit also
    drops rails, activerecord, and mongrel and adds the suggestion of
    puppetdb-terminus instead.

commit be2816df4f7f8f2ccbfff30586ce15c7c3b91d22
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 21 10:47:40 2012 -0700

    Add --ruby flag to install.rb
    
    If the ruby used to install puppet isn't the ruby desired to execute puppet,
    this flag will allow users and packages to set their own ruby. This is
    particularly useful when working with ruby and alternatives.

commit 97c8b0c5eb95cee1bb08571512b258179d61da9f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Sep 19 15:00:26 2012 -0700

    (#13435) Use new digest code when generating a CSR
    
    This uses the Puppet::SSL::Digest class to show the digest and digest
    algorithm used when generating a CSR. This also refactors the
    CertificateRequest specs to significantly reduce stubbing.

commit a1b9f7ce5643b587db5857530dd404538e5705c6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Sep 12 12:15:24 2012 -0700

    (#13435) Use digest algorithm from CSR for fingerprint
    
    Since the digest algoritm changed between Puppet 2.7 and 3.0 from MD5 to
    SHA256, there was a problem when submitting a CSR from a 2.7 agent to a 3.0
    master. The agent would display the fingerprint using MD5, and the master
    would display the SHA256 fingerprint, making it impossible to verify using the
    normal puppet commands. This makes the default digest algorithm for each CSR
    the algorithm that was used to generate the signature. This will be MD5 for a
    CSR generated on 2.7, and SHA256 for a CSR generated on 3.0. When showing a
    fingerprint puppet will now always print the digest algorithm that was used.
    All fingerprinting commands should also accept a --digest option to specify
    the digest.
    
    It also significantly refactors and unifies the code used to generate and
    display fingerprints. It introduces a new class, Puppet::SSL::Digest, to
    encapsulate digest data, and uses this everywhere a digest is needed.

commit 0f0fe3dd68569ea8243aeb896455420bea4b5aa3
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 21 10:40:00 2012 -0700

    Replace Config::CONFIG with RbConfig::CONFIG
    
    Config has been deprecated in favor of RbConfig, so this replaces all
    occurences of Config with RbConfig.

commit 0c4daddb589526c0ad6f702c6741ae764776bcd8
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 21 10:37:55 2012 -0700

    Remove sbin references from install.rb
    
    In 3.x, all sbin files were removed, so install.rb no longer needs to reference
    those variables or accept those flags. This commit removes the --sbindir flag
    as well as all other mention of sbin.

commit ca62a5a8877fc4bd43112a5dcf871235fdb3d949
Merge: 87ea7a8 8ca3640
Author: nfagerlund <nick.fagerlund@puppetlabs.com>
Date:   Fri Sep 21 10:15:41 2012 -0700

    Merge pull request #1175 from nfagerlund/maint/10907/update_logoutput_docs
    
    Update docs w/ new default logoutput value from ticket #10907

commit 92a44e5752a064503d973bda70b2a6c30721bdd3
Merge: bab19f0 87ea7a8
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Sep 21 00:42:28 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      Revert "Merge branch 'fix/3.x/fix_puppet_face_failures' into 3.x"
      Revert "Merge branch 'fix/3.x/7316_load_faces_from_modulepath' into 3.x"

commit 87ea7a8849f90a232f2bb683fb8a2ce1573a21db
Merge: 8dff14b edb535e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Sep 21 00:41:37 2012 -0700

    Merge branch 'revert/3.x/faces_from_modulepath' into 3.x
    
    * revert/3.x/faces_from_modulepath:
      Revert "Merge branch 'fix/3.x/fix_puppet_face_failures' into 3.x"
      Revert "Merge branch 'fix/3.x/7316_load_faces_from_modulepath' into 3.x"

commit edb535e25cf3faa6607ee8fc5d33d74d7ec00892
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Sep 21 00:28:51 2012 -0700

    Revert "Merge branch 'fix/3.x/fix_puppet_face_failures' into 3.x"
    
    This reverts commit 8dff14b9c5a3cdd99ede63dbcbb2dbe00b457926, reversing
    changes made to 8b059a9a9e7c765d3050163ca59abeffe3e297b5.
    
    Revert the modulepath face loader change set for the following reason:
    
    This change set is intended to load faces from the module path.   It
    works great...  _if_ you explicitly set --confdir on the command line
    like I do with my zsh puppet() function.  If you don't, then it blows up
    because the global for the confdir is set by defaults at a different
    enough point in the code for us to overlook the issue.
    
    If we invest in removing global state, specifically Puppet.settings, I
    think we'll see a very quick return.
    
    The confdir setting should be "available" for use at the same point,
    regardless of where it comes from; defaults, puppet.conf, CLI, or
    (hopefully) the environment.

commit 8a44663d9cac07282eabf18fd11656147ccbffcd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Sep 21 00:28:07 2012 -0700

    Revert "Merge branch 'fix/3.x/7316_load_faces_from_modulepath' into 3.x"
    
    Revert the modulepath face loader change set for the following reason:
    
    This change set is intended to load faces from the module path.   It
    works great...  _if_ you explicitly set --confdir on the command line
    like I do with my zsh puppet() function.  If you don't, then it blows up
    because the global for the confdir is set by defaults at a different
    enough point in the code for us to overlook the issue.
    
    If we invest in removing global state, specifically Puppet.settings, I
    think we'll see a very quick return.
    
    The confdir setting should be "available" for use at the same point,
    regardless of where it comes from; defaults, puppet.conf, CLI, or
    (hopefully) the environment.
    
    This reverts commit 8b059a9a9e7c765d3050163ca59abeffe3e297b5, reversing
    changes made to 7c3b620182602012b191a5b5ade7b1df5cbc8b19.

commit bab19f06cb5db74b1ee0680502f668c2ee135a4c
Merge: e6e9a29 8dff14b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Sep 20 19:15:02 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (Maint) Fix spec failures with Puppet::Face[]

commit 8dff14b9c5a3cdd99ede63dbcbb2dbe00b457926
Merge: 8b059a9 df7a72f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Sep 20 19:14:58 2012 -0700

    Merge branch 'fix/3.x/fix_puppet_face_failures' into 3.x
    
    * fix/3.x/fix_puppet_face_failures:
      (Maint) Fix spec failures with Puppet::Face[]

commit df7a72ffec395adb638b12067029503711291a88
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Sep 20 19:07:50 2012 -0700

    (Maint) Fix spec failures with Puppet::Face[]
    
    Without this patch the describe blocks are being executed before the
    spec helper before hooks.  This is problem because the
    Puppet::Face.find method now searches the modulepath.  The modulepath
    setting is not yet initialized when the subject of the describe block is
    evaluated.
    
    This patch fixes the problem by explicitly setting the subject inside
    the example groups.  Doing so delays evaluation of the find method until
    after settings have initialized.
    
    I suppose all of this could be summed up as, "Load faces after settings
    have been initialized by the spec helper, not before."
    
    Paired-with: Andrew Parker <andy@puppetlabs.com>

commit e6e9a29a0170e9306d562bdf0850184e9c1e7fb6
Merge: f15a260 8b059a9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Sep 20 17:47:30 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#7316) Load applications from the modulepath
      Update puppet.spec.erb to correct rpmlint issues

commit 8b059a9a9e7c765d3050163ca59abeffe3e297b5
Merge: 7c3b620 fb845bb
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Sep 20 17:47:11 2012 -0700

    Merge branch 'fix/3.x/7316_load_faces_from_modulepath' into 3.x
    
    * fix/3.x/7316_load_faces_from_modulepath:
      (#7316) Load applications from the modulepath
    
    Paired-with: Andrew Parker <andy@puppetlabs.com>

commit fb845bbfe1728fbf4b4781088f3e1ae77e0d21b6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Sep 19 15:36:35 2012 -0700

    (#7316) Load applications from the modulepath
    
    Without this patch Puppet does not search the modulepath lib
    subdirectories for application subcommands.  This is a problem because
    face applications that aren't affected by #3947 should work.
    
    This patch fixes the problem by searching through the modules along the
    modulepath to find available subcommands in addition to those available
    along the Ruby $LOAD_PATH and RubyGems $GEM_PATH.
    
    Both legacy application files and modern face applications are loaded
    from the modulepath with this patch.
    
    This patch does _not_ add the module's `lib/` subdirectory to the
    $LOAD_PATH, so issue #3947 will still affect face applications that
    attempt to use `require` with library files inside the module.

commit c23a64a1c9276d5d226809488387c34cd1cf543a
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Sep 20 17:16:21 2012 -0700

    Remove CHANGELOG file
    
    This commit removes the CHANGELOG file in the top level
    of puppet, which only contains commit hashes/ messages
    from the previous releases, and is of debatable utility.
    This information can be gleaned easily from a git log,
    and is not of much use without git. Removing it removes
    yet another manual process from the releasing of puppet.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 8ca36403113fa9eaf32ac661d99a92688ba42e7b
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Sep 20 16:32:40 2012 -0700

    Update docs w/ new default logoutput value from ticket #10907
    
    This commit updates the inline parameter docs to match a change that was
    previously merged.

commit 12933afe4be093152224799cea13a76e566d6730
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Thu Sep 20 15:19:52 2012 -0700

    Update puppet.spec, bump required ruby to 1.8.7
    
    Telly drops support for 1.8.5, moving the minimum required ruby to 1.8.7. For
    el5, ruby 1.8.7 can be found in our devel repos at
    yum.puppetlabs.com/el/5/devel/$ARCH until we release Puppet 3.0, at which time
    they will move into our dependencies repo at
    yum.puppetlabs.com/el/5/dependencies/$ARCH.

commit 5f707a4495f2b013b0af827822f9eca9497177e1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Sep 12 14:08:34 2012 -0700

    Set ca_location in ca face
    
    The ca face was not properly setting ca_location, and therefore not setting
    the terminus correctly for Puppet::SSL::Certificate or CertificateRequest.
    Because of this, the ca face would not read all available certificates, for
    example certs waiting to be signed.

commit b65b39e89c119c83ff4a3524f71afedf1245d887
Merge: b7657d0 b2e31b5
Author: Matthaus Litteken <mlitteken@gmail.com>
Date:   Wed Sep 19 14:53:07 2012 -0700

    Merge pull request #1171 from MosesMendoza/maint/2.7.x/cleanup_package_repo_rake_tasks
    
    fail better in package repo rake tasks

commit b2e31b58e6695f048ab1a016f9856472a5d0b1a2
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Sep 19 14:30:12 2012 -0700

    fail better in package repo rake tasks
    
    This commit modifies the top level Rakefile to only
    load the packaging repo yaml file if it exists, as
    well as provide some error handling for other unwanted
    conditions that may arise as a result of trying to
    set up the packaging repo.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 7c3b620182602012b191a5b5ade7b1df5cbc8b19
Merge: 00974df 8dc46ba
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Wed Sep 19 12:59:14 2012 -0700

    Merge pull request #1170 from haus/maint/3.x/fixup_lint
    
    Update puppet.spec.erb to correct rpmlint issues

commit f15a260295fe36af578802909a0b282abc57c90d
Merge: c0b4c50 00974df
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 19 12:48:03 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (maint) add hiera to ext/envpuppet path and libpath
      (maint) use described_class.new for getting the provider instance.
      (maint) convert user_role_add_spec to the new format of writing test cases.
      Implement `Fixnum#ord` for Ruby 1.8.5
      tagging: use a static regexp rather than rebuilding it
      file_serving: avoid rewriting paths if possible.
      log_paths: memoize the entire value, not just part of it.
      zaml: speed micro-optimization for Time output
      whit: cache the `to_s` result.
      zaml: don't sort object attributes for output
      util: don't rebuild regexp every time we invoke absolute_file?
      parser/files: use a cheaper test for "is this path absolute?"
      Eliminate remaining uses of FileCollection.
      FileCollection is a memory loss, not a memory win.
      type: support implicit "identity" transformation
      monkey_patch: cache Symbol to_proc result.
      lexer: remove some unused stats collection
      tagging: document why fixing this horror is hard.
      type: memoize key_attributes for types.
      Avoid object creation/destruction when possible.

commit 00974dfb681fadfa55d87b8d08c5c33fe7d44857
Merge: f6699ef b7657d0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 19 12:42:42 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      Implement `Fixnum#ord` for Ruby 1.8.5
      tagging: use a static regexp rather than rebuilding it
      file_serving: avoid rewriting paths if possible.
      log_paths: memoize the entire value, not just part of it.
      zaml: speed micro-optimization for Time output
      whit: cache the `to_s` result.
      zaml: don't sort object attributes for output
      util: don't rebuild regexp every time we invoke absolute_file?
      parser/files: use a cheaper test for "is this path absolute?"
      Eliminate remaining uses of FileCollection.
      FileCollection is a memory loss, not a memory win.
      type: support implicit "identity" transformation
      monkey_patch: cache Symbol to_proc result.
      lexer: remove some unused stats collection
      tagging: document why fixing this horror is hard.
      type: memoize key_attributes for types.
      Avoid object creation/destruction when possible.
    
    Conflicts:
    	lib/puppet/metatype/manager.rb
    	lib/puppet/network/rights.rb
    	lib/puppet/transaction/report.rb
    	lib/puppet/util/monkey_patches.rb
    	spec/unit/util/log_spec.rb

commit f6699ef1cc87ebdac6aa4a287c2c1563d1477357
Merge: 98e5f5d d889c3b
Author: vrthra <9@vrtra.net>
Date:   Wed Sep 19 12:36:52 2012 -0700

    Merge pull request #1168 from vrthra/maint/fix_user_add_testcase
    
    (maint) fix spec test cases
    Updating it after verifying in windows and solaris.

commit 8dc46bad689079f75de2e5947c6c1bc16232dde0
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Sep 18 16:26:46 2012 -0700

    Update puppet.spec.erb to correct rpmlint issues
    
    This commit updates the puppet rpm specfile for several warnings and errors
    issued by rpmlint against our packages. These include incorrect perms on
    scripts and self-obsoleting package. This also replaces Requires(stage) with a
    simple requires with a comment explaining which stage it is required for and
    adds cases for systemd requires.

commit d889c3ba0c3b7d71cce944842217565433d28445
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Sep 18 13:19:42 2012 -0700

    (maint) add hiera to ext/envpuppet path and libpath
    
    Adding hiera to ext/envpuppet path and libpath so that it wont complain.

commit b7657d08871cd44540bebac6381b8f12c1b59e0a
Merge: 9697d7e 69315c2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 19 12:08:03 2012 -0700

    Merge branch 'perf/2.7.x/backport-reduce-memory-footprint' of https://github.com/daniel-pittman/puppet into 2.7.x
    
    * 'perf/2.7.x/backport-reduce-memory-footprint' of https://github.com/daniel-pittman/puppet:
      Implement `Fixnum#ord` for Ruby 1.8.5
      tagging: use a static regexp rather than rebuilding it
      file_serving: avoid rewriting paths if possible.
      log_paths: memoize the entire value, not just part of it.
      zaml: speed micro-optimization for Time output
      whit: cache the `to_s` result.
      zaml: don't sort object attributes for output
      util: don't rebuild regexp every time we invoke absolute_file?
      parser/files: use a cheaper test for "is this path absolute?"
      Eliminate remaining uses of FileCollection.
      FileCollection is a memory loss, not a memory win.
      type: support implicit "identity" transformation
      monkey_patch: cache Symbol to_proc result.
      lexer: remove some unused stats collection
      tagging: document why fixing this horror is hard.
      type: memoize key_attributes for types.
      Avoid object creation/destruction when possible.

commit c0b4c508541be6fa02a28f4e004c94ea36597524
Merge: 76526db 98e5f5d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 19 12:03:00 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      Disable ActiveSupport::Dependencies hooks.
      zaml: handle multi-line map keys and array values correctly.
      zaml: don't use backreferences on strings
      zaml: avoid calling emit when we don't have anything to output
      zaml: add whitespace for readability.
      zaml: rework strings for correctness and speed
      Maint: Fix intermittently failing spec test
      zaml: unify on a single definition of `to_zaml` for Symbol
      zaml: statically determine the to_ascii8bit implementation.
      Use `intern` rather than `symbolize` it Puppet::Type
      Implement Symbol#intern when it is missing.
      Add catalog JSON terminus to improve performance.
      Implement a JSON file terminus to mirror YAML.

commit 98e5f5d06de8d3433013ec280c855b77c48446e3
Merge: 30e2f18 9697d7e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 19 11:48:14 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      Disable ActiveSupport::Dependencies hooks.
      zaml: handle multi-line map keys and array values correctly.
      zaml: don't use backreferences on strings
      zaml: avoid calling emit when we don't have anything to output
      zaml: add whitespace for readability.
      zaml: rework strings for correctness and speed
      Maint: Fix intermittently failing spec test
      zaml: unify on a single definition of `to_zaml` for Symbol
      zaml: statically determine the to_ascii8bit implementation.
      Use `intern` rather than `symbolize` it Puppet::Type
      Implement Symbol#intern when it is missing.
      Add catalog JSON terminus to improve performance.
      Implement a JSON file terminus to mirror YAML.
    
    Conflicts:
    	lib/puppet/feature/rails.rb
    	lib/puppet/indirector/json.rb
    	lib/puppet/type.rb
    	lib/puppet/util/zaml.rb
    	spec/unit/indirector/json_spec.rb
    	spec/unit/util/zaml_spec.rb
    
    The zaml code in 3.x did not handle multi-line values. This was fixed in
    the backport to 2.7.x, and fixed in 2.7.x as part of this merge.
    
    Also the rails feature assumed `require 'active_support'` would also
    autoload the dependencies, but this does not occur with version 3.2.8.
    This was fixed in 2.7.x (to explicitly require the dependencies) and
    fixed in 3.x as part of this merge.

commit 76526db175839a559e2d80cc31652fe360d10935
Merge: e26fe3a 30e2f18
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Sep 19 11:06:47 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (Maint) Add tests of passing undef as parameter.
      (#16144) Update puppet spec file for fedora 17 and systemd changes
      systemd unit files added on own branch for pull request to satisfy issue 16144 : https://projects.puppetlabs.com/issues/16144

commit 30e2f18d3eae43640e2d07ce945a46f26ece65ed
Merge: 539ce22 4e7e4ba
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Sep 19 11:04:59 2012 -0700

    Merge branch 'undef-parameter-tests' into 3.x
    
    * undef-parameter-tests:
      (Maint) Add tests of passing undef as parameter.

commit 4e7e4ba4efe7d596753c5aa1bd51a1fa373bf53f
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Wed Sep 19 14:47:24 2012 +0200

    (Maint) Add tests of passing undef as parameter.
    
    The semantics of passing undef has changed from 2.7, to 3.x. These tests
    assert that the behavior is the expected behavior of 3.x.
    
    Reviewed-by: Jeff McCune <jeff@puppetlabs.com>

commit d72381ce502ac1e929571b6b7016932cbbef4f1b
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Sep 18 11:07:14 2012 -0700

    (maint) use described_class.new for getting the provider instance.
    
    Earlier, the provider was instanciated with resource.provider but
    the correct style of instanciation is described_class.new(resource)

commit 7dabf63a9a839c19213f0ab5a8d106ca89d0f0c4
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Sep 18 11:48:50 2012 -0700

    (maint) convert user_role_add_spec to the new format of writing test cases.
    
    This patch converts user_role_add_spec from earlier format of rspec cases
    to the new one.

commit 539ce227be3d06bcafadac4e02613335bcd86178
Merge: ada77c5 b716dc7
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Tue Sep 18 17:42:17 2012 -0700

    Merge pull request #1166 from haus/ticket/3.x/16144_add_systemd_to_puppet
    
    Ticket/3.x/16144 add systemd to puppet

commit 9697d7e6946b990397bd67dbdab8791a619ba746
Merge: e8a10ae 68dea3d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 18 17:26:50 2012 -0700

    Merge branch 'perf/2.7.x/backport-zaml-performance-improvements' of https://github.com/daniel-pittman/puppet into 2.7.x
    
    * 'perf/2.7.x/backport-zaml-performance-improvements' of https://github.com/daniel-pittman/puppet:
      zaml: handle multi-line map keys and array values correctly.
      zaml: don't use backreferences on strings
      zaml: avoid calling emit when we don't have anything to output
      zaml: add whitespace for readability.
      zaml: rework strings for correctness and speed
      zaml: statically determine the to_ascii8bit implementation.

commit e8a10aea0f6139faeeaab43d5c0f2efbbb8c6464
Merge: 3d74717 fd8343a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 18 17:26:06 2012 -0700

    Merge branch 'perf/2.7.x/backport-zaml-symbol-output-unification' of https://github.com/daniel-pittman/puppet into 2.7.x
    
    * 'perf/2.7.x/backport-zaml-symbol-output-unification' of https://github.com/daniel-pittman/puppet:
      zaml: unify on a single definition of `to_zaml` for Symbol
    
    Conflicts:
    	lib/puppet/util/monkey_patches.rb

commit 3d747177c3e3f690effe620d2f38c7a7d0f7d2d9
Merge: e45961f 5e7cce5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 18 17:15:19 2012 -0700

    Merge branch 'perf/2.7.x/backport-activesupport-hook-disabling' of https://github.com/daniel-pittman/puppet into 2.7.x
    
    * 'perf/2.7.x/backport-activesupport-hook-disabling' of https://github.com/daniel-pittman/puppet:
      Disable ActiveSupport::Dependencies hooks.

commit 5e7cce52031501c9a2cbc24ad03ec319da6b4ae8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jul 16 17:50:10 2012 -0700

    Disable ActiveSupport::Dependencies hooks.
    
    The ActiveSupport::Dependencies code is loaded along with Rails, and hooks
    into a bunch of the system.  This consumes a surprisingly large amount of CPU
    time watching for constants and generally acting to support unloading code.
    
    This is related to the code that automatically requires libraries when the
    constant is first accessed.
    
    We don't - can't, since Rails is a soft dependencies - depend on that feature,
    or anything related to it, we have no benefit from paying that horrible price.
    
    Dropping this is actually a significant drop in CPU consumption - some 8
    percent of the CPU cost in my testing is attributed directly to this feature.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 68dea3d3a7157b85a14547c928fa393ecba644e0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 18 13:53:11 2012 -0700

    zaml: handle multi-line map keys and array values correctly.
    
    The ZAML encoder had some bugs when handling multi-line string values in map
    keys and arrays. It also changed behaviour slightly when I modified it for
    speed, causing a regression in another case that was correctly handled.
    
    This fixes that, as well as making more robust the process of tagging
    structural keys that can span multiple lines.
    
    It also adds some tests to validate that we don't regress again.
    
    This fixes a pre-existing bug in the encoder, as well as my regression.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 67e59573f8a1c40f04d0a9846ad9838383bb6560
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 12 17:08:51 2012 -0700

    zaml: don't use backreferences on strings
    
    While the YAML spec requires that we emit a backreference if the same string
    object occurs twice in our content, it also costs a lot.  About two seconds of
    time encoding the output, in my testing, out of a total of three.
    
    Everything we do internally with YAML doesn't actually *depend* on the ability
    to serialize an object graph that treats String objects as duplicated.
    
    This is reinforced by every object that can serialize to PSON - since
    it *can't* have a back-reference, you automatically get string duplication
    there.
    
    That means that we can just cut those few seconds out of the code without any
    particular cost or suffering, and shave *way* more time off a run than almost
    anything else we can do to our YAML output code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit fbca3b0f3791422ba32e0f2f95afb2317924162f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 12 16:04:16 2012 -0700

    zaml: avoid calling emit when we don't have anything to output
    
    The `nl` method allowed an additional string to be output after the newline;
    this is seldom used, and the default implementation resulted in emitting an
    empty string.
    
    We can just skip that, for a minor win in function call count.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4f6289b286eaa3f55523db0dcbdd3f6e6148006b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 12 16:01:52 2012 -0700

    zaml: add whitespace for readability.
    
    The ZAML code has very little whitespace, leading to a difficult to read set
    of code.  This just adds a little whitespace, with no behaviour change, to
    improve that before I start hacking directly on that code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 83defc01c0587f738632a671d095e4cca6d319dd
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 12 16:00:07 2012 -0700

    zaml: rework strings for correctness and speed
    
    This changes the implementation of string output in the ZAML encoder.  On my
    test that delivers around a fifty percent reduction in output time, from 4.11
    to 1.89 seconds on my test of ~ 35,000 output strings.
    
    It also adds a bunch of tests to validate the correctness of binary output
    handling, and some test inputs derived from various security related UTF-8
    encoding problems to validate that (sadly) we pass them through as
    binary data.
    
    Optimally we would treat binary and text input as distinct in the parser and
    compiler of Puppet, then only allow legal UTF-8 in strings - but that is not
    the world in which we live.
    
    It finally fixes a bug in the binary output along the way - which, thankfully,
    nobody actually seems to have run into since I introduced it in ea0dd1483fc2.
    
    Because the Ruby BASE64 encoder will split lines at the 60 character mark, a
    long binary input would end up with embedded newlines in places that were not
    legal for YAML.
    
    Instead of just emitting that, we run through the string encoder over the
    transformed data, which leads to a solid output format that works entirely
    as expected.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    
    Conflicts:
    	lib/puppet/util/zaml.rb
    	spec/unit/util/zaml_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e45961f2a4160875ed1069b18734d3a6456af831
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 18 16:41:57 2012 -0700

    Maint: Fix intermittently failing spec test
    
    The spec test was only failing in the jenkins environment due to the
    File.open stub interferring with the file cleanup routines. This commit
    changes the test to raise on the readlock method instead, which
    restricts its affect to just that example.

commit 859810a0af260c86491d20140c494aff55318118
Merge: ba96917 fbd5105
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 18 15:54:31 2012 -0700

    Merge branch 'perf/2.7.x/use-intern-not-symbolize' of https://github.com/daniel-pittman/puppet into 2.7.x
    
    * 'perf/2.7.x/use-intern-not-symbolize' of https://github.com/daniel-pittman/puppet:
      Use `intern` rather than `symbolize` it Puppet::Type
      Implement Symbol#intern when it is missing.

commit ba969173ffad096401bc5d0df44b17324318ca03
Merge: 5e3fbca 141c83b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 18 15:43:08 2012 -0700

    Merge branch 'feature/2.7.x/json-terminus-backport' of https://github.com/daniel-pittman/puppet into 2.7.x
    
    * 'feature/2.7.x/json-terminus-backport' of https://github.com/daniel-pittman/puppet:
      Add catalog JSON terminus to improve performance.
      Implement a JSON file terminus to mirror YAML.

commit e26fe3a0b2d01cdf52def41e152799e3fa88e85e
Merge: afd8437 ada77c5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Sep 18 15:31:59 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (Maint) Add test coverage for --confdir=/tmp/puppet patch
      (#15190) Avoid deprecated iconv on Ruby 1.9

commit ada77c57313297b01c85f9fa84fe08f34e6bce16
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Sep 18 15:28:05 2012 -0700

    (Maint) Add test coverage for --confdir=/tmp/puppet patch
    
    I patched --confdir=/tmp/puppet to work but didn't include any test
    coverage.  Worse, I didn't figure out why the existing test wasn't
    catching the error.
    
    This patch adds two tests.  The first passes with the previous behavior
    of `puppet module --confdir /tmp/puppet list`.  The second test failed
    without my patch applied for the `puppet module --confdir=/tmp/puppet
    list` case, and passes now that the maintenance patch is applied.
    
    There was no test coverage for the situation where global settings such
    as `confdir` were provided, only mandatory face specific settings were
    covered.

commit ed45ae8daa7ee929f59fe4502642483becd9a59e
Merge: c572c78 eea1ef5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 18 15:11:12 2012 -0700

    Merge branch 'feature/3.x/15190-avoid-iconv-on-ruby-193' of https://github.com/daniel-pittman/puppet into 3.x
    
    * 'feature/3.x/15190-avoid-iconv-on-ruby-193' of https://github.com/daniel-pittman/puppet:
      (#15190) Avoid deprecated iconv on Ruby 1.9

commit afd8437685fa85fa081f75e2cfaafaff4a957845
Merge: 16f4e61 c572c78
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Sep 18 14:59:03 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (Maint) Make puppet module install --confdir=foo puppetlabs-stdlib work

commit c572c78df48351050b79b0eba961a2b956f68c49
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Sep 18 14:53:08 2012 -0700

    (Maint) Make puppet module install --confdir=foo puppetlabs-stdlib work
    
    Without this patch I've been annoyed for quite some time that a simple
    `puppet module --confdir=/tmp/puppet install puppetlabs-stdlib` errors
    out with the message:
    
        Err: 'module' has no 'default' action.  See `puppet help module`.
    
    The root cause of this issue is that we overlooked the situation where a
    long-form argument such as `--confdir` contains the mandatory argument
    in its own string.  We assume the mandatory argument is the next item in
    the argument vector, but it may not be the next item if the user
    specified the mandatory argument as `--confdir=/tmp/foo`.
    
    This patch fixes the problem by not skipping the next item in this
    scenario.

commit 16f4e618e16afbe4763342b32be17bfff5b6e49f
Merge: f7e13d3 3ef2eb2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Sep 18 11:40:17 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (Maint) Improve error message when catalog run is in progress
      (#3757) Rename agent_pidfile to agent_catalog_run_lockfile
      Maint: Ensure manages_password_age feature is set
      Maint: Don't overwrite outer sum variable
      Maint: Clear parsedfile target and default_target
      Maint: Clear memory instances
      Maint: Clear global state between tests
      Fix issue with chown failing in test.
      (#16430) refactor zpool test cases.
      (#16430) refactor zfs tests
      (#16430) refactor smf tests
      (#16430) acceptance: refactor package ips
      (#16430) acceptance: refactor cron tests
      (#16430) acceptance: refactor zone tests

commit 3ef2eb2175d5a48954d60d0ed1e10f55424ed298
Merge: c48e9f6 3fc3209
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Sep 18 11:39:56 2012 -0700

    Merge branch 'bug/3.x/3757_rename_agent_pidfile_to_agent_catalog_run_lockfile' into 3.x
    
    * bug/3.x/3757_rename_agent_pidfile_to_agent_catalog_run_lockfile:
      (Maint) Improve error message when catalog run is in progress
      (#3757) Rename agent_pidfile to agent_catalog_run_lockfile

commit 3fc3209845fb2c6e9c9be04332c0fa3c31bbd6c0
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Sep 18 11:35:07 2012 -0700

    (Maint) Improve error message when catalog run is in progress
    
    When a catalog run is currently in progress, or the `puppet agent
    --configprint agent_catalog_run_lockfile` is stale, the error message
    looks like this:
    
        Run of Puppet configuration client already in progress; skipping
    
    This is a problem because if the system is deadlocked from a stale file,
    it's not clear what file needs to be removed.  This patch improves the
    error message to be:
    
        Run of Puppet configuration client already in progress; skipping \
          (/var/lib/puppet/state/agent_catalog_run.lock exists)
    
    A new method has been added to make it easy to print out the file being
    referenced by the `running?` method.

commit eea1ef5a594c2c9a33cfafac899b1c4317dabc2a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Sep 14 16:26:11 2012 -0700

    (#15190) Avoid deprecated iconv on Ruby 1.9
    
    This rewrites the encoding conversion in PSON to use `String#encode` rather
    than iconv when transforming strings under Ruby 1.9.  That avoids a
    deprecation warning.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4b2a888d2429aebdab27987b8d2ddb6d93c73608
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Sep 18 11:13:06 2012 -0700

    (#3757) Rename agent_pidfile to agent_catalog_run_lockfile
    
    Without this patch it is very confusing what the intended purpose of the
    agent_pidfile setting is.  This confusion may lead to people thinking
    this file is intended to be used my monitoring systems or service
    management frameworks to determine the PID of a running puppet agent
    process.  This thinking is incorrect, the `pidfile` setting is intended
    for this purpose.
    
    The `agent_pidfile` setting is intended to provide mutual exclusion of
    configuration catalog runs.  This patch reduces confusion by more
    closely matching the name and description to the intent.
    
    In addition, the prose in the descriptions and comments have been
    augmented to make it clear "running agent" refers to an agent performing
    a configuration catalog run and not simply the running agent process.

commit b716dc746343e142535996d886006498aeb3ef0d
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Sep 17 16:59:47 2012 -0700

    (#16144) Update puppet spec file for fedora 17 and systemd changes
    
    This commit adds some conditional logic to puppet's spec file for fedora 17 and
    greater. Specifically, fedora 17 has systemd as the default service, so the
    spec will install systemd service files on fedora >= 17, and make sure systemd
    reloads its daemons to notice the new puppet service. The same changes are
    applied to the puppet-server subpackage. On removal, the systemd services
    are removed.

commit c48e9f6f1778d916087c163c08dbced7e7e53325
Merge: 106509a b71ed32
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Sep 18 09:59:23 2012 -0700

    Merge pull request #1164 from joshcooper/maint/3.x/order-dependent-failures
    
    Maint: Fix order dependent spec tests

commit 69315c2c1aa655bdb876e5b9a456756548fd5375
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 16:45:14 2012 -0700

    Implement `Fixnum#ord` for Ruby 1.8.5
    
    This is a compatibility method for addressing characters introduced in 1.8.7;
    we also need the same compatibility back to 1.8.5, so we monkey-patch it in
    when it isn't already there.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f60e402bd1826add487d9f9fa20e1bdc12c5cca8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 18 10:09:47 2012 -0700

    tagging: use a static regexp rather than rebuilding it
    
    This is worth ~ 1 percent CPU time in catalog compilation in testing.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    
    Conflicts:
    	lib/puppet/util/tagging.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 314c3daf74fd7f08398bed22ae4a83566078e617
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 16:26:10 2012 -0700

    file_serving: avoid rewriting paths if possible.
    
    A trivial change - only rewrite from '//' to '/', rather than from '/+' -
    means that we can reduce the garbage generation in this
    function substantially.  Most paths now pass through unmodified.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b54f8cdd3d971e26af856a3a88358d8720f99611
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 16:16:28 2012 -0700

    log_paths: memoize the entire value, not just part of it.
    
    This function would memoize the upstream input, but would then recalculate the
    final string value every time through.  That doesn't make much sense, so we
    might as well memoize the entire value.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 33c127bcaec6570407c855fe8b5f45c47549a709
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 15:45:27 2012 -0700

    zaml: speed micro-optimization for Time output
    
    This is a minor reduction in the time spent outputting times in the ZAML
    encoder, by using a (30 percent) faster mechanism to trim the generated ms
    value down.
    
    There is a minor reduction in memory load, but not anything substantial.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e70273b342e1c79eb987b2c7eb680df256a42813
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 15:31:46 2012 -0700

    whit: cache the `to_s` result.
    
    This saves about 1.6MB of generated memory, something on the order of 10,000
    object allocations and garbage collections, and a whole lot of waste in my
    test system.
    
    This runs at, like, O(50n), so while it is just linear it is still a huge
    constant factor through the system.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9099a42d95149932b2c4514473affc4aa42178fb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 14:49:03 2012 -0700

    zaml: don't sort object attributes for output
    
    Sorting YAML attributes makes for marginally nicer human-friendly YAML output,
    but ends up costing a non-trivial amount of computation to determine the
    ordering of objects.
    
    We can skip that with pretty much no adverse effects.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    
    Conflicts:
    	lib/puppet/simple_graph.rb
    	lib/puppet/transaction/event.rb
    	lib/puppet/transaction/report.rb
    	spec/unit/util/log_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 20efe942d2cfe295f406735a57145079523279a5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 14:35:43 2012 -0700

    util: don't rebuild regexp every time we invoke absolute_file?
    
    Previously, the `absolute_path?` tool rebuilt both regular expressions, POSIX
    and Windows, every time it was invoked.  Since they are constant, promoting
    them to a constant saves some time and trouble for the VM.
    
    We can also tell it that you can interpolate the values once on Windows,
    rather than every time through, which should improve performance and object
    load further on that platform.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 58f6ca19c0de6db0ee8134f71e8bed4aca3af03a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 14:34:04 2012 -0700

    parser/files: use a cheaper test for "is this path absolute?"
    
    The parser used `path == File.expand_path(path)` as a test for the path being
    absolute - something that wasn't entirely accurate, and that also wasn't
    terrible fast. It also generated substantial memory and object allocation
    traffic in the VM.
    
    Replacing that with our util absolute_path? tool is faster and more efficient.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 275c94d7cb2a819acc279a3fd20ef8006e7ef0fa
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 13:49:11 2012 -0700

    Eliminate remaining uses of FileCollection.
    
    As noted, the whole FileCollection concept was an overall loss - it used more
    memory, more CPU, and added more complexity.
    
    This eliminates the rest of the uses of the tool, and turns it into an empty
    stub that avoids breaking the external API of things that included it, but
    removes any unification that it tried to do.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    
    Conflicts:
    	spec/unit/file_collection/lookup_spec.rb
    	spec/unit/file_collection_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b71ed32f9d2ad6d98272440fe2b85862d91a6694
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 17 16:13:51 2012 -0700

    Maint: Ensure manages_password_age feature is set
    
    Previously, the test would fail with random seed 31725 on systems where
    the manages_password_age feature is not enabled by default. This
    occurred because one of the tests was declaring the useradd provider
    supported the manages_password_age feature, which seems to have global
    scope. Rather than try to debug that now, I've updated the other tests
    that rely on the manages_password_age feature being present to follow
    the same pattern.

commit a126820ef8f3b63c0e99968bae5a0b72c6f3bf84
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 17 15:57:00 2012 -0700

    Maint: Don't overwrite outer sum variable
    
    Previously, these tests failed with random seed 3366, because one of the
    tests declared a block whose inner variable overwrote the outer variable
    with the same name. So a subsequent test that expected sum to be :md5
    would fail.
    
    This commit just changes the inner block variable to not collide with
    the outer one.

commit 912ed3468b0a20ac66454c1c2b2984fc692ebe70
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 13:31:09 2012 -0700

    FileCollection is a memory loss, not a memory win.
    
    The file type used the FileCollection object to try and reduce memory
    consumption by deduplicating path strings.
    
    Unfortunately, this had the opposite effect in the real world, even when many
    duplicate paths were present - it cost about 1.5MB extra memory in my tests.
    
    It also costs non-trivial CPU time reconstituting the original path every time
    we need to interact with that, and we do that a bunch.
    
    So, just ditch the entire thing and move folks to just using paths directly.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    
    Conflicts:
    	spec/unit/type/file_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 89e0f142044ebf132f39c141a7b7d600b04a922d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 12:46:45 2012 -0700

    type: support implicit "identity" transformation
    
    Almost every implementation of `title_patterns` on a type returned with a
    lambda that performed an "identity" transformation - `lambda {|x| x }`.
    
    That actually cost a notable amount of memory allocation, because it created a
    new instance of the lambda on every invocation. That represented about three
    percent of total memory allocation, or 8MB total.
    
    This allows the `title_patterns` data to simply omit the lambda - if you don't
    supply one, we don't invoke it to transform the result, just assign directly.
    
    This allows everyone to keep using this the way they currently do, including
    supplying an identity lambda if they want, but allows internal types and types
    that don't override the default to be more memory efficient.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 397dfa8fc9da73cd1bc8ba049745dc38d944e684
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 12:42:54 2012 -0700

    monkey_patch: cache Symbol to_proc result.
    
    If we use it, our monkey-patch version of Symbol to_proc is worth caching the
    resulting proc - the hit rate is through the roof, because we only really act
    on a small set of symbols.
    
    This reduces some extra object and memory allocation by reusing the same proc
    every time we transform the same symbol.
    
    That saves 99.84 percent of the memory allocated from this method - about four
    percent of the total memory allocation in my test run of Puppet with real
    manifests and behaviours.  (About 10MB out of 260MB originally; 26kb after.)
    
    This applies to all versions - newer Rubies with a real implementation of
    to_proc don't cache the result, so we do it for them.
    
    Older versions *cough* 1.8.5 *cough* still get our hand-written implementation
    of the proc, so that they work. It probably is equivalent to the real version,
    but I would rather allow core changes to show.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    
    Conflicts:
    	lib/puppet/util/monkey_patches.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a4174e2f4e2e2b3ff0ab34a7c3bcdd5f88d7ea39
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 17 15:54:51 2012 -0700

    Maint: Clear parsedfile target and default_target
    
    Previously, the `target` and `default_target` class variables were not
    cleared between tests causing order-dependent test failures.

commit 54c4f0a368070cd3b7aad2c09735c12a493115a3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 11:33:06 2012 -0700

    lexer: remove some unused stats collection
    
    The lexer was instrumented to identify the number of regex vs string tokens
    matched in the system - presumably as part of making sure it was testing in
    the optimal order.
    
    At this point we know the outcomes, so the collection can be removed.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9176f5c968963b1c6846e81a6a451cabc7a682b1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 11:12:28 2012 -0700

    tagging: document why fixing this horror is hard.
    
    The tagging support module has an "API" that includes other objects directly
    interacting with the way it stores data, including at the edges where we
    serialize to the wire format for transport.
    
    So, we can't change it.  Even if it sucks - it allocates lots of objects, it
    uses very inefficient deduplication mechanisms - we are kind of stuck,
    right now.  Fun times.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit aca79598e98d7d40a5313390271ce47d2f1ba629
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 00:39:26 2012 -0700

    type: memoize key_attributes for types.
    
    The key_attributes have about a 0.05 percent miss rate on the cache, and the
    value is static for the life of the type, so we can avoid substantial numbers
    of object allocations.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8173a6e6c199426381f1f9fb8d0a71e0d0c12f2a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jul 16 23:40:31 2012 -0700

    Avoid object creation/destruction when possible.
    
    Object creation and destruction, even over a short time-frame, is expensive,
    so where we can avoid it we should.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    
    Conflicts:
    	lib/puppet/metatype/manager.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2eec8867f5415c79fae4f9fcd6bb093c3611b7bc
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 17 15:53:29 2012 -0700

    Maint: Clear memory instances
    
    Previously, the test would fail when invoked with random seed 3366,
    because the `instances` variable associated with the memory terminus was
    not cleared between tests. As a result, the test that expected not to
    find any data, would fail.
    
    Note the test_helper only restores the indirections' cache_class and
    terminus_class. It does not save/restore the indirections' termini or
    any data maintained by the termini.
    
    This commit ensures the memory termini's instances variable is cleared
    between runs.

commit 4a0f0d33cdbeef89d9839c776f1e079bf675e77f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 17 15:47:53 2012 -0700

    Maint: Clear global state between tests
    
    Previously, the tests would fail when invoked when random seed 3366,
    because of global state associated with the Basetest face application,
    in particular, option_parser_commands, which contained the list of valid
    commands from the previous test.
    
    This commit adds a method to clear application global state. Note that
    the state is not associated with Puppet::Application, but the subclass
    that the test defines, which is why test_helper doesn't call it.

commit 106509a7fec57919e378511e54d415661b18dfbc
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Sep 18 02:18:13 2012 +0200

    Fix issue with chown failing in test.
    
    A chown is performed while testing for autoflush and this fails when the
    file does not exist. This is by design in the test, the File.open is
    stubbed to not create the file. By also stubbing chown, the test is
    green.

commit 0541509152222d4a63e67e8f3461733613ff2e9c
Merge: 42e58c7 44de9bc
Author: vrthra <9@vrtra.net>
Date:   Mon Sep 17 17:01:59 2012 -0700

    Merge pull request #1155 from vrthra/acceptance/3.x/16430_maint_refactor_solaris_tests
    
    (#16430) maint refactor solaris tests
    Commit refactors the solaris test cases.

commit 3e2fde642bae47cf5f98ced84282bdb8df4cebe1
Author: Niels Abspoel <aboe76@gmail.com>
Date:   Sat Sep 1 09:50:03 2012 +0200

    systemd unit files added on own branch for pull request to satisfy issue 16144 : https://projects.puppetlabs.com/issues/16144

commit 44de9bc50b55e3c00388f82a939d55af49140f92
Author: rahul <rahul@puppetlabs.com>
Date:   Mon Sep 17 13:00:48 2012 -0700

    (#16430) refactor zpool test cases.
    
    This patch refactors zpool test cases, and adds a couple of extra tests.

commit 3cce0f0ca6f34a6266624709beb05134509d8ce3
Author: rahul <rahul@puppetlabs.com>
Date:   Mon Sep 17 12:54:08 2012 -0700

    (#16430) refactor zfs tests
    
    This patch refactors the zfs tests and adds extra test cases.

commit 0fde9c174b73832dde98a715b63054af41979577
Author: rahul <rahul@puppetlabs.com>
Date:   Sat Sep 15 00:07:57 2012 -0700

    (#16430) refactor smf tests
    
    This patch refactors smf tests and adds a couple of new tests.

commit edaccc805c46d2147edc6410552db55b80664d9f
Author: rahul <rahul@puppetlabs.com>
Date:   Fri Sep 14 17:13:46 2012 -0700

    (#16430) acceptance: refactor package ips
    
    Changes:
    - Refacors ips_basic_tests,
    - Add test cases for new functionalities versionable and holdable

commit 51f4d6b2fafa0447b868a1312e991d43a5579bd6
Author: rahul <rahul@puppetlabs.com>
Date:   Fri Sep 14 12:27:08 2012 -0700

    (#16430) acceptance: refactor cron tests
    
    Changes:
    - This patch refactors the cron tests and moves the common code to common_utils.
    - This also adds test cases that checks for idempotence and array handling.
    - It also removes the randomized users created, and uses a fixed user 'tstuser'
      for cron creation. This was done because using a randomized name such as plddddd
      did not buy us any thing while using a fixed user name gives us better
      predictability on the requirements of system under test
      (mainly that tstuser should be absent).

commit 669e6dbb026c650b3ccdf461820421714d85ce1d
Author: rahul <rahul@puppetlabs.com>
Date:   Sat Sep 15 12:47:51 2012 -0700

    (#16430) acceptance: refactor zone tests
    
    This patch adds new tests to zones, and corrects the earlier zone test cases
    so that they take less time by eliminating redundant operations, and making
    the zone creation use the default zpool

commit f7e13d3a9ca68f261002bf69a5ae66bea6e55bbf
Merge: 2252432 42e58c7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 17 16:20:19 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (Maint) Remove fragile test

commit 42e58c7a5e81f1591f0fdba025cace77a9e4120c
Merge: 3f7421d 5e3fbca
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 17 16:19:21 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      (Maint) Remove fragile test

commit 5e3fbcae67cfe4e3eb0564735742354bf85d79e7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 17 16:01:46 2012 -0700

    (Maint) Remove fragile test
    
    This test began to fail with
    
      1) Puppet::SSL::Key should default to the :file terminus
           Failure/Error: @class.indirection.terminus_class.should == :file
             expected: :file
                  got: :disabled_ca (using ==)
             Diff:
             @@ -1,2 +1,2 @@
             -:file
             +:disabled_ca
           # ./spec/unit/ssl/key_spec.rb:20
    
    which was caused by other tests setting the terminus_class for the
    Puppet::SSL::Key class. Since this is testing no interesting logic and
    just looking at a default (that can be changed and not recovered), I'm
    just removing the test.

commit fd8343a2b9850c4a67262033d85becc984d1d536
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 00:21:45 2012 -0700

    zaml: unify on a single definition of `to_zaml` for Symbol
    
    There were two competitive definitions of the `to_zaml` function over Symbol,
    one in monkey_patches and one in the core ZAML library.
    
    The monkey patch version won in practice, so now they are unified, and the
    monkey patch version is adopted to replace the core ZAML version, in the zaml
    Ruby file.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4d4a75ae70b48254a8968ede45f094506b1ec0ed
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 11 15:59:09 2012 -0700

    zaml: statically determine the to_ascii8bit implementation.
    
    Instead of asking every single string the same question, "do you respond to
    `encoding`", we can just figure that out once and choose an implementation
    based on the result - since it is a static test on the same class every time.
    
    This saves ~ 0.1 second of runtime, which is small but cheap.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit fbd5105601978aad170f9198d0bbeed938f1cd89
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 10 16:22:31 2012 -0700

    Use `intern` rather than `symbolize` it Puppet::Type
    
    The cost of symbolize is ~ 50 percent higher than the cost of intern, when
    applied to either a string or a symbol.  Given this is called some 90,000
    times in my real world test run, that adds up to a non-zero amount of
    wasted time.
    
    Sadly, this only works out at 0.15 seconds real time reduction, but it is
    better than nothing - and takes out 85,000 extra calls.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c0e5f4df37de4af5d45da46268406de05f3737f2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 10 15:43:33 2012 -0700

    Implement Symbol#intern when it is missing.
    
    In order to reduce use of `Puppet::Util#symbolize` in the code - which is
    called some 90,000 times in a real-world run - being able to intern a symbol
    is convenient.
    
    This is a simple implementation: it just returns itself.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2252432c0ad829738486bb9bbc424010e8c22460
Merge: e85d39b 3f7421d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Sep 17 15:09:03 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#2888) Fix race condition with puppetdlockfile
      (#2888) Add settings catalog info to README_DEVELOPER

commit 3f7421d988bf4704b815b4485867de9a38861d38
Merge: 361388a 2c679f0
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Sep 17 15:08:38 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      (#2888) Fix race condition with puppetdlockfile
      (#2888) Add settings catalog info to README_DEVELOPER
    
    Conflicts:
    	lib/puppet/defaults.rb
    	spec/integration/defaults_spec.rb

commit 141c83b0a9935b67dba64aba26208e694bd9ff7e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 4 00:20:48 2012 -0700

    Add catalog JSON terminus to improve performance.
    
    This adds a JSON backed catalog terminus, so that the catalog cache can
    migrate away from YAML to a faster and more stable storage format.
    
    This is not the default: that still falls to old, trustable YAML which we know
    to be stable and effective.
    
    To enable this, edit your routes.yaml file and add:
    
        agent:
          catalog:
            cache: json
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a0287bf6c0e89e5c08efec08a60ea260d4b0061d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 3 16:45:27 2012 -0700

    Implement a JSON file terminus to mirror YAML.
    
    For a bunch of local caching and retrieval, Puppet uses a YAML backed local
    file terminus to store, retrieve, and search content.  This is great, but the
    YAML encoder is super-slow and painfully odd across Ruby versions.
    
    Our PSON support is much more reliable, as well as substantially faster, and
    is pretty much as capable.  There isn't much reason, other than migration
    cost, to prefer YAML to PSON encoding of data transfer documents.
    
    Having a JSON terminus allows the user to configure, manually, the use of JSON
    everywhere that we previously used YAML.  While this doesn't bring the
    benefits out of the box, it allows users to select this while we flush out any
    lingering bugs left in the support code and system.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2c679f037e05fa8c1cabac3d4ccdb22b4c9f39e2
Merge: 5953af2 61a34d3
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Sep 17 14:53:17 2012 -0700

    Merge branch 'bug/2.7.x/2888_fix_puppetdlock_deadlock' into 2.7.x
    
    * bug/2.7.x/2888_fix_puppetdlock_deadlock:
      (#2888) Fix race condition with puppetdlockfile
      (#2888) Add settings catalog info to README_DEVELOPER

commit e85d39b2ef30242327158079a99ae2ed911a8220
Merge: a1bb0dd 361388a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 17 14:36:10 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#4680) Reject CA network operations when master CA is disabled

commit 361388aad4a602877e53a423de2d2c9445148842
Merge: 8fa87ad 5953af2
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 17 14:34:52 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      (#4680) Reject CA network operations when master CA is disabled
    
    Conflicts:
    	lib/puppet/indirector/request.rb
    	spec/unit/indirector/request_spec.rb

commit 61a34d32391d038ed87bafd76ddd73b1ec21b4af
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Sep 17 10:58:43 2012 -0700

    (#2888) Fix race condition with puppetdlockfile
    
    Without this patch applied there is a race condition where by two or
    more concurrent puppet agent processes will eventually result in a
    deadlock state where all processes consider catalog runs to be
    administratively disabled.
    
    This is a problem because the configuration catalog stops being applied
    periodically.  The system will not recover unless there is manual
    intervention by the end user.
    
    The problem is caused by the settings catalog.  The settings catalog
    will contain a file resource for the puppetdlockfile if the file exists.
    When two processes are running, the file will exist when it is created
    by the other process.  When the file resource is in the settings
    catalog, it will be created as a zero length file, or truncated to a
    zero length file if it already exists.
    
    Here is the state transition for two puppet agent --test processes, A
    and B.
    
        A:
        lock()
          File.exist? => false
          File.open()
          catalog.run
          ...
    
        B:
        Puppet::Util::Settings#to_catalog
          File.exist? => true
          catalog.add_resource(Puppet::Type::File)
          ...
          resource synchronizes
          Puppet::Type::File#write(:content)
    
        A:
        unlock()
          unlink()
    
        B:
        settings catalog apply
          File.open("puppetdlock", "wb") { ... } # Truncates the file!
    
        A:
        locked? => true
        mine? => false
    
        B:
        locked? => true
        mine? => false
    
        A and B are deadlocked.
    
    This patch fixes the problem by marking the puppetdlockfile settings as
    a `:type => :setting`.  This change prevents the settings catalog from
    containing a file resource for the puppetdlockfile setting.
    
    Paired-with: Josh Cooper <josh@puppetlabs.com>

commit 315ebadb79f07a5be6fc2e73d850970907da1564
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Sep 17 11:28:01 2012 -0700

    (#2888) Add settings catalog info to README_DEVELOPER
    
    Without this patch the README_DEVELOPER doesn't mention the special
    settings catalog which I overlooked while working on #2888.  If the
    settings catalog was in mind while I worked on this issue I probably
    would have solved it a lot faster than it took to track down.
    
    In particular, wrapping the File.open method was an effective way to
    quickly track down the codepath that was improperly writing and
    truncating the lockfile.

commit 5953af25b5e9ad66b8d812520a13117340eb548a
Merge: 312b467 fe1f4a2
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 17 14:01:03 2012 -0700

    Merge pull request #1156 from daniel-pittman/bug/2.7.x/4680-better-handling-of-csr-submission-problems
    
    (#4680) Reject CA network operations when master CA is disabled

commit a1bb0dd78eb1716fe48aa1100a4585ccea8a0592
Merge: 280dbdc 8fa87ad
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 17 13:54:46 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#15768) Deprecate puppet queue
      (#15678) Deprecate ActiveRecord-based inventory service terminuses
      (#15768) Deprecate ActiveRecord-based storeconfigs terminuses

commit 8fa87ad2659810b67da6c88815a4db9e138f4eec
Merge: b8ee828 b11b124
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 17 13:53:01 2012 -0700

    Merge pull request #1144 from grimradical/tickets/3.0.x/15768
    
    (#15768) Deprecate ActiveRecord-based storeconfigs

commit fe1f4a203bd240bb06a2a02f1a4b68a054357b9f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 6 17:13:08 2012 -0700

    (#4680) Reject CA network operations when master CA is disabled
    
    When the master has CA function explicitly disabled, it would still respond to
    networked REST requests. They accessed the local certificate store and,
    generally, provided quite unexpected results.
    
    For example, if a CSR was submitted it would be accepted successfully and
    ignored; no further action, despite the fact that the master would never do
    anything with it, and it could not be acted on.
    
    Now, instead, we explicitly fail for remote requests.  This delivers a clear,
    unambiguous error message to the agent and stops them functioning - a much
    better outcome overall.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 280dbdc68cae548b6787411232e8df956bad9028
Merge: d628ecc b8ee828
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Sep 17 12:11:23 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit b8ee8284c9354bbcd2696bad46bfd8eaf2cc844d
Merge: 6641974 312b467
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Sep 17 12:10:59 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x
    
    Conflicts:
    	.gitignore
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 312b467ee53e5c5486efcf61554c2086375aea19
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Sep 17 12:10:10 2012 -0700

    Git ignore an .rvmrc file in the root of the project
    
    Now that there is a Gemfile in the Puppet repository, RVM ignores an rvmrc in
    the parent directory - because it assumes that the gemfile defines the full
    scope of configuration required.
    
    Since the gemfile is actually useless for the purpose, a project level rvmrc
    file is needed to "win", and actually put local configuration in place.
    
    Since things like that configuration are really per-developer, we should
    ignore the file if present, though, so that we don't pollute everyone's
    working space with our personal opinions on configuration.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d628ecc586314fd58c89451226be666a4d069a3d
Merge: a489bf4 6641974
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 17 11:55:49 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#16120) ips package provider gets feature holdable.
      (#16120) ips package provider gets feature holdable.
      (#16327) Continue agent run when node terminus find fails
      (#16327) Fix fact terminus configuration cache handling

commit 66419743cb744384d7b6b661f9d3f1c1ede218a5
Merge: a6f9f67 4b64049
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 17 11:50:33 2012 -0700

    Merge pull request #1145 from daniel-pittman/bug/3.x/16327-inventory-service-fails-when-target-is-absent
    
    #16327: inventory service fails when target is absent

commit a6f9f67bac63678e005bb7ddd14c10475cda6392
Merge: d41ac79 f96262a
Author: vrthra <9@vrtra.net>
Date:   Fri Sep 14 16:32:08 2012 -0700

    Merge pull request #1149 from vrthra/ticket/3.x/16120_add_holdable_ips
    
    (#16120) ips package provider gets feature holdable.
    Same commits (same sha) was merged in This was merged into master in  <https://github.com/puppetlabs/puppet/commit/d15e83f57ce70058a5efeb78ade0299a5bd22070>

commit f96262acdad1f5d4c241e1fe8be829dd6ad76b28
Author: rahul <rahul@puppetlabs.com>
Date:   Fri Sep 14 16:15:11 2012 -0700

    (#16120) ips package provider gets feature holdable.
    
    Add the missing test case to specs.

commit c802552c530650eb801323711d6e53eba377ab6d
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 11:11:13 2012 -0700

    (#16120) ips package provider gets feature holdable.
    
    Previously the ips package provider did not provide the feature holdable.
    This update brings the feature holdable to ips packaging and adds test cases
    to check for this feature.

commit a489bf4cf79acd48ee41d2508bdabccda9d41953
Merge: 3ab3497 ba3c2a9
Author: vrthra <9@vrtra.net>
Date:   Fri Sep 14 16:24:46 2012 -0700

    Merge pull request #1150 from vrthra/maint/master/fix_pkg_provider
    
    (#16120) ips package provider gets feature holdable.

commit ba3c2a9a292c62f4eb69f7a0c8634046ebe9b995
Author: rahul <rahul@puppetlabs.com>
Date:   Fri Sep 14 16:15:11 2012 -0700

    (#16120) ips package provider gets feature holdable.
    
    Add the missing test case to specs.

commit 3ab34977902231b5faad996c77131b0ac02cce27
Merge: 6f1f2ca d41ac79
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Sep 14 15:48:43 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#16189) Make --run_mode a global option and not a setting
      (#16425) ensure that first time install of speciifc version works
      (packaging) adds ips support for shipping and signing
      (#16239) mock of facter :operatingsystem pending

commit d41ac798fb27d562745160c35525f7de59869a5b
Merge: 285ea80 f4e229e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Sep 14 15:47:54 2012 -0700

    Merge branch 'ticket/3.x/16189-run_mode-not-working-for-faces' into 3.x
    
    * ticket/3.x/16189-run_mode-not-working-for-faces:
      (#16189) Make --run_mode a global option and not a setting

commit f4e229ee5a0a1d6a62735eb434eb2c284b7f517d
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Thu Sep 13 23:41:50 2012 +0200

    (#16189) Make --run_mode a global option and not a setting
    
    In #16189 the problem is described as config print and --configprint
    disagree. That problem was caused by the option --mode RUNMODE defined
    in FaceBase not having any effect thus making 'user' be the only runmode
    available to any Face.
    
    Rather than implementing another way of modifying the run_mode (as
    attempted in FaceBase), this commit makes the previously 'read-only'
    global setting --run_mode settable from the command line and promotes it
    from being a setting to a special case around the loading of settings.
    
    In order to make this global run_mode the default, the Application class
    now picks up the default from Settings (where run_mode is handled), and
    thus the default becomes either the runmode set from the command line,
    or 'user' which Settings has a fallback (default default).
    
    Applications (such as Master) can still set run_mode as part of
    application initialization - it works as before.
    
    Unused/non working code relating to this is removed.
    Documentation referring to --mode updated.

commit 285ea8007437e45fb2529d73287d79ab34368229
Merge: 10e46fe 79753ec
Author: vrthra <9@vrtra.net>
Date:   Fri Sep 14 10:32:32 2012 -0700

    Merge pull request #1147 from vrthra/ticket/3.x/16425_fix_ips_install
    
    (#16425) ensure that first time install of speciifc version works

commit 79753ec9d9abca404d72b1c5ba4946c257de337f
Author: rahul <rahul@puppetlabs.com>
Date:   Fri Sep 14 10:27:24 2012 -0700

    (#16425) ensure that first time install of speciifc version works
    
    Previously if a specific version was requested, and it was the first time, the package installation
    errored out due to passing the current version :absent to version compare. This patch verifies that
    we do not pass absent to version compare if we know it is absent in the system currently.

commit 10e46fe970e4e247ff007a9cfd62fcd9284b580e
Merge: 649bd57 120cc0e
Author: vrthra <9@vrtra.net>
Date:   Fri Sep 14 09:17:33 2012 -0700

    Merge pull request #1146 from vrthra/packaging/ips_support
    
    (packaging) adds ips support for shipping and signing
    Merging as the complementary patch was merged into packaging in https://github.com/puppetlabs/packaging/commit/4778a0d010580325b0e89d69418fcd120f6a4f24

commit 120cc0e13889fc4b2d04c3cff617df336bf69f9c
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 13 17:54:45 2012 -0700

    (packaging) adds ips support for shipping and signing
    
    This patch is complementary to the patch that adds shipping and signing support
    for IPS to the packaging repo. It adds the variables ips_repo, ips_store, ips_host

commit 4b640499952aa2bc183adef0aee7646dc114c8de
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 13 16:28:33 2012 -0700

    (#16327) Continue agent run when node terminus find fails
    
    When the agent starts a run it tries to fetch node data, in order to obtain
    from the master idea of the environment it should be running in.  This allows
    an ENC to fully control the environment of the agent.
    
    If that isn't possible the agent can carry on - it may obtain a catalog in the
    wrong environment, which will require that it fetch the catalog a second time,
    so is quite a potential performance cost, even if a rare one.
    
    Previously exceptions from the node terminus would abort the agent run, which
    included cases where the terminus on the master failed to fetch data.
    
    The case that discovered this was the `inventory_service` terminus for facts:
    it was built with the assumption that it used a local YAML cache on the
    master, and also talked to the remote server.
    
    This was "too robust to fail" because the first time facts were found was
    after they had just been saved in the compiler - an invariant that was true
    until the agent started asking for the node definition.
    
    In the case that no ENC was in use, and the inventory service was down,
    though, the find operation would actually hard-fail, and that exception came
    back down to the agent - and aborted the run.
    
    This meant that it was impossible to bootstrap a node when the inventory
    service was down: until you had submitted facts you couldn't get the node
    data, but until you got node data the agent would never submit facts.
    
    This simply expands the tolerance of the agent to node lookup failures:
    because the worst case is that we compile the catalog a second time, in the
    rare case of mismatch *and* your external service being down, this is
    fairly safe.
    
    Certainly, much safer than simply ignoring the node definition error on the
    server, or not reporting it to other API consumers - who may actually care to
    know that they couldn't get the data, or may not be able to operate
    without it.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 649bd57131e8fe326df8d1c8192059efa5721573
Merge: 7a7f676 747a324
Author: vrthra <9@vrtra.net>
Date:   Thu Sep 13 15:48:52 2012 -0700

    Merge pull request #1142 from vrthra/ticket/3.x/16239_mock_facter_operatingsystem_pending
    
    (#16239) mock of facter :operatingsystem pending
    Verified in Debina 6, and in Solaris11

commit 747a324b2f58fd1ebc16138a5d533c6d485dfea1
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Sep 12 16:27:14 2012 -0700

    (#16239) mock of facter :operatingsystem pending
    
    Correct the typo missing :if=> in the previous
    checkin 45e165016534b6c786d269a7825e72599c9beaa6

commit ac76836f0cea915f2ebce92ed5baaa1c3483ffa5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 13 15:35:37 2012 -0700

    (#16327) Fix fact terminus configuration cache handling
    
    The facts terminus had a hook intended to configure the local YAML cache when
    a remote terminus was in use. This worked as expected back in the 2.7 days,
    but other changes have shifted it since then - and now it wasn't getting
    invoked at the correct time to handle other configuration option changes.
    
    This changes it to run the hook every time the terminus is changed, restoring
    the correct behaviour when `facts_terminus` is set in the configuration file.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b11b1242f6b01b582f07ebdd80215abe8a34e272
Author: Deepak Giridharagopal <deepak@puppetlabs.com>
Date:   Thu Sep 13 13:35:50 2012 -0600

    (#15768) Deprecate puppet queue
    
    The `queue` application is obviated by use of PuppetDB, which maintains
    its own internal queueing system for storeconfigs.
    
    Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>

commit 4819479659f4b50d3f5f447210cbed58a75b13a5
Author: Deepak Giridharagopal <deepak@puppetlabs.com>
Date:   Wed Sep 12 19:15:08 2012 -0600

    (#15678) Deprecate ActiveRecord-based inventory service terminuses
    
    This deprecates the node and facts terminuses that implement the legacy,
    ActiveRecord based inventory service.

commit f991171203e67783292391a8561966623660cd14
Author: Deepak Giridharagopal <deepak@puppetlabs.com>
Date:   Wed Sep 12 18:54:19 2012 -0600

    (#15768) Deprecate ActiveRecord-based storeconfigs terminuses
    
    This deprecates the catalog, resource, and fact terminuses that
    implement ActiveRecord-based storeconfigs functionality.

commit 6f1f2ca355f9f14ab7f7c358e91400f10ec29f31
Merge: e856241 7a7f676
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 13 11:41:15 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit 7a7f6763a045b2ecb77b1d25ede32e1427198332
Merge: 63ae0fc f0ef301
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 13 11:32:15 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x

commit f0ef301bc3b22511e38de4e7eead198af0c05724
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 13 11:26:28 2012 -0700

    (#16330) Update ZAML to latest upstream.
    
    This rebases our internal ZAML on the upstream 0.1.3 release, including the
    update to dual-license the code.  It then merges back all our changes and
    squashes them into place - which, in essence, means bumping the version
    number; we already had all the other relevant changes in place.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 63ae0fce1db1807670a9653382cf06ecf642c74a
Merge: 99284d0 c321ace
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Sep 12 16:28:56 2012 -0700

    Merge pull request #1138 from vrthra/ticket/3.x/16383_solaris_acceptance_tests_updates
    
    (#16383) solaris acceptance tests updates

commit 99284d0c889ea7b0057590c4c3660edbf59818d2
Merge: 7e9249b 3d8cb2b
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Sep 12 16:27:16 2012 -0700

    Merge pull request #1141 from ahpook/16184_auth_conf
    
    (#16184) Improve example auth.conf

commit 3d8cb2b4f313d097676cac9c78db9cdd81ec4f80
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Wed Sep 12 15:50:26 2012 -0700

    (#16184) Improve example auth.conf
    
    auth.conf was outdated and did not include examples of the allow_ip
    and deny_ip functionality. I tightened up the text a bit, fixed
    spelling and grammar, and tried to improve the clarity of the doc.

commit 7e9249b00996733ac15274383af438ce835c51b9
Merge: a799701 bccf5af
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Wed Sep 12 13:07:48 2012 -0700

    Merge pull request #1134 from haus/maint/3.x/update_packaging_for_hiera_puppet_merge
    
    Update packaging to account for hiera-puppet merge

commit bccf5afc7ea70e22786f4c787046103094c65649
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Sep 11 15:07:44 2012 -0700

    Update packaging to account for hiera-puppet merge
    
    Because hiera-puppet is now merged into 3.x, the debian and redhat packages
    that used to depend upon hiera-puppet now provide hiera-puppet and should
    uninstall/remove hiera-puppet upon upgrade. This commit adds the new
    hiera-puppet binary to the packaging (extlookup2hiera) and also adds the
    appropriate packaging directives to remove hiera-puppet packages before
    installing.

commit c8226ffc61785f2998db53f8a7273289f3e2704d
Merge: 7258be6 a1c4467
Author: Matthaus Litteken <mlitteken@gmail.com>
Date:   Wed Sep 12 12:47:22 2012 -0700

    Merge pull request #1135 from MosesMendoza/maint/2.7.x/fix_apple_pkg_info_plist
    
    Fixup apple package plist for use with packaging repo

commit f8a4ddcea2eb3eb48f4909c387580ec9fed995fb
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed Sep 12 10:45:04 2012 -0700

    (#16376) Fix rails compatibility layer for activerecord < 3.0
    
    Previously an alias was attempted between scope and named_scope to allow older
    activerecord versions (< 3.0) to work with the inventory service while also
    supporting modern activerecord. The scope alias failed because
    Puppet::Rails::InventoryNode inherits from ActiveRecord::Base, which has a
    scope method already. So activerecord's scope method is found instead of the
    intended alias target. This commit removes the alias and simply switches on
    activerecord version to use the correct scope (AR >= 3.0) or named_scope (AR <
    3.0) method.

commit a1c44679f5e16ad7e2ff29ab1da3d03561f1e1c4
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Sep 12 00:34:55 2012 -0700

    Fixup apple package plist for use with packaging repo
    
    With the packaging repo change to the non-flat package
    format, the package info plist format changes to plist.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit a7997013d5abd6f929116d75865e0e2591bd8339
Merge: 1089d79 9fa0497
Author: Matthaus Litteken <mlitteken@gmail.com>
Date:   Tue Sep 11 17:38:17 2012 -0700

    Merge pull request #1128 from MosesMendoza/pull_non_applicable_artifacts
    
    remove non-applicable artifacts in packaging

commit e856241b3a7b2d9f9a1459e72eb8bb589af7a09f
Merge: 5935552 1089d79
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 11 17:02:14 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#16347) Qualify references to windows-pr gem
      (#16347) Replace \x92 character with apostrophe
      (#15756) Call include function correctly
      Moving windows service into the ext directory.
      (#13027) Guard against invalid runinterval values
      (#12630) Run puppet agent as a service

commit 1089d79d6539c040f6f9e79b9e767f99c993d8c2
Merge: b3efdbd 7258be6
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 11 16:57:23 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      (#16347) Qualify references to windows-pr gem
      (#16347) Replace \x92 character with apostrophe

commit 7258be6e66f37532fe994428a927c9a1689d9622
Merge: 0e7fc8d e84f448
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 11 16:48:05 2012 -0700

    Merge branch 'ticket/2.7.x/16347-gem-install' into 2.7.x
    
    * ticket/2.7.x/16347-gem-install:
      (#16347) Qualify references to windows-pr gem
      (#16347) Replace \x92 character with apostrophe

commit e84f44840993fffd15cffd0f752b0226b79a46a4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 11 16:33:24 2012 -0700

    (#16347) Qualify references to windows-pr gem
    
    Previously, running `gem install puppet` on ruby 1.9.3, would fail when
    the Puppet::Util::Windows::Security and Puppet::Util::Windows::User
    modules both included the Windows::Security module from the windows-pr
    gem.
    
    The failure occurs when rdoc attempts to generate documentation for
    Puppet::Util::Windows::User, and gets into an infinite loop, eventually
    causing a stack overflow.
    
    This commit fully qualifies to windows-specific gems so that this
    doesn't occur in the future.
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit 68c61fab29e43b0d38d917ad86a0dcd09f05ed09
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 11 14:32:58 2012 -0700

    (#16347) Replace \x92 character with apostrophe
    
    Previously, there was a non-ascii character in the comment, which caused
    a warning when building rdoc during `gem install puppet` on ruby 1.9.3.
    It is possible from a copy & paste from MS Word smart apostrophe.
    
    This commit doesn't change any code, just the comment.
    
    Paired-with: Andy Parker <andy@puppetlabs.com>

commit b3efdbd9380b95939f3611d8d638e73ad38e5cca
Merge: 63330ba 8fa77b4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 11 15:42:33 2012 -0700

    Merge branch 'maint/3.x/add_windows_daemon_service_to_ext' of github.com:haus/puppet into 3.x
    
    * 'maint/3.x/add_windows_daemon_service_to_ext' of github.com:haus/puppet:
      Moving windows service into the ext directory.
      (#13027) Guard against invalid runinterval values
      (#12630) Run puppet agent as a service

commit 63330bad1ba66d40f75f081802ec2ad9d3d8dc42
Merge: b1674e7 f42548e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Sep 11 14:06:46 2012 -0700

    Merge pull request #1132 from zaphod42/ticket/3.x/15756-disallow-incorrect-function-calls
    
    (#15756) Call include function correctly

commit f42548e97d1bd13eded8b6242e18fdde5ba2438a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 11 13:50:18 2012 -0700

    (#15756) Call include function correctly
    
    The hiera puppet backend called the include function without passing the
    argument as an array. This changes it to call the function correctly.

commit 8fa77b48693535e5b2fb47c16fe487831b50ec8d
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Sep 11 11:27:11 2012 -0700

    Moving windows service into the ext directory.

commit c0e2a6f3a03dbd1410644a6e268223a67b493c6a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Mar 8 09:08:48 2012 -0800

    (#13027) Guard against invalid runinterval values
    
    Previously, if the daemon was unable to start puppet, e.g. because the
    wrong version of puppet was bundled into the installer, then the
    runinterval value was getting set to 0, which caused the daemon to get
    into an infinite loop launching puppet/ruby processes.
    
    This commit guards against this, so that if runinterval is 0, we
    instead default it to 1800 seconds, and display an error message in
    the log.

commit 5a38d507e3d2c444d20362fdcf3e29de1caaa0ee
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Mar 1 18:46:00 2012 -0800

    (#12630) Run puppet agent as a service
    
    Originally we were planning on installing puppet agent as a scheduled
    task, but there are issues with this, such as the task scheduler service
    itself may be disabled, may be configured to run as different user that
    doesn't have sufficient privileges, etc.
    
    This commit adds a wrapper script to run puppet agent as a service using
    the win32-daemon gem. The Service Control Manager invokes the daemon.bat
    script, which runs `rubyw.exe daemon.rb`.
    
    The daemon ruby process sits in a loop executing `puppet agent --onetime` every
    `runinterval` seconds, the value of which is obtained from puppet itself, and
    can be configured in puppet.conf.
    
    Windows services cannot write to stdout/err. Instead they are supposed to
    write to the event log. But since we don't support that yet, the daemon
    logs to a file in var/log/windows.log. By default the daemon logs at the
    `notice` level.
    
    In order to pass arguments to the service, you can either use the Service
    Control Manager GUI or do the following from the command line:
    
      sc start puppet --debug --test --server foo.com
    
    If --debug is passed as an argument, then the daemon will log at the
    `debug` level.
    
    This commit also updates the msi to install the daemon as a service. The
    service's name is 'puppet' and its display name is 'Puppet Agent'. During
    an install, msiexec will automatically stop the (old) service, install the
    new files, and start the new service. The service is installed as an
    automatic service, meaning it will start when Windows starts. It is
    difficult to make this configurable from the command line, but can easily
    be done using Orca/InstEd MSI editors.
    
    Conflicts:
    
    	wix/puppet.wxs

commit 5935552eb91b594455862648311bcdd7363d0c3e
Merge: 197f1d0 b1674e7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 11 10:48:45 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#15735) Deprecate puppet kick, and agent --listen.

commit b1674e72a5e7b33103677a23b1e2c49a04123531
Merge: 9e17a8a e5c31df
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 11 10:23:53 2012 -0700

    Merge pull request #1129 from hlindberg/15735-puppet-kick
    
    Deprecate puppet kick, and agent --listen. Issue 15735.

commit 197f1d094accd3d491eea157939c303085526046
Merge: 83650e9 9e17a8a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Sep 11 10:06:13 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit 9e17a8a80da911f657d24ed4696dfafc321433ed
Merge: cc87eda 0e7fc8d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Sep 11 09:58:29 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x
    
    Conflicts:
    	LICENSE
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0e7fc8d8478d15a88c3da7342cb7e18291e66aff
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Sep 11 09:57:41 2012 -0700

    Update copyright years in LICENSE
    
    This brings the copyright years up to date, reflecting the set of years we
    actually worked on the software.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit cc87eda086ccdd709ff99c20ed9260721484c6c7
Merge: 7bd870a d4b44a3
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Sep 11 09:48:11 2012 -0700

    Merge pull request #1105 from zaphod42/ticket/3.x/15756-disallow-incorrect-function-calls
    
    (#15756) Do not allow functions called without Array

commit 81c8afa99a225fde606f012b7a2c2f08c13704d1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Sep 10 18:28:50 2012 -0700

    Skip symbolic link demanding test on Windows
    
    One of the SELinux tests I wrote creates a symbolic link, to ensure
    correct behaviour.  Windows Ruby doesn't support symlinks, and so failed; this
    test can simply be skipped on that platform.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ac7f5f185afffb5cae98cf62a45ffb60629f987a
Merge: 346f3d9 13cb623
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Sep 10 17:53:05 2012 -0700

    Merge pull request #1099 from daniel-pittman/bug/2.7.x/8714-better-symlink-handling-in-selinux-utils
    
    Bug/2.7.x/8714 better symlink handling in selinux utils

commit 7bd870a512c732e0c5ba27caf2892204e929b5ea
Merge: e942e01 5ac681f
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Sep 10 17:52:08 2012 -0700

    Merge pull request #1103 from daniel-pittman/maint/3.x/ast-scope-only-uses-string-names
    
    AST Scope variable names must be strings.

commit d4b44a3a3bb5f4c3b72bcdd881012ecc403bc1d6
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 10 17:02:48 2012 -0700

    (#15756) Test behavior of function loading not mocks
    
    The tests used to test that functions were created by
    asserting the mechanism by which this happened. This made them brittle
    in the face of changing implementation. This changes the tests to make
    assertions about the produced module and should be much more robust
    against changing implementation and more expressive of the behavior of
    defining functions.

commit a5929c728ae1c9cdaef9d459bca481d48c17f89a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Sep 5 10:40:35 2012 -0700

    (#15756) Do not allow functions called without Array
    
    Proper calling of functions from templates, and anywhere else in ruby
    code that calls puppet functions, requires that the function's arguments
    are passed as an Array. Previously this was never enforce and some
    functions would end up working when not called with an Array and other
    functions would fail.
    
    This adds a type check to ensure that functions must always be called
    consistently.

commit d8966519605c03b83daa65820f7fc864b7e1d4a6
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Sep 5 10:53:58 2012 -0700

    (#15756) Call functions correctly in tests
    
    These tests relied on being able to call functions in the incorrect
    fashion of not passing an array as the argument. They now call the
    function under test correctly.

commit e942e015b76dad28e628b3a3d5b17182659dd8b0
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 10 15:38:49 2012 -0700

    Clean up acceptance tests merged from hiera-puppet
    
    This fixes a conflict caused by hiera.yaml being left behind by an acceptance
    test that was merged in from hiera-puppet, and renames the test to fit into
    the directory structure used by puppet.

commit e5c31df8d56739f3bc43681ca772f1991688e20c
Author: Henrik Lindberg <henrik.lindberg@cloudsmith.com>
Date:   Tue Sep 11 00:53:39 2012 +0200

    (#15735) Deprecate puppet kick, and agent --listen.
    
    This deprecates the puppet kick command and the agent's --listen option.
    Deprecation messages are issues using Puppet.warning.
    Tests check that Puppet.warning is called and that message includes
    "deprecated".

commit 9fa0497d06ff9de6b41d53e41a15b87a23785271
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Sep 10 11:30:33 2012 -0700

    remove non-applicable artifacts in packaging
    
    This commit removes packaging artifacts for OSes other than
    the ones we're building from their respective packages. We
    send these along with source, no need to include them in the
    packages as well.

commit 934c4a873c899f7eb6aa959e00bf331502810c57
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 10 14:25:51 2012 -0700

    Fix for windows paths in hiera-puppet specs

commit 7ecf47ecc185fdbc9093183c38e549d11d65ca5a
Merge: d36fe25 c5aa286
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Sep 10 12:19:33 2012 -0700

    Merge branch 'maint/3.x/merge-hiera-puppet-into-core' of https://github.com/daniel-pittman/puppet into 3.x
    
    * 'maint/3.x/merge-hiera-puppet-into-core' of https://github.com/daniel-pittman/puppet: (70 commits)
      Clean up the Hiera Puppet integration.
      Updating CHANGELOG for 1.0.0, changing hiera dependency to ~> 1.0
      Updating CHANGELOG for 1.0.0rc3
      Add hiera_puppet.rb to debian, redhat packages, fix gem version dependency
      (#15291) Add Vendor tag to Hiera-Puppet spec file
      Update Debian packaging rake task to correctly create the orig.tar.gz
      (Maint) Rename PuppetlabsSpec::Puppet{Seams,Internals}
      Update Debian packaging rake task to correctly create the orig.tar.gz
      (Maint) Rename PuppetlabsSpec::Puppet{Seams,Internals}
      Update CHANGELOG for 1.0.0rc2
      Update hiera-puppet hiera dependency to ~> 1.0
      Update debian package task to handle orig version properly and use the correct directory name when building.
      Update hiera-puppet package tasks
      (maint) Replace .should on blocks with .to
      Remove puppetlabs_spec_helper require from root Rakefile
      (Maint) Fix missing spec_helper lines in some tests
      (Maint) Fix mock error with hiera module
      (Maint) Use PuppetlabsSpec::PuppetSeams.parser_scope
      Add watchr script
      (#15105) Update README YAML examples
      ...
    
    Conflicts:
    	.gitignore

commit d36fe255bf1cd462859bb00c2954c6d9a1289461
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 10 11:16:28 2012 -0700

    Maint: Fix mismatched expect-should
    
    Previously, the spec test was using `expect { .. }.should` which is no
    longer allowed in rspec 2.11. This wasn't noticed earlier, because the test
    only runs on Windows, and the Windows jenkins ci boxes are using an older
    rspec gem.
    
    This commit just changes the test to `expect { .. }.to`.

commit 3282124747b65971e869552c152f02c6b969e044
Merge: c421b23 c528368
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 10 10:55:35 2012 -0700

    Merge branch 'maint/3.x/16027-backtrace' into 3.x
    
    * maint/3.x/16027-backtrace:
      (#16027) Restore function context to backtraces
      Use Pathname.realpath instead of writing it...

commit c528368469ac2ea3bd8ef8b077e753aff81a54af
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Sep 5 15:00:36 2012 -0700

    (#16027) Restore function context to backtraces
    
    The changed implementation of `pretty_backtrace` was indeed prettier, but it
    also lost information: the function context was dropped from the trace.
    
    Since this is a debugging tool, and knowing the method tree is quite valuable
    to understanding a problem, this restores it - and any extra context that Ruby
    later decided it should add to the picture.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c421b23b56fef49911d2b164fd51ee96c6f21ec7
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Sep 10 10:15:46 2012 -0700

    Update lib/puppet/version.rb for 3.0.0-rc6

commit 83650e9bfd8f26ece7ec1dcc2ffbaee3be8db59b
Merge: 4d09a94 77e7c4b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Sep 10 09:56:27 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (maint) (acceptance) Strip fqdn before sending it to the sut

commit 77e7c4b3ae49be205f642f5052276f61f53afc86
Merge: c47b2a6 67e8cf2
Author: vrthra <9@vrtra.net>
Date:   Fri Sep 7 18:04:03 2012 -0700

    Merge pull request #1126 from branan/maint/strip_fqdn_for_certificate_gen
    
    (maint) Strip fqdn before sending it to the sut
    Verified this test case passes in windows 2003 acceptance suite.

commit 67e8cf2307dccf035e593c0dba96e4cca0d65b0f
Author: Branan Purvine-Riley <branan@puppetlabs.com>
Date:   Fri Sep 7 15:42:42 2012 -0700

    (maint) (acceptance) Strip fqdn before sending it to the sut
    
    Failure to strip the fqdn sends a newline, which causes the command line to be
    parsed as two separate commands.

commit c321ace524349e63e4eb23ae2c844a94435c7a01
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Sep 11 16:54:59 2012 -0700

    (acceptance) disable zone tests that require installation
    
    Zone tests that require installation often results in the system under tests to
    hang until the installation is completed. The problem is worse in solaris11 which
    has added a lot more packages to the default small-server-install. These tests
    are disabled so that we can avoid ~2 hour delay on running per install command.

commit bf29be6e5ebcb51171bec2063561a094c8bf8933
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Sep 11 16:51:11 2012 -0700

    (acceptnace) disable two tests that fails in solaris temporarily.
    
    Two tests are failing in solaris acceptance tests. This commit temporarily
    disables them so that we can get the accpetnace tests in jenkins box running.
    These will be enabled later.

commit 5f1fac6b114e1fc7ce62312c50a56f783ca508b2
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Sep 11 16:46:56 2012 -0700

    (acceptance) utils: cleanup - refactor zone utils so that we check before cleanup
    
    Previously, we were duing zoneadm uninstall,delete, destroy etc, without
    regard to the actual state. However, zfs destroy -r has a nasty tendency
    to hang some times when given an non-existant fs. Moreover, the deletion
    of phantom resources is confusing when inspecting the output. This patch
    refactors zoneutils so that we do not try to remove non-existant resources.

commit 57d8ce524211eb01c8b28984cfa0c2934fd20c99
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Sep 11 17:10:23 2012 -0700

    (acceptance) fix zones: ensure that we pass a vallid interface name, fix name typo, sizes
    
    Previously, the interface name that was being passed for creating zones
    was specific to the virtual machine that the tests were developed on. This
    patch changes that behavior to use a more generic name. (Note that the
    valid interface name is documented nowhere. The only reference I could find
    was the c file that implemented the function.)

commit 57e77fc505d571ef9a064a7c8ac1d513e3594508
Author: rahul <rahul@puppetlabs.com>
Date:   Mon Sep 10 14:46:28 2012 -0700

    (acceptance) provide more rubust service script and fix smf
    
    Previously, the service implementation was skeletal which caused the
    application to exit before it was asked to. This patch ensures that
    the service is more robust and stays up until exit is requested.

commit 692b7b22458c2cef379eee4846c22b9945de31f0
Author: rahul <rahul@puppetlabs.com>
Date:   Mon Sep 10 12:36:04 2012 -0700

    (acceptance) Move feature tests to 'resources'
    
    This patch moves the newly created resources tests for solaris to
    'resources' directory.

commit 4d09a945656b1bd828366c313d45bb293495e5a8
Merge: 9ed4605 c47b2a6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Sep 7 15:55:15 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit c47b2a60adf10235ea72932bd941fbe1d4a0e46f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Sep 7 15:50:20 2012 -0700

    RSpec 3 is deprecating `expect {}.should` - respect that.
    
    This updates a handful of tests to use `expect {} .to` since the should
    variant is being deprecated in RSpec 3 - and has started throwing
    deprecation warnings.
    
    There should be absolutely no functional change as a result of this.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 1a10b84ce04b40f67e2ad7d8da9a22eef8e3b469
Merge: d66bea1 346f3d9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Sep 7 15:47:51 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x

commit 346f3d93884bcbf841c14e33922af4f7899c4dd9
Merge: dff6e53 d260b90
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Sep 7 15:47:17 2012 -0700

    Merge branch 'maint/2.7.x/rspec-fix-deprecation-expect-should' into 2.7.x

commit d260b90a66eabe6ba024d86cd2cdaa440c6d8aa4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Sep 7 15:47:05 2012 -0700

    RSpec 3 is deprecating `expect {}.should` - respect that.
    
    This updates a handful of tests to use `expect {} .to` since the should
    variant is being deprecated in RSpec 3 - and has started throwing
    deprecation warnings.
    
    There should be absolutely no functional change as a result of this.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d66bea13cc2229d326716f74c32913b02aeaf446
Merge: 9822cec 2cf74fe
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Sep 7 15:36:37 2012 -0700

    Merge branch 'ticket/3.x/7962-locked-file-on-windows' into 3.x
    
    * ticket/3.x/7962-locked-file-on-windows:
      (#7962) Skip certificate test on windows

commit 2cf74fe06a90d01e23b7b8a8040a8e9537a338bf
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Sep 7 15:35:31 2012 -0700

    (#7962) Skip certificate test on windows
    
    Certificate signing is not supported on windows. This test is now
    skipped on windows.

commit 2aa5e967b31cf9ead6412459e014971c754b8e2b
Author: rahul <rahul@puppetlabs.com>
Date:   Mon Sep 10 12:49:11 2012 -0700

    (acceptance) solaris : update package name for cron
    
    Solaris distributes cron as part of core-os. This is updated in the test case
    so that it would not try to install the spurious 'cron' package

commit 35db367a07be55e7126495b9c728d9c9af7f9047
Author: rahul <rahul@puppetlabs.com>
Date:   Mon Sep 10 12:31:23 2012 -0700

    (acceptance) Add documentation to the test cases.
    
    This patch adds step statements to the test cases so that it is easier to follow
    the commands being executed and why they are executed

commit ef4503e980b5fabf6a769190e2aecec16b0ebbc1
Author: rahul <rahul@solaris11-master.(none)>
Date:   Fri Sep 7 11:30:13 2012 -0700

    (acceptance) use facter to find the system name and fqdn
    
    Earlier, tests used hostname -s and hostname -f to find the
    fqdn and hostname on master. This checkin substitutes them with
    facter fqdn and facter hostname

commit 9822cec589554b410f4b2d0ed48af4c90bd85558
Merge: 5a9eb98 df8a716
Author: vrthra <9@vrtra.net>
Date:   Fri Sep 7 14:45:06 2012 -0700

    Merge pull request #1124 from vrthra/maint/fix_fqdn
    
    (acceptance) Fix incorrect command invocation.
    Checkin that made the mistake here. <https://github.com/puppetlabs/puppet/commit/2afe08c5fd3ecde7598307ba7ba5e16e3580552c>

commit df8a716e5c49cd8689728b7d6fa09f07e34cba1d
Author: rahul <rahul@puppetlabs.com>
Date:   Fri Sep 7 14:41:35 2012 -0700

    (acceptance) Fix incorrect command invocation.
    
    Fixing the facter(fqdn) that was missed in the last commit.

commit 5a9eb98621dda672acff8d59baff14b8fc42e1a0
Merge: 1548b2c 7b3e132
Author: vrthra <9@vrtra.net>
Date:   Fri Sep 7 14:36:43 2012 -0700

    Merge pull request #1123 from vrthra/maint/fix_fqdn
    
    (acceptance) Fix incorrect command invocation.
    Checkin that made the mistake here. <https://github.com/puppetlabs/puppet/commit/2afe08c5fd3ecde7598307ba7ba5e16e3580552c>

commit 7b3e132a7eb00abfe275a22672c32f264fd152d3
Author: rahul <rahul@puppetlabs.com>
Date:   Fri Sep 7 14:32:09 2012 -0700

    (acceptance) Fix incorrect command invocation.
    
    use fqdn = on(agent, facter("fqdn")).stdout to get fqdn
    in the previous commit.

commit 1548b2c774d9be56373459dc7d6dd529cb5112e6
Merge: fabd8d9 7df0fb4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Sep 7 11:58:16 2012 -0700

    Merge pull request #1072 from vrthra/ticket/3.x/15547_fix_mock
    
    (#16239) mock of facter :operatingsystem pending

commit 9ed4605891e9bf0f2806e4bd69f05c4021313e8b
Merge: d15e83f fabd8d9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Sep 7 11:48:09 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit fabd8d9133807a28bd2929b661773ec818c64d63
Merge: 339ed9e dff6e53
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Sep 7 11:47:43 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x

commit dff6e53e7d94c7eeea6c65e6c2cd81dd96fc975a
Author: Branan Purvine-Riley <branan@puppetlabs.com>
Date:   Fri Sep 7 09:52:50 2012 -0700

    (maint) Confine pty-based test to non-Windows hosts.
    
    Pty detection on Windows is broken in Ruby 1.8.7. This causes tests which use
    a pty to freeze, locking up the test suite.
    
    This patch works around the issue by not running the affected test on Windows
    hosts.

commit d15e83f57ce70058a5efeb78ade0299a5bd22070
Merge: 979d38d 24dce7c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Sep 7 11:45:57 2012 -0700

    Merge pull request #1114 from vrthra/ticket/3.x/16120_add_holdable_ips
    
    (#16120) ips package provider gets feature holdable.

commit 339ed9ec6fa7bdc37f4bcf0fb8e4a533badf746a
Merge: 338c17f 12d81c7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Sep 7 11:44:53 2012 -0700

    Merge pull request #1074 from slindberg/ticket/3.x/7962_cert_expire_warning_redux
    
    (#7962) Certificate expiration warnings

commit 979d38dacc7442dbba92ced9b382516b64ab85f0
Merge: b324c51 2f9706c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Sep 7 11:34:33 2012 -0700

    Merge pull request #1119 from branan/maint/confine_pty_to_linux
    
    (maint) Confine pty-based test to non-Windows hosts.

commit 338c17f2acfe8682067c05a4072cec2f792608e2
Merge: 9ad0a0a f1c9661
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Sep 7 11:34:23 2012 -0700

    Merge pull request #1120 from MosesMendoza/maint/3.x/remove_apple_pkg_task
    
    Remove old apple package rake task

commit 9ad0a0ae8159d24048f694c11feb98e969803452
Merge: 5bfbb07 86ca0d8
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Sep 7 11:29:26 2012 -0700

    Merge pull request #1079 from vrthra/ticket/3.x/16160_fix_zfs
    
    (#16160) handle aclmode and shareiscsi removal.

commit 5bfbb07c15b494060e94cee22d0269b9c2ad5e75
Merge: 43e15f5 45d3402
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Sep 7 11:28:05 2012 -0700

    Merge pull request #1118 from vrthra/ticket/3.x/13452_solaris_acceptance_tests
    
    (#13452) solaris acceptance tests

commit f1c96614011f51e42cbc321095a6a8e322e8a6b3
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Sep 7 17:15:32 2012 +0000

    Remove old apple package rake task
    
    The apple package task in tasks/rake is superceded
    by the packaging repo task of the same name and
    functionality. This commit removes it; it should
    have been removed with the original set of packaging
    changes to use the packaging repo.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 2f9706c79824c028a167a4cc0a958f297fee5235
Author: Branan Purvine-Riley <branan@puppetlabs.com>
Date:   Fri Sep 7 09:52:50 2012 -0700

    (maint) Confine pty-based test to non-Windows hosts.
    
    Pty detection on Windows is broken in Ruby 1.8.7. This causes tests which use
    a pty to freeze, locking up the test suite.
    
    This patch works around the issue by not running the affected test on Windows
    hosts.

commit 45d3402c6b207b0ef12c38c1c8853e99de837157
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 14:20:00 2012 -0700

    (acceptance) zpool: add acceptance tests
    
    This patch adds acceptance tests for zpoool

commit ba73638a81d49b3a86b0f3735a6d189d3069e9c6
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 18:18:27 2012 -0700

    (acceptance) utils: add zpool utils to the acceptance helper
    
    This patch adds zpool utilities for setup and teardown to acceptance helper

commit bee15a4355bd8627a596c9d347c6fe934efc3910
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 14:07:05 2012 -0700

    (acceptance) zfs: add zfs test cases
    
    This patch adds zfs acceptance test cases

commit 2c0864d9dc04e6c0d527f479f265c2bbb39fe8c9
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 18:17:27 2012 -0700

    (accpetance) utils: add zfs utils to helper
    
    This patch adds zfs utilities to acceptance helper.

commit fceca7f918f381cca4e966388b85b5fd5eed448a
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 13:52:12 2012 -0700

    (acceptance) smf: add test cases
    
    Add test cases to verify smf functionality

commit 5bab4c1eff10ef2ee425426b58a3b06a6832c0e4
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 13:32:36 2012 -0700

    (acceptance) utils: add smf utils
    
    This commit ads smf utils to acceptance tests helper.

commit b592358ce3efbdd226e806e609388395b021b0c9
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 13:21:43 2012 -0700

    (acceptance) ips: adding ips test cases
    
    This patch adds ips test cases.

commit c5e6cc63a971d98e0e124ac61e0bed1699d396ac
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 16:23:09 2012 -0700

    (acceptance) utils: add ips utils
    
    This commit adds prepare and clean utilities to helper

commit fba99e38faa6e7ee8c64f22e29d47e581950a3a2
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 16:58:56 2012 -0700

    (acceptance) cron: adds test cases for cron
    
    This patch adds test cases for cron that checks for basic creation and removal of cronjobs

commit 52d2013a6cfcd6fab3424dd744f9be56e2677bbf
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 16:22:42 2012 -0700

    (acceptance) utils: add cron utils
    
    This commit adds cron setup and clean methods to the helper.

commit 4675e198d7cbae76582bea199e3a3396a78a39c0
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 12:35:13 2012 -0700

    (acceptance: #4840) add test case to verify zone creation
    
    This commit ensures that the manifest given which uses zones and zfs
    works correctly.

commit aa4285aa11b970a55c041a90e4a1834720208f5d
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 12:15:09 2012 -0700

    (acceptance) zone: test cases for the included statemachine
    
    This patch adds test cases to verify that the state machine included in
    zone does indded make the zone provider pass thourgh intermediate states.

commit 4ff61b4addc54de56b7ae3caaf1de37c2f273eba
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 12:26:31 2012 -0700

    (acceptance) zone: step zone states one at a time
    
    This patch adds test cases to verify that the zone provider can
    transition from each state to the next. (We do not make use of
    statemachine for listing states)

commit 4897f65e5b9c5b3c9047404cdd40344c14c9891c
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 12:07:35 2012 -0700

    (acceptance) zone: path test cases
    
    This patch adds test cases for checking path functionality and its validation
    it also checks if the zone can be installed. Additionally, we increment the
    default size of the partition to be created to 1G

commit 1eda69cb721cfb6f42bd365c37e668b09af93110
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 00:56:30 2012 -0700

    (acceptance) zone: add test case to check for dataset functionality
    
    This commit adds test cases to zone to check the dataset functionality
    - idempotency
    - single elements
    - array features.

commit e1a0a12642d2cd27ac51fe3d98e25ee3d601bd7d
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Sep 5 23:54:56 2012 -0700

    (acceptance) zone: add test case to check for ip functionality
    
    This commit adds test cases to zone that checks for the ip parameter usability

commit 28d2c40f4813eb8b7178c18f2d52e03fe7080a78
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 10:03:40 2012 -0700

    (acceptance) utils: add zoneutils to acceptance lib
    
    This commit adds two methods clean, and setup to zoneutils. These are to
    be used for teardown and prepare on all zone test cases.

commit 2afe08c5fd3ecde7598307ba7ba5e16e3580552c
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Sep 4 11:58:56 2012 -0700

    (maint) Update to tests for solaris
    
    This patch updates the acceptance tests to run under solaris.
    - avoid -v option for rm
    - do not use -q for grep
    - hostname returns fqdn in solaris so do not use hostname -f

commit 12d81c7ef97167f1831143ff0037ae9a3970960d
Author: Steven Lindberg <stevenjohnlindberg@gmail.com>
Date:   Sun Sep 2 10:04:43 2012 -0700

    (#7962) Added certificate expiration checks.
    
    Warnings are logged both when receiving a request and issuing a request
    so that both the master and agent logs contain warnings. This increases
    visibilty since the master logs are looked at more frequently, but also
    ensures that the warnings make it into agent reports.
    
    The new `Puppet::Network::Authentication` module contains the logic for
    logging the expiration warnings (certificates are part of the
    authentication process, hence the name). It uses a rate-limited logger
    so that identical warnings as a result of multiple requests in the same
    run are not logged. The minimum time between log messages is set to the
    `runinterval` setting, since it is a good tradeoff between ensuring
    visibility and noisiness.

commit ef8dccf9828ccdf13e7aba6d3da14af1221a6764
Author: Steven Lindberg <stevenjohnlindberg@gmail.com>
Date:   Sun Sep 2 09:47:29 2012 -0700

    (#7962) Added certificate expiration 'nearness' logic
    
    `Puppet::SSL::Certificate` now has a `near_expiration?` method that
    takes a time interval and returns whether its expiration is within that
    window from now. The time interval defaults to a new config setting
    called `certificate_expire_warning` which defaults to 60 days.

commit 1dd99a8735682a2fcb5d762e2de2a449c86055fa
Author: Steven Lindberg <stevenjohnlindberg@gmail.com>
Date:   Sat Aug 25 14:39:19 2012 -0700

    (#7962) Added `from_instance()` method to base SSL class
    
    Instead of creating certificates by turning OpenSSL::X509::Certificate
    instances into strings then back into a new instance, just reuse them.
    This method is on the base SSL class, so it can be used for keys,
    certificate requests, etc.
    
    The side effect of this change is that extracting the certificate 'name'
    out of its subject is abstracted (`name_from_subject()`), and it no
    longer calls downcase on the name. This is safe since it's downcased in
    the base class constructor, and also provides a prettier 'name' if
    needed.

commit 698c5daf9cef52f7757650d13c04fe2fd6426c09
Author: Steven Lindberg <stevenjohnlindberg@gmail.com>
Date:   Sat Sep 1 23:04:32 2012 -0700

    (#7962) Added rate-limiting logger utility
    
    `Puppet::Util::Log::RateLimitedLogger` is a class that includes the
    standard logging module and so responds to `info`, `warning`, etc. It
    uses log messages themselves as keys to a hash that records the last time
    they were logged and at which level. When a message is logged, it first
    checks the record and ignores the call if the given time interval has
    not yet elapsed since the last time it was logged.

commit 2cb9b503c427c75b45ba47a0ea538ae95342bee2
Author: Steven Lindberg <stevenjohnlindberg@gmail.com>
Date:   Sat Aug 4 13:30:31 2012 -0700

    (#7962) Added settings class for handling time intervals.
    
    The DurationSetting converts strings with units into a number of
    seconds, but more importantly guarantees that the setting will be an
    integer. The following settings can now be specified as durations:
    
      configtimeout
      filetimeout
      waitforcert
      splaylimit
      runinterval
      rrdinterval
      ca_ttl
    
    Since multiple settings can use this format, the description was removed
    from `ca_ttl` to be added to the config section of puppet-docs.
    
    Also note, since many of these settings specify sub-hour times, the unit
    'm' was added for specifying times in minutes.

commit 43e15f57c0f3866423a8bd67d3cdb5b2e06b31cc
Merge: 0d3106d f0ff559
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Sep 6 13:17:34 2012 -0700

    Merge pull request #1115 from pcarlisle/ticket/3.x/16275-catalog-environment
    
    (#16275) Don't set $environment as a local fact

commit b324c518c06f27db2e3287facda436d9b1a81dc2
Merge: bd2a4d9 c018d2d
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Sep 6 13:17:15 2012 -0700

    Merge pull request #1112 from petere/envpuppet-warning
    
    Make envpuppet print warning to stderr

commit a67977b9e9b7d0396bb0cc7ab9e9e26c256aab30
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Sep 5 14:58:14 2012 -0700

    Use Pathname.realpath instead of writing it...
    
    The `expand_symlinks` function implemented the exact same behaviour as
    Pathname.realpath did - expand the path, make it absolute, eliminate all
    symlinks, and return the physical location of the file on disk.
    
    Given that we can just replace one with the other and eliminate a dozen lines
    of code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f0ff559516492217d6f8a3787879a8afe70e7209
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Sep 6 12:03:05 2012 -0700

    (#16275) Don't set $environment as a local fact
    
    The environment set by set_local_facts was not always correct. Since the node
    object should always have the correct environment now we should just use that.

commit 0d3106db5fbcda36455f2826502437a4ee8074a6
Merge: 87ddcff 15c716e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Sep 6 11:55:28 2012 -0700

    Merge pull request #1106 from pcarlisle/ticket/3.x/13563-verify-crl
    
    (#13563) Verify CSRs against the embedded public key

commit 87ddcfff9917547cf24218443ca7ccc6efdede81
Merge: 014c6ba 393e03a
Author: Matthaus Litteken <mlitteken@gmail.com>
Date:   Thu Sep 6 11:41:13 2012 -0700

    Merge pull request #1108 from vrthra/packaging/ips_repo
    
    packaging/ips_repo

commit bd2a4d93e6ea5726b0cc753536c7461d62ca08c2
Merge: e5b4b7a 014c6ba
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 6 11:33:08 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit 014c6ba39b43b90e8cc9e23453c190148f86a632
Merge: a113907 5e9a614
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 6 11:32:09 2012 -0700

    Merge branch 'sciurus-13914' into 3.x

commit 5e9a6144bfeafcc65e13c5bd7e878de67053e02f
Author: Brian Pitts <brian@polibyte.com>
Date:   Sat Sep 1 00:10:19 2012 -0500

    Handle chown failure

commit d32aa51941f443c193667324b99906c46da19254
Author: Brian Pitts <brian@polibyte.com>
Date:   Tue May 22 17:23:13 2012 -0400

    Do not change ownership of log file if on Windows

commit 0e5b7fe24d3bf80ff446e464bc8dfe76330d5e29
Author: Brian Pitts <brian@polibyte.com>
Date:   Mon May 14 15:42:52 2012 -0400

    (13914) Fix ownership of log files
    
    The puppet master creates log files while running as the root user,
    then switches to running as the puppet user. This commit ensures it
    will still have permission to write to the log file after switching users.

commit 24dce7c541b764ad940b56c9ee12665b2cfb5e97
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Sep 6 11:11:13 2012 -0700

    (#16120) ips package provider gets feature holdable.
    
    Previously the ips package provider did not provide the feature holdable.
    This update brings the feature holdable to ips packaging and adds test cases
    to check for this feature.

commit c018d2db55a55bb0310ccf688713493e32f68afc
Author: Peter Eisentraut <peter@eisentraut.org>
Date:   Thu Sep 6 10:17:16 2012 -0400

    Make envpuppet print warning to stderr
    
    Otherwise eval $(envpuppet) will fail strangely if the warning is
    printed.

commit c5aa2869b3b16a7336b92529aa135ff02d1049bc
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Sep 5 23:35:35 2012 -0700

    Clean up the Hiera Puppet integration.
    
    This updates the tests to work correctly in the Puppet environment, rather
    than running as part of a separate repository and package.
    
    It also moves the examples into a more appropriate location.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9b66a37081140b5139c70c65a3ff943dc5bc083b
Merge: c3fa267 bccaddc
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Sep 5 17:40:09 2012 -0700

    Merge branch 'hiera-puppet-for-merge' into maint/3.x/merge-hiera-puppet-into-core
    
    Conflicts:
    	.gitignore
    	CHANGELOG
    	LICENSE
    	README.md
    	Rakefile
    	ext/debian/changelog.erb
    	ext/debian/compat
    	ext/debian/control
    	ext/debian/copyright
    	ext/debian/rules
    	ext/osx/preflight.erb
    	spec/spec_helper.rb
    	spec/watchr.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e5b4b7a60eb6ab32bd63a0fc6d2046783fd42ce4
Merge: 24a176d a113907
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Sep 5 17:06:14 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#15733) Remove excess hash arguments for webrick
      (#15733) Use real arguments for Puppet::Network::Server
      (#15733) Simplify bindaddress logic for webrick
      (#15733) Remove servertype setting
      (#15733) Remove mongrel support

commit a113907cfe6cad7cc32e49ad8a45517af1582157
Merge: c3fa267 05c10f7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Sep 5 16:58:56 2012 -0700

    Merge pull request #1110 from pcarlisle/ticket/3.x/15733-remove-mongrel
    
    Ticket/3.x/15733 remove mongrel

commit 05c10f7236542fbce441a87fd57fb419589f1619
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Sep 5 16:09:12 2012 -0700

    (#15733) Remove excess hash arguments for webrick
    
    This moves from using an args hash to required positional arguments for
    Puppet::Network::HTTP::WEBrick. Doing this revealed several places where
    ignored arguments were passed in, including tests that implied these arguments
    were necessary.

commit 0162269627e892db9235579297357943a642f39e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Sep 5 15:42:48 2012 -0700

    (#15733) Use real arguments for Puppet::Network::Server
    
    Puppet::Network::Server had a weird reimplementation of required arguments, so
    this just uses the built-in language feature of required arguments to methods.

commit 393e03ae27202b8ad4135827caadf69060836008
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Sep 4 17:45:26 2012 -0700

    (packaging) add ips packaging for solaris 11
    
    This patch adds ips packaging support for using the packaging repo ips
    tasks.
    
    This checkin contains:
    - ips_repo in buidl_defaults.yaml
    - smf services for puppet master and agent (manifests and methods)
    - rules for ensuring that the puppet is installed in correct places
    - transforms on the manifest that ensures that correct permissions and
      attributes are set for files and directories.

commit 15c716e5c5888b6c336c5124b39ae75e35420b0e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 2 14:52:28 2012 -0700

    (#13563) Verify CSRs against the embedded public key
    
    This adds a verification check when signing a certificate to ensure proof of
    possession of the private key used to sign the CSR.

commit 1a915fe4a5971edac3692acd535765bfc72f8465
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Sep 5 07:28:30 2012 -0700

    (maint) Ignore the packaging workdirs
    
    This patch adds the pkg and ext/packaging directories to .gitignore

commit 7df0fb4771921dbce32cedb202b602f16ae1d0a2
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 29 05:13:10 2012 -0700

    (Maint) stub FileTest.directory?
    
    Previously presence of directories of names 'my test file' caused the test to fail
    This patch stubs the FileTest.directory? to ensure the tests pass.

commit 45e165016534b6c786d269a7825e72599c9beaa6
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 29 04:54:35 2012 -0700

    (#16239) mock of facter :operatingsystem pending
    
    Previously, the pending for solaris was specified incorrectly resulting in the test being pending in all platforms.
    This checkin corrects this mistake. Since Facter[:osfamily] is stubbed before each tests, we save the family value before
    starting and use it to compare.

commit 24a176dee412608f8b6138076364611bd13e81c2
Merge: 9d91dd9 c3fa267
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Sep 4 15:46:57 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit c3fa267501328c7aaf68affcc711a788d7d1dd7a
Merge: 4a6853e 609742b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Sep 4 15:41:48 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x

commit 609742baf26f7e9d44795bb39cad1bf29eab7aa9
Merge: 34e35de da24d54
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Sep 4 15:40:54 2012 -0700

    Merge pull request #1052 from stschulte/ticket/2.7.x/15959_group_systemparam
    
    #15959: groupadd system parameter is not supported on solaris

commit 4a6853e1de083842362dc30d0842bbbb9b029f64
Merge: 6712dd0 3fcaad0
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Sep 4 15:26:03 2012 -0700

    Merge pull request #1078 from vrthra/tickets/3.x/16157_fix_zpool
    
    (#16157) fix zpool subcommands

commit 34e35de722c96011ad399b7329cc1cef04b327b8
Merge: b48a172 368a1cb
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Sep 4 15:06:13 2012 -0700

    Merge pull request #821 from daniel-pittman/bug/2.7.x/3984-better-handling-of-selinux-warnings
    
    Bug/2.7.x/3984 better handling of selinux warnings

commit 263acc30f6037af1e809aee6b0d51dd3071e1d84
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Sep 4 14:54:44 2012 -0700

    (#15733) Simplify bindaddress logic for webrick
    
    Since mongrel is no longer an option, the default bindaddress is always
    0.0.0.0 and we no longer need any extra logic around it.
    
    Paired with: Andy Parker <andy@puppetlabs.com>

commit 54c6a9b8f2e16101c871fdd13986e178fed59cab
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Sep 4 14:47:33 2012 -0700

    (#15733) Remove servertype setting
    
    This was only used to choose between WEBrick and Mongrel for the built-in
    server. Since we've removed Mongrel it is now useless.
    
    Paired with: Andy Parker <andy@puppetlabs.com>

commit a3edf1aef4dbbba8209aa233ac472090b8a775e2
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Sep 4 14:28:50 2012 -0700

    (#15733) Remove mongrel support
    
    This makes the built-in server always use WEBrick. For anything more
    sophisticated you must set up an external server using Rack.
    
    Paired with: Andy Parker <andy@puppetlabs.com>

commit 5ac681f96891fe2aaf78534178b4256d822ce38a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Sep 4 12:36:40 2012 -0700

    AST Scope variable names must be strings.
    
    The Parser AST scope had an embedded assumption that variable names were
    always strings, but didn't actually enforce that.  A consequence of this is
    that a couple of tests violated that agreement.
    
    This adds an internal error report when someone tries the wrong thing, and
    cleans up the handful of tests that failed.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b48a1726ee17df795c0f4e744ad752a3d27fdaa0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Sep 4 09:05:05 2012 -0700

    (Maint) Fix syntax and semantic erros in test
    
    Strangley enough, this test only started failing once it had been
    cherry-picked from master onto 2.7.x and then merged up. There was a
    missing comma, an extra comma, some incorrect argument passing, and a
    missing PTY, which caused the command to always try to read from stdin.

commit da24d54dfc11f96f97b454505e5c0b5c53125368
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Sep 1 02:50:22 2012 +0200

    (#15959) Fix groupadd/useradd spec when run on non-linux systems
    
    The groupadd and useradd spec will only work if groupadd / useradd are
    the default provider for the group / user type.
    
    Explicitly set the provider in the spec tests so they can e.g. also run
    on MacOSX.

commit 9d91dd9c3de86cb02e768a630c3904e87c05ebc4
Merge: e1f9810 6712dd0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 31 17:16:27 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#16208): Correct spec test to match new failed parameter message
      Maint: Fix inconsistent expect-should usage
      Maint: Fix leaked tempfile handle
      Fix a test broken by the improved parameter error reporting.
      (#16208) fix tests
      (#16208) use #{ref} instead of #{type} #{title} as suggested by dpittman
      (#16208) Better error messages for failed parameter validation

commit 6712dd0765f9a5dcba41a78c45d941015f3125c8
Merge: 86fa102 0a4957a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 31 17:14:49 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      (#16208): Correct spec test to match new failed parameter message
      Maint: Fix inconsistent expect-should usage
      Maint: Fix leaked tempfile handle
    
    Conflicts:
    	spec/unit/util_spec.rb

commit 3fcaad0f6273cf754a57c9e3bda8733b80d6ae82
Author: rahul <rahul@puppetlabs.com>
Date:   Fri Aug 31 16:37:04 2012 -0700

    (Maint) split the long line
    
    Split the long line so that it is easier to read

commit 3bd3515cd36cbf78d40483b008888e9efda38cab
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Aug 28 07:31:12 2012 -0700

    (#16157) Fail rather than warn
    
    Previously, if the disks that the user specified were different from the disks that
    the mirror/raid was created with, we printed a warning, and spurious chagned: messages
    and continued. This is not correct, and is dangerous. This patch fails rather than
    continue if the disks are different.

commit 0a4957aa55dd21c2f454583a4a93658775198137
Merge: 779ace3 bd875f5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 31 16:16:11 2012 -0700

    Merge branch 'maint/2.7.x/leaked-tempfile' into 2.7.x
    
    * maint/2.7.x/leaked-tempfile:
      (#16208): Correct spec test to match new failed parameter message
      Maint: Fix inconsistent expect-should usage
      Maint: Fix leaked tempfile handle

commit bd875f5d16976d08494a7cb706c5391bd431ccdf
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 31 16:14:32 2012 -0700

    (#16208): Correct spec test to match new failed parameter message
    
    Previously, this spec test failed on Windows, because we now display
    better error messages when parameter validation fails.
    
    Updated the spec test to match.

commit a753b86c5bb74c741dab51cfd2f25ecdc33cd102
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 31 15:50:14 2012 -0700

    Maint: Fix inconsistent expect-should usage
    
    Previously, the test was using expect { .. }.should which is not supported
    in newer versions of mocha. Changed to expect { .. }.to.

commit 1a9d122900ab15c1e5b64e26815c0836930e68d0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 31 15:05:08 2012 -0700

    Maint: Fix leaked tempfile handle
    
    This test failed on Windows because we were creating a tempfile, but not
    closing the underlying file descriptor. So later attempts to cleanup fail
    on Windows (unlike POSIX).
    
    This commit modifies the `.tmpfile` and `#tmpfile` methods on the
    PuppetSpec::Files module to accept an optional directory in which to
    create the temp file.

commit 86fa102c38a84ae256f88095ab6fe723a4190514
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 16:00:23 2012 -0700

    Fix a test broken by the improved parameter error reporting.
    
    The new reporting adds more details about where the failing parameter was,
    which broke a test that checked for the exact string.  Adding the location
    data fixes the problem.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit db02563acb8bab0ef7c88ae3ce174e24566d7ed7
Merge: 9e9854c 779ace3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 15:54:28 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x

commit 779ace39832265751ee42ea90f5df81fe7d5b365
Merge: 294fae2 d9ab06f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 15:53:33 2012 -0700

    Merge pull request #973 from djmitche/detailed-param-failure
    
    Better error messages for failed parameter validation

commit d9ab06f8d8e5c6b3ba0cb9d65bfe66e36a8afd41
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Fri Aug 31 16:52:03 2012 -0400

    (#16208) fix tests

commit f30af221bbba5dbeb414e5a666b5deec129422b7
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Fri Aug 31 16:37:32 2012 -0400

    (#16208) use #{ref} instead of #{type} #{title} as suggested by dpittman

commit e1f981077fa8c2aad16380705f20a48c4d42c7e1
Merge: 14b84fd 9e9854c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 15:18:20 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit cb3c912d6d1b07addaad576ddc46b13f84430b7d
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Thu Jul 26 15:18:29 2012 -0400

    (#16208) Better error messages for failed parameter validation

commit 9e9854c59f90e1bf495932d0248bf3e306ebca33
Merge: bd9c3b6 294fae2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 15:17:48 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x
    
    Conflicts:
    	spec/integration/defaults_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 294fae253190fd5ff2e94bd6f6320e40565b4e05
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 15 21:38:00 2012 -0700

    Port the SemVer test from Test::Unit to RSpec.
    
    This was the only meaningful test in that file, and helps ensure that the
    Puppet version number is sane.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    
    Conflicts:
    	spec/integration/defaults_spec.rb
    	spec/unit/puppet_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit bd9c3b6facee55ac971fb089b665980afa94e2b4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 15:13:50 2012 -0700

    Revert "(#15852) Remove version check from puppet_spec.rb"
    
    This reverts commit e30d6efbe975d79458a6aac0c52a5854a50cb7ad.
    
    There is a better strategy for this, shortly to be flowed through.

commit 14b84fde9f032b69eba402b4f32329783bdac1a3
Merge: 1b2e187 3718188
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 15:07:27 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit 3718188514cff9200facb9409c6b1a634ba907f9
Merge: 701b987 a6000d8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 15:06:47 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x
    
    Conflicts:
    	test/puppet/defaults.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a6000d80b35e3a52828fc871488d6ba12416cdb8
Merge: 0f0a17c 82ebe28
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 15:04:56 2012 -0700

    Merge pull request #1095 from MosesMendoza/remove_version_check_from_puppet
    
    Remove version check regex from puppet

commit 701b9878d89859c3e6a1ea87370a16229512e6d8
Merge: 3beeef3 bd367e1
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 15:04:17 2012 -0700

    Merge pull request #1093 from MosesMendoza/maint/3.x/shift_to_using_packaging_repo
    
    Maint/3.x/shift to using packaging repo

commit 1b2e1872cd49aac1754d3bbd3befb93c04ca1780
Merge: fe6a117 28edee7
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 14:55:51 2012 -0700

    Merge pull request #1096 from djmitche/fix-umount-typo
    
    Fix a small docs typo - umounted vs. unmounted

commit fe6a117cc414d59f444a679adddf1db4c446b6c4
Merge: a8f7732 3beeef3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 14:26:45 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit 3beeef3b1a495c0afffc087be4d038a2542f7ca5
Merge: 13704e1 0f0a17c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 14:26:10 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x
    
    Conflicts:
    	lib/puppet/parser/functions/shellquote.rb
    	lib/puppet/type/package.rb
    	spec/integration/util/file_locking_spec.rb
    	spec/unit/parser/functions/shellquote_spec.rb
    	spec/unit/util/command_line_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0f0a17c3142901b5a0ac4385653b9cf95242e0e2
Merge: 6ef18d0 14d1fdc
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 13:42:00 2012 -0700

    Merge pull request #1087 from pcarlisle/maint/2.7.x/test-warnings
    
    Maint/2.7.x/test warnings

commit 6ef18d04a8fe1b5cee31a5e45a8069d52a5400ab
Merge: 3220333 7efbfc6
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 13:36:59 2012 -0700

    Merge pull request #1085 from nfagerlund/maint/2.7.x/bad_escaping_in_doc_strings
    
    Maint: Large or complex HEREDOC strings w/ no interpolation should be single-quote type

commit 3220333a02b18883f518c5ca2b8be49517d2d65a
Merge: 1a7feff 13e0109
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 13:36:44 2012 -0700

    Merge pull request #1082 from joshcooper/ticket/2.7.x/15591-segfault
    
    (#15591) Skip test that causes segfault on Windows

commit bd367e123974a3d4d895732757adf0ee9f4ec72b
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Aug 29 12:11:13 2012 -0700

    Remove debian manpages that are obsolete in 3.x

commit f2e8ee05550fbacf61c94d5e9469fbe9bcd74c99
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Aug 28 15:33:40 2012 -0700

    Move all packaging artifacts from conf to ext
    
    This commit moves all packaging artifacts out of the conf dir and into
    the ext dir. This is generally a move to align packaging across all
    puppetlabs products and make the directories more sensible, e.g. conf
    should have config files. The redhat spec and install.rb are updated
    for the path change.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 5688f56b22331e1d1835baa1e3437ee47a1bd778
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Aug 28 15:18:20 2012 -0700

    remove old tasks and pull out of rake subdir
    
    This commit removes several tasks that as far as
    I can tell are no longer used, and the remaining
    tasks out of the rake subdir in tasks.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 09cbc1abb28692319223b07527d7ea24915b0b85
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Aug 28 14:57:05 2012 -0700

    Fixup for different source paths
    
    This commit adjusts the packaging artifacts for the difference
    in directories between 2.7.x and 3.x, which doesn't have sbin
    and test. Because of this we also switch to using the packaging
    gem task and remove the existing one.

commit 7ada9e41d72fea11d79a453d794be440c3d1b8b7
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Aug 28 13:40:14 2012 -0700

    Fixup debian artifacts for 3.x

commit a8f773227f15be8b1409f23e52f0a690a1d7947a
Merge: 8f8bcb6 13704e1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 12:54:16 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit 13704e115202eb733efc8b36c94306afc0860762
Merge: 5162b61 1a7feff
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 12:49:33 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x
    
    Conflicts:
    	Rakefile
    	ext/redhat/puppet.spec.erb
    	lib/puppet/defaults.rb
    	spec/integration/defaults_spec.rb
    	tasks/rake/apple.rake
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 1a7feff7ed09569c6b4552ade73583383674a146
Merge: e55a52c 0a72c5c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 12:37:21 2012 -0700

    Merge pull request #1092 from MosesMendoza/maint/2.7.x/shift_to_using_packaging_repo
    
    Maint/2.7.x/shift to using packaging repo

commit e55a52c4fd4fa4d9070ace28c63f12c65fb27ebb
Merge: d94cccf b67e4dc
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 12:34:09 2012 -0700

    Merge pull request #1091 from joshcooper/ticket/2.7.x/16019-platform-specific-paths
    
    (#16019) Don't add Unix paths to Windows search path

commit d94cccf1b53cff785a0864e84e903708117cf620
Merge: 4314b65 489352b
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 12:29:01 2012 -0700

    Merge pull request #1090 from joshcooper/ticket/2.7.x/16119-accept-cr
    
    (#16119) Recognize carriage return escape sequence

commit 8f8bcb6bb8f7a1144d1a83da3e9dc849860e80cb
Merge: a889363 5162b61
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 12:01:18 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit 5162b61fa98683942e675e17ec63acbec999eb75
Merge: 5355d8d 4314b65
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 11:55:23 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x

commit 5355d8dcfba39ae104042c6a0b816afd00c92dd2
Merge: e87992e 4005db3
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 11:53:48 2012 -0700

    Merge pull request #1084 from pcarlisle/ticket/3.x/16058-pson-catalog-cache
    
    Ticket/3.x/16058 pson catalog cache

commit e87992ef1bab0ff909402f9ca15afdda13b6915d
Merge: 250b2ee 30ac4a6
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 11:38:09 2012 -0700

    Merge pull request #1073 from cprice-puppet/refactor/3.x/16139-inconsistent-access-to-report-data
    
    (#16139) Provide accessors for @puppet_version and @report_format in reports

commit 14d1fdcab357dd78e325a1ee7e8ea87a0b578a28
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Aug 17 16:29:42 2012 -0700

    Don't make executables in /tmp in posix_spec
    
    The posix specs were creating executable files in /tmp, which caused a warning
    about an insecure directory in the path. This adds an intermediate safe
    directory.

commit ca368935d94bcd860b43bdf0bfed005b8107f06d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Aug 17 16:19:55 2012 -0700

    Backport fix for commandline spec
    
    This makes the commandline spec not try to execute a command that does not
    exist.

commit 6f556ef84a4df9bc42816009f4d3a3d6967fc76f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Aug 17 16:04:34 2012 -0700

    Don't pollute Functions namespace in shellquote function
    
    This moves two constants into local variables inside the function, as the
    constants polluted the Puppet::Parser::Functions namespace and caused warnings
    when the function was reloaded.

commit 4314b655b885e52c12c756cdb90e26f2ce388546
Merge: aa52d28 0620497
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 10:30:31 2012 -0700

    Merge pull request #1098 from ahpook/2.7.x
    
    (#15797) Revert changing 'chkconfig' argument from 'on' to 'reset'

commit aa52d289a42b62df1fce65ad6a3e3ebdf8e7ce3f
Merge: 94a1e72 b8ca748
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 31 10:00:42 2012 -0700

    Merge pull request #876 from zaphod42/feature/2.7.x/11727-stdin-parsing-in-face
    
    Feature/2.7.x/11727 stdin parsing in face

commit a8893639e6bcb2b6a44b46ff9920e800fcc82941
Merge: d3c09e9 bf901d0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 31 09:53:04 2012 -0700

    Merge branch 'jaydg-support-dragonfly-bsd'
    
    Conflicts:
    	lib/puppet/provider/service/init.rb
    	spec/integration/provider/service/init_spec.rb
    	spec/integration/type/package_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 13cb623fcf35f7e87b93ee51d8a2254df94fa3ab
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Aug 30 17:47:59 2012 -0700

    (#8714) Don't follow symlinks in SELinux FS detection
    
    When detecting the filesystem that a target file lives on, we used to follow
    symbolic links.  This is actually a problem - the SELinux change applies to
    the link, not the target of the link.
    
    This rewrites the code to handle this more cleanly, following the logical tree
    up to locate the record in the set of mountpoints.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8fa65756039637cc558c2a50cffb728cfcbe703d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Aug 30 17:34:22 2012 -0700

    Make SELinux internal helper functions private.
    
    There are a handful of internal helper functions in the SELinux utility code,
    dealing with finding the filesystem that a file resides on.  We may as well
    make them private in the code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0a72c5c6d2bbd3d598cd2205913137040242910f
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Aug 30 16:36:17 2012 -0700

    Fix yum repo path in yaml file

commit d3c09e91e72a83a1663da6d07c97435e0e9909a6
Merge: 2a8a5d0 250b2ee
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Aug 30 16:08:18 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit 06204979330572a9d56835ca8007c160d577752a
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Thu Aug 30 14:38:23 2012 -0700

    (#15797) Update chkconfig test to reflect reality
    
    Let's never forget that we call chkconfig with `on`.
    (Service scripts are allowed to specify `-` for default runlevels,
    which makes `reset` disable the service in all levels.)

commit 775d0dc78f36070a8168d9b1c969167b640550c0
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Thu Aug 30 14:05:14 2012 -0700

    Revert "(#15797) Change the argument to chkconfig from 'on' to 'reset'"
    
    This reverts commit d2012aec0a2cce06f8db830c3f4d5a4950fe9ce0.
    
    The chkconfig line can use `-` to indicate the service should
    not be enabled by default.  In this case, `reset` disables all
    runlevels, which is the opposite of what `enable=>true` should do.
    
    The original bug referenced in #15797, #528, was also reverted
    for (presumably) the same reason:
        https://github.com/puppetlabs/puppet/commit/41e1285553870f0b425b88a6209fab8733b421b2

commit 94a1e7208bd15801ff7f5f169b0c66593770abb8
Merge: 2495505 f9463ea
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Aug 30 15:41:25 2012 -0700

    Merge branch 'ticket/2.7.x/15731_full_certificate_metadata_for_pson' into 2.7.x
    
    * ticket/2.7.x/15731_full_certificate_metadata_for_pson:
      (#15731) Add clarifying comments to host.rb
      (#15731) Move explicit fingerprints to hash
      (#15731) explicit fingerprint digest for pson
      (#15731) Full certificate metadata for pson

commit f9463eae3611e69f90c14c73ec180fcedf3c55dd
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Aug 30 15:31:38 2012 -0700

    (#15731) Add clarifying comments to host.rb
    
    Prior to this commit it was unclear that the existing :fingerprint
    element of the pson hash was still around for backwards compatibility
    for as of yet unknown external consumers of the existing api. This
    commit makes it clear that that's why it's still around and that we
    don't have any known internal consumers of that api.

commit 250b2ee413c0aa6a3be273dc8a0cfb90fd618eae
Merge: 3826a37 b53f251
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Aug 30 15:31:31 2012 -0700

    Merge branch 'feature/3.x/16175-update-modification-time-on-filebucket-contents' into 3.x

commit b53f251809bf30485a1c935d93b39620f4ece53e
Author: Erik Dalén <dalen@spotify.com>
Date:   Fri Jul 13 12:21:04 2012 +0200

    (#16175) Touch filebuckets contents when we get a new path
    
    Touch the contents file when we get a new path for the file. This
    simplifies cleanup scripts for deleting old filebucket files for
    example.

commit 28edee7cdc1735e5253a6064d35bfae173c38135
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Thu Aug 30 17:43:03 2012 -0400

    Fix a small docs typo - umounted vs. unmounted

commit 3826a37b206fd10c20f76e61efe92f89e802085c
Merge: de96d51 2495505
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 30 14:40:41 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      (#15560) Delete user's profile after deleting account
      (#15560) Create the user's profile if managehome is true
      (#15560) Refactor LogonUser

commit 24955050f456c7229964b4b613730cce02602608
Merge: 0b22ec1 5e84c97
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Thu Aug 30 14:39:45 2012 -0700

    Merge pull request #1088 from joshcooper/ticket/2.7.x/15560-managehome-windows
    
    (#15560) Implement manages_homedir semantics on Windows

commit 82ebe28b7473ca08b00ab78146ee616a1ee3758f
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Aug 30 14:28:58 2012 -0700

    Remove version check regex from puppet
    
    This commit removes the version test method in
    default.rb, which is the sudo-equivalent of e30d6ef
    in the 3.x branch. AFAICT this method is not called
    anywhere in puppet, and since we've started using
    RC versions it won't work as-is if called.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit de96d510d23d79491cec8741bcfae81474038ea5
Merge: 014bd3a 2c580e9
Author: vrthra <9@vrtra.net>
Date:   Thu Aug 30 13:27:23 2012 -0700

    Merge pull request #1094 from vrthra/ticket/3.x/15886_refactor_zones
    
    (maint) commit the complete commands at the end.

commit 67f8b0ba968e786abd5310fb3f2f35d95e6a35de
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Aug 30 11:54:22 2012 -0700

    Remove broken dual build-requires of facter in redhat spec

commit 014bd3ad4f9058fa6d7343c437ef7e1a58d0c5e9
Merge: 9b4a068 a32b2c3
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Thu Aug 30 11:40:27 2012 -0700

    Merge pull request #1077 from vrthra/ticket/3.x/15886_refactor_zones
    
    (#15886) refactor zones

commit 2ea1e980e6d5fdb6783e83889b376f0130b4caa3
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Aug 29 11:43:06 2012 -0700

    Add in manpage listings that should have been there

commit b1648b2d8e4a7eda15fa2a8dc3cd734d15e117c5
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Aug 27 17:35:57 2012 -0700

    Fixup Rakefile to use packaging repo

commit a670a4f84703cd34b836aab971a46a7f16005417
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Aug 27 16:50:15 2012 -0700

    Move and template all apple pkging artifacts to ext/osx
    
    Also add a file_mapping.yaml file for apple packaging.

commit 302248b3baf150e3d65ef4937e0ae3a9ad93b654
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Aug 27 14:08:01 2012 -0700

    Add debian packaging artifacts and template

commit 5dc896b479ac79a1a790381c63bf1285120fa34e
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Aug 27 11:26:20 2012 -0700

    Move redhat spec file to erb template in ext/redhat

commit b67e4dc28098a01add1de9a3f3760befbd1d5372
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 29 22:17:58 2012 -0700

    (#16019) Don't add Unix paths to Windows search path
    
    Previously, we were adding `/usr/sbin` and `/sbin` to Puppet's shell
    search path on all platforms, including Windows.
    
    This commit changes the behavior on Windows so that those paths are not
    added. It also doesn't add Windows equivalents, because the environment
    it inherits from its parent process already contains a suitable search
    path.
    
    This commit also sets File::PATH_SEPARATOR appropriately when using the
    windows or posix shared context.

commit 489352b2acec274c8be9600bba6406b6865acf16
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 29 21:37:38 2012 -0700

    (#16119) Recognize carriage return escape sequence
    
    Previously, the lexer would issue a warning when encountering a carriage
    return escape sequence \r. Such as when specifying file content in a
    manifest. This commit modifies the lexer to accept \r.

commit 2a8a5d0d8941baed69c58c60b19455f315151990
Merge: 3175043 9b4a068
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 29 20:43:08 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#15193) Fix windows failing on unix style paths

commit 9b4a0681fa22565bd5b2f7e8fa71343c1248892b
Merge: 6070035 0b22ec1
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 29 20:19:01 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      (#15193) Fix windows failing on unix style paths

commit db7443227f081e4340ea948e33212bcced889b7f
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Aug 27 11:24:03 2012 -0700

    Switch off building gem for 2.7.x
    
    The 2.7 series packages binaries in sbin which is not
    compatible with gems. We'll use the existing gem task
    for gems rather than packaging repo because it hacks
    around this already.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 77afeba3b61656ea7b41ffc504b5bc21803519b4
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Aug 24 15:52:14 2012 -0700

    Add yaml files

commit 0b22ec17bcdc6f22e45a8dbea2adc756daf08508
Merge: 74716f1 2b06b7e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 29 17:50:19 2012 -0700

    Merge branch 'fix/2.7.x/15193_fix_windows_spec_failures' into 2.7.x
    
    * fix/2.7.x/15193_fix_windows_spec_failures:
      (#15193) Fix windows failing on unix style paths

commit 2b06b7ecbb86810f118a5e14fadbffe5f8eec3d4
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 29 17:47:36 2012 -0700

    (#15193) Fix windows failing on unix style paths
    
    Without this patch the windows spec tests are failing because the
    resource contains File resources with *nix style absolute paths.  These
    paths are not considered absolute on windows, so a simple
    File.expand_path converts the relative path to an absolute path on
    windows.
    
    This patch should restore the build to green.

commit 5e84c971c4f6142d3e4ed46595e528ea35bac9fb
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 28 17:24:53 2012 -0700

    (#15560) Delete user's profile after deleting account
    
    Previously, if Puppet deleted a user account and `managehome` was true,
    then Puppet would leave behind the user profile on disk, e.g.
    C:\Users\%USERNAME%.
    
    In keeping with the semantics of the `manage_homedir` feature, this commit
    modifies the Windows ADSI user provider to delete the user profile when
    `managehome` is true.
    
    On systems before Vista SP1, the Win32_UserProfile class does not exist.
    Worse, there is no reliable and built-in way to delete user profiles.
    There is the widely used delprof.exe utility included in the 2003 Resource
    Kit, but it's not part of the core OS and it doesn't work in later
    versions of Windows.
    
    As a result, the Windows ADSI provider will make a best effort to delete
    the user profile, and that should work on Vista SP1 and later systems. On
    earlier systems, we will warn that it's not supported.
    
    This commit also adds an acceptance test to verify the home directory
    gets created, and deleted (on systems that support it).

commit 31750430d134ff409e57af4d840d3b7e9174e623
Merge: 8b05f2a 6070035
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 29 17:29:43 2012 -0700

    Merge branch '3.x'
    
    * 3.x: (29 commits)
      Add a terminus setting type
      (#16058) Set pson as default catalog cache format
      (#16058) Add setting to configure catalog cache
      (#15193) Fix StaticCompiler#store_content
      (#15193) Add spec test coverage for static compiler
      Document the different forms of catalogs to help test writers
      (#15193) Document how to use the static compiler
      (Maint) Stop watchr from reading non-existent spec.opts
      Whitespace only cleanup
      Update CHANGELOG, version.rb, redhat.spec for 3.0.0rc5
      Maint: Use pending block
      maint: remove .rspec entirely
      Maint: Make paths absolute on Windows
      (#16137) Delay evaluation of config and var directories
      (Maint) Enable colorized rspec output on Windows
      (#16137) Tilde expansion should only occur for normal users
      (Maint) Remove trailing whitespace
      (#16137) Ensure HOME is set before attempting ~ expansion
      Move singleton require to puppet/util/storage.rb
      (#15739) Bump report_version since #10064 change its format
      ...
    
    Conflicts:
    	lib/puppet/settings.rb

commit 607003557e87574212f7942664be3c83a1eca14f
Merge: a7926da 74716f1
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 29 17:22:13 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      (#15193) Fix StaticCompiler#store_content
      (#15193) Add spec test coverage for static compiler
      Document the different forms of catalogs to help test writers
      (#15193) Document how to use the static compiler
      (Maint) Stop watchr from reading non-existent spec.opts
      Whitespace only cleanup
      maint: remove .rspec entirely
      (Maint) Enable colorized rspec output on Windows
      (#15739) Bump report_version since #10064 change its format
      (#15920) Make forward-sexp ignore comments in puppet-mode.el
      Maint: Fix borked help/man output for node clean
    
    Conflicts:
    	lib/puppet/indirector/catalog/static_compiler.rb
    
    This merge-up modifies the nature of the stub on
    
        Puppet::FileServing::Metadata.
          indirection.stubs(:find).
          with() { |*args| args[0] == options[:source].sub('puppet:///','') }.
          returns(fake_fileserver_metadata)
    
    To get the tests passing with 3.x the stub is relaxed by the patch to
    ignore the options hash passed along with the URI.

commit a7926da9bb1c8ea70906249177363794fd5206ba
Merge: eb60678 44395aa
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 29 17:08:59 2012 -0700

    Merge branch 'ticket/3.x/16058-pson-catalog-cache' into 3.x
    
    * ticket/3.x/16058-pson-catalog-cache:
      Add a terminus setting type
      (#16058) Set pson as default catalog cache format
      (#16058) Add setting to configure catalog cache

commit 44395aae12a62359a5f5e3f01c9cd54da4499a4c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 29 15:05:26 2012 -0700

    Add a terminus setting type
    
    The terminus setting type makes it possible to set a terminus to nil by
    providing an empty string in the configuration. It also converts the terminus
    name to a symbol automatically.
    
    This required making all terminus settings consistently use symbols.
    
    Paired with: Andy Parker <andy@puppetlabs.com>

commit 8c321202762851176975f997604b5c4ba57ef662
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 29 13:12:39 2012 -0700

    (#16058) Set pson as default catalog cache format
    
    Serializing as pson appears to be faster, so set it as the default. Yaml is
    still available by setting catalog_cache_terminus.

commit b7ddf3e3bcf62e9ea883f33db506068d59fe40fe
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 29 11:44:24 2012 -0700

    (#16058) Add setting to configure catalog cache
    
    This adds a setting to configure the cache terminus used by the catalog
    indirection. The two reasonable values at this time are "yaml" and "pson".

commit 74716f1885881014b912a5abb4363b2c0958c869
Merge: b14554f 94aaf15
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 29 16:52:25 2012 -0700

    Merge branch 'bug/2.7.x/15193_fix_static_compiler' into 2.7.x
    
    * bug/2.7.x/15193_fix_static_compiler:
      (#15193) Fix StaticCompiler#store_content
      (#15193) Add spec test coverage for static compiler
      Document the different forms of catalogs to help test writers
      (#15193) Document how to use the static compiler
      (Maint) Stop watchr from reading non-existent spec.opts
      Whitespace only cleanup

commit 94aaf150f62c94d75d4f6232debbda1db9463688
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 28 16:56:27 2012 -0700

    (#15193) Fix StaticCompiler#store_content
    
    Without this patch the static compiler's store_content method improperly
    calls the indirector in a way that produces fatal exceptions preventing
    catalog compilation.
    
    These errors take the form of:
    
        NoMethodError: undefined method `find' for
        Puppet::FileServing::Content:Class
    
    This patch fixes the problem by sending the messages to the right
    places for Puppet 2.7.x and Puppet 3.x

commit 58f9679cd691437a6d01daed01ce3e247dd50c6d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 28 11:47:58 2012 -0700

    (#15193) Add spec test coverage for static compiler
    
    Without this patch there is no test coverage for the static compiler
    terminus.  This is a problem because internal changes to the indirector
    break the expected behavior of the static compiler and we have no
    automated way to discover the broken behavior.
    
    This patch adds spec test coverage for the static compiler's find
    method.  This covers the most common use case of the static compiler
    where by file resources with source parameters are modified in the
    resource catalog.
    
    The patch does not include test coverage for recursive file resources.
    
    The approach taken stubs the underlying compiler terminus and produces a
    fake resource catalog for the static compiler to operate on.  The
    fileserver metadata API is also mocked to break the dependency on a real
    fileserver.

commit 2c580e9c846f6438f3961ff8cab5bda3cbdad038
Author: rahul <rahul@puppetlabs.com>
Date:   Sat Aug 18 23:39:28 2012 -0700

    (maint) commit the complete commands at the end.
    
    The provider.flush() comamnd was missing.

commit 2bbc4e4fc96d066d6870eafd845326c9f9ed9183
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 28 15:24:53 2012 -0700

    Document the different forms of catalogs to help test writers
    
    Without this patch it was not clear to me that the static compiler
    operates primarily on a resource catalog.
    
    This was a problem because I spent considerable amounts of time trying
    to figure out the difference between `resource[:source]` returning
    `"puppet:///..."` inside of
    `Puppet::Resource::Catalog::StaticCompiler#find` when running `puppet
    apply` and `resource[:source]` returning `["puppet:///..."]` (an array)
    when inside of `#find` from the spec test.
    
    When testing catalog terminii the resource form of the catalog should be
    created instead of the RAL form.
    
    This patch addresses the problem by providing a description of the
    difference between a resource catalog and a RAL catalog and when it is
    appropriate to use each.

commit 1a432fd617647acf24135a7099f78d8b6c0bf5e3
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 22 21:24:03 2012 -0700

    (#15193) Document how to use the static compiler
    
    Without this patch the magic nature of the `Filebucket[puppet]` resource
    and the expected behavior of the puppet agent obtaining file content
    from the server is not documented anywhere.  This is a problem because
    it is not clear how to configure the agent in a manner that does not
    produce errors when using the static compiler.
    
    This patch fixes the problem by providing a more in-depth description of
    the high-level approach the static compiler takes.  In addition, the
    specific configuration of `fileserver { puppet: server => $server, path
    => false }` is documented in the README_DEVELOPER.

commit 18209271aef8602167d28cdd1eb11d079b21558a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 29 16:03:21 2012 -0700

    (Maint) Stop watchr from reading non-existent spec.opts
    
    Without this patch the watchr auto-testing script attempts to read the
    spec.opts file.  This is a problem because the file no longer exists in
    the repository which causes watchr to fatally error out.
    
    This patch fixes the problem by simply removing the code replacing it
    with a comment to use a personal ~/.rspec file instead of the project
    rspec options file.

commit 576fd56f9036f4b765f0c6e0fb2474f3be9bf95e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 28 16:57:10 2012 -0700

    Whitespace only cleanup

commit 4005db36b72946140cd2a47c0db7ccedfc47e305
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 29 15:05:26 2012 -0700

    Add a terminus setting type
    
    The terminus setting type makes it possible to set a terminus to nil by
    providing an empty string in the configuration. It also converts the terminus
    name to a symbol automatically.
    
    This required making all terminus settings consistently use symbols.

commit eb60678a9755e44c83ab1f8380311dded3ab7429
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Aug 29 15:00:45 2012 -0700

    Update CHANGELOG, version.rb, redhat.spec for 3.0.0rc5

commit fae8591cd98fbabfeed15e4f6fc0a7e161092098
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 29 13:12:39 2012 -0700

    (#16058) Set pson as default catalog cache format
    
    Serializing as pson appears to be faster, so set it as the default. Yaml is
    still available by setting catalog_cache_terminus.

commit fe330c94571c2a3ce5ba09f1b642883e62b53b39
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 29 11:44:24 2012 -0700

    (#16058) Add setting to configure catalog cache
    
    This adds a setting to configure the cache terminus used by the catalog
    indirection. The two reasonable values at this time are "yaml" and "pson".

commit 67b9227ab366be29516355caf8c62cd4550a09f5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 28 15:00:51 2012 -0700

    (#15560) Create the user's profile if managehome is true
    
    Previously, specifying `managehome => true` on a user resource would have
    no effect even though the Windows ADSI user provider claimed to support
    the `manages_homedir` feature.
    
    On Windows, a user's homedir (profile) is not created when the user
    account is created, but when the user logs in for the first time. As
    a result, if Puppet created the user account, and then tried to apply
    another resource that depended on the existence of the user's home
    directory, such as ssh keys, then Puppet would fail.
    
    This commit changes the Windows ADSI user provider such that if
    `managehome` is enabled, then it will load and unload the user's profile.
    This will create the profile if necessary and apply the appropriate DACL
    to the profile and subdirectories.
    
    This commit follows the Microsoft recommended way of creating a user
    profile: http://support.microsoft.com/kb/196070/en-us

commit 1075b7462092ba30b172298e3c624c5c0f2cca24
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 28 14:53:27 2012 -0700

    (#15560) Refactor LogonUser
    
    Previously, the ADSI utility code validated a user's password by
    attempting a network logon session as that user. However, the ability to
    create a logon session and use the resulting process token is something
    that is generally useful, in say the next commit.
    
    This commit refactors the call to `LogonUser`, adds a helper method for
    checking the validity of a password, and modifies the ADSI code to call
    it.
    
    The call to `LogonUser` remains the same except that the MSDN docs say to
    specify a '.' as the domain for local user accounts, and we null out the
    token handle prior to calling LogonUser instead setting it to
    "\x20\x20\x20\x20" which could be interpreted as a valid handle.

commit 7efbfc62dc2e09e40dd835e4b0a457b37a717a1b
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Aug 29 13:06:51 2012 -0700

    Maint: Large or complex HEREDOC strings w/ no interpolation should be single-quote type
    
    We were getting accidental interpolation of \t and \n sequences in the desc string
    for the file type's content parameter. To avoid this, any description string which:
    
    * Does not deliberately interpolate values from the surrounding code
    
    AND
    
    * Is long enough or complex enough that it can't be read in a single glance
    
    ...should probably be the single-quoted type of HEREDOC instead of the
    double-quoted type. This commit changes a bunch of HEREDOCs that match this
    description.

commit b14554fb80363306da923de25fc4075225233507
Merge: e91e263 adfc27e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Aug 29 13:18:56 2012 -0700

    Merge pull request #944 from nfagerlund/maint/2.7.x/node_clean_help
    
    Maint: Fix borked help/man output for node clean

commit 13e01097494ceed8479d17ddeded75deedf3a64c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 29 00:38:34 2012 -0700

    (#15591) Skip test that causes segfault on Windows
    
    Previously, this test would segfault on Windows with ruby 1.8.7 p370, but
    not p334. The test can never work on Windows as currently written
    (Kernel.fork). And we can't mark it as pending, because rspec attempts to
    run the test, expecting either a failure or exception, but ruby segfaults.
    So we have to skip entirely on Windows.
    
    Note in the merge up to 3.x, this spec file has been removed.

commit e91e263f550b7d5a2f5455014d400e044237a8b2
Merge: 7cc9434 f10d364
Author: Ken Barber <ken@bob.sh>
Date:   Wed Aug 29 13:05:30 2012 -0700

    Merge pull request #1083 from daniel-pittman/maint/2.7.x/no-dot-rspec
    
    maint: remove .rspec entirely

commit 3fef903fba85c92d14f93efda625d40c00f40ada
Merge: b9a519b 88171aa
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 29 13:04:43 2012 -0700

    Merge branch 'ticket/3.x/16137-windows-build' into 3.x
    
    * ticket/3.x/16137-windows-build:
      Maint: Use pending block
      Maint: Make paths absolute on Windows
      (#16137) Delay evaluation of config and var directories

commit 88171aa435e25361024573afeb219b82dea75151
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 29 12:48:42 2012 -0700

    Maint: Use pending block
    
    This commit removes the `fails_on_windows` filter in favor of a pending
    block. This way we document what tests don't currently pass on Windows,
    and it ensures that the test fails or raises. If the test runs without a
    problem, the test will be reported as a failure, so that we know the test
    is no longer pending.

commit f10d3642fb2a89965a079498b437b069ce97de8a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Aug 29 12:54:59 2012 -0700

    maint: remove .rspec entirely
    
    There isn't much good reason to force a set of rspec options on everyone,
    especially because these override any user configuration.
    
    If you really want to configure the way rspec works, modify ~/.rspec instead.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b9a519b4d29cd8894dafd9d2d2d6a4406da4baaf
Merge: 3f62908 224d380
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Aug 29 12:43:21 2012 -0700

    Merge pull request #1076 from gsamokovarov/move-singleton-require
    
    Move singleton require to puppet/util/storage.rb

commit 7cc943405d3ec0ee6e0cf1ec5c092d72a028d2b8
Merge: 71e5028 c8152d4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Aug 29 12:43:11 2012 -0700

    Merge pull request #1020 from gleb/ticket/2.7.x/15920_fix_sexp_ignore_comments_in_puppel_el
    
    (#15920) Make forward-sexp ignore comments in puppet-mode.el

commit 71e5028b1abae71da83ef3b639352da8e66319fc
Merge: 5db4c6e 4ffc02d
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Aug 29 12:38:22 2012 -0700

    Merge pull request #1081 from joshcooper/maint/2.7.x/rspec-color
    
    (Maint) Enable colorized rspec output on Windows

commit 33bf085f6fa0df9d529d05afa0ac13da0eb13985
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 29 12:09:54 2012 -0700

    Maint: Make paths absolute on Windows
    
    Previously, the tests were failing, because we were expecting paths of the
    form `/etc`, but the puppet settings code expands them. So we expand the
    expected value to match.

commit 54acfbae8552441dc1077273408fb8852148faf8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 29 12:09:00 2012 -0700

    (#16137) Delay evaluation of config and var directories
    
    Previously, the tests were failing when running as root (on Windows),
    because we were evaluating the config and var directory locations before
    stubbing `Puppet.features.root?`.
    
    This commit uses a let block to delay evaluation until after we've stubbed
    root or not.

commit a32b2c3590e47024c26162f46574c92e1c80430c
Author: rahul <rahul@puppetlabs.com>
Date:   Sat Aug 18 23:39:28 2012 -0700

    (#15886) commit the complete commands at the end.
    
    Previously, the provider was applying the setconfig commands as soon as
    it was called. This caused problems when the commands that were being called
    needed to be called in a transactional manner
    (i.e eth,exclusive -> eth:ip,shared). This uses flush to pass the required
    commands at once through a pipe to zonecfg rather than do it one at a time.

commit 819d7da3266d542d17c5ca846e563c26f04abe05
Author: rahul <rahul@puppetlabs.com>
Date:   Sat Aug 18 23:39:50 2012 -0700

    (#15886) getstatus should rename ip-type to iptype
    
    previously, getstatus parsed the output of zonecfg info which contained
    key `ip-type`. However, we are looking for the key `iptype`. this caused
    the zone provider to not detect when iptype was changed, and always assume
    the default value 'shared'. This commit gets the ip-type and assigns it to
    iptype.

commit f61aba1d236341368d337728aa773439b723ef2b
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 22 13:20:41 2012 -0700

    (#15886) remove ZoneConfig and ZoneMultiConfig
    
    Remove the zone specific properties from types, and move their handling to the provider.
    This is done so that we can avoid stepping on the toes of puppet core and override methods
    that have default behaviors except when necessary. The zone type is also more cleaned up
    so that it can serve as a base for other container implementations.
    
    Type: the properties that earlier relied on ZoneMultiConfigProperty are now moved to
    Puppet::Property::List. The methods should and insync? are added to override the behaviors in
    the parent methods. The should method in parent joins the array values together before
    comparison. However, we do not want this behavior, and instead want it to remain as an array.
    Hence we override should. We also override insync?  which uses should in parent for the same
    reason.
    
    Provider: the def_prop and def_multiprop now handles the definition of properties. They
    add the methods prop(), prop=(), and prop_conf() to each properties that the provider provides.
    
    The prop_conf() method is needed for getting the text to send to zonecfg on configure.

commit 8431d17cd073a3af2470a549ce2d87ae6851fa73
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 22 12:54:51 2012 -0700

    (Maint) simplify line2hash, ensure iptype exclusive property is correct
    
    Updated line2hash so that the method is succinct and simple, and added test cases for it.

commit 08b3b61412a01d3f29aa8ac6754114db670db5ae
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 22 12:05:37 2012 -0700

    (#15886) Refactor state machine
    
    The zone type has an internal statemachine that ensures that the state
    transition is linear from configured -> installed -> running.
    Previously, the state machine was intertwined with the code of zone
    type. This commit extracts the statemachine so that thestatemachine is
    in its own class
    
    In order to remove future confusion, we also rename newvalue to seqvalue
    and ensure that the newvalue is called from within the seqvalue. The
    seqvalue is so named to indicate that the order of declaration of the
    seqvalues determine the order of progression of states in the state machine.
    Since we call parent newvalue from inside the seqvalue, we can now avoid using
    munge which was added for this reason.
    
    - Added test cases for fsm

commit 2ea8e662a24592882fd97871aa1a160de6f10aaf
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 22 11:44:15 2012 -0700

    (Maint) Type Zone : fix formatting, comments
    
    Add comment explaining why ensure:retrieve is necessary, added the output
    of zone info to explain the regex, Fix format space, refactored global
    retrieve to make it simple and succinct, simplify autorequire(:zfs),
    setstatus, updated the regex in getconfig so that it matches the output
    better. Updated the test case for getconfig

commit 8e535bbb1fa8b67f7d9cdada3ec5b16a3eeaec7c
Author: rahul <rahul@puppetlabs.com>
Date:   Mon Aug 20 14:33:01 2012 -0700

    (Maint) - simplify methods in ZoneMultiConfigProperty (adds wrap).
    
    This patch extracts the arrification into a single method wrap,
    and shortens the method definitions by removing redundant code.

commit da2eca15fd3f265fafb5bd9eefb87750a58d58ba
Author: rahul <rahul@puppetlabs.com>
Date:   Mon Aug 20 15:40:34 2012 -0700

    (Maint) dont fail on path unless absolutely required.
    
    Previously, ensure=>running was required to specify the path. However,
    if the zone is already configured, we dont really need the path.
    This patch gets rid of that requirement.
    - adds spec tests for start.

commit 7b4ac10d6a15b143dae9204e54e109e746fa35bf
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Aug 29 11:03:46 2012 -0700

    (#15731) Move explicit fingerprints to hash
    
    Move the explicit fingerprints for certificates and certificate requests
    to a hash within the normal pson data. This commit makes the format of
    the pson:
    {
      ...
      fingerprint: <current fingerprint algorithm>
      fingerprints: {
        default: <current fingerprint algorithm>
        SHA1: <sha1 fingerprint>
        SHA256: <sha256 fingerprint>
        SHA512: <sha512 fingerprint>
      }
    }
    
    Clean up the tests to reduce duplication and improve clarity of what is
    actually being tested in each case.

commit 4ffc02d22093f0b76046a51eee603932a9b14f62
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 29 00:41:06 2012 -0700

    (Maint) Enable colorized rspec output on Windows
    
    Commit `83cfe9d` added colorized rspec output by default. Unfortunately,
    this doesn't work on Windows and causes ANSI escape characters to be
    printed to stdout.
    
    Although we load the `win32console` gem while requiring puppet, rspec
    always writes to `$stdout` and `$stderr` that it was started with. So
    later when the `win32console` gem overwrites those streams, the formatters
    have already been created with the old ones.
    
    This commit modifies the spec helper to reset the stdout and stderr
    streams on the configuration object, as well as each of the formatters.
    Unfortunately, the formatter does not expose an accessor for its output
    variable. I tested with 2.9 and 2.11, and both work as expected, i.e.
    color on Windows.
    
    This commit doesn't change behavior on non-Windows platforms.

commit 3f62908494d6194bf1bba9c2fe5260570a7f7e9c
Merge: c0ff98d b53e600
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Tue Aug 28 17:51:50 2012 -0700

    Merge pull request #1080 from zaphod42/ticket/3.x/16137-unable-to-start-puppet-as-a-service
    
    (#16137) Tilde expansion should only occur for normal users

commit b53e60018bef2228f178ce330883747cdb602a45
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 28 17:33:15 2012 -0700

    (#16137) Tilde expansion should only occur for normal users
    
    The previous fix for #15185 caused File.expand_path to be called on
    the user default config and var directories even when running as root.
    This caused puppet starting as a service to fail because the HOME
    environment variable is not set when most services are started.
    
    This change ensures that the File.expand_path will only happen on a path
    with a '~' when we are running as a non-root user, in which case the
    HOME env var should always be there. As a part of untangling this code,
    this also teases apart the Windows path handling from the Unix path
    handling and allows us to use the more "Windowsy" path for the user's
    local directories.

commit 43590bde8bc28d5bbc2a4bf682ddbac72f0317d1
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 28 17:31:50 2012 -0700

    (Maint) Remove trailing whitespace

commit bccaddc11fd7786434838b5ba26d1ecbe94b9fdd
Merge: 9852f1a c388011
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Aug 28 15:19:05 2012 -0700

    Merge branch '1.x'

commit c388011f2dffef1a1cd259db7e0b2b894dd5f309
Merge: c74d9bc 62492ba
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Aug 28 15:18:58 2012 -0700

    Merge branch '1.0rc' into 1.x

commit 62492ba4642a730da16dd6d2381f318f273a8139
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Aug 28 14:57:26 2012 -0700

    Updating CHANGELOG for 1.0.0, changing hiera dependency to ~> 1.0

commit c0ff98d31fe311b45c301654e50d1310e12d5284
Author: Curtis Ruck <ruckc@yahoo.com>
Date:   Mon Aug 27 21:15:44 2012 -0400

    (#16137) Ensure HOME is set before attempting ~ expansion

commit 8b05f2adbac4e30526c74b21f21a9b338f248c57
Author: Curtis Ruck <ruckc@yahoo.com>
Date:   Mon Aug 27 21:15:44 2012 -0400

    (#16137) Ensure HOME is set before attempting ~ expansion

commit 224d38044931950935a41a60dfa579e6e3a0253f
Author: Genadi Samokovarov <udf@genadi.workstation>
Date:   Tue Aug 28 14:03:47 2012 +0300

    Move singleton require to puppet/util/storage.rb

commit 5db4c6ed9003209924e8d1eb3a3efd5d63f150d3
Merge: 1f3732c 700caba
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 27 14:52:23 2012 -0700

    Merge branch 'backport-15739_report_format_version' into 2.7.x
    
    * backport-15739_report_format_version:
      (#15739) Bump report_version since #10064 change its format

commit 700cabaab0055871c33f1b3e851b5080818b8f68
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Thu Aug 16 09:56:24 2012 -0700

    (#15739) Bump report_version since #10064 change its format
    
    With #10064, we changed the report format to include the
    environment. However that patch did not bump the report_version
    and it should have.  This retroactively bumps the version
    without changing the format, which might be bad too, but it'd
    be worse to change it again...

commit 30ac4a643ba08b31a2a9c2503395e83fdd373f19
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Aug 27 14:30:17 2012 -0700

    (#16139) Provide accessors for @puppet_version and @report_format in
    reports
    
    Prior to this commit, some of the data that was useful / necessary
    to write a complete report processor was only accessible via
    instance variables, while the vast majority of the data was available
    through accessor methods.  This commit simply adds accessors for
    puppet_version and report_format so that authors of report processors
    aren't forced to interact with instance variables.  This should
    make report processor implementation a bit more consistent, and
    provides a little bit of abstraction from the underlying implementation
    details.

commit 197dd261985ac5ee043324c0a00d15c85427e364
Merge: 0b64439 605e34d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 27 14:30:35 2012 -0700

    Merge branch '15739_report_format_version' into 3.x
    
    * 15739_report_format_version:
      (#15739) Bump report_version since #10064 change its format

commit 605e34d463ba837983cabcff8bb1232751ebab40
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Thu Aug 16 09:56:24 2012 -0700

    (#15739) Bump report_version since #10064 change its format
    
    With #10064, we changed the report format to include the
    environment. However that patch did not bump the report_version
    and it should have.  This retroactively bumps the version
    without changing the format, which might be bad too, but it'd
    be worse to change it again...

commit 0b64439b17136db7194f3c8209476eecdf56f91c
Merge: 5479591 d834e76
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Mon Aug 27 11:02:36 2012 -0700

    Merge pull request #1070 from vrthra/ticket/3.x/6143_fix_zpool
    
    (#6143) ensure that destroy works for zpools

commit d834e76027acbfad899cf3e7e89cf53d56d8d729
Author: rahul <rahul@puppetlabs.com>
Date:   Fri Aug 24 15:35:34 2012 -0700

    (#6143) ensure that destroy works for zpools
    
    Previously the method was named delete rather than destroy.

commit 54795911e78ca40a2007459f4b04dc373df2f009
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Aug 24 15:46:50 2012 -0700

    Updating CHANGELOG, PUPPETVERSION for 3.0.0-rc4

commit ea34f1ff4c6c823f43623f07103cdda0fcdb804b
Merge: 42232c1 adcab02
Author: Matthaus Litteken <mlitteken@gmail.com>
Date:   Fri Aug 24 15:38:06 2012 -0700

    Merge pull request #1069 from ahpook/15966_facter_version
    
    (#15966) Update facter version dependencies and build versions for 3.0.0rc4

commit adcab02d907799f4c8e37724b1f113864cff5fca
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Fri Aug 24 15:14:59 2012 -0700

    (#15966) Update gem.rake task for correct facter version dependency

commit 6050526b434611a282e1d0cb3d6510ad7b4c902f
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Fri Aug 24 14:46:45 2012 -0700

    (#15966) Update README.me for correct facter version dependency
    
    We're not requiring facter 2, just a reasonably-recent 1.6.

commit e6b4878331680a73ae8857ac11999fb322e6cebf
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Fri Aug 24 14:45:28 2012 -0700

    (#15966) Update packaging files for 3.0.0rc4
    
    This bumps the version built to 3.0.0-0.1rc4 per convention.
    The RH and suse spec files' facter version dependencies are also updated.

commit 42232c16449b8383dc093ed5f99408366ce60355
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 24 14:23:43 2012 -0700

    (Maint) Update version of puppet listed in gemspec
    
    This also updates the required facter version to reflect what v3.0.0
    needs

commit 1a2e8fc508d2a7837b541e54be11cca6dcb6affc
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Aug 24 22:22:34 2012 +0100

    (#14822) Use feature confine for feature tests during run
    
    Fixes two providers to use the "confine :feature" statement, allowing for the
    features to be re-evaluated during a run instead of only once.

commit c6e1aa3e501c0b84d82a8dad113ee8009e1a33c0
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Aug 24 22:21:36 2012 +0100

    (#14822) Re-evaluate features if they previously were false
    
    Allow features to be re-evaluated each time they are checked, if they
    previously evaluated to false.  This allows for providers by features to have
    dependencies installed during a run and then for the feature state to change
    from false to true.
    
    Caching of feature results that were previously true has been kept.  Caching of
    blocks used to evaluate features remains unaffected and are still run only once.

commit 247463e7a79c470c8b063272643a5801cef3f9f2
Merge: e7d3c3e e06012e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 24 10:40:47 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (Maint) Remove dependency on Facter 2.0

commit e06012e9f760468b87b66663a9a8a028b7d0aa5b
Merge: e5d075c cdf2b6c
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Fri Aug 24 10:39:39 2012 -0700

    Merge pull request #1068 from zaphod42/maint/3.x/puppet-3-can-use-facter-1.6
    
    (Maint) Remove dependency on Facter 2.0

commit cdf2b6cc1cf798942dd3475ea93fb999b1cf1c81
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 24 10:16:00 2012 -0700

    (Maint) Remove dependency on Facter 2.0
    
    Previously a hard dependency had been made on Facter 2.0. As the release
    has neared it turns out that Facter 2.0 is not ready for a release and
    Puppet really does not need any functionality that is present in that
    version of Facter. This removes this dependency, which allows Puppet to
    use the existing Facter 1.6.x series and thereby decouples the release
    of the two systems.

commit e7d3c3e2337d81a2c04d7261e418167cbd886813
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 23 16:58:51 2012 -0700

    (Maint) Tighten up assertion to find the cause of a flicker
    
    The test for the message emitted for calling an incorrect action on a
    face sometimes fails because it sees "Could not run Puppet configuration
    client: Not a directory - /dev/null/state/agent.pid" instead. This
    changes the way the assertion is done so that the test failure will
    provide more information about what else is in the log at the time of
    the failure, which might help in tracking down what is going wrong.

commit a229e85681b68804b7dc80c217d637e57d1430ce
Merge: baf28b8 e5d075c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 23 15:03:13 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#7788) Cache paths from older rubygem versions
      (#7986) check if pkg is the default provider for opensolaris
      (#7986) make solaris pkg versionable.
      (Maint) : fix the jenkins failure for setconfig

commit e5d075cfe42f96bffde4cc230feef5f3436339bb
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 23 14:54:23 2012 -0700

    (#7788) Cache paths from older rubygem versions
    
    Older rubygems seem to have a problem where they begin looking for files
    in the wrong locations after a few calls. This showed up in the spec
    tests as several failures in different failures, but with the following
    one as the most directly showing the problem:
    
      1) Puppet::Util::Autoload when reloading files changes should be seen by changed? on the instance using the short name
         Failure/Error: @autoload.load("myfile")
         Errno::ENOENT:
           No such file or directory - /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/specifications/rake-0.8.7.gemspec
         # /home/hudson/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/site_ruby/1.8/rubygems.rb:490:in `read'
         # /home/hudson/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/site_ruby/1.8/rubygems.rb:490:in `each_load_path'
         # /home/hudson/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/site_ruby/1.8/rubygems.rb:486:in `each'
         # /home/hudson/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/site_ruby/1.8/rubygems.rb:486:in `each_load_path'
         # /home/hudson/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/site_ruby/1.8/rubygems.rb:640:in `latest_load_paths'
         # /home/hudson/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/site_ruby/1.8/rubygems.rb:639:in `each'
         # /home/hudson/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/site_ruby/1.8/rubygems.rb:639:in `latest_load_paths'
         # ./lib/puppet/util/rubygems.rb:45:in `directories'
         # ./lib/puppet/util/autoload.rb:169:in `gem_directories'
         # ./lib/puppet/util/autoload.rb:173:in `search_directories'
         # ./lib/puppet/util/autoload.rb:96:in `get_file'
         # ./lib/puppet/util/autoload.rb:64:in `load_file'
         # ./lib/puppet/util/autoload.rb:208:in `load'
         # ./spec/unit/util/autoload_spec.rb:190
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `instance_eval'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:80:in `run'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:173:in `with_around_hooks'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example.rb:77:in `run'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:355:in `run_examples'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `map'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:351:in `run_examples'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:337:in `run'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `run'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `map'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/example_group.rb:338:in `run'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `run'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `map'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:28:in `run'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/reporter.rb:34:in `report'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/command_line.rb:25:in `run'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:69:in `run'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/gems/rspec-core-2.9.0/lib/rspec/core/runner.rb:10:in `autorun'
         # /home/hudson/.rvm/gems/ruby-1.8.7-p334@noFeatures/bin/rspec:19
    
    This commit caches the first call to get the paths for older rubygems.

commit 75c0640ec8bf41ca0679e3744163af3319d3ef4a
Merge: 8116593 e2b322c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 23 13:59:21 2012 -0700

    Merge branch 'ticket/3.x/11004_pkg_provider' of git://github.com/vrthra/puppet into 3.x
    
    * 'ticket/3.x/11004_pkg_provider' of git://github.com/vrthra/puppet:
      (#7986) check if pkg is the default provider for opensolaris
      (#7986) make solaris pkg versionable.

commit e2b322cb78ee651d9b29457e945e8c64b1387b2d
Author: rahul <rahul@puppetlabs.com>
Date:   Sat Aug 18 16:36:44 2012 -0700

    (#7986) check if pkg is the default provider for opensolaris
    
    Modified pkg_spec test case to verify that pkg is the default provider for opensolaris

commit 34bb371ea68605ece1e827b87caf529afbac70e9
Author: rahul <rahul@puppetlabs.com>
Date:   Sat Aug 11 00:40:00 2012 -0700

    (#7986) make solaris pkg versionable.
    
    Changes:
      * Add :versionable and :upgradable to features
      ** Ensurable now returns version rather than present/absent
      * Enable :defaultfor solaris 5.11
      * Change update to use pkg update, and ensure that we ignore return 4
      * Update the test cases to reflect these.

commit 8116593bc2a97253a51c6b975d0265404a50f801
Merge: f6d2505 20baf09
Author: vrthra <9@vrtra.net>
Date:   Wed Aug 22 16:11:55 2012 -0700

    Merge pull request #1064 from vrthra/ticket/3.x/8200_fix_jenkins_break
    
    (Maint) : fix the jenkins failure for setconfig

commit 20baf09f5324858c941e785cdb8315845ec915cc
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 22 16:07:44 2012 -0700

    (Maint) : fix the jenkins failure for setconfig
    
    Previously, the spec tests were failing because the exit status and output was not stubbed properly.
    This commit ensures that the values are stubbed properly.

commit baf28b81ca0a5a34d263b3b3d48a4c31bb72e6f9
Merge: 5717bae f6d2505
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Aug 22 15:05:26 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#7788) Rely on Rubygems caching of directories
      (#7788) Extend Puppet using rubygems

commit f6d2505c80948fd0db5cd2f1b4eb10cccbc96d0c
Merge: 21a1350 9ad191c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Aug 22 15:00:01 2012 -0700

    Merge branch 'ticket/3.x/7788-rubygems' into 3.x
    
    * ticket/3.x/7788-rubygems:
      (#7788) Rely on Rubygems caching of directories
      (#7788) Extend Puppet using rubygems

commit 9ad191cb579a769e7ae36875e5476d4c799ef725
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 8 17:25:05 2012 -0700

    (#7788) Rely on Rubygems caching of directories
    
    Previously the list of rubygem directories was kept in a thread local
    cache. Instead of doing that outright we'll try relying on the rubygem
    caching before we go down the path of trying to do that ourselves.

commit 2a12fdd5cf46bbbac20833116a5bdaa4e8bf5665
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Thu Jun 21 23:58:59 2012 -0400

    (#7788) Extend Puppet using rubygems
    
    The autoloader includes rubygems in the search path when searching for
    modules to load. Puppet can now load things like Faces, report
    processors, and parser functions using rubygems.
    
    Example:
    
        $ gem install puppetlabs-cloud_provisioner-1.0.4.gem
        ...
        Successfully installed fog-1.3.1
        Successfully installed guid-0.1.1
        Successfully installed puppetlabs-cloud_provisioner-1.0.4
    
        $ puppet help
        Usage: puppet <subcommand> [options] <action> [options]
    
        Available subcommands:
        ...
        node_aws          View and manage Amazon AWS EC2 nodes.
    
    This patch adds a new `Puppet::Util::RubyGems#directories` method for
    locating the latest gems and their load paths. This method is used in
    two places:
    
     * When searching for subcommands
     * When auto loading plug-ins
    
    Updated specs are included.

commit 5717bae9f0db9b7ac1efda325556991715e2522e
Merge: 3d978b4 21a1350
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 22 13:28:15 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#15975) Add tests for http methods that accept blocks

commit 21a1350a38e767e10774bd4106353141356693ca
Merge: e5665f6 4d53965
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 22 13:28:02 2012 -0700

    Merge branch 'maint/3.x/15975_add_tests_for_request_methods' into 3.x
    
    * maint/3.x/15975_add_tests_for_request_methods:
      (#15975) Add tests for http methods that accept blocks

commit 4d53965a16402383ea6dd7e34d0bbe736578469a
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed Aug 22 11:32:03 2012 -0700

    (#15975) Add tests for http methods that accept blocks
    
    This commit does the following:
    
    * Add support for passing a block to the #request_post method
    * Adds tests that verify that blocks are properly yielded to for
      the methods that do accept them.

commit 3d978b407c70f7b7776a9e6309db5c3b63fc0390
Merge: 2eb2609 e5665f6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 22 09:48:34 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#15797) Disable RedHat services in all run levels
      (Maint) Whitespace only cleanup
      (#15797) Add test coverage for redhat service provider
      (#15797) Change the argument to chkconfig from 'on' to 'reset'
      Update CHANGELOG, conf/redhat/puppet.spec for 2.7.19
      Fix typo in create_resources function's description string

commit e5665f64d2d8c33f73f7dbc469b229df46179411
Merge: 3ab990c 1f3732c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 22 09:48:24 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      (#15797) Disable RedHat services in all run levels
      (Maint) Whitespace only cleanup
      (#15797) Add test coverage for redhat service provider
      (#15797) Change the argument to chkconfig from 'on' to 'reset'
      Update CHANGELOG, conf/redhat/puppet.spec for 2.7.19
      Fix typo in create_resources function's description string
    
    Conflicts:
    	CHANGELOG
    	conf/redhat/puppet.spec
    	spec/unit/provider/service/redhat_spec.rb

commit 1f3732ca176f7dd68223206cb99bce23ab81bb33
Merge: 2657012 65dbdea
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 22 09:41:41 2012 -0700

    Merge branch 'ticket/2.7.x/15797_redhat_chkconfig' into 2.7.x
    
    * ticket/2.7.x/15797_redhat_chkconfig:
      (#15797) Disable RedHat services in all run levels
      (Maint) Whitespace only cleanup
      (#15797) Add test coverage for redhat service provider
      (#15797) Change the argument to chkconfig from 'on' to 'reset'

commit 65dbdea6b0ebfb3fe3536c5da21d50fed149c8fb
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 22 09:33:17 2012 -0700

    (#15797) Disable RedHat services in all run levels
    
    Without this patch applied the `chkconfig <name> off` command is used to
    disable services.  This command operates on run levels 2,3,4 and 5 by
    default.  This behavior is a problem because the `chkconfig <name>
    reset` method may turn the service on in run levels 0,1 or 6.
    
    This patch fixes the problem by explicitly disabling the service in all
    run levels.

commit 5ef0df09dbb1e55e25df58b0d0a42f327250b8ec
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 22 09:31:19 2012 -0700

    (Maint) Whitespace only cleanup
    
    This patch is a simple whitespace only minor cleanup of the redhat
    service provider.  I noticed some indentation problems while in the file
    so I re-indented the whole thing with ggVG= in vim.

commit 7ca6b70f262377a4363c1c34a0db10f848d64af1
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Aug 20 17:34:51 2012 -0700

    (#15797) Add test coverage for redhat service provider
    
    Without this patch there is no test coverage to validate that the
    service provider actually calls chkconfig with the reset argument
    instead of the on argument.

commit d2012aec0a2cce06f8db830c3f4d5a4950fe9ce0
Author: Eric Sorenson <eric.sorenson@puppetlabs.com>
Date:   Wed Aug 15 16:01:35 2012 -0700

    (#15797) Change the argument to chkconfig from 'on' to 'reset'
    
    Per the man page, 'reset' is more correct because it uses
    the runlevels specified in the chkconfig header line, rather
    than always using '2345'. This fixes #15797.

commit 2eb260997642e89fbd82afc4b6594a6687c1e235
Merge: a660841 3ab990c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 21 16:14:44 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#15975) Proxy the request_get block to Net::HTTP
      (Maint) Fix Puppet::Util.execute warning

commit 3ab990c999cd8dedbcfcabdc87c593784d65f615
Merge: 52d7112 0988e47
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 21 16:12:23 2012 -0700

    Merge branch 'fix/3.x/environment_acceptance_tests' into 3.x
    
    * fix/3.x/environment_acceptance_tests:
      (#15975) Proxy the request_get block to Net::HTTP
      (Maint) Fix Puppet::Util.execute warning

commit 0988e47d69c27ea8aa4358d242aaff8f2b8d755e
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Aug 21 10:38:11 2012 -0700

    (#15975) Proxy the request_get block to Net::HTTP
    
    The fix in a40639a is insufficient because it silently drops the block
    passed to the request_get block.  This is a problem because it causes
    file content to be silently dropped and truncated to zero bytes.
    
    This patch fixes the problem by proxying the get request block along to
    the underlying implementation in Net::HTTP.

commit a47ed9c6fbec545b4add52001a0de2f0994d5f4d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 21 15:44:57 2012 -0700

    (Maint) Fix Puppet::Util.execute warning
    
    Without this patch applied the end user receives a nasty deprecation
    warning when running `puppet agent` with a `puppet.conf` that configured
    the node terminus to exec as in the following example:
    
        [main]
        node_terminus = exec
        external_nodes = $confdir/enc.rb
    
    This a problem because we shouldn't issue warnings to the users about
    our own use of our own code.
    
    This patch fixes the problem by proxying the execute method from the
    object that is self when the find method is called from the child class
    using super.

commit 2657012dd00308d06fdf46b2bbf00daffbea3162
Merge: 0b08868 f0c112b
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Aug 21 14:52:21 2012 -0700

    Merge branch '2.7rc' into 2.7.x

commit f0c112b18097ff4abd098d9b5659cf94628a2c74
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Aug 21 14:46:40 2012 -0700

    Update CHANGELOG, conf/redhat/puppet.spec for 2.7.19

commit a660841e60becd83f284f1cd29ac901c31addcec
Merge: 8230a26 52d7112
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 21 10:49:52 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#15975) Add missing methods to new HTTP::Connection class

commit 52d7112bbb4bee0d1887440c9eed3101a315e632
Merge: b47fb9e a40639a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 21 10:49:12 2012 -0700

    Merge pull request #1061 from cprice-puppet/bug/3.x/http-request-get
    
    (#15975) Add missing methods to new HTTP::Connection class

commit a40639a521d7b88080a5414da1eae8af17829e80
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Aug 21 10:38:11 2012 -0700

    (#15975) Add missing methods to new HTTP::Connection class
    
    Some of the callers who were getting an instance of the
    new HTTP::Connection class via HttpPool#http_instance
    were expecting it to provide the newer request_* methods
    that are available on a Net::HTTP instance, so that (e.g.)
    they can pass in a block to be executed against the response.
    
    Prior to this commit the HTTP::Connection object did not
    expose those methods; this adds them, which should
    fix some failing acceptance tests.

commit 8230a26feea34377a9efcbc7d948a0056de7a0a8
Merge: 5082211 b47fb9e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 21 10:18:10 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (Maint) Fix Puppet.version in 3.x
      (#8200) Change path from parameter to property
      (#8200) Munge the ensurable value
      (Maint) Update the test cases to use the 'let'
      (#8200) Ensure zonecfg errors are caught
      (#15547) correct 'pending' values to correct if check for solaris.

commit b47fb9e86ec1d48eb931fcba801bbb03e84741f5
Merge: edf196f bb8c396
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 21 10:17:58 2012 -0700

    Merge branch 'fix/3.x/fix_version_string' into 3.x
    
    * fix/3.x/fix_version_string:
      (Maint) Fix Puppet.version in 3.x

commit bb8c396f1d775a9608afed645db69f202cf11f82
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 21 10:13:38 2012 -0700

    (Maint) Fix Puppet.version in 3.x
    
    Without this patch applied the Puppet 3.x branch is mis-reporting its
    version as 2.7.19.  This is a problem because the spec helper uses the
    `Puppet.version` method to determine how it should construct a
    Puppet::Parser::Scope instance for parser function testing.  The
    incorrect version string is causing the scope instance to be constructed
    incorrectly ultimately causing the test failures with stdlib 3.x and
    master.
    
    This patch restores the Puppet.version to 3.0.0-rc3 which was the
    version string prior to the problem being introduced in b33d517.

commit edf196f4ecbf8172763b28fb400489b5ebdde28d
Merge: 0dfd42c 96e2586
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 20 23:59:43 2012 -0700

    Merge branch 'ticket/3.x/8200_validate_param' into 3.x
    
    * ticket/3.x/8200_validate_param:
      (#8200) Change path from parameter to property
      (#8200) Munge the ensurable value
      (Maint) Update the test cases to use the 'let'
      (#8200) Ensure zonecfg errors are caught

commit 96e25862f91fe2aaa31255c7f8813344e6747634
Author: rahul <rahul@puppetlabs.com>
Date:   Fri Aug 17 17:28:05 2012 -0700

    (#8200) Change path from parameter to property
    
    Previously path was a parameter which resulted in it not being included in
    the resources listing. However since this is a required attribute, we
    change it to a property instead.
    
    We also remove the path validation from global validate and instead add
    this check in each place that path is required.

commit 6019ea95a3f5000d8469de7faa41f87196b8c3fd
Author: rahul <rahul@puppetlabs.com>
Date:   Fri Aug 17 17:26:05 2012 -0700

    (#8200) Munge the ensurable value
    
    Previously, the ensure property was always out-of-sync, because we were
    comparing the current symbol value against the should string value. This
    occurred, because the type's ensurable methods redefine
    `Puppet::Parameter.newvalue`, which has the side-effect of no longer
    converting string should values to symbols.
    
    This commit converts the should value to a symbol by defining a munge
    method. It is a temporary measure until the real issue can be fixed in
    15886.

commit b376054945ef8111bb9a5d614aa0642b6da1f22a
Author: rahul <rahul@puppetlabs.com>
Date:   Sat Aug 11 11:32:24 2012 -0700

    (Maint) Update the test cases to use the 'let'
    
    Changes:
      - updated the invocations to use the new let(:xxx) syntax
      - move each test to method specific contexts
      - ensure that stubbed commands specify arguments (zoneadm)
      - add more tests

commit a14dd652db7bb7c5046d9f7146ec3351af4bd49b
Author: rahul <rahul@puppetlabs.com>
Date:   Sat Aug 11 11:29:04 2012 -0700

    (#8200) Ensure zonecfg errors are caught
    
    zonecfg can return 0 even though it failed to apply a configuration. We
    can catch it only if we check for the output. We now check for
    /not allowed/ to verify that the property was applied.
    
    Previously, we were using using `zonecfg -z zone -f -` to read commands
    from stdinput and using IO.popen. However, we do not need to do this as
    we pass config commands one at a time, and can invoke zonecfg with the
    command directly. Hence removed the popen invocation from code for a
    simpler exec.

commit 0dfd42cb2a8b70076af140d8738cd01e62822eb6
Merge: b45b4a2 836b8cd
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 20 23:41:51 2012 -0700

    Merge branch 'ticket/3.x/15547_correct_pending' into 3.x
    
    * ticket/3.x/15547_correct_pending:
      (#15547) correct 'pending' values to correct if check for solaris.

commit 836b8cdce4bc7f6f25563334e54d7cd7e3cda2a1
Author: rahul <rahul@puppetlabs.com>
Date:   Sat Aug 11 04:42:54 2012 -0700

    (#15547) correct 'pending' values to correct if check for solaris.
    
    Previously, the the pending examples were attempting to skip tests on
    Solaris, but were actually skipping tests on all platforms.

commit 0b08868c48de20bba5f8442e0c7a6f496a859be3
Merge: 5bba56b b2c3675
Author: nfagerlund <nick.fagerlund@puppetlabs.com>
Date:   Mon Aug 20 18:05:14 2012 -0700

    Merge pull request #1058 from nfagerlund/typo/2.7.x/create_resources
    
    Fix typo in create_resources function's description string

commit b2c367590ffaae73d0a5d0621da5bf0af5bdd47d
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Aug 20 18:02:05 2012 -0700

    Fix typo in create_resources function's description string
    
    This documentation used a hash rocket in a variable assignment instead of the
    required equals sign. This commit fixes the typo.

commit 50822116f43bc1aa0a7aa12885efee40f3ddd53b
Merge: b620f21 b45b4a2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Aug 20 15:41:40 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#15464) Exclude gem command from bundler
      Revert "Revert "Merge branch 'ticket/2.7.x/15464_a_gemfile_would_improve_contributor_on-boarding' into 2.7.x""
      (#15975) Extract HTTP methods from REST Indirector

commit b45b4a2fd4378a47a45e7e522396e45f0ac29b15
Merge: 6858f02 5bba56b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Aug 20 15:41:20 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      (#15464) Exclude gem command from bundler
      Revert "Revert "Merge branch 'ticket/2.7.x/15464_a_gemfile_would_improve_contributor_on-boarding' into 2.7.x""
    
    Conflicts:
    	README_DEVELOPER.md
    	lib/puppet.rb
    	tasks/rake/gem.rake

commit 5bba56b4f67e6e0dfcded756926ed40af63314ed
Merge: 1d1a216 48a9cc2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Aug 20 15:35:03 2012 -0700

    Merge branch 'ticket/2.7.x/15464_gemfile_try_2' into 2.7.x
    
    * ticket/2.7.x/15464_gemfile_try_2:
      (#15464) Exclude gem command from bundler
      Revert "Revert "Merge branch 'ticket/2.7.x/15464_a_gemfile_would_improve_contributor_on-boarding' into 2.7.x""

commit 48a9cc2a9adce08a09fe52feaedafc4e010b6767
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Aug 20 15:25:22 2012 -0700

    (#15464) Exclude gem command from bundler
    
    This patch simply excludes the `gem` command from the dependency
    handling of Bundler with the `rubygems-bundler` gem installed.
    
    This patch also updates the README to describe the resolution to the
    spec test failures we've been seeing when Puppet contains a Gemfile in
    the project root.
    
    To summarize: Use of RVM is considered dangerous
    
    We're able to work around the problem, but the hijacking of shell
    builtin commands is a maintenance burden we're not willing to shoulder,
    hence RVM being considered a dangerous tool.

commit 54ea4feb40fe4a3e3dad63962e602b6aaa074673
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Aug 20 15:24:44 2012 -0700

    Revert "Revert "Merge branch 'ticket/2.7.x/15464_a_gemfile_would_improve_contributor_on-boarding' into 2.7.x""
    
    This reverts commit 76ef99b3ea5baeeaa3482d0b3617a1b799c7028c.

commit 6858f02d2b59566aef6c3bc33c8d23fb4f3fab52
Merge: 6d6df63 fa32691
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Aug 20 14:30:18 2012 -0700

    Merge branch 'refactor/3.x/extract-http' into 3.x
    
    * refactor/3.x/extract-http:
      (#15975) Extract HTTP methods from REST Indirector

commit b620f219351685efb26e826ece92b0287296fd9e
Merge: def6988 6d6df63
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 20 14:23:53 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      Revert "Merge branch 'ticket/2.7.x/15464_a_gemfile_would_improve_contributor_on-boarding' into 2.7.x"
      (#15464) Make Puppet.version settable via Puppet.version=
      (#15693) Allow restart command to be specified
      (#15464) Make Puppet usable as a Gem from source
      Move Puppet version into lib/puppet/version.rb
      (#15464) Make contributing easy via bundle Gemfile
      (Maint) Fix rspec options file

commit 6d6df63549a86fd96b5f6b3a9d2925033c056b8d
Merge: 55b04ff 1d1a216
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 20 14:17:35 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      Revert "Merge branch 'ticket/2.7.x/15464_a_gemfile_would_improve_contributor_on-boarding' into 2.7.x"
      (#15464) Make Puppet.version settable via Puppet.version=
      (#15693) Allow restart command to be specified
      (#15464) Make Puppet usable as a Gem from source
      Move Puppet version into lib/puppet/version.rb
      (#15464) Make contributing easy via bundle Gemfile
      (Maint) Fix rspec options file

commit 1d1a21605ea385e261e7076ba5cb0f12e4990b54
Merge: 76ef99b e067c2a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 20 14:03:24 2012 -0700

    Merge pull request #1051 from joshcooper/ticket/2.7.x/15693-windows-service
    
    (#15693) Allow windows service restart command to be specified

commit def6988be3e49dc1c234ca15457a3331524df244
Merge: 7d762b1 55b04ff
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Aug 20 11:36:55 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#16042) Remove deprecated Functions methods
      (#15912) Make function access consistent
      (Maint) Skip crontab filetype tests on Windows
      Update CHANGELOG, conf/redhat/puppet.spec for 2.7.19rc3
      (#14283) Call Tempfile#close and #unlink separately
      (#14283) Raise an error when crontab returns non-zero on AIX
      (maint) Refactor filetype specs
      (maint) Consolidate flat file tests
      (maint) Remove spurious `puts` line
      (maint) Whitespace cleanup
      (maint) Include backtrace in re-raised exception
      Ruby 1.9.3 has a different error when `require` fails.
      (#15291) Add Vendor tag to Puppet spec file
      (#14283) Fix suntab filetype when run as normal user
      maint: Refactor suntab and aixtab filetype
      Add packaging support for fedora 17

commit 76ef99b3ea5baeeaa3482d0b3617a1b799c7028c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Aug 17 17:18:14 2012 -0700

    Revert "Merge branch 'ticket/2.7.x/15464_a_gemfile_would_improve_contributor_on-boarding' into 2.7.x"
    
    This reverts commit 8919d749c7f5973ab16c7db2b3a64fd1af8bf6b1, reversing
    changes made to 97f742d70603f626dc40000aae72c299603282c6.

commit 6350e6c574243426600ccc5dab2bba50f30ce9b0
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Aug 18 01:29:02 2012 +0200

    (#15959) Do not support system group on Solaris and HP-UX
    
    According to
    
    http://nixdoc.net/man-pages/hp-ux/man1/groupadd.1m.html
    http://docs.oracle.com/cd/E19963-01/html/821-1462/groupadd-1m.html
    
    neither Solaris nor HP-UX support the -r switch to create system groups
    so the groupadd provider should not claim to support system_groups on
    these platforms.

commit c404d99761e6199d8e475fd37e6ea5ce784b2e16
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Aug 18 01:25:13 2012 +0200

    maint: Reduce stubbing in groupadd spec
    
    It seams to be more reliable to work with real objects instead

commit c50f552edb672bfceea6e07d312a52078bce7c42
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Aug 18 01:17:10 2012 +0200

    maint: Rearrange tests in groupadd unittests
    
    Tests are now ordered by method, so if modifications have to be done
    done in the provider code, it will be easier to track the according spec
    tests that have to be changed.

commit 5e64c1f56ba07968db307ad64a86b0e6170ed0ab
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Aug 18 01:10:26 2012 +0200

    (#15959) Do not support system user on Solaris and HP-UX
    
    According to
    
    http://docs.oracle.com/cd/E19963-01/html/821-1462/useradd-1m.html
    http://nixdoc.net/man-pages/hp-ux/man1/useradd.1m.html
    
    neither Solaris nor HP-UX support the -r switch to create system users
    so the useradd provider should not claim to support system_users on
    these platforms.

commit 03c7ddf1541217e634881c38858581e4d46a6ab4
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Aug 18 00:52:38 2012 +0200

    maint: Reduce stubbing in useradd spec
    
    It seams to be more reliable to work with real objects instead

commit e111f564dcae80b7424db4cd1775feee2cef78ab
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Fri Aug 17 23:06:25 2012 +0200

    maint: Rearrange tests in useradd unittests
    
    Tests are now ordered by method, so if modifications have to be done
    done in the provider code, it will be easier to track the according spec
    tests that have to be changed.

commit 55b04ff85812e7caa16417029d40eb573ede475d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 17 16:27:33 2012 -0700

    (#16042) Remove deprecated Functions methods
    
    The `functions` and `rmfunction` methods were deprecated in 2.7.x and
    are being removed from 3.x.

commit 15df5b0ee8b2f728d86d8ce502092f152cca90d8
Merge: f235aa8 97f742d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 17 16:20:43 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      (#15912) Make function access consistent
      (Maint) Skip crontab filetype tests on Windows
      Update CHANGELOG, conf/redhat/puppet.spec for 2.7.19rc3
      (#14283) Call Tempfile#close and #unlink separately
      (#14283) Raise an error when crontab returns non-zero on AIX
      (maint) Refactor filetype specs
      (maint) Consolidate flat file tests
      (maint) Remove spurious `puts` line
      (maint) Whitespace cleanup
      (maint) Include backtrace in re-raised exception
      Ruby 1.9.3 has a different error when `require` fails.
      (#15291) Add Vendor tag to Puppet spec file
      (#14283) Fix suntab filetype when run as normal user
      maint: Refactor suntab and aixtab filetype
      Add packaging support for fedora 17
    
    Conflicts:
    	CHANGELOG
    	conf/redhat/puppet.spec
    	lib/puppet/parser/functions.rb
    	lib/puppet/util/filetype.rb
    	spec/unit/application_spec.rb
    	spec/unit/parser/functions_spec.rb

commit 8919d749c7f5973ab16c7db2b3a64fd1af8bf6b1
Merge: 97f742d d7cb3c7
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Aug 17 15:48:34 2012 -0700

    Merge branch 'ticket/2.7.x/15464_a_gemfile_would_improve_contributor_on-boarding' into 2.7.x
    
    * ticket/2.7.x/15464_a_gemfile_would_improve_contributor_on-boarding:
      (#15464) Make Puppet.version settable via Puppet.version=
      (#15464) Make Puppet usable as a Gem from source
      Move Puppet version into lib/puppet/version.rb
      (#15464) Make contributing easy via bundle Gemfile
      (Maint) Fix rspec options file

commit d7cb3c75aebbef6a766f4765e61b7eb6e326d147
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Aug 17 15:01:13 2012 -0700

    (#15464) Make Puppet.version settable via Puppet.version=
    
    Without this patch applied the version string of Puppet is dynamically
    set from the `git describe` tag in the Rakefile using monkey patching.
    
    This is problematic because this causes a constant to be re-defined
    which issues a warning in Ruby.
    
    This patch fixes the problem by implementing the Puppet.version= module
    method.  The Rakefile will now set the Puppet version by using `require
    'puppet/version'` and calling `Puppet.version = %x{git describe ...}`
    
    Using a module method also has the benefit of making it easier to
    intercept and mock Puppet version specific behavior.
    
    From this point forward, the method Puppet.version should but used to
    obtain the version string instead of the constant Puppet::PUPPETVERSION.

commit fa32691db3a7c2326118d528144fd1df824c0bb3
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed Aug 15 08:21:40 2012 -0700

    (#15975) Extract HTTP methods from REST Indirector
    
    There were some useful HTTP methods (http_get, http_post, ...,
    http_request) in the Puppet::Indirector::REST class. Most noteworthy
    is the http_request method, which provides some useful error
    handling so that users get less confusing error messages when something
    goes wrong with their certificates / SSL setup.
    
    These methods would be useful in several other places (among them: the
    HTTP reports processor and several places in the puppetdb termini), but
    prior to this commit it was very difficult (or impossible) to use them
    without doing a very confusing dance with unnecessary ruby mixins and
    inheritance from classes in the Indirectory hierarchy.
    
    This commit factors these methods out into the new
    Puppet::Network::HTTP::Connection class, and tweaks
    Puppet::Network::HttpPool to return instances of this new class.
    
    It also refactors the HTTP report processor to use
    Puppet::Network::HTTP::Connection.

commit 97f742d70603f626dc40000aae72c299603282c6
Merge: 86dac63 f9cfec7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 17 14:57:08 2012 -0700

    Merge pull request #1045 from pcarlisle/ticket/2.7.x/15912-functions
    
    (#15912) Make function access consistent

commit f9cfec7869638ade6af4a6b945ef0e5df745dea3
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 9 14:17:20 2012 -0700

    (#15912) Make function access consistent
    
    Parser functions are normally stored against either the root environment or
    the current environment. Before this commit, methods to access functions were
    not consistent about retrieving functions from both possible places. This adds
    a set of private methods to consistently access functions, and makes the
    public methods use these.
    
    Paired-with: Josh Cooper <josh@puppetlabs.com>

commit e067c2a6533bee4cc40c3a44385272c6db0979ef
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 15 14:54:21 2012 -0700

    (#15693) Allow restart command to be specified
    
    Previously, the windows service provider did not support specifying a
    custom restart command, and instead would always just call stop & start.
    The ability to customize restarts is desirable in cases where the service
    must be stopped in order to overwrite a file the service is using.
    
    This commit refactors the `instances`, `restart`, and `restartcmd` methods
    from the `base` provider to a new parent `service` provider.  It also
    refactors the `ucommand` and `texecute` methods.
    
    There are no changes to the `base` service provider other than those
    methods residing in the parent `service`.
    
    The `windows` service provider no longer implements the `restart` method
    directly as its parent `service` provider handles this correctly.
    
    I didn't refactor the `start` and `stop` methods to make them
    customizable, because it's not as critical for Windows and it was more
    changes than I wanted to make now.

commit 86ca0d8272dba54d0e2420fa55da2ebf08ad3da1
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Aug 28 09:25:35 2012 -0700

    (#16160) handle aclmode and shareiscsi removal.
    
    Two properties aclmode and shareiscsi was removed from solaris 11 in two different builds.
    of these aclmode may have been added back in some builds. Earlier, puppet used to fail to list
    instances in solaris 11 due to these properties being absent. This patch ensures that failures
    due to these properties are caught and a default value returned if we get an error.

commit ccc3a566fdde5426822489ffaeb25dc8abf26967
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Aug 28 07:29:36 2012 -0700

    (#16157) ensure that mirror and raidz are used as subcommands
    
    Previously, the subcommands mirror and raidz was repeated for each element of the array.
    This resulted in incorrect commands when multiple values were specified. This patch makes
    sure that these are used in the subcommand position and only once.

commit c8d4d972aa06d69e4c908d8ff250e20ff108f50d
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Aug 28 07:28:03 2012 -0700

    (#16157) Puppet should not print out spurious messages
    
    Previously, the stderr stream was not captured resulting in sprurious messages in the console.
    we direct the stderr to devnull so that the 'no such pool' error is not seen when looking for status.

commit 07f0b0e7e88417227a3593d639465604f017652c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Aug 16 22:20:31 2012 -0700

    (#15464) Make Puppet usable as a Gem from source
    
    Without this patch it is difficult to use Puppet as a rubygem from a
    source checkout.  This is a problem because tools like Bundler will
    install the gem from rubygems.org if it believes the gem is not
    installed.
    
    This patch fixes the problem by adding a `puppet.gemspec` file and
    information in README_DEVELOPER about how to make the repository clone
    available as a gem using the GEM_PATH and two symbolic links.

commit b33d517ca2aca6c113f136a753be9b8d49f74ec5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Aug 16 20:57:33 2012 -0700

    Move Puppet version into lib/puppet/version.rb
    
    Without this patch the entire Puppet library must be loaded in order to
    get the version.  This is problematic for executed metadata files like
    the rubygems gemspec or bundler Gemfile.
    
    This patch fixes the problem by moving the Puppet.version method and
    Puppet::VERSION constant into an isolated small file.  Gemfile and
    gemspec files may determine the version using `require 'puppet/version'`

commit 1c1a383f7b2fec041d70f6b485f3bbe42c75b460
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Aug 16 16:44:02 2012 -0700

    (#15464) Make contributing easy via bundle Gemfile
    
    Without this patch the process of figuring out how to quickly set up a
    development and testing environment for the Puppet _application_ (not a
    gem library) is unnecessarily complicated.
    
    This patch addresses the problem by providing a Bundler compatible
    Gemfile that specifies all of the Gem dependencies for the Puppet 2.7
    application.
    
    Puppet contributors can now easily get a working development and testing
    environment using this sequence of commands:
    
        $ git clone --branch 2.7.x git://github.com/puppetlabs/puppet.git
        $ cd puppet/
        $ bundle install # Install all required dependencies
        $ rspec
    
    The .noexec.yaml file excludes the `rake` command so that the Gemfile
    doesn't raise an exception if the `rubygems-bundler` Gem is installed
    and automatically running `bundle exec` for us.
    
    The Gemfile.lock contains the exact dependency versions.  This file is
    included in the version control system because we're treating Puppet as
    an application rather than a library.

commit 83cfe9daf492d95d3cd9b63fcdfb9f76f9ab9b4f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Aug 16 16:57:29 2012 -0700

    (Maint) Fix rspec options file
    
    The options file for spec testing is wrong without this patch applied.
    spec.opts is no longer read by RSpec, instead .rspec in the root of the
    repository is read.
    
    This patch removes the old and unused file and replaces it with .rspec
    which enables progress format, color, and randomized tests.

commit 7d762b1c62a3ba5654ce4298000b4350e6041ff0
Merge: 13c27c4 f235aa8
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 16 15:01:12 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      Add rake task to regenerate parser
      Test that facts preserve case
      (#15762) Clean up `reload_facter` method
      (#15752) Remove references to ca_days
      (#15771) Remove deprecations in Type objects
      (#15769) Remove `type` attribute for package
      (#15762) Remove support for Facter versions below 1.5.5
      (#15763) Remove `mkmodelmethods` method
      (#15755) Remove `set_default_format` method
      (#15753) Remove `reportserver` setting
      (#15751) Remove `--apply` option
      (#15765) Raise error for invalid values for recurse parameter
      (#15760) Require $ on variables in definitions
      (#15766) Remove 'path' as a valid parameter for the mount point
      (#15765) Don't allow setting recursion depth with `recurse`
      (#15758) Remove fact downcasing
      (#15750) Remove setting `cacrl` to false
      (#15752) Remove ca_days
      (#15852) Remove version check from puppet_spec.rb
      (#15852) Allow rc in Puppet and Facter version strings

commit f235aa838404e03dbf5578c8304ed8df2729b73a
Merge: 7344d3d ac9e54f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 16 14:47:29 2012 -0700

    Merge branch 'maint/3.x/remove_deprecations' into 3.x
    
    * maint/3.x/remove_deprecations:
      Add rake task to regenerate parser
      Test that facts preserve case
      (#15762) Clean up `reload_facter` method
      (#15752) Remove references to ca_days
      (#15771) Remove deprecations in Type objects
      (#15769) Remove `type` attribute for package
      (#15762) Remove support for Facter versions below 1.5.5
      (#15763) Remove `mkmodelmethods` method
      (#15755) Remove `set_default_format` method
      (#15753) Remove `reportserver` setting
      (#15751) Remove `--apply` option
      (#15765) Raise error for invalid values for recurse parameter
      (#15760) Require $ on variables in definitions
      (#15766) Remove 'path' as a valid parameter for the mount point
      (#15765) Don't allow setting recursion depth with `recurse`
      (#15758) Remove fact downcasing
      (#15750) Remove setting `cacrl` to false
      (#15752) Remove ca_days

commit ac9e54f7493cd3237227c1b7b137f9fb30acc296
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 16 14:43:09 2012 -0700

    Add rake task to regenerate parser

commit 0ac62c7982b4a068a49b071fa1abe500cbf90a3e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 16 14:08:01 2012 -0700

    Test that facts preserve case

commit 1067858f1f7dc679829555293ffb42a4dc896ace
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Tue Aug 14 14:21:04 2012 -0700

    (#15762) Clean up `reload_facter` method
    
    Since all supported version of facter now have Facter.loadfacts,
    remove unnecessary conditional statements.

commit 6b4b9b58efdfc09c7e7e394419ef88e99affd969
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Tue Aug 14 12:02:47 2012 -0700

    (#15752) Remove references to ca_days
    
    Since ca_days itself has been removed, also remove other places
    in the code that reference it.

commit f03a9f173e63b3b1fb435da5659bda9c2d991fd3
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Fri Aug 10 10:31:27 2012 -0700

    (#15771) Remove deprecations in Type objects
    
    Remove several methods and parameters on Type objects that had
    previously been deprecated.

commit 881853e423eaa35e84bda0ea250cf6c48fc7aa43
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Thu Aug 9 11:56:53 2012 -0700

    (#15769) Remove `type` attribute for package
    
    Remove the `type` parameter for packages as it has been deprecated,
    `provider` should be used in it's place.

commit 2259cd06290792ac859c3606d445d52222c5a847
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Thu Aug 9 11:21:38 2012 -0700

    (#15762) Remove support for Facter versions below 1.5.5
    
    Previously, Puppet would work around the fact that Facter versions
    older than 1.5.5 were missing necessary functionality. Remove
    this functionality to add a hard dependency on Facter version
    1.5.5 or later.

commit 5944580d3dd50b261e25f96c949d34bd4a9a0a19
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Aug 8 16:30:20 2012 -0700

    (#15763) Remove `mkmodelmethods` method
    
    Remove deprecated `mkmodelmethods` method for Provider objects.
    `mk_resource_methods` should be used instead.

commit d5733e9679ce25b1ffd01e8ec3f2f0e76394478f
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Aug 8 14:10:33 2012 -0700

    (#15755) Remove `set_default_format` method
    
    Remove the `set_default_format` since it had previously been
    depreciated. `render_as` should be used instead.

commit a8ad220a7443ed9342d4a892c76e646223eb3d4e
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Aug 8 13:00:33 2012 -0700

    (#15753) Remove `reportserver` setting
    
    Remove `reportserver` setting as it has been deprecated.
    `report_server` should be used instead.

commit 30b6d8a072ec539bb4940a9895a333c863412e51
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Aug 8 11:21:32 2012 -0700

    (#15751) Remove `--apply` option
    
    Remove the `--apply catalog` option as `puppet --apply` has been
    deprecated. `puppet apply --catalog` should be used instead.

commit 1fc379d595ea6d4258e2e479e5439ec472534d74
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Aug 8 10:56:12 2012 -0700

    (#15765) Raise error for invalid values for recurse parameter
    
    Since the recursion depth can no longer be set with the `recurse`
    parameter (and should instead be set with the `recurselimit`
    parameter), do not allow integers as valid values for the `recurse`
    parameter. In addition, raise an error if the parameter is set to
    an integer value.

commit d0ff51ba43488b344328c6ac6512aec46eb4cdeb
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Aug 1 17:18:02 2012 -0700

    (#15760) Require $ on variables in definitions
    
    When listing parameters in a defined type or class definition, it was possible
    to list a paramter without a $ prefix. This has been deprecated since 2006. It
    is now required that every parameter begin with $.
    
    Deprecated example:
        define vhost (port = 80, vhostdir) { ... }
    
    Standard, now required version:
        define vhost ($port = 80, $vhostdir) { ... }

commit 0743a1a6e17adfd9a494715a720e70f974273dd8
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Aug 1 15:38:13 2012 -0700

    (#15766) Remove 'path' as a valid parameter for the mount point
    
    The `path` parameter has been deprecated (and now removed) for the
    mount point. `name` should now be used instead.

commit 1e2a112fafe1dd59f484f62c251d1b93b6e7b841
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Aug 1 14:20:57 2012 -0700

    (#15765) Don't allow setting recursion depth with `recurse`
    
    Remove the ability to set the recusion depth by setting the
    `recurse` parameter. The `recurselimit ` parameter should now be
    used instead.

commit ef6739f23303499b857ed5d45e4251a4da9b8fa2
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Aug 1 14:10:11 2012 -0700

    (#15758) Remove fact downcasing
    
    Remove `downcasefact` and `downcase_if_necessary` as downcasing
    of facts is no longer supported.

commit b227158e4f89c5831744660f3fb971dd9a785e61
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Aug 1 13:37:03 2012 -0700

    (#15750) Remove setting `cacrl` to false
    
    Remove support for setting cacrl to false. Puppet will now just
    ignore the CRL.

commit 4f75b72edc22161a51078b06fd52d346fc2e27f2
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Aug 1 10:40:07 2012 -0700

    (#15752) Remove ca_days
    
    Remove `ca_days` as it has been deprecated and should now be removed
    for 3.0. `ca_ttl` should be used in it's place.

commit 7344d3d459dd99951a34e21cea5c255948519f61
Merge: b04a222 e30d6ef
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Wed Aug 15 17:01:17 2012 -0700

    Merge pull request #1044 from haus/ticket/3.x/15852_allow_rc_version_strings
    
    (#15852) Remove version check from puppet_spec.rb

commit e30d6efbe975d79458a6aac0c52a5854a50cb7ad
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed Aug 15 16:44:44 2012 -0700

    (#15852) Remove version check from puppet_spec.rb
    
    This commit removes the version test from puppet, as it doesn't ensure any
    functionality of puppet, but only that the version string matches certain
    criteria.

commit b04a2222578e6459dc47210b14fde235f24da10d
Merge: 4cad795 ce2c4ce
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Wed Aug 15 16:34:11 2012 -0700

    Merge pull request #1036 from haus/ticket/3.x/15852_allow_rc_version_strings
    
    (#15852) Allow rc in Puppet and Facter version strings

commit 86dac63074d048a7a6405da18dd82645fd4213a6
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 15 12:36:08 2012 -0700

    (Maint) Skip crontab filetype tests on Windows
    
    The tests were failing due to `Puppet::Util.uid` not being implemented on
    Windows. Since crontab filetypes are not something that will ever be
    supported on Windows, this commit skips those specific tests.

commit 87f9f30a682decdb86be8f28af94facfe60ec508
Merge: 1a00a31 1d80007
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Aug 15 11:10:01 2012 -0700

    Merge pull request #1025 from joshcooper/ticket/2.7.x/14283-filetype-uid
    
    (#14283) Fix suntab and aixtab when run as unprivileged user

commit 13c27c45037edbbd0d601c496afdd1bcb1960708
Merge: 6c8853d 4cad795
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 15 07:48:21 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      Fix missing forge stub and directory check due to test change in 3.x branch rollup

commit 4cad795219d921bbcda5f081619aa5e75dcb317c
Merge: c1ac7c9 30cb5a5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Aug 15 07:48:02 2012 -0700

    Merge branch 'kbarber-ticket/3.x/pmt_missing_stub_on_test_nonexistent_dir' into 3.x
    
    * kbarber-ticket/3.x/pmt_missing_stub_on_test_nonexistent_dir:
      Fix missing forge stub and directory check due to test change in 3.x branch rollup

commit 30cb5a57d242b82ac787a147f3ee504f5d73222c
Author: Ken Barber <ken@bob.sh>
Date:   Wed Aug 15 13:03:04 2012 +0100

    Fix missing forge stub and directory check due to test change in 3.x branch rollup
    
    This fixes a test error that was being thrown by the
    modules/install/nonexistent_directory.rb file.
    
    In recent commits we added a more clever way to stub the forge host in 2.7.x,
    and obtain a forge hostname. This test however went from being a non-network
    capable test to a networked one in 3.x, so the rollup from 2.7.x->3.x meant our
    changes weren't applied to this particular case. This patch fixes that by
    adding the correct stubbing method 'stub_forge_on' to the top of the file.
    
    It also corrects a negated directory check which creaped in during merge up and
    ensures proper cleanup using the new teardown mechanism (like the other tests).

commit 6c8853d9aa81493cf57969064c6e80daed610f4e
Merge: 22380f8 c1ac7c9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 14 22:35:54 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#11870) Ignore uninstall keys that don't exist
      (Maint) Include the registry key path in the exception

commit c1ac7c99247a1fa715581ff1ae305a8a53e1136b
Merge: 167f34a ed2a4b4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 14 21:53:23 2012 -0700

    Merge branch 'ticket/3.x/11870-skip-absent-keys' into 3.x
    
    * ticket/3.x/11870-skip-absent-keys:
      (#11870) Ignore uninstall keys that don't exist

commit ed2a4b42d6a3d8a7c39f9fd028b61530010a9f18
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 14 21:17:43 2012 -0700

    (#11870) Ignore uninstall keys that don't exist
    
    Previously, we assumed the 4 combinations of (HKLM or HKCU) and (32 or
    64) registry paths always existed. When running puppet in an interactive
    logon session, this assumption appears to hold. However, when puppet
    runs as a service (under LocalSystem), the assumption fails as the
    registry key `Software\Microsoft\Windows\CurrentVersion\Uninstall`
    typically does not exist within the HKEY_CURRENT_USER hive. In that
    case, we would fail to enumerate the set of installed products.
    
    This commit changes the enumeration code to ignore errors that occur
    when the Uninstall key for a particular combination does not exist. This
    corresponds the Windows error code ERROR_FILE_NOT_FOUND[1]
    
    However, if an exception occurs for other reasons, e.g.
    ERROR_ACCESS_DENIED, then we re-raise the exception and fail.
    
    Also, the inner `open` call should never fail with ERROR_FILE_NOT_FOUND
    because we get a list of subkeys for the Uninstall key, and then open each
    subkey in turn.
    
    [1] http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx

commit 167f34abbdd850073116c9693395f01cef214626
Merge: 33c6719 19fdb8b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 14 17:23:37 2012 -0700

    Merge branch 'maint/3.x/include_key_path' into 3.x
    
    * maint/3.x/include_key_path:
      (Maint) Include the registry key path in the exception

commit 19fdb8bc5544d2813e481c230f75de04710dff2e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 14 17:21:15 2012 -0700

    (Maint) Include the registry key path in the exception
    
    Previously, it wasn't clear from the exception message which registry key
    we failed to open.
    
    This commit adds the registry key path to the message to debug issues we
    are seeing in CI, but is also generally helpful.

commit 22380f87091bd7be938b4fbe54294d0da52386de
Merge: 3afd83a 33c6719
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 14 16:08:27 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#11870) Pass a list of Arrays to multiple_yields
      (Maint) Fix assertion about locale to correct value.

commit 33c6719d3d8b76523cba0f9784064647c7674249
Merge: 5707644 fe1e1af
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 14 16:01:58 2012 -0700

    Merge branch 'maint/3.x/ruby193p0' into 3.x
    
    * maint/3.x/ruby193p0:
      (#11870) Pass a list of Arrays to multiple_yields

commit fe1e1af1c50b071080e2231a8a0ed3e694470281
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 14 15:49:58 2012 -0700

    (#11870) Pass a list of Arrays to multiple_yields
    
    Previously, I was passing a list of packages to mocha's multiple_yields,
    which on ruby 1.9.3-p0 results in an unexpected call to the `to_a`
    method on the mock object, but on 1.8.7 and later versions of 1.9.3 does
    not.
    
    The real issue is that I'm not calling multiple_yields correctly:
    
      Note that each +parameter_group+ should be an Array representing the
      parameters to be passed to the block for a single yield.
    
    This commit changes it to pass a list of Arrays, where each element in
    the array is yielded in turn (as opposed to the Array itself).
    
    This commit also adds names to the mock objects to assist with debugging
    when the expectation fails.

commit 5707644ea95fafdab201dcf637b05235ffd5a498
Merge: e037641 8370a7a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 14 14:13:18 2012 -0700

    Merge pull request #1034 from vrthra/maint_fix_locale
    
    (Maint) Fix assertion about locale to correct value.

commit 1a00a31c70fdfd5995a254bcc323616665804f71
Merge: 7051f19 8ec58c8
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Aug 14 14:08:44 2012 -0700

    Merge branch '2.7rc' into 2.7.x

commit 8ec58c8ccbb25251dae2cfd5ad86f9fe073dc9f1
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Aug 14 13:48:22 2012 -0700

    Update CHANGELOG, conf/redhat/puppet.spec for 2.7.19rc3

commit ce2c4ceab63597890dbb1085e83226535271282d
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Aug 14 13:18:34 2012 -0700

    (#15852) Allow rc in Puppet and Facter version strings
    
    Previously putting rc in the Puppet version string would fail, mainly because
    of a test that verified that the version only contained 3 dot separated
    integers. This commit updates the Facter dependency to correctly use 2.0.0-rc
    as the minimum version, as 2.0.0-rc is less than the previously required 2.0.0
    as specified by SemVer. It also removes the test that verified the Puppet
    version was a 'valid' 3 dotted integer version. That test is redundant, as the
    test that follows verifies that the version string is valid SemVer.

commit 3afd83a5586c7ccf470b8cac75b2a61a22fab9f2
Merge: 281d9f8 e037641
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 14 12:42:29 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#15346) Add spec test for --source when checking latest
      (#15346) add --source to the gem list command
      (#11870) Add compatibility with recent Solaris changes
      (Maint) Add logging for when Puppet is enabled/disabled.
      (#11870) Manage executable packages on Windows
      (#11870) Refactor package management logic for MSI
      (#11870) Deprecate the `:msi` provider
      (#11870) Add the ability to specify uninstall_options
      (#11870) Refactor the MSI provider to use package options
      Don't issue deprecation warnings for allow_ip
      (#15521) Convert to using host stub wrapper
      (#11870) Add package options parameter
      (#11870) Refactor windows-specific requires
      (#11870) Add registry module
      (Maint): Re-enable tests on Windows

commit e0376413bc9f6091586d8591f9cf09a02e38368a
Merge: 802e2a2 7051f19
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 14 12:40:53 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      (#15346) Add spec test for --source when checking latest
      (#15346) add --source to the gem list command
      (Maint) Add logging for when Puppet is enabled/disabled.
      (#15521) Convert to using host stub wrapper
    
    Conflicts:
    	acceptance/tests/modules/install/nonexistent_directory.rb
    	acceptance/tests/modules/search/by_description.rb
    	acceptance/tests/modules/search/by_keyword.rb
    	acceptance/tests/modules/search/by_module_name.rb
    	acceptance/tests/modules/search/communication_error.rb
    	acceptance/tests/modules/search/formatting.rb
    	acceptance/tests/modules/search/multiple_search_terms.rb
    	acceptance/tests/modules/search/no_results.rb
    	lib/puppet/agent/locker.rb

commit 7051f191e8b17e87e6b533efe0029df125ff4184
Merge: 1635e71 dd25c9e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 14 12:18:19 2012 -0700

    Merge branch 'ticket/2.7.x/15346_add_gem_source_parameter' into 2.7.x
    
    * ticket/2.7.x/15346_add_gem_source_parameter:
      (#15346) Add spec test for --source when checking latest
      (#15346) add --source to the gem list command

commit dd25c9e51861cda35a525454e97cafc205f00ebd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 14 12:16:08 2012 -0700

    (#15346) Add spec test for --source when checking latest
    
    This patch adds a single spec test to ensure checking the latest version
    of the gem honors the source attribute and passes this as an option to
    the gemlist method.

commit e9d10ca2332f7909c505134d9c78d2e18b7fa4b1
Author: Eric Stonfer <ericstonfer@yahoo.com>
Date:   Wed Jun 27 16:48:47 2012 -0400

    (#15346) add --source to the gem list command
    
    Without this patch the `gem list` command in the gem package provider
    will search all package repositories.  This is a problem because the end
    user is likely expecting Puppet to only search the specified repository
    instead of all repositories.
    
    This patch fixes the problem by passing the source parameter value onto
    the gem list command as the `--source` command line option.
    
        Commit message amended by Jeff McCune <jeff@puppetlabs.com>

commit 9852f1a4dc7de99ca51593f74e2023742334b08c
Merge: 5224852 c74d9bc
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Aug 14 10:51:16 2012 -0700

    Merge branch '1.x'

commit c74d9bcb428a479153cde73ece171e026195fdf7
Merge: df1a6a4 962453f
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Aug 14 10:50:58 2012 -0700

    Merge branch '1.0rc' into 1.x

commit 962453f6457305f80e2ef8d48b7c4be76c962b4c
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Aug 14 10:50:31 2012 -0700

    Updating CHANGELOG for 1.0.0rc3

commit 8370a7a6f80b0e8312d37c7dd72ab424c710d736
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Aug 14 10:15:09 2012 -0700

    (Maint) Fix assertion about locale to correct value.
    
    Previous merge from 3.x to master updated the locales incorrectly and
    overwrote a change for solaris specs (#15547) : validate locales as
    sentinel #43d86d40570140918009f2048f8998fb2200f81f. This update corrects
    it.

commit 802e2a2676cb30ccb86b951ff30657e858ec2363
Merge: 2e63e30 6af70b5
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Tue Aug 14 09:46:35 2012 -0700

    Merge branch '3.x' of github.com:puppetlabs/puppet into 3.x

commit 2e63e307b02ccb51d805d6a9bd0679ab4a8a2748
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Tue Aug 14 09:28:35 2012 -0700

    (#11870) Add compatibility with recent Solaris changes
    
    Since adding support for executable package types on Windows
    slightly changed the way arrays are dealt with as parameters, it
    was causing issues with the `install_options` parameter for
    Solaris. Refactor the way this parameter is dealt with to avoid
    incompatibility issues.

commit 6af70b5ba846bbce0062c39f71379d5dbe1dc887
Merge: 85ddb07 5814cde
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 13 22:34:59 2012 -0700

    Merge branch 'ticket/master/authconf-ip-deprecation-warning' of https://github.com/pcarlisle/puppet into 3.x
    
    * 'ticket/master/authconf-ip-deprecation-warning' of https://github.com/pcarlisle/puppet:
      Don't issue deprecation warnings for allow_ip

commit 1d800077c78a14dbc19faed2da43078746fede41
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 13 22:08:33 2012 -0700

    (#14283) Call Tempfile#close and #unlink separately
    
    Previously, we were calling `Tempfile#close!` which under ruby 1.8.7
    will call the finalizer's cleanup routine directly. That may raise an
    exception, e.g. Errno::EACCES, if the process is unable to unlink the
    file, i.e. Windows. In ruby 1.9, the `Tempfile#close!` method was
    changed to provide the same semantics as `#close` followed by `#unlink`.
    Rather than monkey patch Tempfile, we simply call close followed by
    unlink explicitly.

commit 7a7236157e4eb4981503efe44bd7646d0f957f49
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 13 21:54:53 2012 -0700

    (#14283) Raise an error when crontab returns non-zero on AIX
    
    Previously, the AIX crontab filetype had the same issue as the Sun one,
    the `:failonfail` argument was being set to false, so it would not raise
    an error when crontab returned a non-zero exit code. The only time the
    filetype raised an exception was if the command output contained the
    line: 'You are not authorized to use the cron command'
    
    This commit changes the AIX crontab filetype to raise an exception if
    crontab returns a non-zero exit code.
    
    If the user doesn't have any crontab entries, then the `#read` method
    will return an empty string as is done for on Solaris.
    
    If the command failed because the user doesn't have permission, then the
    filetype will raise an exception, as it did before.
    
    This commit also adds tests and an AIX crontab fixture.

commit d9c769880843bc4c048658c63d40d00170a5e9d5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 13 21:48:51 2012 -0700

    (maint) Refactor filetype specs
    
    This commit refactors the filetype specs to use `let`, especially the
    arguments passed to the execute method.
    
    It also adds a shared behavior for crontab file types and refactors the
    suntab type to use it.

commit bbdbb067758f6783ef8904cb5304ea8659d49d76
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 13 21:33:02 2012 -0700

    (maint) Consolidate flat file tests
    
    Previously the flat file tests were split into two example groups at the
    beginning and end of the file. This commit just consolidates them into a
    single example group.

commit 281d9f84263e2d8c9354138faf0a0b4594a9e697
Merge: d9dbebb 85ddb07
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Aug 13 18:15:55 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (Maint) Add logging for when Puppet is enabled/disabled.

commit 85ddb07685528d431fc097c1db8f4ff879e46f72
Author: Ashley Penney <apenney@gmail.com>
Date:   Mon Aug 13 19:55:17 2012 -0400

    (Maint) Add logging for when Puppet is enabled/disabled.
    
    Someone keeps disabling Puppet on our machines and we have no easy way
    to quickly check logfiles to see what happened.
    
    This patch fixes the problem by logging Puppet enable and disable state
    changes using `Puppet.notice`.

commit 1635e7124dab5ca8c9cba41155399cb7a9863ce0
Merge: c51c1a7 5ceb55c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Aug 13 17:44:10 2012 -0700

    Merge branch 'maint/2.7.x/log_agent_enable_disable' into 2.7.x
    
    * maint/2.7.x/log_agent_enable_disable:
      (Maint) Add logging for when Puppet is enabled/disabled.

commit 5ceb55cfa3a93372019a99626c1a06191aa3dc70
Author: Ashley Penney <apenney@gmail.com>
Date:   Mon Aug 13 19:55:17 2012 -0400

    (Maint) Add logging for when Puppet is enabled/disabled.
    
    Someone keeps disabling Puppet on our machines and we have no easy way
    to quickly check logfiles to see what happened.
    
    This patch fixes the problem by logging Puppet enable and disable state
    changes using `Puppet.notice`.

commit d9dbebb49875c49949d7274270b6532aaca9f537
Merge: b2936e4 6656567
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Aug 13 17:03:46 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#15940) Add test coverage for rdoc exclude option
      (#15853) Update gem dependencies to reflect rc ordering
      (#15940) Update puppet doc to ignore files and templates in modules
      (#7442) solaris: return "-1" for password_max_age when password aging is disabled
      (#7442) solaris: add tests for password_max_age attribute

commit 5224852f12a0a105fc91619541398c8596dbc959
Merge: 1c67670 df1a6a4
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Aug 13 17:03:23 2012 -0700

    Merge branch '1.x'

commit df1a6a45251813f92fbe2942509ba0beb01f4dd9
Merge: f7b45bb 4fe28b5
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Aug 13 17:03:16 2012 -0700

    Merge branch '1.0rc' into 1.x

commit 665656734eba37bb1dab58acd60c05b2a38e4c17
Merge: daa0a11 0875eec
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Aug 13 17:02:43 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      (#15940) Add test coverage for rdoc exclude option
      (#15940) Update puppet doc to ignore files and templates in modules
      (#7442) solaris: return "-1" for password_max_age when password aging is disabled
      (#7442) solaris: add tests for password_max_age attribute
    
    Conflicts:
    	lib/puppet/util/rdoc.rb

commit daa0a117cd32a8b2ad2711b3ae5af069d7a295e3
Merge: b2936e4 7100c4f
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Mon Aug 13 17:01:14 2012 -0700

    Merge pull request #1029 from haus/ticket/3.x/15853_add_rc_to_gem_dependencies
    
    (#15853) Update gem dependencies to reflect rc ordering

commit b2936e4a223776cca3e290e2a73f8549818e8447
Merge: eab30f3 0a41053
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Aug 13 16:57:55 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      Always set log functions on root environment
      Use TestHelper in old unit tests
      Convert expect..should to expect..to in configurer spec
    
    Conflicts:
    	spec/unit/parser/functions/create_resources_spec.rb
    	spec/unit/parser/functions/template_spec.rb
    	test/language/parser.rb
    	test/language/scope.rb
    	test/language/snippets.rb
    	test/lib/puppettest.rb
    	test/lib/puppettest/parsertesting.rb

commit 4fe28b53434cbc619d33844176232055e46c01e8
Merge: a7ed546 fd3fe17
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Mon Aug 13 16:54:44 2012 -0700

    Merge pull request #46 from haus/ticket/1.0rc/15570_add_hiera_puppet_rb_to_packages
    
    Add hiera_puppet.rb to debian, redhat packages, fix gem version dependency

commit c51c1a7306317db98a45dbe72acef0cc5f42299e
Merge: 0875eec fcd4957
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 13 16:50:20 2012 -0700

    Merge branch 'ticket/2.7.x/15521-use_dynamic_forge_locale_for_acceptance' of git://github.com/kbarber/puppet into 2.7.x
    
    * 'ticket/2.7.x/15521-use_dynamic_forge_locale_for_acceptance' of git://github.com/kbarber/puppet:
      (#15521) Convert to using host stub wrapper

commit 0875eecc413af7ea54a26c8fd5306c81d7dc2a49
Merge: dea709e 07aeef3
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Aug 13 16:45:58 2012 -0700

    Merge branch 'ticket/2.7.x/15940_puppet_doc_should_exclude' into 2.7.x
    
    * ticket/2.7.x/15940_puppet_doc_should_exclude:
      (#15940) Add test coverage for rdoc exclude option
      (#15940) Update puppet doc to ignore files and templates in modules

commit 07aeef3e1ab313db4684284c9be7c7b2e9713660
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Aug 13 16:37:12 2012 -0700

    (#15940) Add test coverage for rdoc exclude option
    
    Without this patch the addition of `<module>/templates/.*$` does not
    have test coverage.  In addition, the existing test fails because the
    arguments have changed.
    
    This patch fixes both problems by updating the spec tests appropriately.

commit 7100c4f178f45962805ff4a590ebb86ecfb801ac
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Aug 13 15:59:10 2012 -0700

    (#15853) Update gem dependencies to reflect rc ordering
    
    Facter 2.0.0rc is less than 2.0.0, so >= 2.0.0 will never be satisfied using
    the current Puppet gem dependencies. This commit updates those dependencies to
    have rc in the version, which will be correctly handled by modern rubygems and
    ignored by older rubygems. The rc can be removed once the releases are final
    and we no longer want users to be depending on rc releases.

commit f08dd53540350617fb2a63717bf2f000d3af81c1
Author: Lee Lowder <llowder@oreillyauto.com>
Date:   Mon Aug 13 16:32:45 2012 -0500

    (#15940) Update puppet doc to ignore files and templates in modules
    
    Without this commit puppet doc will parse some files inside of the
    files/ and templates/ sub directory of a module.  This is a problem
    because these files are not meant to contain puppet code.
    
    Conflicts:
    	lib/puppet/util/rdoc.rb

commit dea709e71b3e03ce7e9a7dc5e45ab89c36d17bdd
Merge: 0a41053 08c62da
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 13 16:22:37 2012 -0700

    Merge branch 'ticket/2.7.x/7442_solaris_password_max_age' into 2.7.x
    
    * ticket/2.7.x/7442_solaris_password_max_age:
      (#7442) solaris: return "-1" for password_max_age when password aging is disabled
      (#7442) solaris: add tests for password_max_age attribute

commit 08c62daaa5a798a6280dce37e50503dd6b541737
Author: Ken Dreyer <kdreyer@usgs.gov>
Date:   Fri Jul 27 17:24:19 2012 -0400

    (#7442) solaris: return "-1" for password_max_age when password aging is disabled
    
    If password aging is disabled for a user on Solaris, there is no
    artifact in the shadow file that indicates this. We need to get "-1"
    back to match functionality on other platforms.

commit e0b1e4026db046f0918daa91f08eba33c1f51d5b
Author: Ken Dreyer <kdreyer@usgs.gov>
Date:   Fri Jul 27 17:16:23 2012 -0400

    (#7442) solaris: add tests for password_max_age attribute
    
    This commit tests that password_max_age will properly read the values
    out of a /etc/shadow file. If password aging is disabled for a user on
    Solaris, there is no artifact in the shadow file that indicates this.
    We need to get "-1" back to match other platforms.

commit fd3fe17894dbee11341e0888bad144e30c7fa156
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Aug 13 15:22:05 2012 -0700

    Add hiera_puppet.rb to debian, redhat packages, fix gem version dependency
    
    Previously lib/hiera_puppet.rb was not installed on redhat or debian packages.
    This commit addresses that by adding the file to the spec/rules file
    accordingly. It also updates the gem version requriement for the hiera
    dependency to >= 1.0.0rc, as 1.0.0rc2 is not ~> 1.0.

commit 0a4105356a9265d6153246da1ae12af1578e791a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Aug 13 14:56:37 2012 -0700

    Always set log functions on root environment
    
    Set the logging parser functions (notice, err, etc) on the root environment.
    This also requires setting the current environment to be nil in
    Environment.clear by setting it directly on Thread.current.  Otherwise the
    default environment from puppet.conf is used. In tests this was interfering
    with the log functions being set on the root environment instead of the
    current environment.

commit b47e910b06b246e066089ea6a24a7619fea3f5e6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Aug 13 14:28:52 2012 -0700

    Use TestHelper in old unit tests
    
    This adds calls so that the old unit tests use the pre and post steps from
    Puppet::Test::TestHelper to clean up between tests.

commit 9815de4a6c7fcb65830a57daa0adc68b3bba5ef9
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Aug 13 15:33:25 2012 -0700

    Convert expect..should to expect..to in configurer spec

commit b273c77087dc16371d7f67f53d5c570162bc0559
Merge: eab30f3 07931e6
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Mon Aug 13 15:12:47 2012 -0700

    Merge branch 'ticket/3.x/11870-other-package-types' of https://github.com/joshcooper/puppet into 3.x

commit f2a4cca0863ef34c806fe6af42d60825ebb7f8c1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 9 15:15:28 2012 -0700

    (maint) Remove spurious `puts` line
    
    Previously, the suntab's write method was printing the contents of the
    crontab file to stdout.

commit c95bda74bf4e7e7a9cd73d258bbe8fe09923ac98
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 9 15:26:49 2012 -0700

    (maint) Whitespace cleanup
    
    Previously there was trailing whitespace and lines indented 4 spaces.
    Just reformatted the file, no code changes.

commit ed22b06cc4a72e3857b77cc8d01e8beaf2bca1c3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 9 15:25:38 2012 -0700

    (maint) Include backtrace in re-raised exception
    
    Previously, there were places where a rescued exception's message was
    not included in the newly raised exception. We also were not preserving
    the backtrace, which makes debugging more difficult.
    
    This commit ensures the original message and backtrace are included in
    the newly raise exception.

commit a7ed5461f7359cd7bce5ffa3a3ec9c1dd2211008
Merge: 5e516ee 0fbdd62
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Mon Aug 13 14:03:32 2012 -0700

    Merge pull request #45 from haus/ticket/1.0rc/15291_add_vendor_tag_to_spec
    
    (#15291) Add Vendor tag to Hiera-Puppet spec file

commit 0fbdd62cd9b4e2a4cb62dc48ac11af6f61b28fc1
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Aug 13 13:34:40 2012 -0700

    (#15291) Add Vendor tag to Hiera-Puppet spec file
    
    Previously the spec file had no Vendor tag, which left it undefined. This
    commit adds a Vendor tag that references the _host_vendor macro, so that it can
    be easily set to 'Puppet Labs' internally and customized by users easily. The
    Vendor tag makes it easier for users to tell where the package came from.

commit c985b934e61b70c5010e2af4ded6962309623802
Merge: 0d0ac9f 85f5543
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Aug 13 13:12:55 2012 -0700

    Merge pull request #1024 from haus/ticket/2.7rc/11325_fix_load_failure_regex
    
    Ruby 1.9.3 has a different error when `require` fails.

commit 85f5543a0963238d92a88d26adbab1a17543ee48
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 9 14:43:02 2012 -0800

    Ruby 1.9.3 has a different error when `require` fails.
    
    The text of the error message when load fails has changed, resulting in the
    test failing.  This adapts that to catch the different versions, allowing this
    to pass in all cases.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0d0ac9f3f28802835a3da07988a023fd1794adac
Merge: 097e8d7 b2d08a4
Author: MosesMendoza <mendoza.moses@gmail.com>
Date:   Mon Aug 13 11:02:00 2012 -0700

    Merge pull request #1023 from haus/ticket/2.7rc/15291_add_vendor_field
    
    (#15291) Add Vendor tag to Puppet spec file

commit b2d08a4bccf519314cf5a1028c7892440231e4fc
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Aug 13 10:53:48 2012 -0700

    (#15291) Add Vendor tag to Puppet spec file
    
    Previously the spec file had no Vendor tag, which left it undefined. This
    commit adds a Vendor tag that references the _host_vendor macro, so that it can
    be easily set to 'Puppet Labs' internally and customized by users easily. The
    Vendor tag makes it easier for users to tell where the package came from.

commit c8152d4288405ecf9bc8325027fc3bfeaf17055c
Author: Gleb Arshinov <gleb@barsook.com>
Date:   Sat Aug 11 17:58:38 2012 -0700

    (#15920) Make forward-sexp ignore comments in puppet-mode.el
    
    Enables parse-sexp-ignore-comments.
    
    Previously forward-sexp was broken by comments with unterminated
    strings. E.g. with the following manifest:
      foo {
        # won'
      }
    forward-sexp on the opening brace would get:
      forward-sexp: Scan error: “Unbalanced parentheses”
    
    The problem got introduced in commit
    1c02749e8b54616043f728ed18ddec1dc4353a2d (Committed patch from #1160).

commit eab30f3aa3cb7d5af55ac2bdff0a4e2d442a6b94
Merge: af762d8 a9335fc
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 10 12:35:11 2012 -0700

    Merge branch 'ticket/3.x/15644_fix_parse_line' into 3.x
    
    * ticket/3.x/15644_fix_parse_line:
      (#15644) ensure that pkg installation is non-interactive
      (#15644) refactor the parse_line so that it supports the newer format
      (#15644) add test case to check for packages that are yet to be installed.

commit af762d885f0f53c766513cf2af6a981dee0f8cd4
Merge: f0338b2 c985135
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 10 12:28:40 2012 -0700

    Merge branch 'ticket/3.x/7175-symbolize' into 3.x
    
    * ticket/3.x/7175-symbolize:
      (#7175) ensure ensurable uses symbols in zone
      (Maint) Removed unnecessary stubbing
      (#8200) validate only if we can (especially path)

commit a9335fc6bbd32d9b12a4579a5dc6d87ed412b93a
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 8 11:46:38 2012 -0700

    (#15644) ensure that pkg installation is non-interactive
    
    Earlier, pkg install did not have --accept parameter, which means that
    licenses would not be automatically accepted. Since puppet is a
    non-interactive process, this is not the correct behavior. This commit
    adds the --accept parameter to accept licenses during pkg installation.
    
    Earlier, pkg uninstall added -r always to the command for recursive
    uninstall. However, this was removed in the later version of the pkg
    command. This commit adds the logic to check for the version before
    doing `pkg uninstall -r mypkg`

commit 52417113bcb2a50261bdf853c6b24a1b1dde8308
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 8 11:46:30 2012 -0700

    (#15644) refactor the parse_line so that it supports the newer format
    
    Previously the parse_line conflated the different output formats of the
    older and newer `pkg list` commands. This commit splits the formats to
    separate regexes so that it is easier to manage. Especially if the pkg
    list format changes yet again.
    
    This commit simplifies self.instances, latest and query methods by
    removing redundant lines.
    
    Adds more comments to the methods, and changes the method names to reflect the
    method usage.
    
    Tests:
    - Update the package list output so that the format is correct
    (it is ufoxi - 5 dashes)
    
    - Earlier, when a pkg list line could not be parsed, the provider warned
    the user about this fact and continued. This behavior is dangerous. We
    change it to fail instead.
    
    - Added more test cases.

commit c9851357c8f7a77770c650199005d657f47893c1
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 8 10:21:57 2012 -0700

    (#7175) ensure ensurable uses symbols in zone
    
    zone provider when asked to ensure the state to running/install or any
    thing tries to find the value in state_index however, state_index values
    stores keys as string. This is wrong. The root cause is that
    ensurable returns values as string rather than symbols. This inturn is
    caused by state_name checking for string value in state_alias which is a
    symbol to symbol map, and not finding any, and returning itself.

commit ad0e2c37c0fb88c38cbc12fcadc228bcfde9099b
Merge: a95f3be f052729
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 10 11:29:43 2012 -0700

    Merge branch 'ticket/3.x/8200_validate_param' into 3.x
    
    * ticket/3.x/8200_validate_param:
      (Maint) Removed unnecessary stubbing
      (#8200) validate only if we can (especially path)

commit f0527290ff9a64dc8a149684749e92bdce0eb3d1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 10 10:42:38 2012 -0700

    (Maint) Removed unnecessary stubbing
    
    Previously, the spec test stubbed the zone resource. This commit creates
    a real resource specifying the provider to use. It also adds the type of
    exception and message that we're expecting to be raised.
    
    Paired-with: Rahul Gopinath <rahul@puppetlabs.com>

commit e317598f6919fba4bc0d768121dfc260fd0b2de3
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Jul 19 15:22:06 2012 -0700

    (#8200) validate only if we can (especially path)
    
    The global validate block is called even when `puppet resource zone` is
    called without any further arguments, so we add a check
    provider.get(:ensure) != :absent to make sure that we are indeed in
    zone creation stage before trying to validate. This could have been
    better done by `isrequired` method in parameter.rb however this is not
    hooked up now, so we are uanble to use it..
    
    The ip validation is refactored to make it clearer to read.

commit f0338b2f82d5be8e0ee8208c71b0054114848e6f
Merge: d64bf57 a95f3be
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Aug 10 11:12:54 2012 -0700

    Merge branch '3.x'
    
    * 3.x: (25 commits)
      (#8288) pkgadd - allow -G to be specified as an install option
      (#13938) Add dedup parameter to zfs provider
      (#15686) Fix `odd number of arguments for Hash`
      (Maint) Simplify spec test
      (#15686) Refactor install and uninstall methods
      (#15686) Test for package provider features
      (#15686) Ensure exception message is a string
      (#9416) Refactor zpool spec tests
      (#9416) Refactor zfs spec tests
      (#9416) Confine based on the presence of a `zpool` command
      (#9416) Rename zpool provider from solaris to zpool
      (#9416) Confine based on the presence of a `zfs` command
      (#9416) Rename zfs provider from solaris to zfs
      Add Puppet::Parser::Functions::clear for specs
      Clear Environment.current when calling Environment.clear
      Check that function loading worked correctly.
      Avoid stubbing Thread::new due to issues in newer mocha
      Rename specs to end in _spec.rb
      Don't require mocha in spec_helper
      Fix stubbing on nil in some specs
      ...

commit 25c1cdc82c8255d7585e0cec22702e14d8a9376a
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 8 11:45:20 2012 -0700

    (#15644) add test case to check for packages that are yet to be installed.
    
    Added the check for latest value in the test case,
    Added a new test case that checks for correct behavior in case the
    package is not installed.

commit a95f3be98d35e211626580361b9c3123bf6326d3
Merge: e3fba08 b4f508f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 10 02:25:15 2012 -0700

    Merge branch 'ticket/3.x/8288-pkgadd-local' into 3.x
    
    * ticket/3.x/8288-pkgadd-local:
      (#8288) pkgadd - allow -G to be specified as an install option

commit b4f508fa15da74504b9587ecc5f5588531a78506
Author: Rahul Gopinath <rahul@puppetlabs.com>
Date:   Thu Aug 9 12:57:33 2012 -0700

    (#8288) pkgadd - allow -G to be specified as an install option
    
    Before implementing this feature, pkgadd solaris could not specify {
    install_options=>options } as extra options in package manifest for
    puppet. This checkin adds the :install_option feature to the provider
    which enables the use of { install_options=> options } parameter. This
    checkin also adds the test cases for this feature.

commit e3fba08dc11f32122a88427b622e85a3f6ef7348
Merge: 6fd22f2 ef8dd5b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 10 01:50:58 2012 -0700

    Merge remote-tracking branch 'apenney/openbsd' into 3.x
    
    * apenney/openbsd:
      Fix this to use .read, not .open.
      The openbsd spec tests mistakenly used File.new instead of File.open.

commit 6fd22f224b86c0333861599be9d79204ce66996c
Merge: b7fe3db 0140e7a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 10 01:34:42 2012 -0700

    Merge branch 'ticket/3.x/13938-zfs-dedup' into 3.x
    
    * ticket/3.x/13938-zfs-dedup:
      (#13938) Add dedup parameter to zfs provider

commit 0140e7a10bc8ebd1cedbde0660852feba3d4f0be
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Fri Apr 13 09:55:05 2012 +0200

    (#13938) Add dedup parameter to zfs provider
    
    This patch to the zfs type/provider:
     - adds "dedup" to the list of properties
     - removes a "vscan" property which was listed twice
     - updates the spec to list every currently supported property

commit b7fe3db21ed58d06a3ad5ea5b91ef5b96d799d38
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 10 01:16:33 2012 -0700

    (#15686) Fix `odd number of arguments for Hash`
    
    On ruby 1.8.5, calling `Hash[array]` raises:
    
      ArgumentError: odd number of arguments for Hash
    
    This commit changes the `namemap` method to return a hash, where the
    keys are the names of puppet parameters and the values are the values
    obtained from the system.

commit 2df01b0d23b5f992eef214cb67bf5f70cd58a8df
Merge: 55f953b 84be441
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 9 23:48:42 2012 -0700

    Merge branch 'ticket/3.x/15686_s10_resource_failure' into 3.x
    
    * ticket/3.x/15686_s10_resource_failure:
      (Maint) Simplify spec test
      (#15686) Refactor install and uninstall methods
      (#15686) Test for package provider features
      (#15686) Ensure exception message is a string

commit 84be441e9b729eb6c6fdf017d7d544c30f41267f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 9 22:39:37 2012 -0700

    (Maint) Simplify spec test
    
    Modified the spec test to use the `described_class` method of the
    example group. Also simplified how the `resource` and `provider` were
    declared in the `let` blocks.

commit 701c073d7491bdba7eea6ec74615590728a9aed8
Author: Rahul Gopinath <rahul@puppetlabs.com>
Date:   Wed Aug 8 15:01:33 2012 -0700

    (#15686) Refactor install and uninstall methods
    
    Previously the install and uninstall methods duplicated the logic for
    appending options the the `pkgadd` and `pkgrm` commands. This commit
    refactors the logic into a single `prepare_cmd` method, and it removes
    the extra syntactic noice of parenthesis in method calls with no
    arguments.

commit 93464faeed8545f223d52c856d4b189838fec271
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 9 23:20:47 2012 -0700

    (#15686) Test for package provider features
    
    This commit adds tests to ensure that the sun package provider features
    are correct: installable, uninstallable, and upgradeable, but not
    versionable.

commit 41356a73809eb23ecd761c70fda8ab9ccb55b463
Author: Rahul Gopinath <rahul@puppetlabs.com>
Date:   Thu Aug 9 23:16:58 2012 -0700

    (#15686) Ensure exception message is a string
    
    Previously the execpipe method used to return an array as output, which
    if the child exit status was non-zero, caused an exception to be raised
    with the array as the error message, instead of a string.
    
    Also, previously, we relied on exception handling to know when a package
    is not present. But there are cases where no exception is raised, but
    the package output has an 'ERROR' string.
    
    This commit changes from `execpipe` to `execute`, which will raise an
    exception with the output of the `pkginfo` command.  It also explicitly
    looks for an 'ERROR' string in the package output.
    
    This commit also refactors the duplicate namemap so that it is defined
    only once, and removes the nil entries so that only keys of interest are
    retained.
    
    It also adds fixtures and spec tests for the provider.

commit 55f953bcbca8927534095fd5065154395cd7ceb5
Merge: 8252650 565e682
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Thu Aug 9 17:06:47 2012 -0700

    Merge pull request #1011 from joshcooper/ticket/3.x/9416-zfs-zpool
    
    (#9416) Add support for zfs & zpool types on platforms other than Solaris

commit 4cd6686be486410128703b03791d7458fc761bda
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Fri Jun 1 22:31:25 2012 +0200

    (#14283) Fix suntab filetype when run as normal user
    
    Running puppet as an unpriviledged user to manage its own crontab caused
    two problems under solaris:
    
    The uid argument was passed to the execute method to set the correct uid
    before executing the crontab command. The execute method has a default
    argumenthash with the key :failonfail set to true. Because the suntab
    filetype passed it's own hash, failonfail was nil so if crontab
    completes with a non-zero exit code no error will be raised.
    
    This is bad because running execute with :uid not only sets the correct
    userid in the child process but also tries to run `Process.initgroups`
    to set the correct supplementary groups of that user. This call will most
    likely fail as a non priviledged user causing the whole child process to fail.
    
    The fix now makes sure that failonfail is passed to the execute method
    so failures can be handled correctly and uid is only passed if necessary
    (which is not the case when the target user in the crontab resource is
    the same user that is running puppet).
    
    Since the execute method now raises an exception on non-zero exit
    codes, we have to handle the case where the crontab file doesn't exist
    for the user (and return '') versus other fatal errors.

commit d2b4f089f3248f1a8d5b2b5fbf33ec09c3451414
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Fri Jun 1 21:05:11 2012 +0200

    maint: Refactor suntab and aixtab filetype
    
    Apply the create/do_stuff/delete cycle of a temp file that is explained
    in tempfile.rb to the suntab and aixtab filetype. This way the temporary
    file should always be removed.
    
    The name of the temporary file was changed so it will be easier to stub
    this single call in tests - without stubbing tempfile creations in other
    places (like inside Puppet::Util.execute) at the same time.

commit 565e682a19fea2cbe6e4b2b08c3f027b019503ef
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 8 11:00:33 2012 -0700

    (#9416) Refactor zpool spec tests
    
    Convert to the zpool spec tests to the new format using `let`.  Also
    added tests for both postive and negative outcomes for each method. Also
    eliminated unnecessary stubbing, since the only platform specific aspect
    of the provider is whether the `zpool` command is in the PATH.

commit 2a79df5f1c718c7a3c1a7c81c0bdc66e29a40497
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 8 00:42:45 2012 -0700

    (#9416) Refactor zfs spec tests
    
    Convert to the zfs spec tests to the new format using `let`. Also added
    tests for both postive and negative outcomes for each method. Also
    eliminated unnecessary stubbing, since the only platform specific aspect
    of the provider is whether the `zfs` command is in the PATH.

commit 23d2a045d6a650a81a168b3c264fced274ff5d86
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 7 22:44:09 2012 -0700

    (#9416) Confine based on the presence of a `zpool` command
    
    Previously, the zpool provider was confined to solaris and assumed the
    existence of `/usr/sbin/zpool`. This commit changes the command to a
    relative path, which will use `Puppet::Util.which` to resolve the
    command. The default search path is set by the `path` setting in
    puppet.conf.
    
    Based on work by Marc Fournier <marc.fournier@camptocamp.com>

commit 9d4e92f5c09ddb02052aa57eb9e5fe1d9139eacd
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Tue Aug 7 22:43:13 2012 -0700

    (#9416) Rename zpool provider from solaris to zpool
    
    Previously the name of the `zpool` provider was `solaris`. This commit
    changes it to be `zpool` in preparation for supporting the resource type
    on other platforms.

commit d0e4b8b30544bffa752fece973adb2a8232fd1b9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 7 22:40:14 2012 -0700

    (#9416) Confine based on the presence of a `zfs` command
    
    Previously, the zfs provider was confined to solaris and assumed the
    existence of `/usr/sbin/zfs`. This commit changes the command to a
    relative path, which will use `Puppet::Util.which` to resolve the
    command. The default search path is set by the `path` setting in
    puppet.conf.
    
    Based on work by Marc Fournier <marc.fournier@camptocamp.com>

commit 1d6bb9e43d89440d5f622a0b393e8f25af73e015
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Tue Aug 7 22:26:06 2012 -0700

    (#9416) Rename zfs provider from solaris to zfs
    
    Previously the name of the `zfs` provider was `solaris`. This commit
    changes it to be `zfs` in preparation for supporting the resource type
    on other platforms.

commit 07931e63c7d76fcec331946921b304438c38b469
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 3 00:57:33 2012 -0700

    (#11870) Manage executable packages on Windows
    
    Previously, puppet could only manage MSI packages on Windows. This commit
    extends the `:windows` package provider so that it can query, install, and
    uninstall executable packages. The logic for this is borrowed from[1].
    
    Basically, puppet will only manage executable packages that have the
    following attributes:
    
        Non-empty DisplayName
        Non-empty UninstallString
        Are not SystemComponents
        Are not WindowsInstaller
        Names don't start with KBXXXXXX
        Are not part of another product (ParentKeyName)
        Are not Security Update, Update Rollup or Hotfix
    
    For example, to install Java silently:
    
        package { 'Java(TM) 7 Update 5':
          ensure          => installed,
          source          => '...\jre-7u5-windows-i586.exe',
          install_options => [
            '/s', '/v/qn" ADDLOCAL=jrecore REBOOT=Suppress JAVAUPDATE=0"'
          ]
        }
    
    [1] http://community.spiceworks.com/how_to/show/2238

commit 1c8fa8062b56aaa1b7b32a895b8790555cee7cb4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 3 00:19:09 2012 -0700

    (#11870) Refactor package management logic for MSI
    
    This commit moves the logic for querying, installing and uninstalling MSI
    packages into a MsiPackage class separate from the main windows package
    provider. This is being done in preparation for adding executable package
    support (as some of the logic is very similar), such as querying the
    registry for installed products. Additionally, executable and MSI
    packages can be related, which makes partitioning the set of installed
    packages into different MSI and executable providers not really feasible.

commit c7307591a1ec9396a7d5b8d7fc8c5e664ccaf262
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 2 20:22:09 2012 -0700

    (#11870) Deprecate the `:msi` provider
    
    The `:msi` package provider is being deprecated and replaced with the
    `:windows` provider. Attempting to install or uninstall a package using
    the msi provider will cause puppet to issue a deprecation warning.
    
    The windows provider is basically a copy of the MSI provider, though it
    will be capable of managing executable packages in a future commit.

commit 7b1677f7fe8b845ad882f85e3023e864662ef4a2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 2 15:50:31 2012 -0700

    (#11870) Add the ability to specify uninstall_options
    
    Previously, the MSI provider was unable to specify uninstall_options.
    This isn't typically an issue, since Windows stores the command and
    arguments necessary to uninstall the package in the `UninstallString`
    registry value associated with the package.
    
    But there are some MSI packages that require this functionality, e.g. to
    specify VMware Tools modules to uninstall:
    
       msiexec.exe /x <productcode> REMOVE=Sync,VSS,...
    
    This commit adds an `uninstall_options` parameter to the package type and
    updates the MSI provider to use it. It has the same format as
    `install_options`.

commit 19a2812120482c5e01f1a10a937c8189f224fae2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 2 15:45:07 2012 -0700

    (#11870) Refactor the MSI provider to use package options
    
    Previously, the MSI provider contained logic for accepting a hash of
    `install_options`. The provider's install method flattened the hash pairs
    as:
    
        "key1=value1 key2=value2"
    
    and passed that to msiexec.exe. This worked fine for MSI public
    properties, but does not account for passing single arguments.
    
    This commit refactors the provider to use the more generic version of
    `install_options`, which expects an array of values. For example, if a
    manifest contains:
    
        [ '/S', { 'INSTALLDIR' => 'C:\Program Files' } ]
    
    then msiexec will be invoked with:
    
        "/S INSTALLDIR=\"C:\\Program Files\""
    
    The only change in behavior is that the MSI provider will now accept
    single arguments and pass those onto msiexec.

commit 8252650dbc9f34ec5e2eb131a39dc6f128d8f1b8
Merge: fb68916 a8575f4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 8 23:11:04 2012 -0700

    Merge remote-tracking branch 'rahul/ticket/3.x/15569_fix_augeas_print_errors' into 3.x
    
    * rahul/ticket/3.x/15569_fix_augeas_print_errors:
      (#15569) ensure that augeas prints parse errors.

commit 097e8d703e41387d31dd684ad3df575f8b4417fc
Merge: 6438438 7611753
Author: Matthaus Litteken <mlitteken@gmail.com>
Date:   Wed Aug 8 17:15:41 2012 -0700

    Merge pull request #1017 from MosesMendoza/maint/2.7rc/update_spec_for_fedora_17
    
    Add packaging support for fedora 17

commit 76117535d9505f46a7052cf1d3209c7becf9b065
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Aug 7 23:42:52 2012 -0700

    Add packaging support for fedora 17
    
    This commit modifies the puppet.spec file to use
    the ruby vendorlib instead of sitelib if building
    for fedora 17, which ships with ruby 1.9. Mostly
    borrowed from the official Fedora 17 package.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit fb68916181e97c467c0ddba0aee569ffed9941a5
Merge: 87239fb 4c91b65
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 8 16:34:42 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      Add Puppet::Parser::Functions::clear for specs
      Clear Environment.current when calling Environment.clear
      Check that function loading worked correctly.
      Avoid stubbing Thread::new due to issues in newer mocha
      Rename specs to end in _spec.rb
      Don't require mocha in spec_helper
      Fix stubbing on nil in some specs
      (#14515) Tests fail with mocha 0.11.4
    
    Conflicts:
    	spec/unit/network/http/webrick_spec.rb
    	spec/unit/parser/functions/require_spec.rb
    	spec/unit/parser/functions/template_spec.rb

commit 4c91b6589cc0941e339abeef8157c6d9f739afbd
Merge: 6db9d5a a7d6c3d
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Aug 8 16:26:45 2012 -0700

    Merge pull request #1016 from pcarlisle/maint/2.7.x/mocha12
    
    Maint/2.7.x/mocha12

commit a7d6c3df055e0721217d0781c67294ecf816138b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Aug 7 16:03:19 2012 -0700

    Add Puppet::Parser::Functions::clear for specs
    
    Since functions uses class instance variables to track which functions are
    loaded, we need to clear this between tests.

commit 279c3235041728caf269704290bb90f7d3c04578
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Aug 7 15:29:17 2012 -0700

    Clear Environment.current when calling Environment.clear
    
    This makes Puppet::Node::Environment::clear properly clear all the environment
    state. This reduces dependencies between tests due to leaked state. It also
    moves the call to clear to happen before each test. This avoids issues where
    tests set up stubs on settings, as the after block is called before stubs are
    removed.

commit 536b68c31ca7194d9e23cefcab34ddc4579b64ea
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 17:51:40 2012 -0700

    Check that function loading worked correctly.
    
    In some odd circumstances - typically, just development errors - you can wind
    up in a world where a function correctly loads but isn't available.
    
    This ensures that the method is defined as expected and raises a clear, quick
    error if not. The alternative is an unclear stack overflow raised because we
    recurse forever through method_missing.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    
    Conflicts:
    	lib/puppet/parser/scope.rb

commit abc7885c6d18f012716f2a15ca1e33558e423a01
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Aug 7 14:52:20 2012 -0700

    Avoid stubbing Thread::new due to issues in newer mocha
    
    In mocha >= 0.11.0, unstubbing a method is done by defining a method that
    calls the original method. Somehow this indirection causes issues when
    Thread::new is stubbed, and the new thread does not have proper access to
    local variables. This patch fixes this from both ends, by not stubbing
    Thread::new and not using local variables in the test that was failing.

commit fdb8ca377051da679d212b13d91da7cff54bdf55
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 2 16:52:20 2012 -0700

    Rename specs to end in _spec.rb

commit 9c361f16979ab2adf5bce2d3ce786ad88029a16a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 2 16:45:27 2012 -0700

    Don't require mocha in spec_helper
    
    Rspec will automatically require mocha, and it knows how to do it properly
    depending on the mocha version. This eliminates spurious deprecation warnings
    about how mocha is loaded.

commit 6d3d5913e5d4496a7ebc959311492abb8c76f262
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 2 16:40:38 2012 -0700

    Fix stubbing on nil in some specs

commit 60a6a2a646ebc01447af549a5314170d7e9c359c
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Sat May 26 13:11:57 2012 -0700

    (#14515) Tests fail with mocha 0.11.4
    
    Prior to this commit, these tests only worked with mocha 0.10.5 because
    the tests were broken and trying to stub methods on nil, which mocha
    0.11.4 no longer allows. After this commit, these tests work with both
    mocha 0.10.5 and 0.11.4.

commit a8575f41a1d4d10154d4e3b1ab4f299233a997aa
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 8 14:22:12 2012 -0700

    (#15569) ensure that augeas prints parse errors.
    
    Ensure that loading augeas files prints parse errors if any.
    
    This seems to have fallen through the cracks. It was originally
    present in pull/733 ticket:14136
    
    This fixes the build failure that was present in boxes that contained
    augeas.

commit 87239fb29aa031251aa86eba0dc0cfbe1a0a8e54
Merge: 9ba03e5 a69a975
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 8 13:21:01 2012 -0700

    Merge remote-tracking branch 'rahul/ticket/3.x/15547_valid_lang_sentinels' into 3.x
    
    * rahul/ticket/3.x/15547_valid_lang_sentinels:
      (#15547) make sure that the LANG sentinels being used are present

commit 5814cdeb8e406ca4ef07b5ef795b01d01c5cbaa4
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 8 12:56:08 2012 -0700

    Don't issue deprecation warnings for allow_ip
    
    A deprecation warning was issued when IP addresses were used with allow. One
    had slipped through and was still printing when allow_ip was used.

commit a69a9754fd1f2ccd2f152c2342c3212a55be442a
Author: rahul <rahul@puppetlabs.com>
Date:   Wed Aug 8 12:07:05 2012 -0700

    (#15547) make sure that the LANG sentinels being used are present
    
    previously, we used es_ES.UTF-8 as the sentinel value while checking for override
    of LANG values in user environment. commands in solaris errors out when the LANG
    being used is not present in the locales installed in the system.
    
    This patch changes the lang sentinel being used to en_US.UTF-8 which is present in
    a normal solaris install.
    
    For checking the overriding, the procedure is to change the LANG to "C" which is
    different from either so we modify the behavior of the test itself.

commit d64bf57d6347e7dd6565742850a8227a6bf0f675
Merge: 2df9db6 9ba03e5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 7 17:42:47 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#10915) Add test for provider throwing NoMethodError
      (#10915) Fix tests to work with new parameter checking
      Don't mask NoMethodErrors
      Update CHANGELOG, conf/redhat/puppet.spec for 2.7.19rc2
      (#15804) add zfs instances

commit 9ba03e56e9e6c4743fd4ecf721416649d0134c41
Merge: d40e701 6db9d5a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 7 17:36:46 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      (#10915) Add test for provider throwing NoMethodError
      (#10915) Fix tests to work with new parameter checking
      Don't mask NoMethodErrors
      Update CHANGELOG, conf/redhat/puppet.spec for 2.7.19rc2
    
    Conflicts:
    	CHANGELOG
    	conf/redhat/puppet.spec

commit 6db9d5a257c4d0c6d1ca590c4277bdafbf54e576
Merge: e467989 d2e5268
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 7 17:33:41 2012 -0700

    Merge branch 'bug/2.7.x/10915-misleading-error-messages' into 2.7.x
    
    * bug/2.7.x/10915-misleading-error-messages:
      (#10915) Add test for provider throwing NoMethodError
      (#10915) Fix tests to work with new parameter checking
      Don't mask NoMethodErrors

commit d2e52689691ee43a261052be9715cfe913354107
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 7 17:32:19 2012 -0700

    (#10915) Add test for provider throwing NoMethodError

commit 9e26fe0c7c97ef497fd482e4f539f8346e2a57aa
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 7 17:26:39 2012 -0700

    (#10915) Fix tests to work with new parameter checking
    
    The change to how the property checks if the provider can be called
    caused several tests to fail because they were not using providers that
    were able to properly report `respond_to?`. This fixes those tests. In
    the case of the host_spec.rb I was able to convert away from a mock, but
    in the mount_spec.rb the mock had to mock `respond_to?` since the
    interaction with the provider seems to be more complicated than I can
    unravel.

commit da7cd8e304e14b87182452f25e4e9885796082f2
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Fri Jul 27 13:04:39 2012 -0400

    Don't mask NoMethodErrors
    
    This rescue was masking a bug in a provider (involving calling `[]` on
    `nil.NilClass`) with a misleading error message.  The new code asks
    permission rather than begging forgiveness, but is more specific to the
    problem being detected.

commit e4679892b5be8825676a6864817211b6073f54a0
Merge: b840ae9 6438438
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Aug 7 16:17:47 2012 -0700

    Merge branch '2.7rc' into 2.7.x

commit 64384381d8a05de72cbad3b99476a158290e1baf
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Aug 7 16:00:08 2012 -0700

    Update CHANGELOG, conf/redhat/puppet.spec for 2.7.19rc2

commit fcd495792c0be5003941030d6f5551c4cc39ab44
Author: Ken Barber <ken@bob.sh>
Date:   Fri Jul 27 20:37:17 2012 +0100

    (#15521) Convert to using host stub wrapper
    
    This patch converts the module acceptance code to using the host stub wrapper
    now provided in puppet-acceptance: `stub_forge_on`.
    
    This will allow us to change the forge host we are stubbing dynamically as
    apposed to manually changing it everywhere in acceptance code.
    
    This also changes the cases where we have teardown code to use the new
    `teardown` block, and to use `rm -rf` for file cleanup to avoid puppet backup
    duplication issues.

commit d40e701704f9af0c4ad5b60cbd3e78f5f9891ca4
Merge: bacb515 29e7317
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 7 15:36:53 2012 -0700

    Merge remote-tracking branch 'rahul/ticket/3.x/15804_solaris_zfs_instances' into 3.x
    
    * rahul/ticket/3.x/15804_solaris_zfs_instances:
      (#15804) add zfs instances

commit 2df9db6e341c2a1466eec47b7bfcb85de64e98ca
Merge: 24946a5 bacb515
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 7 12:44:24 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#15471) Specify platform appropriate confdir
      Fixed #11686 - Updated documentation for exec timeout
      (#15471) Fix setting mode of last_run_summary
      (#15471) Ensure non-root can read report summary
      Use Win32 API atomic replace in `replace_file`
      Add additional commits to CHANGELOG missed in 2.7.19rc1

commit bacb515251eab4de0742ae2f043f12ea14dbfa9a
Merge: 3f72f27 b840ae9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 7 12:36:16 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      Fixed #11686 - Updated documentation for exec timeout
      (#15471) Fix setting mode of last_run_summary
      (#15471) Ensure non-root can read report summary
      Use Win32 API atomic replace in `replace_file`
      Add additional commits to CHANGELOG missed in 2.7.19rc1
    
    Conflicts:
    	lib/puppet/defaults.rb
    	spec/unit/configurer_spec.rb
    	spec/unit/util_spec.rb

commit 3f72f27eb4bed0abc6fd31be8a4e7e94eca1370d
Merge: 6236218 dbcb26c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 7 12:16:09 2012 -0700

    Merge branch 'maint/3.x/settings-windows' into 3.x
    
    * maint/3.x/settings-windows:
      (#15471) Specify platform appropriate confdir

commit dbcb26c1b8dd2068b3d7bd75c75c3a4b0728c0cb
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 7 12:12:59 2012 -0700

    (#15471) Specify platform appropriate confdir
    
    Previously, the spec test was failing because the `confdir` was set to
    `/etc/puppet`, but the expectation was looking for a platform specific
    directory, e.g. `C:\Documents and Settings\All Users\...` on Windows.

commit b840ae9a1c82618f92fddd377bf00a0457c3f765
Merge: e87d1e9 0f13cf5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 7 12:05:33 2012 -0700

    Merge remote-tracking branch 'upstream/2.7rc' into 2.7.x
    
    * upstream/2.7rc:
      (#15471) Fix setting mode of last_run_summary
      (#15471) Ensure non-root can read report summary
      Use Win32 API atomic replace in `replace_file`
      Add additional commits to CHANGELOG missed in 2.7.19rc1

commit 0f13cf526c7a162445c509e902b1cd24063e18cd
Merge: a619bfd b540aa0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 7 11:33:29 2012 -0700

    Merge remote-tracking branch 'andy/ticket/2.7rc/15471_last_run_report_only_readable_by_root' into 2.7rc
    
    * andy/ticket/2.7rc/15471_last_run_report_only_readable_by_root:
      (#15471) Fix setting mode of last_run_summary
      (#15471) Ensure non-root can read report summary
      Use Win32 API atomic replace in `replace_file`

commit 24946a52ec0eefe36c3b8767caea66c41469a15d
Merge: b7cbaa2 6236218
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 7 11:04:16 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#10978) add instances to smf
      (#15803) Split string for ruby 1.9
      (#15337) Do not merge user and system puppet.conf
      (Maint) Clean up markdown in README_DEVELOPER
      (Maint) Use $LOAD_PATH instead of $:
      (Maint) Move Trollop inside of Puppet
      (Maint) Add cprice to Git mailmap
      (#15803) add self.instances to zpool provider

commit 6236218a7e50161de19409e65cd1569bd03a7358
Merge: 5e894fe 38cba0a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Aug 7 11:01:50 2012 -0700

    Merge pull request #1006 from jeffmccune/bug/3.x/15337_dont_merge_puppet_conf
    
    (#15337) Do not merge user and system puppet.conf

commit 29e73171bcd6057c995345fbbfb9d24a9789d144
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Aug 2 13:33:23 2012 -0700

    (#15804) add zfs instances
    
    Before this commit, `puppet resource zfs` would fail to list any zfs
    entries since zfs provider did not provide a self.instances method. This
    commit adds the self.instances method to the zfs provider.

commit 5e894fee29d8b142604968ba0ea0ce02e4cedf8d
Merge: fbf9071 8e74d06
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Aug 7 09:40:54 2012 -0700

    Merge remote-tracking branch 'rahul/ticket/3.x/10978_smf_instances' into 3.x
    
    * rahul/ticket/3.x/10978_smf_instances:
      (#10978) add instances to smf

commit 8e74d06809393df75cacd56b4264b022e15068ae
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Aug 2 17:05:45 2012 -0700

    (#10978) add instances to smf
    
    Before the addition of smf instances, the smf service instances were not
    present in the `puppet resource service` output. Instead it used to
    collect the legacy init.d services. This commit adds the self.instances
    method which collects the `svcs` output and parses it to find smf
    instances. This commit also adds test cases for this feature.

commit fbf9071fa46ddd3fec0cd4d492ee5e57c71233e1
Merge: 92deef4 7142a78
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 6 16:41:28 2012 -0700

    Merge branch 'maint/3.x/15803_break' into 3.x
    
    * maint/3.x/15803_break:
      (#15803) Split string for ruby 1.9

commit 7142a78a5b65df9b5ce025b31b9305adaf4bb31f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 6 16:25:33 2012 -0700

    (#15803) Split string for ruby 1.9
    
    Previously, the spec test passed on ruby 1.8, because String includes
    the Enumerable module, so that the collect method could be called on the
    string. This doesn't work in ruby 1.9.
    
    This commit splits the output of the svcs command on newlines, and then
    collects the service instances.

commit 92deef45f2a98d4c1a51afac8088d7fd3b561c1d
Merge: 81cd48b 6374fff
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 6 16:02:18 2012 -0700

    Merge remote-tracking branch 'rahul/ticket/3.x/15803_zpool_instances' into 3.x
    
    * rahul/ticket/3.x/15803_zpool_instances:
      (#15803) add self.instances to zpool provider

commit 4d3071f7f372d659434511ae44da03a5f6139a5f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 30 16:46:05 2012 -0700

    (#11870) Add package options parameter
    
    This commit adds a new package options parameter type that accepts an
    array of strings or hashes. For example,
    
        [ 'arg1', { 'key2' => 'val2', 'key2' => 'val3' }, 'arg4' ]
    
    The parameter preserves the order of array elements, as it may be
    significant for a provider, e.g. '--source', 'URL'. Order of hash
    key-value pairs is based on the natural sort order of the keys. Any
    argument containing spaces will automatically be quoted, so that you don't
    have to check that in each manifest.
    
    The package options parameter is not currently used, but will be in a
    future commit to enable install and uninstall options to be passed to the
    package provider.
    
    Oddly, if any puppet parameter is specifed as an array with one element,
    puppet's parser-based resource will automatically de-arrify it (see commit
    46252b5b). As a result, if an array is a valid value, then the validate &
    munge methods cannot reject an element that isn't an array.
    
    Therefore, the package options munge method arrayifies values, which has
    the side-efect that it will accept the 2.7.x style way of declaring
    install_options for MSI packages. Moreso, it means that the old way cannot
    be deprecated without changing core puppet behavior.

commit 2427d473c7654afa17ea40df69a0e0ebbd4d6792
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 6 12:15:14 2012 -0700

    (#11870) Refactor windows-specific requires
    
    Previously, we were explicitly requiring windows-specific code, which
    made it hard to write spec tests that still run on non-Windows platforms.
    
    This commit refactors the requires into the
    `Puppet.features.microsoft_windows?` definition, so that if we are on
    Windows all of our dependencies will be satisified, and if we're not on
    Windows, we won't accidentally load code that doesn't apply.  Also,
    re-ordered the dependencies based on where they come from, e.g. ruby vs
    gem.

commit f684d6aa3dbbd599d3e6769c75c5514c20f2308b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jul 18 17:06:47 2012 -0700

    (#11870) Add registry module
    
    Ruby includes a built-in set of modules and classes for interacting with
    the registry, however, it is only present on Windows.  This makes it
    difficult to write spec tests that can run on non-Windows platforms due to
    the `Win32` namespace and related constants.
    
    This commit adds a utility module to wrap the Windows specific code.  This
    way if you write a module/class that uses the registry, you can just add
    expects/stub expectations to the utility module or the class that
    includes/extends it.

commit e87d1e9df77190cf14db1a2e287cefd4de8a61f5
Merge: 638ebfa fbede51
Author: nfagerlund <nick.fagerlund@puppetlabs.com>
Date:   Mon Aug 6 12:32:03 2012 -0700

    Merge pull request #1007 from nfagerlund/tickets/master/11686
    
    Fixed #11686 - Updated documentation for exec timeout

commit fbede517f54a3093933d8f87af40f8a2aa1e700b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Aug 4 19:38:39 2012 -0700

    Fixed #11686 - Updated documentation for exec timeout
    
    The exec timeout of 300 seconds was previously not mentioned in the
    exec type documentation. This commit makes the default value clear.

commit 38cba0a4294aba696f6184f3c5b91c2a569c7fed
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Aug 2 16:59:36 2012 -0700

    (#15337) Do not merge user and system puppet.conf
    
    Puppet 3.x reads settings from both ~/.puppet/puppet.conf and the system
    puppet.conf without this patch applied.  This is a problem because it
    makes it difficult to determine where to load plugins and extensions
    from at runtime.  Merging the configuration file also makes it more
    difficult to explain where a particular setting is taking effect.
    
    This patch makes the intended `puppet.conf` reading behavior the
    following:
    
     1: If provided, use explicit puppet.conf in `--confdir`
     2: If root, use system puppet.conf
     3: Otherwise, use ~/.puppet/puppet.conf
    
    This patch also changes the behavior of rack puppet master applications.
    We now intended for the rack configuration file, `config.ru` to
    explicitly set `--confdir` to avoid reading from
    `~/.puppet/puppet.conf`.  Please see the example in
    `ext/rack/files/config.ru` for an up to date rack configuration.

commit aef0d55a3b6ef12804c044c5983700b050851635
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Aug 5 10:32:59 2012 -0700

    (Maint) Clean up markdown in README_DEVELOPER
    
    Without this patch the README_DEVELOPER file displays poorly in my Vim
    buffers.  This patch adds some additional markup to separate the code
    snippets from the prose.

commit bfec8e37c49c8e005d270ec5518c87264d6c2aae
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Aug 5 10:17:34 2012 -0700

    (Maint) Use $LOAD_PATH instead of $:
    
    This is just slightly more readable.

commit f68f4ebbb9bdde229a03456d2b130934268a4957
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Aug 3 13:37:08 2012 -0700

    (Maint) Move Trollop inside of Puppet
    
    The Trollop library is improperly vendored inside of Puppet without this
    patch applied.  This is a problem because end users or developers who
    have the trollop gem installed will be monkey patched by Puppet since we
    open up the top level Trollop module namespace.
    
    This patch fixes the problem by placing Trollop in the namespace of
    Puppet::Util::CommandLine::Trollop.  This fixes the problem because the
    only place Trollop is used by Puppet is inside the
    Puppet::Util::CommandLine class.  Therefore we no longer need to use the
    absolute namespace notation of the leading ::.
    
    This also prevents us from monkey patching the real Trollop gem that
    lives at ::Trollop if it's been loaded into the process.

commit ffa1ae7e4ee89f5114068844cb6858ced18e82f4
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Aug 2 11:42:14 2012 -0700

    (Maint) Add cprice to Git mailmap
    
    Without this patch I noticed the git log contains both Chris Price and
    cprice as separate authors.  This patch fixes the problem by normalizing
    them to Chris Price <chris@puppetlabs.com>

commit b7cbaa23316c1811767d1164251ae332be520645
Merge: 186cedc 81cd48b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 3 14:12:40 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#15264) Custom title patterns can fail cryptically.

commit 81cd48bb04396018e50c549b7495b6e7c66971d4
Merge: e9ef7a2 638ebfa
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 3 13:58:11 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      (#15264) Custom title patterns can fail cryptically.

commit 638ebfa76066a03460addc61d3cccc94e7bd474b
Merge: e2ff8df 367926a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Aug 3 13:41:20 2012 -0700

    Merge pull request #892 from adrienthebo/bug/2.7.x/15264-fail_on_no_matching_title_patterns
    
    Bug/2.7.x/15264 fail on no matching title patterns

commit 186cedc28a1470131d3ef4a41bf1429c811087f3
Merge: 77aea61 e9ef7a2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Aug 3 13:22:36 2012 -0700

    Merge branch '3.x'
    
    * 3.x:

commit e9ef7a2cc78d1543b5724a40a99872249c829d89
Merge: 5620cd8 e2ff8df
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Aug 3 13:22:17 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      Mark git diff --check as inline code
      Make the example in CONTRIBUTING imperative and concrete
      Add HOWTO hint on topic branches in CONTRIBUTING
      (Maint) Whitespace cleanup of CONTRIBUTING.md

commit 77aea6155f1fb0a31d1ba83a18a2ae9c45f73209
Merge: b88d7b2 e2ff8df
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Aug 3 09:49:30 2012 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      Mark git diff --check as inline code
      Make the example in CONTRIBUTING imperative and concrete
      Add HOWTO hint on topic branches in CONTRIBUTING
      (Maint) Whitespace cleanup of CONTRIBUTING.md

commit e2ff8df4a0507723db93859c513163e3ea622d82
Merge: 8250367 6f7303a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Aug 3 09:49:16 2012 -0700

    Merge branch 'fix/2.7.x/my_contribution' into 2.7.x
    
    * fix/2.7.x/my_contribution:
      Mark git diff --check as inline code
      Make the example in CONTRIBUTING imperative and concrete
      Add HOWTO hint on topic branches in CONTRIBUTING
      (Maint) Whitespace cleanup of CONTRIBUTING.md

commit 6f7303a5aeb42a0545ff6ad0bbfc9fbf6a1aa689
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Aug 3 08:17:53 2012 -0700

    Mark git diff --check as inline code

commit cf04e5ef3512e270ef88c13dbc68c402638b028f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Aug 3 08:16:51 2012 -0700

    Make the example in CONTRIBUTING imperative and concrete
    
    Without this patch applied the example commit message in the CONTRIBUTING
    document is not a concrete example.  This is a problem because the
    contributor is left to imagine what the commit message should look like
    based on a description rather than an example.  This patch fixes the
    problem by making the example concrete and imperative.
    
    The first line is a real life imperative statement with a ticket number
    from our issue tracker.  The body describes the behavior without the patch,
    why this is a problem, and how the patch fixes the problem when applied.

commit 9862940abb690b23e2aa00304658c16ea2cc0807
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Aug 3 08:00:24 2012 -0700

    Add HOWTO hint on topic branches in CONTRIBUTING
    
    Without this patch it's not very clear how to create a topic branch.
    This has been a problem in the past because we often get pull requests
    from the master branch to the master branch which can be confusing when
    working outside of the GitHub Web UI.
    
    This patch addresses the problem by providing a concrete example of how
    to create a reasonable topic branch and start using it with two
    commands.

commit 9c60ed3daa8022a68884d2c3bb1a4d0fb6eecfdb
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Aug 3 07:56:28 2012 -0700

    (Maint) Whitespace cleanup of CONTRIBUTING.md
    
    Just noticed some whitespace errors.  This is a whitespace only change
    that removes trailing whitespace from CONTRIBUTING.md

commit b88d7b2338e81dc5ffaaaaa4b38c5e816b4abbd2
Merge: cdc018c 5620cd8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 2 17:48:54 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (Maint) Simplify CONTRIBUTING.md
      (#15668) Replace test for order of files in pluginsync
      (#15668) Use only one way of triggering pluginsync
      (#15668) Don't pluginsync for apply

commit 5620cd82592786bf5e735043eeb64ac18d3831c9
Merge: 7e79f46 8250367
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 2 17:47:14 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      (Maint) Simplify CONTRIBUTING.md

commit 82503673bdd0f5a3603efed97bbab767cd7c897e
Merge: 93b9a10 65b35a8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 2 17:43:41 2012 -0700

    Merge pull request #995 from zaphod42/maint/2.7.x/simplify_contributing_doc
    
    (Maint) Simplify CONTRIBUTING.md

commit 65b35a86d44eda8f9f7203d9570edb9c6d638deb
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Aug 1 15:41:38 2012 -0700

    (Maint) Simplify CONTRIBUTING.md
    
    The previous CONTRIBUTING.md was verbose and prone to change as branches
    changed. After discussion on puppet-dev I've cut it down a lot and changed the
    policy for which branch to target to be a "prefer master" policy where it is up
    to the merger to make sure it will go on the right branch.

commit b540aa032bcbae998260bcb5fcdd46a4a31bf8b6
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 2 16:22:46 2012 -0700

    (#15471) Fix setting mode of last_run_summary
    
    The writlock function didn't work with setting the mode on the
    last_run_summary file. This backports some of the work in commit
    7d8fd144949f21eff924602c2a6b7f130f1c0b69. Specifically, the changes
    from using writelock to replace_file for saving the summary file. This
    builds on top of the backport of getting replace_file to work on
    windows.

commit 7c7cffe76033879f853e1b76d84102f68059fc99
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 2 16:02:58 2012 -0700

    (#15471) Ensure non-root can read report summary
    
    The security fix for locking down the last_run_report, which contains
    sensitive information, also locked down the last_run_summary, which does
    not contain sensitive information. Unfortunately this file is often used
    by monitoring systems so that they can track puppet runs. Since the
    agent runs as root and the monitoring systems do not, this caused the
    summary to become unreadable by the monitoring systems.
    
    This commit returns the summary to being world readable which undoes
    part of the change done in fd44bf5e6d0d360f6a493d663b653c121fa83c3f

commit a257105acb4b9bd49fc2d5fab0eedbe3dcdc70d8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 30 18:28:15 2012 -0700

    Use Win32 API atomic replace in `replace_file`
    
    The changes to enable Windows support in `replace_file` were not actually
    complete, and it didn't work when the file didn't exist - because of
    limitations of the emulation done on our side, rather than anything else.
    
    Windows has a bunch of quirks, and Ruby doesn't actually abstract over the
    underlying platform a great deal.  We can use the Windows API ReplaceFile, and
    MoveFileEx, to achieve the desired behaviour though.
    
    This adds even more conditional code inside the `replace_file` method to
    handle multiple platforms - but it really isn't very clean.  Better to get
    this working now, then refactor, though.
    
    Cherry pick of: 73e302bbf5ab4a6c5513a39070e2c907542775ae
    
    Conflicts:
    
    	lib/puppet/util.rb
    	spec/unit/util_spec.rb

commit f7b45bbdeec3ce70c8a5a8cdc94cfa9efb5aebd1
Merge: 76ed038 5e516ee
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Thu Aug 2 14:46:17 2012 -0700

    Merge branch '1.0rc' into 1.x

commit 5e516ee52c37328c155582b74ddf838fc06bfe86
Author: Will Hopper <whopper@puppetlabs.com>
Date:   Mon Jul 23 16:45:55 2012 -0700

    Update Debian packaging rake task to correctly create the orig.tar.gz

commit 1c6767027809a5788bfe81c3dafd7d8772f356c8
Merge: cd1f831 4b0d2d3
Author: Matthaus Litteken <mlitteken@gmail.com>
Date:   Thu Aug 2 14:41:43 2012 -0700

    Merge pull request #43 from Whopper92/hiera_puppet_rake_package
    
    Update Debian packaging rake task to correctly create the orig.tar.gz

commit 7e79f46ede05b6cc9ef146e0f42a3a54f1875265
Merge: 11d0421 f58ee35
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Aug 2 14:03:56 2012 -0700

    Merge pull request #968 into 3.x
    
    * github.com:puppetlabs/puppet:
      (#15668) Replace test for order of files in pluginsync
      (#15668) Use only one way of triggering pluginsync
      (#15668) Don't pluginsync for apply

commit cdc018c4e0f85e0884344ee7e76c9f5b36d55267
Merge: 622cee7 11d0421
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 2 13:06:31 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      Update CHANGELOG lib/puppet.rb conf/redhat/puppet.spec for 2.7.19rc1
      (#15665) Fix issue with eix-update on newer eix (>=0.25.2).
      Try again to avoid circular dependency in file indirections
      Avoid circular requirement in FileMetadata indirection

commit 11d0421602193b99e7335e0875e6a440afc5e4b1
Merge: a174940 93b9a10
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 2 13:05:24 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      Update CHANGELOG lib/puppet.rb conf/redhat/puppet.spec for 2.7.19rc1
      (#15665) Fix issue with eix-update on newer eix (>=0.25.2).
      Try again to avoid circular dependency in file indirections
      Avoid circular requirement in FileMetadata indirection
    
    Conflicts:
    	CHANGELOG
    	conf/redhat/puppet.spec
    	lib/puppet.rb

commit 93b9a10c22732ee6107c8117ac7cbe58bfaefd04
Merge: 0b0d675 31fac81
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Aug 2 12:57:18 2012 -0700

    Merge pull request #983 from romke/ticket/2.7.x/15665_eix_update_run_every_time
    
    (#15665) Fix issue with eix-update on newer eix (>=0.25.2).

commit 6374fff638fb27496a3433cd130169f54cc254fc
Author: rahul <rahul@puppetlabs.com>
Date:   Thu Aug 2 12:44:06 2012 -0700

    (#15803) add self.instances to zpool provider
    
    - Adds self.instances which makes use of zpool list
    - Adds a test case for checking that it works.

commit f58ee352331559195706ea228e285d90011706e1
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Aug 1 17:16:34 2012 -0700

    (#15668) Replace test for order of files in pluginsync
    
    The previous version of this test relied on using puppet apply to check
    that the module path order was preserved in deciding the files to use
    from a pluginsync. Without apply performaning a pluginsync that was not
    possible anymore, but this test is still useful.
    
    This replaces the previous test with a new one that uses the master and
    the agent for performing a pluginsync and checking what files the agent
    recieves.

commit a619bfd2a5190bae83426b4b4578ce0ce3ff4dfd
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Aug 1 19:23:01 2012 -0700

    Add additional commits to CHANGELOG missed in 2.7.19rc1

commit 0b0d675a1231c28ac144a2dd2c97c0d8a22b13bb
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Aug 1 15:10:54 2012 -0700

    Update CHANGELOG lib/puppet.rb conf/redhat/puppet.spec for 2.7.19rc1

commit 622cee75c21f747518d8c784109836525b42e397
Merge: 7720851 a174940
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Aug 1 13:44:16 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (#15786) Allow plain http connections for report processors

commit a174940648ce75514a91fd8cdb050ffcedd55f80
Merge: 4b6db1c c2f342f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Aug 1 13:39:18 2012 -0700

    Merge pull request #994 from pcarlisle/ticket/3.x/15786-http-report-processor
    
    (#15786) Allow plain http connections for report processors

commit c2f342f9f14a40860b9b1602d89bc0d2fa7ea7bd
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Aug 1 13:19:44 2012 -0700

    (#15786) Allow plain http connections for report processors
    
    A recent change (commit ce44885) to support https connections for report
    processors accidentally enabled SSL for all http report processors. This patch
    fixes protocol detection and adds tests to make sure both cases work.

commit 4965b7c2cc502dfe6361398685b7218229a86e0b
Merge: c00e8f2 00e4a24
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Aug 1 10:09:17 2012 -0700

    Merge branch '2.7.x' into 2.7rc

commit 7963cababbf43fa68acad45e95bd392e6bffcc5d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 20 16:10:39 2012 -0700

    (Maint): Re-enable tests on Windows
    
    These tests now pass on Windows.  Removed the `pending` block and
    re-indented, no code changes.

commit 77208518c34f23148f69ee3ea165349aca6f8a46
Merge: 3b7f446 4b6db1c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jul 31 17:09:30 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      Only load auth.conf once
      Remove proxy methods going from Rights to Right
      Refactor AuthConfig parsing into AuthConfigParser
      Merge the old RestAuthConfig specs into the specs for AuthConfig
      Rename rest_authconfig_spec to authconfig_spec
      Add allow_ip and deny_ip keywords to auth.conf
      Rename {rest_,}authorization.rb
      Merge RestAuthConfig into AuthConfig
      Remove code for XMLRPC namespaces
      Remove deprecated method of accessing files in modules
      Remove Network::Authorization code which was only used for XMLRPC
      (#15666) Include downstream error when raising CommunicationsError exception

commit 4b6db1c6f3bb383d8309c5d98cb6236862caf085
Merge: 804674f 4850532
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jul 31 17:09:19 2012 -0700

    Merge remote-tracking branch 'pcarlisle/ticket/3.x/7705-rest-auth-conf' into 3.x
    
    * pcarlisle/ticket/3.x/7705-rest-auth-conf:
      Only load auth.conf once
      Remove proxy methods going from Rights to Right
      Refactor AuthConfig parsing into AuthConfigParser
      Merge the old RestAuthConfig specs into the specs for AuthConfig
      Rename rest_authconfig_spec to authconfig_spec
      Add allow_ip and deny_ip keywords to auth.conf
      Rename {rest_,}authorization.rb
      Merge RestAuthConfig into AuthConfig
      Remove code for XMLRPC namespaces
      Remove deprecated method of accessing files in modules
      Remove Network::Authorization code which was only used for XMLRPC

commit b61d0419526004f97d11933a816589b275e284e4
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Jul 31 16:42:11 2012 -0700

    (#15731) explicit fingerprint digest for pson
    
    The pson metadata for a certificate (or certificate request) contains a
    fingerprint which was created with the default digest algorithm. This
    algorithm must change as we move to FIPS 140-2 compliance because MD5 is
    explicitly denied.
    This commit includes fingerprint metadata for 3 stronger hashing
    algorithms and explicitly calls out that the fingerprint is for that
    algorithm.

commit 4850532124e395beaaca8f8d941c94b6e3f1fb36
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 31 16:34:29 2012 -0700

    Only load auth.conf once
    
    This adds a small singleton class to ensure that auth.conf is only loaded once
    per filetimeout interval.

commit 6dcf122dbc69eda08bd60ebd77ec94d999469c55
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Jul 31 16:17:25 2012 -0700

    (#15731) Full certificate metadata for pson
    
    When attempting to get certificate metadata using the REST API, the API
    returns a different set of metadata based on whether one requests yaml
    or pson, neither of which are the full set of metadata.
    This commit adds dns_alt_names/subjectAltNames to the metadata for pson.

commit 2811e03d4e828b113288e8fe541ced3da4cd76c2
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 31 14:01:34 2012 -0700

    Remove proxy methods going from Rights to Right
    
    These methods were unnecessary, as it's easy to get the specific Right object
    and call a method on it.
    
    Paired-with: Jeff McCune <jeff@puppetlabs.com>

commit d618cdbc62369a2af2115861145c1ca671d27bc7
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 30 16:09:59 2012 -0700

    Refactor AuthConfig parsing into AuthConfigParser
    
    This pulls parsing and file management out of the AuthConfig class. It
    introduces the AuthConfigParser class which is responsible for parsing and
    returning a new AuthConfig instance. Reloading the AuthConfig from a changed
    auth.conf is pulled out into Puppet::Network::Authorization, which already had
    partial responsibility for this.
    
    Paired-with: Jeff McCune <jeff@puppetlabs.com>

commit 9472e75721856fa67112036301df1648774d608c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 30 12:29:29 2012 -0700

    Merge the old RestAuthConfig specs into the specs for AuthConfig
    
    Since the underlying classes have been merged it doesn't make sense to have
    separate spec files.
    
    Paired-with: Jeff McCune <jeff@puppetlabs.com>

commit b12296a89e6fbf436309da377f78a50b84bc8908
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 25 16:05:57 2012 -0700

    Rename rest_authconfig_spec to authconfig_spec
    
    Paired-with: Jeff McCune <jeff@puppetlabs.com>

commit 1e1ac474a8b399bf28dbf7df61680451d4911482
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 25 16:04:07 2012 -0700

    Add allow_ip and deny_ip keywords to auth.conf
    
    This commit splits IP based authorization into its own keywords. The allow and
    deny keywords no longer operate on IP addresses. The new keywords function
    like allow and deny but operate exclusively on IPv4 and IPv6 addresses.
    Back references are currently unsupported for allow_ip and deny_ip.
    
    Without this patch there is a security related issue where Puppet could not
    distinguish between a certificate name that contains an IP address (cert auth)
    and an ip address itself being used to authenticate (ip based auth).  This
    patch fixes the problem by separating these out as described above.
    
    Paired-with: Jeff McCune <jeff@puppetlabs.com>

commit 6c76b4e0d0d22a86c1c55d306be78c07fff0c21c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 25 15:10:22 2012 -0700

    Rename {rest_,}authorization.rb
    
    Paired-with: Jeff McCune <jeff@puppetlabs.com>

commit 8f18b01b993fe9e0f3aeb5646ccd122b7acdc80c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 25 15:09:32 2012 -0700

    Merge RestAuthConfig into AuthConfig
    
    There is no longer a meaningful distinction between REST authorization and
    XMLRPC authorization.  AuthConfig provided a base class for both XMLRPC and
    REST.  This is a problem because it makes the code difficult to understand in
    a world where XMLRPC does not exist.  This patch fixes the problem by merging
    the behavior of the RestAuthConfig class into the AuthConfig class.  The
    AuthConfig class is now solely responsible for REST authorization.
    
    Paired-with: Jeff McCune <jeff@puppetlabs.com>

commit 05446347d6bf130be1c68e3d8cf9e5b161c632aa
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 25 11:32:42 2012 -0700

    Remove code for XMLRPC namespaces
    
    XMLRPC is no longer used and this was dead code.
    
    Paired-with: Jeff McCune <jeff@puppetlabs.com>

commit 4053722f3657af16d89041285aa94c45ed6bcbce
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 25 11:07:28 2012 -0700

    Remove deprecated method of accessing files in modules
    
    It was possible to refer to a file in a module without including the
    '/module/' path component. This has been deprecated for at least one major
    release.
    
    Paired-with: Jeff McCune <jeff@puppetlabs.com>

commit eb657d588aa3d00529d01ae59971010df47e4f70
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 24 17:18:23 2012 -0700

    Remove Network::Authorization code which was only used for XMLRPC
    
    Paired-with: Jeff McCune <jeff@puppetlabs.com>

commit 804674f91b48b66cb2cf1ffe2752e7454301d5b8
Merge: 65330f8 e29afda
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Tue Jul 31 13:37:17 2012 -0700

    Merge pull request #965 from kbarber/ticket/3.x/15666-return_downstream_comms_error
    
    (#15666) Include downstream error when raising CommunicationsError exception

commit 3b7f44661ed2a26e365204ef55429800ec077c0f
Merge: bb43664 65330f8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 31 11:09:14 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (Maint) Remove reference to Patchwork
      (#15644) make sure parse_line is in scope

commit 65330f89e399f764cc2177175e1213864c9d581f
Merge: 8010702 00e4a24
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 31 11:05:44 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      (Maint) Remove reference to Patchwork

commit 00e4a245171651bcce7737cf8c953805274f2cd0
Merge: 33dc4e5 1dd660a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 31 10:59:18 2012 -0700

    Merge pull request #989 from zaphod42/maint/2.7.x/remove_patchwork_reference
    
    (Maint) Remove reference to Patchwork

commit 1dd660a20c249225d41c21376b0aae255bf3c2de
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 31 10:41:21 2012 -0700

    (Maint) Remove reference to Patchwork
    
    The patchwork system hasn't been used for a while and doesn't appear to
    be available anymore. This removes the reference to it.

commit bb43664c4e4be50c0dc616ae4c68e653e19d25de
Merge: 705167c 71baf16
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 31 08:57:20 2012 -0700

    Merge pull request #986 from mblair/master
    
    Readme fix.

commit 71baf16be916696c3fb307369dcdf371b4f107b7
Author: Matt Blair <me@matthewblair.net>
Date:   Mon Jul 30 17:48:23 2012 -0700

    one half the contributions

commit 801070287c2e95f1b6dcd6e8166305286b2900af
Merge: 55ae3b3 1d4f8aa
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 30 16:49:29 2012 -0700

    Merge pull request #977 from vrthra/ticket/3.x/15644_fix_parse_line
    
    (#15644) make sure parse_line is in scope

commit 705167c020305c3bd2754a459003dddb6f9564da
Merge: cd1b73b 55ae3b3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 30 16:40:26 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#15514) Add compatibility with change to operatingsystem fact

commit 55ae3b332b134353b959db38c98fb35ea401cb90
Merge: ccc3f11 46d071f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 30 16:35:50 2012 -0700

    Merge pull request #980 from hkenney/ticket/3.x/15514_distinguishing_which_solaris_support
    
    (#15514) Add compatibility with change to operatingsystem fact

commit cd1b73b8597d2120c86e34c2ec89233865bee40c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 30 09:26:11 2012 -0700

    (Maint) Fix assertion about locale
    
    The merge from 3.x to master had an incorrect change that caused the
    test to fail. I had forgotten to run the tests before pushing and didn't
    notice until it got to CI. This commit just undoes the one incorrect
    change.

commit 31fac819175ed791ceee231b156e091b26e84860
Author: Roman Barczyński <romke@estrefa.pl>
Date:   Sun Jul 29 23:50:48 2012 +0200

    (#15665) Fix issue with eix-update on newer eix (>=0.25.2).

commit ff07acaf8c9c8dad0f94d7f34b042bbf62a4ccdf
Merge: 4ee04c5 ccc3f11
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 27 17:20:15 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x: (27 commits)
      Replace "the short version" with outline
      (#15547) mock of facter :operatingsystem pending
      (#15595) Improve message on SSL errors
      (#15595) Clear up tests around ssl errors
      use error_message instead of error
      updates as requested
      (#15595) Offer better errors for certificate validation errors
      Update CONTRIBUTING.md
      (Maint) Remove some more ambiguity
      Use rspec 2.11 compatible block syntax
      Revert "Merge branch 'fixpid' of https://github.com/vrthra/puppet into 3.x"
      Make 3.x specs compatible with rspec 2.11
      (#15676) Fix puppet module face SSL acceptance tests to use masters real hostname
      wip
      Revert "Merge branch 'non-string-resource-titles' of https://github.com/nicklewis/puppet into 3.x"
      Fix buggy resource title tests
      Use rspec 2.11 compatible block syntax
      (Maint) Be more honest about submission methods
      (Maint) Clarify that Redmine tickets are mandatory
      (Maint) Clarify which branches changes should be based on
      ...
    
    Conflicts:
    	spec/unit/provider/exec/posix_spec.rb

commit ccc3f1182879c2636fb03c1c262723dd6c2a3c14
Merge: 230aa0c 33dc4e5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 27 17:15:21 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      Replace "the short version" with outline
      (#15595) Improve message on SSL errors
      (#15595) Clear up tests around ssl errors
      use error_message instead of error
      updates as requested
      (#15595) Offer better errors for certificate validation errors
      Update CONTRIBUTING.md
      (Maint) Remove some more ambiguity
      (Maint) Be more honest about submission methods
      (Maint) Clarify that Redmine tickets are mandatory
      (Maint) Clarify which branches changes should be based on

commit 46d071f7678b437442bf4313d40e8060835b0c87
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Fri Jul 27 15:48:46 2012 -0700

    (#15514) Add compatibility with change to operatingsystem fact
    
    Priror to this commit, Puppet had many conditionals based of the
    operatingsystem fact returning `:solaris`. This fact now
    supports (and can return) several different version of Solaris.
    
    Change the conditionals in Puppet which rely on Solaris to rely on
    the osfamily fact instead, to prevent issues with this change in
    Facter.
    
    <hailee@puppetlabs.com>

commit 33dc4e5c0ea79899a4e2c01bfc5ce311bb952d10
Merge: 4388f7e b73d0dd
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 27 13:00:38 2012 -0700

    Merge pull request #978 from zaphod42/bug/2.7.x/15595-better-ssl-verify-errors
    
    (#15594) Improve messages for SSL errors

commit 4388f7e07210672da7585e812eabf50d6b72c82b
Merge: c236001 a26d1ee
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Fri Jul 27 12:55:11 2012 -0700

    Merge pull request #960 from hkenney/maint/2.7.x/fix_up_contributing_md
    
    (Maint) Fix up CONTRIBUTING.md

commit 230aa0c62cb876a24bc12759cd13d5f09b8c837b
Merge: 0f61129 089960c
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Fri Jul 27 09:28:56 2012 -0700

    Merge pull request #974 from vrthra/3.x
    
    (#15547) remove the spaec between method and ()

commit 1d4f8aa1b3d499b5638ef9d2cfef243c99023751
Author: rahul <rahul@pe-solaris11-vm.(none)>
Date:   Thu Jul 19 13:20:37 2012 -0700

    (#15644) make sure parse_line is in scope
    
    parse_line was not in scope earlier.

commit 0f611299a1cb7ed15ae853dc07310c49f51e7300
Merge: 0e462d2 779d9ea
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Thu Jul 26 12:32:37 2012 -0700

    Merge branch 'runit' of https://github.com/vrthra/puppet into 3.x

commit a26d1eebc8304cd96f4de6f4e1701f7d9de7484a
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Thu Jul 26 11:09:06 2012 -0700

    Replace "the short version" with outline
    
    Previously, the short version/checklist at the beginning did not line
    up with the rest of the document, and was presenting information in 
    a confusing order. Now it reflects the way the information is organized
    in the larger document, and serves as a good checklist for going through
    the process. 

commit 779d9ea5fef9006baf6d1bf8227fb8a2907bd34c
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Jul 17 16:32:05 2012 -0700

    (#15547) mock of facter :operatingsystem pending
    
    Unless we are able to mock the operating system Fact, we will not be
    able to run all the mount parsing tests running on each platforms.
    
    However this is not required. We could aswell run the platform specific
    test on the specific platform. However this is not done at present.
    We are just making it pending for solaris since other platforms pass.
    
    for the mount_spec, the mocked operating system value is not reflected
    in lib/puppet/provider/mount/parsed.rb needing @blockdevice to be passed
    in even though we are impersonating as Darwin

commit ef8dd5b7aa6966be432e558f177d1bfff5a255b2
Author: Ashley Penney <apenney@gmail.com>
Date:   Wed Jul 25 22:08:31 2012 -0400

    Fix this to use .read, not .open.

commit b73d0dde18894692e207c8cb682b6408e857e337
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jul 25 17:19:13 2012 -0700

    (#15595) Improve message on SSL errors
    
    The wording on the error message added the text "verify error" in front
    of the actual message. That text made for a somewhat confusing message.
    This commit removes that text and so the reported error will simply be
    "<message> for <subject>"

commit e29afda80f8a0621c5c1de1a6126b79009912da7
Author: Ken Barber <ken@bob.sh>
Date:   Tue Jul 24 18:55:29 2012 +0100

    (#15666) Include downstream error when raising CommunicationsError exception
    
    Previously we were seeing errors being returned in the acceptance framework,
    when the puppet module face had problems but the existing error message is far
    too generic to be used to understand the root cause of such problems.
    
    This patch changes the read_response code and CommunicationsError exceptions so
    that the underlying comms error message is exposed to the client. The generic
    message has been kept, but a new line 'Details:' has been added that will
    expose the underlying error.
    
    This patch solves this problem by accepting the original exception that was
    called, and using the message of that exception to describe the detail.
    
    To make sure the generic error will catch and wrap the correct exceptions, we
    have added a list of what we believe are the common exceptions that Net::HTTP
    raises when remote or network problems occur. Other exceptions will continue to
    be raised up to the face as per normal.
    
    Test coverage has been added to make sure the exceptions behave as expected, as
    this was lacking beforehand.

commit 9567ec8dc0c1247602b657532e03da21f8b82609
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jul 25 16:30:24 2012 -0700

    (#15595) Clear up tests around ssl errors
    
    The tests around the SSL errors had some unclear parts. They made it
    look like the verify method was going to get an OpenSSL::SSL::SSLContext
    where in reality it is provided an OpenSSL::X509::StoreContext. There
    was also duplication between two tests that has been refactored out.

commit ccca77ff06b2cbae050ab9912122d623a1fc334e
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Tue Jul 24 18:04:44 2012 -0500

    use error_message instead of error

commit 3809b59195ab8cfd3f63d8f7dba69cbd85c2fbe1
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Thu Jul 19 13:43:44 2012 -0500

    updates as requested
    
    * combine conditionals in verify_callback
    * change formatting of verify errors

commit e7b30496726faead3b0727c7f8fa36163f3e9fb3
Author: Dustin J. Mitchell <dustin@mozilla.com>
Date:   Tue Jul 10 22:00:01 2012 -0500

    (#15595) Offer better errors for certificate validation errors
    
    The verify_callback callback gets an OpenSSL::SSL::SSLContext for each
    certificate in the chain that's verified.  If the verification failed,
    then SSL provides a nice error to the callback, but that error doesn't
    appear in the subsequent OpenSSL::SSL::SSLError.
    
    This patch uses a technique similar to that used for peer_certs to
    collect those errors and then add them to the Puppet::Error message
    later.
    
    Remove the guess at the error (time sync).

commit 0e462d2484dc8a36e279d453f71a8da47e4c515c
Merge: 244e0bd bc52537
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Wed Jul 25 13:31:06 2012 -0700

    Merge pull request #966 from kbarber/ticket/3.x/15676-ssl_acceptance_test_uses_localhost
    
    (#15676) Fix puppet module face SSL acceptance tests to use masters real hostname

commit 6a43e969180c4b30ddc9d42b4c6a595c4dad59e9
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Jul 25 13:25:22 2012 -0700

    Update CONTRIBUTING.md

commit 428208d2d6920bf3395e73e73f1d339b897ab2e3
Author: Ashley Penney <apenney@gmail.com>
Date:   Wed Jul 25 15:24:12 2012 -0400

    The openbsd spec tests mistakenly used File.new instead of File.open.

commit c44973c407efc792fb0764d227ed3179c56943f3
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Tue Jul 24 11:41:40 2012 -0700

    (Maint) Remove some more ambiguity
    
    Remove the pieces of the document that say we support email and
    Redmine patches, instead of just saying that we strongly
    discourage these. Also change the places where we say "we recommend"
    when what we really mean is "we require". Lastly, make a few small
    changes that were brought up on the PR.
    
    <hailee@puppetlabs.com>

commit 62420c6ff02133e7bf6254cff83ddb3511a1ea41
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 24 17:15:44 2012 -0700

    (#15668) Use only one way of triggering pluginsync
    
    Previously the Configurer took a parameter, :skip_plugin_download, which
    whould cause it to not trigger a pluginsync. At the same time the
    pluginsync code (Downloader) would look at Puppet[:pluginsync] to decide
    whether it should actually pluginsync or not.
    
    This changes it so that there is only Pupppet[:pluginsync] which is
    passed through to the Configurer as a :pluginsync parameter when the
    Configurer is called. Now all callers can be explicit about doing the
    pluginsync and the Configurer is less dependent on Puppet settings.

commit 5bff01673bac541ab68db8baa8cd5f72864609ba
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 20 16:11:53 2012 -0700

    (#15668) Don't pluginsync for apply
    
    After trying out having apply pluginsync there have been several
    unwanted side effects. This commit removes the apply command from
    pluginsyncing and so leaves only agent and device still performing
    pluginsync.

commit 244e0bd0dd58bb0b3c91680334183751bde96c2b
Merge: 8f0b0ed c236001
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 24 14:05:54 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x
    
    * origin/2.7.x:
      Use rspec 2.11 compatible block syntax
    
    Conflicts:
    	spec/unit/network/handler/fileserver_spec.rb

commit 8f0b0edc7a50034eb6228c3a0629f56665f330ed
Merge: 87888d0 f9bc54d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 24 13:52:47 2012 -0700

    Merge remote-tracking branch 'origin/3.x' into 3.x
    
    * origin/3.x:
      Revert "Merge branch 'fixpid' of https://github.com/vrthra/puppet into 3.x"
      Revert "Merge branch 'non-string-resource-titles' of https://github.com/nicklewis/puppet into 3.x"
      Fix buggy resource title tests
      Don't allow resource titles which aren't strings

commit c23600131cd43d6bddeda7dda32b751fd2058079
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 23 18:02:24 2012 -0700

    Use rspec 2.11 compatible block syntax
    
    In rspec 2.11, expectations on a block must take the form of expect...to or
    lambda...should. Other combinations of those are no longer accepted. This
    commit converts all mixed cases to use expect...to, as it seems to be the
    preferred syntax now.

commit f9bc54df64c7780a5e82d8eca5d0f1bf0d23e1ad
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Tue Jul 24 12:17:56 2012 -0700

    Revert "Merge branch 'fixpid' of https://github.com/vrthra/puppet into 3.x"
    
    This reverts commit fe64cdeaa210534e64c37caa47a86df070da9b26, reversing
    changes made to 9174a290ee035706381758088303eb5756e058e7.
    
    After some discussion, we've decided this isn't ready to go yet and
    should be backed out until the required changes have been made.
    
    <hailee@puppetlabs.com>

commit 87888d078c4a2921c5264a9e24b91f832aad4f5a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 24 12:15:09 2012 -0700

    Make 3.x specs compatible with rspec 2.11

commit bc52537a626018f46bc77fa19b25187fd9d32273
Author: Ken Barber <ken@bob.sh>
Date:   Tue Jul 24 20:15:08 2012 +0100

    (#15676) Fix puppet module face SSL acceptance tests to use masters real hostname
    
    Previously we had been using 'localhost' as the location of the master, which
    is a dangerous assumption with systest, since the master may be located on
    another host or 'localhost' may not give us the expected results.
    
    This patch changes the usage of localhost to use the variable 'master' which
    should point to the canonical hostname of the master each and every time.

commit 5ffb8f9eef9c5535aebb1027e80c49675a31f480
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 24 11:22:02 2012 -0700

    wip

commit ab0e254f089d1984289c7585e1d30a0b2420fd3b
Merge: 1b2a5d1 84b4d11
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jul 24 11:15:57 2012 -0700

    Merge branch 'maint/1.0rc/fix_spec_test_scope_issue' into 1.0rc
    
    * maint/1.0rc/fix_spec_test_scope_issue:
      (Maint) Rename PuppetlabsSpec::Puppet{Seams,Internals}

commit 84b4d119393e140d69817efd36e7e18f73c18d3e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jul 23 08:47:18 2012 -0700

    (Maint) Rename PuppetlabsSpec::Puppet{Seams,Internals}
    
    The module PuppetlabsSpec::PuppetSeams has been renamed in the
    puppetlabs_spec_helper gem to PuppetlabsSpec::PuppetInternals.
    
    The method to obtain a scope object has also changed slightly.  Without
    this patch the spec tests will fail because the stdlib module is not
    aligned with the spec helper gem.  This patch fixes the problem by
    matching up messages with their receivers in the spec helper library.
    
    This change was made with:
    
        find * -type f -print0 | xargs -0 perl -pl -i -e 's/seams/Internals/gi'
        find * -type f -print0 | xargs -0 perl -pl -i -e 's/parser_scope/scope/gi'
    
    Paired-with: Andrew Parker <andy@puppetlabs.com>

commit 1691bd3c2a04c2e8494d89571877a528846e7b09
Merge: c0a0a45 b504ab7
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Tue Jul 24 11:07:07 2012 -0700

    Merge branch 'non-string-resource-titles' of https://github.com/nicklewis/puppet into 2.7.x

commit a1086b62977b5b1cd2a3b7d70f621f07134d10ef
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Tue Jul 24 11:03:29 2012 -0700

    Revert "Merge branch 'non-string-resource-titles' of https://github.com/nicklewis/puppet into 3.x"
    
    This reverts commit 7fe3bbb75abb576b7ae9b129ea2c4dd924912ff0, reversing
    changes made to fe64cdeaa210534e64c37caa47a86df070da9b26.
    
    Accidentally merged this into 3.x when it was mean to go into 2.7.x.

commit 193beb7de90cf8f50a534995507a59b572a7d883
Merge: fe64cde 3710c2d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 24 10:54:16 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      Use rspec 2.11 compatible block syntax
    
    Conflicts:
    	spec/integration/faces/ca_spec.rb
    	spec/integration/network/server/mongrel_spec.rb
    	spec/unit/application_spec.rb
    	spec/unit/face/help_spec.rb
    	spec/unit/network/handler/fileserver_spec.rb
    	spec/unit/parser/functions/create_resources_spec.rb
    	spec/unit/provider/nameservice/directoryservice_spec.rb
    	spec/unit/type/file_spec.rb
    	spec/unit/type_spec.rb

commit 7fe3bbb75abb576b7ae9b129ea2c4dd924912ff0
Merge: fe64cde b504ab7
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Tue Jul 24 10:25:43 2012 -0700

    Merge branch 'non-string-resource-titles' of https://github.com/nicklewis/puppet into 3.x

commit b504ab729558efd4fc7679152f69b9b91953f3b0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 24 10:09:27 2012 -0700

    Fix buggy resource title tests
    
    For some reason, these weren't actually asserting anything, and were
    swallowing errors. Oops!

commit fe64cdeaa210534e64c37caa47a86df070da9b26
Merge: 9174a29 134f7cb
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Tue Jul 24 09:42:10 2012 -0700

    Merge branch 'fixpid' of https://github.com/vrthra/puppet into 3.x

commit 4ee04c50c7ea5118ebb05b1d8267dc2bb43cfb64
Merge: b06c93d 9174a29
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 23 18:45:24 2012 -0700

    Merge branch '3.x'
    
    * 3.x: (33 commits)
      Remove 'pending' status for getting SSL::Host
      Fix paths for pidlock tests for windows
      Use Puppet::Util to check absolute path in ca
      Fix specs for windows
      Reduce stubs and expectations on settings
      Disable ActiveSupport::Dependencies hooks.
      Performance: template wrapper calling info is slow
      Performance: TypeCollection should remember nonexistent types before autoloading
      Performance: memoize resource#resource_type
      Pull out initialization of resource class? and stage?
      Performance: remove some occurences of type.to_s.downcase
      tidy.rb: Added info about the default value of 'type' to the doc.
      Switch Rakefile off deprecated rake/gempackagetask
      Update main readme to have links to contrib and dev docs
      tagging: use a static regexp rather than rebuilding it
      file_serving: avoid rewriting paths if possible.
      log_paths: memoize the entire value, not just part of it.
      zaml: speed micro-optimization for Time output
      whit: cache the `to_s` result.
      provider: don't create useless proc instances.
      ...

commit 9174a290ee035706381758088303eb5756e058e7
Merge: 4571d02 c0a0a45
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 23 18:44:46 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      tidy.rb: Added info about the default value of 'type' to the doc.
      Switch Rakefile off deprecated rake/gempackagetask
      Update main readme to have links to contrib and dev docs

commit 3710c2d8160bacf83377d35802b4c65de95a965f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 23 18:02:24 2012 -0700

    Use rspec 2.11 compatible block syntax
    
    In rspec 2.11, expectations on a block must take the form of expect...to or
    lambda...should. Other combinations of those are no longer accepted. This
    commit converts all mixed cases to use expect...to, as it seems to be the
    preferred syntax now.

commit 4571d02a98bbab579a2652f8d60d3b01882233c1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 23 17:41:18 2012 -0700

    Remove 'pending' status for getting SSL::Host
    
    A recent fix for Windows caused this test to start passing.

commit 67c10c290bb179bc6d38825956f7fa68c48de36a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 23 17:39:33 2012 -0700

    Fix paths for pidlock tests for windows

commit b455c9cd751ab8233f6e724c6371d8b3689502cf
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 23 17:26:01 2012 -0700

    Use Puppet::Util to check absolute path in ca
    
    This check was only correct for posix. This makes it cross-platform.

commit 42e1aeeb2659d63a9503d625ebfb84c12f3d985f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 23 17:19:12 2012 -0700

    Fix specs for windows
    
    The previous commit cleaning up stubs in settings caused some new failures on
    Windows. Actually using the settings object causes paths to get expanded,
    which made expectations with posix paths fail on Windows.

commit 4b0d2d3ae9908d73e65c5ae7079f77b3f6e85c44
Author: Will Hopper <whopper@puppetlabs.com>
Date:   Mon Jul 23 16:45:55 2012 -0700

    Update Debian packaging rake task to correctly create the orig.tar.gz

commit 63b860e3a0c04690dcd26759fde8bbe93bf164c2
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 17 15:16:50 2012 -0700

    Reduce stubs and expectations on settings
    
    Many tests set stubs or expectations on configuration values. This is
    unnecessary, as settings are reset before each test. Because creating a stub
    stubs out the entire value method on settings, stubbing any individual setting
    interferes with retrieving any other setting. This makes for weird errors and
    fragile tests. This commit changes most cases to just set each setting
    directly.
    
    Expectations on settings were often used to verify that a setting is used.
    This is not a good way of testing this, since it checks that the value is
    accessed but not that it is actually used correctly. Most expecations on
    settings are better expressed by changing the setting and then verifying a
    returned value.

commit 00b563d1124180608899d147a3441f52227a4b30
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Mon Jul 23 15:57:13 2012 -0700

    (Maint) Be more honest about submission methods
    
    While CONTRIBUTING.md makes it clear that GitHub is the best method
    for submitting changes, it's important that we be honest about the
    fact that Redmine and email patches have a tendency to get lost
    (sometimes forever). Hopefuly this change will encourage people
    even more to use GitHub as apposed to other methods of contributing.
    
    <hailee@puppetlabs.com>

commit b90c92b2f01069c527d16f35e8a97b5c3629502b
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Mon Jul 23 15:45:08 2012 -0700

    (Maint) Clarify that Redmine tickets are mandatory
    
    Prior to this commit, it was unclear if it was required to have
    a Redmine ticket before submitting a pull request. Now it is clear
    that this is a requirement in order to help us keep track of
    submissions.
    
    Also add details about looking for already existing tickets that
    are either duplicates or related. This should help with the issue
    of having tons of tickets all related to one bigger issue which
    cannot be tracked easily.
    
    <hailee@puppetlabs.com>

commit 62c14bd120fc1a1a85e30ea7aec0ebcff78b04e6
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Mon Jul 23 15:15:54 2012 -0700

    (Maint) Clarify which branches changes should be based on
    
    Priror to this commit, CONTRIBUTING.md did not reflect our current
    process in regards to where changes should be targeted. Now it is
    clear on these issues so that it will be easier for community
    members to target their submissions to the right location, and
    prevent us from frequently having to kick back pull requests that
    need to be rebased and retargeted.
    
    <hailee@puppetlabs.com>

commit cd1f831bb4b890b35e8eeb673b06fcc80df113ad
Merge: 53eacf5 76ed038
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jul 23 08:56:14 2012 -0700

    Merge branch '1.x'
    
    * 1.x:
      (Maint) Rename PuppetlabsSpec::Puppet{Seams,Internals}

commit 76ed0382d5078e6c2b9aa3d4b5c54080753229ee
Merge: 1b2a5d1 43910f2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jul 23 08:51:19 2012 -0700

    Merge pull request #42 from jeffmccune/maint/1.x/align_with_spec_helper
    
    (Maint) Rename PuppetlabsSpec::Puppet{Seams,Internals}

commit 43910f272f3ac423a92e8a54365b8dd55e783e9d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jul 23 08:47:18 2012 -0700

    (Maint) Rename PuppetlabsSpec::Puppet{Seams,Internals}
    
    The module PuppetlabsSpec::PuppetSeams has been renamed in the
    puppetlabs_spec_helper gem to PuppetlabsSpec::PuppetInternals.
    
    The method to obtain a scope object has also changed slightly.  Without
    this patch the spec tests will fail because the stdlib module is not
    aligned with the spec helper gem.  This patch fixes the problem by
    matching up messages with their receivers in the spec helper library.
    
    This change was made with:
    
        find * -type f -print0 | xargs -0 perl -pl -i -e 's/seams/Internals/gi'
        find * -type f -print0 | xargs -0 perl -pl -i -e 's/parser_scope/scope/gi'
    
    Paired-with: Andrew Parker <andy@puppetlabs.com>

commit 53eacf55d77f18f1b1ffdf48b3239b90005b4924
Merge: 9ace67d 1b2a5d1
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jul 20 16:06:05 2012 -0700

    Merge branch '1.x'

commit 1b2a5d1334ad799742f69d4f58036745f8c0a6d6
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jul 20 15:45:14 2012 -0700

    Update CHANGELOG for 1.0.0rc2

commit 416f098586e28006849234ae2b021dff43a46e2e
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jul 20 15:45:02 2012 -0700

    Update hiera-puppet hiera dependency to ~> 1.0

commit c686adb1565546bdde9171ba78ea7c337049b145
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jul 20 15:44:24 2012 -0700

    Update debian package task to handle orig version properly and use the correct directory name when building.

commit 697ebe165802fd6b697d432f9b807250023c4423
Merge: 47cdaf4 2fa4251
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Fri Jul 20 14:15:05 2012 -0700

    Merge pull request #41 from haus/update_hiera_puppet_packaging
    
    Update hiera-puppet package tasks

commit 6ab192f1c1ff643d095c9c8819ecef3f54d737f7
Merge: c0b6099 8d5c388
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Fri Jul 20 14:08:10 2012 -0700

    Merge pull request #941 from daniel-pittman/perf/3.x/disable-activesupport-dependencies-hooks
    
    Disable ActiveSupport::Dependencies hooks.

commit 2fa425103094b711f4cf1ae520f6092d719e6c1b
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jul 20 13:35:44 2012 -0700

    Update hiera-puppet package tasks
    
    This updates the hiera-puppet package tasks to match the hiera package tasks.
    It moves most variables to instance variables, adds helper methods, updates
    templates to reference correct instance variables. It automates the debian
    packaging using one package command instead of two. It consolidates the two
    debian changelogs into one template.

commit 8d5c388b6251b10a70ff22c8c869fd55ac434070
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jul 16 17:50:10 2012 -0700

    Disable ActiveSupport::Dependencies hooks.
    
    The ActiveSupport::Dependencies code is loaded along with Rails, and hooks
    into a bunch of the system.  This consumes a surprisingly large amount of CPU
    time watching for constants and generally acting to support unloading code.
    
    This is related to the code that automatically requires libraries when the
    constant is first accessed.
    
    We don't - can't, since Rails is a soft dependencies - depend on that feature,
    or anything related to it, we have no benefit from paying that horrible price.
    
    Dropping this is actually a significant drop in CPU consumption - some 8
    percent of the CPU cost in my testing is attributed directly to this feature.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c0b609930db883227e19c8ac758baaa04d014eab
Merge: e7b3283 aa9c09f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 20 13:32:56 2012 -0700

    Merge remote-tracking branch 'dpittman/perf/3.x/eliminate-type-attribute-aliases' into 3.x
    
    * dpittman/perf/3.x/eliminate-type-attribute-aliases:
      Eliminate Puppet type attribute aliases.
    
    Conflicts:
    	lib/puppet/type.rb

commit e7b3283619d1b0a62643a25ed1951c0128e01bb4
Merge: 3118f40 9584511
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 20 13:28:30 2012 -0700

    Merge remote-tracking branch 'dpittman/perf/3.x/only-one-symbol-to-zaml' into 3.x
    
    Conflicts:
    	lib/puppet/util/monkey_patches.rb

commit 3118f405bf0dae76d56125de0923d19a8d9e62a1
Merge: 8ea0cfe c4fd0e5
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 20 13:21:29 2012 -0700

    Merge branch 'perf/3.x/reduce-puppet-memory-footprint' into 3.x
    
    * perf/3.x/reduce-puppet-memory-footprint:
      tagging: use a static regexp rather than rebuilding it
      file_serving: avoid rewriting paths if possible.
      log_paths: memoize the entire value, not just part of it.
      zaml: speed micro-optimization for Time output
      whit: cache the `to_s` result.
      provider: don't create useless proc instances.
      zaml: don't sort object attributes for output
      util: don't rebuild regexp every time we invoke absolute_file?
      parser/files: use a cheaper test for "is this path absolute?"
      Eliminate remaining uses of FileCollection.
      FileCollection is a memory loss, not a memory win.
      type: support implicit "identity" transformation
      monkey_patch: cache Symbol to_proc result.
      lexer: remove some unused stats collection
      tagging: document why fixing this horror is hard.
      type: memoize key_attributes for types.
      Avoid object creation/destruction when possible.
    
    Conflicts:
    	lib/puppet/provider.rb

commit 47cdaf473f7637e5fb3d6dea962dfb186a1b8228
Merge: 743f531 8e4e76a
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Fri Jul 20 11:33:57 2012 -0700

    Merge pull request #40 from haus/replace_should_with_to/remove_puppetlabs_spec_helper_require
    
    Replace should with to/remove puppetlabs spec helper require

commit 8e4e76a0570c08132125f7316c892c39b565e73d
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jul 20 09:41:13 2012 -0700

    (maint) Replace .should on blocks with .to
    
    Rspec behavior changed in 2.11 from 2.9, so that expect blocks with .should
    will fail, while the preferred .to will succeed. This commit makes that change
    to .to, and works with both versions of Rspec.

commit 9c23e9df8a34bea61f24a4eeab0bd82dedc2d205
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jul 20 09:18:01 2012 -0700

    Remove puppetlabs_spec_helper require from root Rakefile
    
    Having puppetlabs_spec_helper as a require in the main Rakefile means that any
    rake tasks require the library, which is undesirable as it pulls in many other
    dependencies, including mocha, rspec-puppet, etc. Needing these gems installed
    to release a gem or build a release package is undesireable as well, so this
    commit removes that require. There is still a require on puppetlabs_spec_helper
    in spec/spec_helper.rb.

commit 134f7cb52fe64b81514d90a681610451a8be60e9
Author: rahul <rahul@pe-solaris11-vm.(none)>
Date:   Fri Jul 20 05:31:06 2012 -0700

    12465 : update the spec to make sure upgrade happens seamlessly.

commit 0eab4c1ba0ec05e10165ecb9588420fb4b9783a7
Author: Rahul <rahul@puppetlabs.com>
Date:   Thu Jul 12 17:59:51 2012 -0700

    12465 : update the service to use its own pid at /var/run/puppet.pid

commit 8ea0cfec9a472c920b0f0af36a3a35018111e432
Merge: d5e551e 3cd0efd
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 19 16:48:22 2012 -0700

    Merge branch 'performance-3.x-brice' into 3.x
    
    * performance-3.x-brice:
      Performance: template wrapper calling info is slow
      Performance: TypeCollection should remember nonexistent types before autoloading
      Performance: memoize resource#resource_type
      Pull out initialization of resource class? and stage?
      Performance: remove some occurences of type.to_s.downcase

commit 3cd0efde2d3f68e21b6615283194185c2d0bc6b4
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jul 1 19:00:15 2012 +0200

    Performance: template wrapper calling info is slow
    
    On every variable lookup of templates we're trying to gather where
    originated this operation in the template. This is time consuming
    and needed only when the variable can't be found.
    So we now lazily fetch this information only when we actually need
    the line information.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 242692e53357859ea8c12dcaf7f08b797dfa7162
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jun 30 20:40:30 2012 +0200

    Performance: TypeCollection should remember nonexistent types before autoloading
    
    When the TypeCollection doesn't find a class/definition it tries to
    autoload it in each namespace. This requires calling TypeLoader#import
    for this qualified name, which is a time consuming operation.
    
    When loading definitions/classes that can't be found by the autoloader
    (ie legacy manifests for instance),  the autoloader will still try to
    load them in the autoloaded module path, even though those types have
    possibly already been loaded (ie directly imported).  Searching for
    those definitions/classes then becomes really expensive.
    
    This problem is frequent for people (like me) that migrated manifests
    from the 0.24/0.25 era without refactoring all their modules to strictly
    follow the autoloading mechanism.
    
    Now, we negatively cache when we couldn't load a type with the
    autoloader, so that the next attempt we won't spend our time trying
    again.
    
    This saves about 30% of compilation time on my setup
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit e161cbcad5c35dd0348b85e6ea8643ff0777dbdf
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Jul 3 12:43:25 2012 +0200

    Performance: memoize resource#resource_type
    
    Because calling Puppet::Type.type forces a full and slow autoloading
    session with a negative result when the given resource type is a
    defined type, we therefore cache the result (there's no chance this
    value would change during the compilation).
    This saves about 20% of compilation time on my setup.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 89f405f31052ab31b88dd5319320b4fde7f99d16
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 19 16:27:03 2012 -0700

    Pull out initialization of resource class? and stage?
    
    Some slight modification to Brice's patch

commit 98baed873d4cc41a516f1bc152741b19ff4f91be
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jun 30 18:12:47 2012 +0200

    Performance: remove some occurences of type.to_s.downcase
    
    Those are either DRYed or plain unneeded.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 089960c2e6a4269157694b133928713ca88b2288
Author: rahul <rahul@pe-solaris11-vm.(none)>
Date:   Thu Jul 19 11:30:34 2012 -0700

    (#15547) remove the spaec between method and ()

commit 9ace67db5ef5571b8cbe845df509be438ec86958
Merge: 298e108 743f531
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jul 18 18:04:06 2012 -0700

    Merge branch '1.x'
    
    * 1.x:
      (Maint) Fix missing spec_helper lines in some tests

commit 743f5310d4517840e6f9df17df33dec95db94dcb
Merge: 88c5f9a 7ac4a54
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jul 18 18:03:46 2012 -0700

    Merge branch 'fix/1.x/fix_mock_failure' into 1.x
    
    * fix/1.x/fix_mock_failure:
      (Maint) Fix missing spec_helper lines in some tests

commit 7ac4a543da9c55f8d8950c4a481602ee79113053
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jul 18 18:00:57 2012 -0700

    (Maint) Fix missing spec_helper lines in some tests
    
    Some of the tests were not passing because of an order dependent
    failure.  I'm not entirely sure what was happening, but these example
    files need to require the spec_helper.
    
    This patch fixes both issues.  This should get the build green(er)

commit 298e108d923f48dba2aebc4a8dd09e444a8f4a2d
Merge: ea89ce0 88c5f9a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jul 18 16:57:42 2012 -0700

    Merge branch '1.x'
    
    * 1.x:
      (Maint) Fix mock error with hiera module

commit 88c5f9a06c96f9b791fca106d95b46c2087fe092
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jul 18 16:57:16 2012 -0700

    (Maint) Fix mock error with hiera module

commit ea89ce0dd85f9c098df0e8794a690ce7302a2923
Merge: 9a67da3 e886923
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jul 18 16:47:23 2012 -0700

    Merge branch '1.x'
    
    * 1.x:
      (Maint) Use PuppetlabsSpec::PuppetSeams.parser_scope
      Add watchr script
    
    Reviewed-by: Patrick Carlisle <patrick@puppetlabs.com>

commit e8869233d12039cc1cd842b9e2770d4d14aa6c91
Merge: d6883f3 d840325
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jul 18 16:46:47 2012 -0700

    Merge branch 'fix/1.x/harness_the_scope' into 1.x
    
    * fix/1.x/harness_the_scope:
      (Maint) Use PuppetlabsSpec::PuppetSeams.parser_scope
      Add watchr script
    
    Reviewed-by: Patrick Carlisle <patrick@puppetlabs.com>

commit b06c93d78c7c15951a9657f9a91ade666c2c4592
Merge: 9201abd d5e551e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jul 18 16:43:18 2012 -0700

    Merge remote-tracking branch 'origin/3.x'
    
    * origin/3.x:
      (maint) Add Puppet::Parser::Scope.new_for_test_harness
      Add catalog JSON terminus to improve performance.
      Implement a JSON file terminus to mirror YAML.
      tidy.rb: Added info about the default value of 'type' to the doc.
      Switch Rakefile off deprecated rake/gempackagetask
      Update main readme to have links to contrib and dev docs
      Fixed #14975 - Fixed incorrect help text in puppet doc application
      Eliminate `symbolize` everywhere, and remove it.
      Use `intern` rather than `symbolize` in Puppet::Type
      Implement Symbol#intern when it is missing.

commit d5e551e65c1498ecfc80807ec68f84184125cd84
Merge: b0bc704 4922988
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jul 18 16:38:01 2012 -0700

    Merge branch 'fix/3.x/harness_the_scope' into 3.x
    
    * fix/3.x/harness_the_scope:
      (maint) Add Puppet::Parser::Scope.new_for_test_harness
    
    Reviewed-by: Patrick Carlisle <patrick@puppetlabs.com>

commit d840325f7843b1412bfb53b5b38c2f852b539e3a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jul 18 14:28:58 2012 -0700

    (Maint) Use PuppetlabsSpec::PuppetSeams.parser_scope
    
    Without this patch the Hiera spec tests fail against Puppet 3.x and
    later.  The specs fail because the method signature of the
    Puppet::Parser::Scope class initializer has changed from Puppet 2.7
    behavior.
    
    This patch fixes the problem by switching over all uses of
    Puppet::Parser::Scope.new to the seam method implemented in the common
    spec helper in PuppetlabsSpec::PuppetSeams#scope_for_test_harness
    
    Reviewed-by: Patrick Carlisle <patrick@puppetlabs.com>

commit def41d5cc295286525776f24142e0140d8c1ef4f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jul 18 14:00:33 2012 -0700

    Add watchr script
    
    Usage: watchr spec/watchr.rb

commit 4922988d7a81a9d6cffb8bb18bdcab7138a621e9
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jul 18 12:38:12 2012 -0700

    (maint) Add Puppet::Parser::Scope.new_for_test_harness
    
    Without this patch there is no clear path into the internals of Puppet
    for third parties who intended to exercise Puppet parser functions.
    
    This is a problem because many 3rd parties, such as the stdlib module
    and hiera-puppet extend Puppet using parser functions.  These modules
    create instances of Puppet::Parser::Scope objects in their test harness
    to invoke the parser functions they're testing.
    
    The specific problem this patch means to address is the dependency of
    Puppet modules on the specific method signature of
    Puppet::Parser::Scope#initialize  This patch addresses the problem my
    adding a new method, Puppet::Parser::Scope.new_for_test_harness which
    accepts a single argument, the node name, and returns a scope instance
    bound to a compiler instance and a node instance.
    
    The common spec helper should be augmented to invoke this method.  All
    Puppet modules that exercise parser functions should then decouple
    themselves from Puppet itself and instead depend upon the common spec
    helper behavior.
    
    Reviewed-by: Patrick Carlisle <patrick@puppetlabs.com>

commit b0bc70432897ed7e90b34c753d76777e55e537fd
Merge: dccaf35 209b561
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Jul 18 15:57:31 2012 -0700

    Merge pull request #930 from daniel-pittman/perf/3.x/2892-json-terminus-for-catalog-cache
    
    #2892: json terminus for catalog cache

commit 209b56159f1b41be1cd2d2dd63c487a5f4654a90
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 4 00:20:48 2012 -0700

    Add catalog JSON terminus to improve performance.
    
    This adds a JSON backed catalog terminus, so that the catalog cache can
    migrate away from YAML to a faster and more stable storage format.
    
    This is not the default: that still falls to old, trustable YAML which we know
    to be stable and effective.
    
    To enable this, edit your routes.yaml file and add:
    
        agent:
          catalog:
            cache: json
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit dda1c6445303943a9ca997d47a170fe41ba769ad
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 3 16:45:27 2012 -0700

    Implement a JSON file terminus to mirror YAML.
    
    For a bunch of local caching and retrieval, Puppet uses a YAML backed local
    file terminus to store, retrieve, and search content.  This is great, but the
    YAML encoder is super-slow and painfully odd across Ruby versions.
    
    Our PSON support is much more reliable, as well as substantially faster, and
    is pretty much as capable.  There isn't much reason, other than migration
    cost, to prefer YAML to PSON encoding of data transfer documents.
    
    Having a JSON terminus allows the user to configure, manually, the use of JSON
    everywhere that we previously used YAML.  While this doesn't bring the
    benefits out of the box, it allows users to select this while we flush out any
    lingering bugs left in the support code and system.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c0a0a45c010c72a6acf3064edf82adc99c2d1375
Author: Jakub Holy <jakub.holy@iterate.no>
Date:   Mon Jun 25 11:43:12 2012 +0300

    tidy.rb: Added info about the default value of 'type' to the doc.

commit dccaf35d4e22c59d08f84c572fe982f37343a4e4
Author: Jakub Holy <jakub.holy@iterate.no>
Date:   Mon Jun 25 11:43:12 2012 +0300

    tidy.rb: Added info about the default value of 'type' to the doc.

commit 4fe17449a8790b64f95bcbfd957e0a8035cffa9f
Merge: cf6e913 a09df46
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Jul 18 15:35:21 2012 -0700

    Merge pull request #932 from daniel-pittman/perf/3.x/symbolize-is-costly-compared-to-intern
    
    Perf/3.x/symbolize is costly compared to intern

commit cf6e913148bea9178cbf1f8dc020cac08dabcc5c
Author: R. Tyler Croy <tyler@monkeypox.org>
Date:   Wed Feb 8 02:50:49 2012 -0800

    Switch Rakefile off deprecated rake/gempackagetask
    
    Fixes #15463

commit 2d994c2213cadbc19138cdda6a4d3bd548a3d519
Author: R. Tyler Croy <tyler@monkeypox.org>
Date:   Wed Feb 8 02:50:49 2012 -0800

    Switch Rakefile off deprecated rake/gempackagetask
    
    Fixes #15463

commit 22a2e9024d0a482b98b2cd305f19dc7e359f57ac
Merge: a12852f 85111d8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jul 18 15:21:42 2012 -0700

    Merge branch 'maint/master/conditional-pending' of https://github.com/joshcooper/puppet into 3.x
    
    * 'maint/master/conditional-pending' of https://github.com/joshcooper/puppet:
      Maint: Actually execute the tests on non-windows platforms
      (#14441) Require instrumentation indirections
      Make Puppet's gem package task the same name as other Puppetlabs' projects
      (maint) Make 3.0.x work with rspec-puppet
      Re-enable this test to work on windows
      Change one test to use the new confine syntax.

commit a12852fc260a6e2b381c04048eb9b910f0b53b71
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Sat Jul 14 11:42:22 2012 -0700

    Update main readme to have links to contrib and dev docs
    
    Our README currently rendered on github doesn't show people how get into
    the contribution process.  I've added a very small section to point to
    the other doc files that exist in our repositories.  This was based on
    feedback at the Community Leadership Summit 2012.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit 7324f54a675da5b17812a8c02d98c312409be790
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Sat Jul 14 11:42:22 2012 -0700

    Update main readme to have links to contrib and dev docs
    
    Our README currently rendered on github doesn't show people how get into
    the contribution process.  I've added a very small section to point to
    the other doc files that exist in our repositories.  This was based on
    feedback at the Community Leadership Summit 2012.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit 9201abd04982c89300de72addd18587bd7663185
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jul 18 15:09:26 2012 -0700

    Revert "Merge pull request #920 from rtyler/issues/gemfile-15464"
    
    This reverts commit edc36fc7351630158828305e5124e5b46f89cbdf, reversing
    changes made to 849f31a605a886b2246c09b7c008835e16010b78.
    
    The gemfile is a great idea, but the one that was merged in is
    incorrect. I shows a dependency on cucumber for development and another
    dependency on rack. If we are going to bring this in it should reflect
    our actual dependencies and we need to get it used in our testing
    environments so that it stays up to date.

commit cb5561ee50563516a6ac0ffbad27f143c086cf75
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 12 12:31:49 2012 +0100

    Fixed #14975 - Fixed incorrect help text in puppet doc application

commit c7fa41b4badddca1fdd517e9ae4ff5f831f3fda2
Merge: a059a45 5c8a08c
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Jul 18 14:37:13 2012 -0700

    Merge remote-tracking branch 'origin/3.x'

commit 5c8a08c9005ec9e9cfd8a2aed44ec68e85fbfb76
Merge: f121d7d 6670053
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Jul 18 14:32:00 2012 -0700

    Merge pull request #952 from daniel-pittman/bug/3.x/zaml-map-key-with-embedded-newline-corruption
    
    zaml: handle multi-line map keys and array values correctly.

commit f121d7d59a13d40a5143bb1a7ab870b7435282c8
Merge: f6af2c2 0c87285
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Jul 18 14:07:13 2012 -0700

    Merge branch 'tickets/3.0.x/15398' of https://github.com/masterzen/puppet into 3.x
    
    * 'tickets/3.0.x/15398' of https://github.com/masterzen/puppet:
      (#15398) fix typo in Scope#number? float detection regex
    
    Conflicts:
    	lib/puppet/parser/scope.rb

commit 6670053ac60b44e98dd567b3884a4c69f6ae24ff
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 18 13:53:11 2012 -0700

    zaml: handle multi-line map keys and array values correctly.
    
    The ZAML encoder had some bugs when handling multi-line string values in map
    keys and arrays. It also changed behaviour slightly when I modified it for
    speed, causing a regression in another case that was correctly handled.
    
    This fixes that, as well as making more robust the process of tagging
    structural keys that can span multiple lines.
    
    It also adds some tests to validate that we don't regress again.
    
    This fixes a pre-existing bug in the encoder, as well as my regression.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f6af2c2f7011d7096fc934ca9d1aaed0931de1f8
Merge: 58e8d93 e69e4fc
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Jul 18 13:24:03 2012 -0700

    Merge remote-tracking branch 'origin/2.7.x' into 3.x

commit e69e4fccca02795f137c0942869a698a2aa5843f
Merge: 96d7072 57a74f7
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed Jul 18 13:19:55 2012 -0700

    Merge pull request #950 from zaphod42/bug/2.7.x/13070-error-describing-types
    
    (13070) Mark files as loaded before we load

commit c4fd0e5dc164609607303668b97cc52f0302cde6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 18 10:09:47 2012 -0700

    tagging: use a static regexp rather than rebuilding it
    
    This is worth ~ 1 percent CPU time in catalog compilation in testing.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit aa55c913959067c88a5af6d8e769b450ce46f9ec
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 16:26:10 2012 -0700

    file_serving: avoid rewriting paths if possible.
    
    A trivial change - only rewrite from '//' to '/', rather than from '/+' -
    means that we can reduce the garbage generation in this
    function substantially.  Most paths now pass through unmodified.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 79454e67a3f28880e17358ed275101c9e924fb02
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 16:16:28 2012 -0700

    log_paths: memoize the entire value, not just part of it.
    
    This function would memoize the upstream input, but would then recalculate the
    final string value every time through.  That doesn't make much sense, so we
    might as well memoize the entire value.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 82e158f6e7a2da8da88c0fb95f3d72e3e0563247
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 15:45:27 2012 -0700

    zaml: speed micro-optimization for Time output
    
    This is a minor reduction in the time spent outputting times in the ZAML
    encoder, by using a (30 percent) faster mechanism to trim the generated ms
    value down.
    
    There is a minor reduction in memory load, but not anything substantial.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 57a74f7a9c8480cbfbf7e3e8db64b0b5c11227ce
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 17 18:14:51 2012 -0700

    (13070) Mark files as loaded before we load
    
    There is a loading cycle that occurs in some situations. It showed up as
    not being able to describe certain types because the description
    depended on the name of the type's class. For some reason (that is not
    entirely clear) the multiple loading of code seems to cause the name of
    the class to be wrong.
    
    This patch changes it to mark the file as loaded first, so that we don't
    get into a loading cycle.

commit 58e8d932221a63fff6db2833ef21d56f3ed1febd
Merge: 2050f98 f4281ce
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Tue Jul 17 17:19:31 2012 -0700

    Merge pull request #949 from daniel-pittman/bug/3.x/fix-missing-ord-on-185
    
    Implement `Fixnum#ord` for Ruby 1.8.5

commit f4281ce4492a473c3cb4e6d89c8fb685bf8349e2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 16:45:14 2012 -0700

    Implement `Fixnum#ord` for Ruby 1.8.5
    
    This is a compatibility method for addressing characters introduced in 1.8.7;
    we also need the same compatibility back to 1.8.5, so we monkey-patch it in
    when it isn't already there.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ccfd5cd9847cca373661059196fdeaa2fd347b2d
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Jul 17 16:30:19 2012 -0700

    15547 : Add home environemnt to pkgutil
    
    pkgutil expects home to be set when run as non-user. Add $HOME when
    invoking pkgutil

commit 43d86d40570140918009f2048f8998fb2200f81f
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Jul 17 16:28:43 2012 -0700

    15547 : valid locales as sentinel and check
    
    Using spurious values for LC_ALL and LANG values in solaris causes
    some commands to barf. Since we are only checking for overrides, we
    can aswell use a valid locale.

commit cce0484df120e184cab8ea18eb34aa2e7c0445b8
Author: rahul <rahul@puppetlabs.com>
Date:   Tue Jul 17 16:27:17 2012 -0700

    15547 : use a clean env for builtin check
    
    solaris has /bin/cd as a command to ensure posix compatibility. So
    we need to avoid using '/bin' in path if we want to ensure that we
    are looking at shell builtin cd.

commit 741e20f2eefda43c5cd1fc5df692213bece19b71
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 15:31:46 2012 -0700

    whit: cache the `to_s` result.
    
    This saves about 1.6MB of generated memory, something on the order of 10,000
    object allocations and garbage collections, and a whole lot of waste in my
    test system.
    
    This runs at, like, O(50n), so while it is just linear it is still a huge
    constant factor through the system.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a5fc3996b419a4bc222832fa438d745a2be0b1e8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 15:20:48 2012 -0700

    provider: don't create useless proc instances.
    
    When defining commands, the code created an empty proc in the 129 out of 130
    cases that the caller didn't supply one, on my test system.  That was an awful
    lot of uselessly defined code to avoid "unless block" in the target method.
    
    Which we do, and avoid that load.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2050f986852078929590717ba4055f98449c319f
Merge: bf644f3 6786841
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue Jul 17 14:57:48 2012 -0700

    Merge pull request #935 from daniel-pittman/perf/3.x/zaml-performance
    
    ZAML/YAML performance and correctness fixes

commit b1dc261d71b6d838a70c0d658c184acdc619bf7a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 14:49:03 2012 -0700

    zaml: don't sort object attributes for output
    
    Sorting YAML attributes makes for marginally nicer human-friendly YAML output,
    but ends up costing a non-trivial amount of computation to determine the
    ordering of objects.
    
    We can skip that with pretty much no adverse effects.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a059a452b53e1f59a83151c7611a45bbbd9b1811
Merge: dcbc459 bf644f3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 17 14:37:25 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      Fix find_module_root tests so paths are expanded in assertions
      Refactor ast_spec to use real values
      (Maint) Don't assume paths are absolute
      Determine packaging version with git describe
      (#14600) Fix cleanup of tempfiles in file_spec
      (#14531) Change default ensure value from symlink to link
      (#14860) Fix puppet cert exit status on failures
      (#14599) Handle ENOTDIR in file type
      (#13880) Add openrc spec - service with extreme long name
      (#13880) Add openrc service provider for Gentoo and Funtoo
      Fixes for #10915 and #11200 - user provider for AIX
      (#10354) added delete command to fix missing userdel flag in useradd provider

commit bedb0ce7583cdf2b4ad2aa0e542f756c5f8c5471
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 14:35:43 2012 -0700

    util: don't rebuild regexp every time we invoke absolute_file?
    
    Previously, the `absolute_path?` tool rebuilt both regular expressions, POSIX
    and Windows, every time it was invoked.  Since they are constant, promoting
    them to a constant saves some time and trouble for the VM.
    
    We can also tell it that you can interpolate the values once on Windows,
    rather than every time through, which should improve performance and object
    load further on that platform.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 05d834ec82e2c1292b0e71d7b24b7b2bf8b461b7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 14:34:04 2012 -0700

    parser/files: use a cheaper test for "is this path absolute?"
    
    The parser used `path == File.expand_path(path)` as a test for the path being
    absolute - something that wasn't entirely accurate, and that also wasn't
    terrible fast. It also generated substantial memory and object allocation
    traffic in the VM.
    
    Replacing that with our util absolute_path? tool is faster and more efficient.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit bf644f367f3379016d7819977e01a51f98fd662e
Merge: e6a537f 995ad90
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jul 17 14:11:54 2012 -0700

    Merge pull request #945 from kbarber/ticket/3.x/maint-find_module_root_fix_expand_path_test_failure
    
    Fix find_module_root tests so paths are expanded in assertions

commit b0e6f4cccb43c9f8ae15e37dc12b3603c1aa45f3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 13:49:11 2012 -0700

    Eliminate remaining uses of FileCollection.
    
    As noted, the whole FileCollection concept was an overall loss - it used more
    memory, more CPU, and added more complexity.
    
    This eliminates the rest of the uses of the tool, and turns it into an empty
    stub that avoids breaking the external API of things that included it, but
    removes any unification that it tried to do.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b73199244069961b1e7c7a66baa87d4fd608532e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 13:31:09 2012 -0700

    FileCollection is a memory loss, not a memory win.
    
    The file type used the FileCollection object to try and reduce memory
    consumption by deduplicating path strings.
    
    Unfortunately, this had the opposite effect in the real world, even when many
    duplicate paths were present - it cost about 1.5MB extra memory in my tests.
    
    It also costs non-trivial CPU time reconstituting the original path every time
    we need to interact with that, and we do that a bunch.
    
    So, just ditch the entire thing and move folks to just using paths directly.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 995ad90afefdceffe3aa486a8ce4748be9124e67
Author: Ken Barber <ken@bob.sh>
Date:   Tue Jul 17 21:35:00 2012 +0100

    Fix find_module_root tests so paths are expanded in assertions
    
    Previously these tests were failing because on Windows driver letters were
    being prefixed within the find_module_root method. This changes the assertions
    by expanding the paths we are mocking.

commit adfc27ef623525b0eee662b50ad774b27b2570c3
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jul 17 13:26:43 2012 -0700

    Maint: Fix borked help/man output for node clean
    
    This action's help was busted:
    
    * You can't put bulleted lists in the description string of an action. It blows
      up the man page formatting.
    * Description must begin with a description of the action, not a continuation of
      the summary; otherwise it makes the output of 'puppet help cmd action' useless.
    * The description of how unexport works wasn't sufficiently clear.

commit 301cdbdeaa8d2072139a3442eccd41a2c8c27a9e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 12:46:45 2012 -0700

    type: support implicit "identity" transformation
    
    Almost every implementation of `title_patterns` on a type returned with a
    lambda that performed an "identity" transformation - `lambda {|x| x }`.
    
    That actually cost a notable amount of memory allocation, because it created a
    new instance of the lambda on every invocation. That represented about three
    percent of total memory allocation, or 8MB total.
    
    This allows the `title_patterns` data to simply omit the lambda - if you don't
    supply one, we don't invoke it to transform the result, just assign directly.
    
    This allows everyone to keep using this the way they currently do, including
    supplying an identity lambda if they want, but allows internal types and types
    that don't override the default to be more memory efficient.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e7bfafd3e45e9a47a0a4d7204e9da34d6184f73c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 12:42:54 2012 -0700

    monkey_patch: cache Symbol to_proc result.
    
    If we use it, our monkey-patch version of Symbol to_proc is worth caching the
    resulting proc - the hit rate is through the roof, because we only really act
    on a small set of symbols.
    
    This reduces some extra object and memory allocation by reusing the same proc
    every time we transform the same symbol.
    
    That saves 99.84 percent of the memory allocated from this method - about four
    percent of the total memory allocation in my test run of Puppet with real
    manifests and behaviours.  (About 10MB out of 260MB originally; 26kb after.)
    
    This applies to all versions - newer Rubies with a real implementation of
    to_proc don't cache the result, so we do it for them.
    
    Older versions *cough* 1.8.5 *cough* still get our hand-written implementation
    of the proc, so that they work. It probably is equivalent to the real version,
    but I would rather allow core changes to show.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e6a537f0bdbbdc8682be6db443a1c2862cceac22
Merge: 691f8ae a10aa2f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 17 11:55:13 2012 -0700

    Merge branch '2.7.x' into 3.x
    
    * 2.7.x:
      (Maint) Don't assume paths are absolute
      Determine packaging version with git describe
      (#14600) Fix cleanup of tempfiles in file_spec
      (#14531) Change default ensure value from symlink to link
      (#14860) Fix puppet cert exit status on failures
      (#14599) Handle ENOTDIR in file type
      (#13880) Add openrc spec - service with extreme long name
      (#13880) Add openrc service provider for Gentoo and Funtoo
      Fixes for #10915 and #11200 - user provider for AIX
      (#10354) added delete command to fix missing userdel flag in useradd provider
    
    Conflicts:
    	lib/puppet/ssl/certificate_authority/interface.rb
    	spec/integration/type/file_spec.rb
    	spec/unit/ssl/certificate_authority/interface_spec.rb

commit f8f41155760dc20d6193d880e53640f1fe346854
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 11:33:06 2012 -0700

    lexer: remove some unused stats collection
    
    The lexer was instrumented to identify the number of regex vs string tokens
    matched in the system - presumably as part of making sure it was testing in
    the optimal order.
    
    At this point we know the outcomes, so the collection can be removed.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b3a52244b1615bff96b37163ee9376083e6fbb0a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 11:12:28 2012 -0700

    tagging: document why fixing this horror is hard.
    
    The tagging support module has an "API" that includes other objects directly
    interacting with the way it stores data, including at the edges where we
    serialize to the wire format for transport.
    
    So, we can't change it.  Even if it sucks - it allocates lots of objects, it
    uses very inefficient deduplication mechanisms - we are kind of stuck,
    right now.  Fun times.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 691f8aea128f64aff8157f65db1af321ffd1070c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 17 11:07:29 2012 -0700

    Refactor ast_spec to use real values
    
    Paired with: Andy Parker

commit 96d70720844dabfe38de89275f483dd48b8d2985
Merge: c887352 a23cf6e
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Tue Jul 17 10:58:48 2012 -0700

    Merge pull request #943 from joshcooper/maint/2.7.x/openrc-spec
    
    (Maint) Don't assume paths are absolute

commit a10aa2fdc48505c3f6b5c6ecf5ee76d3d0de3e9d
Merge: c887352 a23cf6e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 17 10:58:34 2012 -0700

    Merge branch 'maint/2.7.x/openrc-spec' of github.com:joshcooper/puppet into 2.7.x
    
    * 'maint/2.7.x/openrc-spec' of github.com:joshcooper/puppet:
      (Maint) Don't assume paths are absolute

commit a23cf6e9e1eb9d16f6b9c5f82a97288fecb801bd
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 17 10:50:40 2012 -0700

    (Maint) Don't assume paths are absolute
    
    Previously, the spec test failed on Windows, because the test assumed that
    paths such as '/sbin/rc-service' are absolute on every platform. Since
    they are not absolute on Windows, the test would fail.
    
    This commit changes the test to not rely on the internals of the
    `Puppet::Util.which` command that is included in every provider.

commit fc2447290fb0f82e0aeb78837317e86135ab94c4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 00:39:26 2012 -0700

    type: memoize key_attributes for types.
    
    The key_attributes have about a 0.05 percent miss rate on the cache, and the
    value is static for the life of the type, so we can avoid substantial numbers
    of object allocations.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4c7e5c294da2614c975d8adf4046ea74b61610f1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jul 16 23:40:31 2012 -0700

    Avoid object creation/destruction when possible.
    
    Object creation and destruction, even over a short time-frame, is expensive,
    so where we can avoid it we should.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9584511e2681f16b8b5c61fa5605c1a57ddad325
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 17 00:21:45 2012 -0700

    zaml: unify on a single definition of `to_zaml` for Symbol
    
    There were two competitive definitions of the `to_zaml` function over Symbol,
    one in monkey_patches and one in the core ZAML library.
    
    The monkey patch version won in practice, so now they are unified, and the
    monkey patch version is adopted to replace the core ZAML version, in the zaml
    Ruby file.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 367926af9ade34a2a43efac6c8f46842b93d6cac
Author: Adrien Thebo <adrien@puppetlabs.com>
Date:   Wed Jun 27 16:50:43 2012 -0700

    (#15264) Custom title patterns can fail cryptically.
    
    If a type uses a composite namevar and none of the supplied title
    patterns matched, #parse_title would return a nonsensical array value.
    This would lead to unexpected behavior like output like:
    
        /usr/lib/ruby/1.8/puppet/puppet/resource.rb:235:in `to_hash': undefined method `merge' for #<Array:0x007ffba3d80d78> (NoMethodError)
    
    If a type overrides the title_patterns method and nothing matched,
    there's no possible way to recover from this. To prevent misleading
    errors from being thrown, this patch raises an error if none of the
    title patterns matched.

commit c88735293b0d987752c592e566f846153cf27cea
Merge: eb31584 0859364
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 23:08:35 2012 -0700

    Merge pull request #654 from stschulte/feature/2.7.x/13880
    
    Add openrc service provider for Gentoo and Funtoo

commit eb3158423078f9621ef026fc13322a1647bcb390
Merge: 1100101 06eb9a9
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 22:56:01 2012 -0700

    Merge pull request #585 from andytinycat/2.7.x
    
    2.7.x - fix for password setting on AIX user provider

commit 1100101d6ebc23d162c45effa23b344e959e35e2
Merge: 5ae4e1e 0219818
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 22:27:23 2012 -0700

    Merge pull request #864 from stschulte/ticket/2.7.x/14531
    
    #14531 Fix default ensure value for symlinks

commit 5ae4e1e5ff11d75685992864141fd22a7efc3d99
Merge: aaf1e00 b572810
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 22:11:37 2012 -0700

    Merge pull request #805 from stschulte/ticket/2.7.x/14599
    
    #14599 Handle ENOTDIR in file resource

commit aaf1e008e3f47754b723f48ffd029540a6191494
Merge: 8d51f19 0b01bb3
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 21:51:13 2012 -0700

    Merge pull request #839 from jeffmccune/ticket/2.7.x/14860_puppet_cert_generate_subcommand_does_not_exit_with_non-zero_status_when_certificate_is_not_created
    
    (#14860) Fix puppet cert exit status on failures

commit dcbc459e692de41e2f921ff45845f7cece28bb71
Merge: bb9c0c0 8560f0a
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 21:34:06 2012 -0700

    Merge pull request #883 from jakubholynet/master
    
    tidy.rb: Added info about the default value of 'type' to the doc.

commit bb9c0c0fd2be85564a0b162176979912293c04b1
Merge: 2b14763 30aee5c
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 21:25:17 2012 -0700

    Merge pull request #852 from jamtur01/ticket/master/14975
    
    Fixed #14975 - Fixed incorrect help text in puppet doc application

commit aa9c09fb9f5315f5e6d732659aa035bde0a008fc
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jul 16 17:08:47 2012 -0700

    Eliminate Puppet type attribute aliases.
    
    About six years back we added attribute aliases to the Puppet type definition.
    Although it isn't completely clear why this was done, it wasn't used then, and
    hasn't been used over the last six years or so.
    
    Since this has a non-trivial cost checking for an alias every single time we
    touch a property, and we do that ... a lot, eliminating the code has a small
    but notable reduction in CPU time.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2b14763ef7baaef21af033ae4b2783d344a59d6e
Merge: 0bde2c2 85111d8
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 16:12:41 2012 -0700

    Merge pull request #859 from joshcooper/maint/master/conditional-pending
    
    Re-enable tests that were being skipped on non-Windows platforms

commit 0bde2c2d264dcdf722584536230396ac05aa7b74
Merge: a6a3248 58a0a80
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jul 16 16:00:05 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (#15549) Missing coverage for Puppet::ModuleTool.find_module_root and is_module_root?

commit 58a0a80b0348774d965a5ad3c7343e523255afd4
Merge: 4999578 f0bb1e1
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jul 16 15:57:48 2012 -0700

    Merge branch '3.0rc' into 3.x
    
    * 3.0rc:
      (#15549) Missing coverage for Puppet::ModuleTool.find_module_root and is_module_root?
    
    This merge is necessary to get the last set of changes to 3.0rc before closing
    off the 3.0rc branch until we re-enter release candidate phase for 3.0.0

commit a6a32483213e406e4f23d04e5a55dd4d1fa2d979
Merge: 84eb470 4999578
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 16 15:51:21 2012 -0700

    Merge branch '3.x'
    
    * 3.x: (42 commits)
      Preserve ordering when returning module list
      type_loader: use forwardable rather than hand-rolling it
      scope: comment on a future cleanup
      scope: use methodhelper to handle compiler option setting
      scope: simplify and clarify if statements
      (#15533) Change puppet module build to build the module in cwd (or parents)
      resource: eliminat 0.24 compatibility metaparameter support
      resource: cleanup indentation and redundant code
      resource: use delegation and aliasing rather than wrappers
      parser: use forwardable rather than reimplementing it
      lexer: more forwardable delegation
      lexer: use generalized truth for `indefine?`
      lexer: whitespace and indentation clean token lists
      lexer: use methodhelper to set token options.
      lexer: raise errors before creating objects
      lexer: use forwardable rather than hand-rolling it.
      lexer: be consistent about how to access a member
      lexer: use alias instead of hard-rolling it...
      lexer: clearer variable name for the initializer
      functions: trivial code shortening
      ...

commit f0bb1e1585227bbbf0159745431dafedb3d1872f
Merge: 19e39c1 d5fe3d5
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 15:50:54 2012 -0700

    Merge pull request #938 from kbarber/ticket/3.0rc/15549-tests_for_find_module_root
    
    (#15549) Missing coverage for Puppet::ModuleTool.find_module_root and is_module_root?

commit 49995783ba3c5880101352cc67b57ea6fd03bd5e
Merge: 9fbedb4 e507ecd
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Jul 16 15:50:39 2012 -0700

    Merge pull request #937 from daniel-pittman/maint/3.x/simplify-and-clarify-parser-code
    
    simplify and clarify parser code

commit 9fbedb499074e47d851aea3298fba1ac65861315
Merge: 9b01091 19e39c1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 16 15:49:04 2012 -0700

    Merge branch '3.0rc' into 3.x
    
    * 3.0rc:
      Preserve ordering when returning module list
      (#15533) Change puppet module build to build the module in cwd (or parents)

commit d5fe3d5ac45db32efd2860d0256d8b9615e40518
Author: Ken Barber <ken@bob.sh>
Date:   Mon Jul 16 23:46:57 2012 +0100

    (#15549) Missing coverage for Puppet::ModuleTool.find_module_root and is_module_root?
    
    The change #15533 modified find_module_root and added is_module_root? but I
    missed adding the test coverage for those methods. This patch adds the proper
    tests.

commit 8d51f195ff7756f7b848f51bac128441c0e91edd
Merge: 78a72c9 dd96d84
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 15:31:48 2012 -0700

    Merge pull request #870 from MosesMendoza/maint/2.7.x/use_git_describe_in_packaging
    
    Maint/2.7.x/use git describe in packaging

commit dd96d846f32d2c82b767a6616491824abe6bb908
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Jun 20 15:13:52 2012 -0700

    Determine packaging version with git describe
    
    This commit modifies the rakefile to use git describe
    to determine the package version instead of the hard-coded
    version in lib/puppet.rb. This takes a couple steps
    out of packaging RCs. The specific string manipulation
    is borrowed from puppetdb packaging.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 84eb470a9fc1bf4455cdc43a9962e536238416f2
Merge: 9574094 385db52
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 15:13:03 2012 -0700

    Merge pull request #919 from rtyler/issues/gempackagetask-15463
    
    Switch Rakefile off deprecated rake/gempackagetask

commit 385db52469538a16985e77d11618687732200839
Author: R. Tyler Croy <tyler@monkeypox.org>
Date:   Wed Feb 8 02:50:49 2012 -0800

    Switch Rakefile off deprecated rake/gempackagetask
    
    Fixes #15463

commit 19e39c1ded10dcdeb4ee18ab6a30bd7e7c364453
Merge: d346004 7c4e2ee
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 14:49:04 2012 -0700

    Merge pull request #936 from kbarber/ticket/3.0rc/15533-module_build_cwd
    
    (#15533) Change puppet module build to build the module in cwd (or parents)

commit 9574094a49b3db65df246c871272a5b7c52d8270
Merge: edc36fc d445b3e
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 14:36:29 2012 -0700

    Merge pull request #933 from stahnma/update_readme
    
    Update main readme to have links to contrib and dev docs

commit 78a72c959363e4b34cc69cbee8e79afc61795402
Merge: 8eb67f7 0d5a46a
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 14:10:25 2012 -0700

    Merge pull request #869 from stschulte/ticket/2.7.x/14600
    
    #14600 Cleanup temporary files in file integration spec

commit edc36fc7351630158828305e5124e5b46f89cbdf
Merge: 849f31a 2401af6
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 13:40:48 2012 -0700

    Merge pull request #920 from rtyler/issues/gemfile-15464
    
    Introduce a Gemfile to make dependency management easier for contributors

commit 2401af60e2e37a5f58a60b469cca7f787e938ad4
Author: R. Tyler Croy <tyler@monkeypox.org>
Date:   Mon Jul 16 13:37:18 2012 -0700

    Remove the unnecessary Gemfile.lock

commit d80602c030a24cef2d6b58efae3788c53a444234
Author: R. Tyler Croy <tyler@monkeypox.org>
Date:   Wed Jul 11 11:32:20 2012 -0700

    Add the parallel_tests gem to the Gemfile for speedier specs
    
    I cut test time by more than half with `parallel_rspec` (`bundle exec rake
    spec` versus `bundle exec parallel_rspec spec`)

commit 715a2990a031c61974ca2fe1e36122afe53c6fd0
Author: R. Tyler Croy <tyler@monkeypox.org>
Date:   Wed Jul 11 00:20:37 2012 -0700

    Introduce a Gemfile to make dependency management easier for new (and old) contributors
    
    This should allow new contributors to clone the repo then:
    
     * `bundle install`
     * `bundle exec rspec`
     * HACK
    
    Right now, the Gemfile assumes that facter will be located in the same parent
    directory as the puppet/ directory, this can change once Facter 2.0 is released
    
    Fixes #15464

commit 8eb67f71351cf31f89499120c411fd6ad63b2d41
Merge: 2baceaa ed73845
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Jul 16 12:41:41 2012 -0700

    Merge pull request #388 from codec/ticket/2.7.x/10354-missing-userdel-flag
    
    #10354 Missing userdel flag in provider/useradd.rb when managehome is set to true

commit d3460048fbcd18cc3a665948a40485f337311102
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 13 15:58:00 2012 -0700

    Preserve ordering when returning module list
    
    In a recent commit we changed the iteration of the modulepath and
    inadvertently made ordering unpredictable (by using a hash). This commit
    restores a predictable ordering that respects the modulepath and filesystem
    order.

commit e507ecd2f3e2000ea74dd71c97ec69655c03c513
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jul 16 10:07:23 2012 -0700

    type_loader: use forwardable rather than hand-rolling it
    
    This replaces the hand-rolled delegation with Forwardable, which makes it
    clearer that there isn't anything else going on.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 94920c4e9ff021f1f8aa31529d9bbf59247c9a6c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jul 16 10:02:29 2012 -0700

    scope: comment on a future cleanup
    
    This doesn't actually change anything, because I am not certain I want to go
    down the path of implementing counted-pop on array - but might as well clue in
    the next developer about why, and encourage them to be less lazy than I am.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b6c070eb64ac85e1319dd35722e27043c3edba71
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jul 16 09:53:22 2012 -0700

    scope: use methodhelper to handle compiler option setting
    
    Rather than open-coding the same set_options hash to accessor pattern in the
    compiler, delegate to the methodhelper tools.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 775adbaff5c64fcfc5638f29c6a3f8c9213ec454
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jul 16 09:50:30 2012 -0700

    scope: simplify and clarify if statements
    
    Reading code that starts with a negation - the true case flows through to the
    else block - is harder than reading normal, linear code.
    
    This reverses an unless to if to reduce the cognitive load of reading the code.
    
    It also rewrites a `return foo if bar; baz` into a simple if for the same
    clarity reasons.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7c4e2eed38c257b5b8e9bf39024a3b903023c182
Author: Ken Barber <ken@bob.sh>
Date:   Mon Jul 16 16:30:24 2012 +0100

    (#15533) Change puppet module build to build the module in cwd (or parents)
    
    Previously 'puppet module build' required a full path to build a module. This
    change will add the ability to run the command from within a module itself
    and have the package built correctly.
    
    Through changes to find_module_root it will also support running the command
    is a sub-directory of the module as well.
    
    Due to some lack of system and unit testing, I've added that as well as part
    of this patch and included tests for the new behaviour.

commit 18e34ebe65d9011330410c3b9dd74694646cae66
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 20:50:59 2012 -0700

    resource: eliminat 0.24 compatibility metaparameter support
    
    The parser resource object had a bunch of support for handling metaparameters
    differently for clients less than 0.25 - which is long, long dead, and can
    just be eliminated from the tree.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d7bb1208ac0621251972e9058267f2927daf0c76
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 20:43:39 2012 -0700

    resource: cleanup indentation and redundant code
    
    This fixes indentation of one expression, and eliminates a duplicate "private"
    declaration since the state of the object was already shifted to hide members.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b72bed6253952d2244de24d65035b461385146f0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 20:42:59 2012 -0700

    resource: use delegation and aliasing rather than wrappers
    
    This uses Forwardable and alias to avoid hand-writing trivial wrapper
    functions around methods that are either local aliases, or are directly
    delegated to some related object.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4694b8a1dab8a43e8db3baa16bef9bd335d105b9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 20:37:00 2012 -0700

    parser: use forwardable rather than reimplementing it
    
    This just replaces trivial delegations with the methods from Forwardable,
    cleaning up the code and better reflecting the intent of the author.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ddd6c083d52e8b45373078cf491202b8aa3a3409
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 20:28:32 2012 -0700

    lexer: more forwardable delegation
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c689454d59f2c4ee3ec96114e9beb267c0c8d723
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 20:23:52 2012 -0700

    lexer: use generalized truth for `indefine?`
    
    This can rely on Ruby generalized truth, not specific truth, allowing us to
    eliminate a bit of junky code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d42d0f7eed9490f5ed19a33f302e5ea191aca409
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 20:21:20 2012 -0700

    lexer: whitespace and indentation clean token lists
    
    The indentation and spacing around token lists was a bit messed up; take this
    chance to clean it up and bring it to current best practice.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 1dee1a8ec0b0d98c2f905ed7788038368416de47
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 20:02:01 2012 -0700

    lexer: use methodhelper to set token options.
    
    The code had an open-coded version of the set_options code from MethodHelper,
    with the trivial variance that the setter was invoked externally rather
    than internally.
    
    That doesn't have much point - might as well pass the options to the token and
    have it internally handle setting all the values instead.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 50eec79d872e9e953d58377198661f1217289456
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 20:00:25 2012 -0700

    lexer: raise errors before creating objects
    
    It makes more sense to have fully validated arguments before, rather than
    after, you run about creating things dependent on them.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b2a2eb0d867d1e5c762b8c7888f966b5d1a8be26
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 19:59:44 2012 -0700

    lexer: use forwardable rather than hand-rolling it.
    
    Where applicable, delegate to methods on members using forwardable instead of
    a hand-written equivalent.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6c1933aa4a0534710c1f4718ca648b82ef523d21
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 19:54:43 2012 -0700

    lexer: be consistent about how to access a member
    
    If you are going to use the accessor method rather than the member variable to
    check if something is set, you should probably also use it to determine what
    to return, right?
    
    Meanwhile, collapse the entire statement into a single `a or b` expression,
    because everyone knows there is an international shortage of newlines.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e62dc455bee8b8e787c54a36b96eafca3d75f111
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 19:51:11 2012 -0700

    lexer: use alias instead of hard-rolling it...
    
    As the comment says, there is no reason to avoid using `alias` rather than a
    dynamically generated wrapper function that does exactly the same
    thing. (Well, except for the extra stack frame and all.)
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 998ac913ba90d4f6b7b870e18b52e3222ae8f570
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 19:48:25 2012 -0700

    lexer: clearer variable name for the initializer
    
    This renames one of the inputs to the initialize function to reflect what it
    is - one of a set of types that we select between and modify our behaviour
    based on.  That hopefully makes the purpose of the code clearer.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d33920d58a56dff1de04ce58cb159bbf82f13da3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 19:40:50 2012 -0700

    functions: trivial code shortening
    
    This just eliminates a handful of pointless statements that did little other
    than obfuscate the purpose of the code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4928447b8ebc76f7004de516b946362e7c7021e8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 19:33:09 2012 -0700

    collector: break over-long line.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d21e0af616d5fa679ac783ed299f0881ce24aaf0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 19:31:14 2012 -0700

    ast: eliminate dead, commented-out code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ecb2477c77f95db0517e37702071b94a8d6b22dd
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 19:21:20 2012 -0700

    ast: code cleanup for variable nodes.
    
    This just rearranges an if statement so that it doesn't have a double
    negatives causing mental load evaluating the code as written.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 64a0ad7c6631835514f79dfa7e03396a61b73d22
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 19:16:20 2012 -0700

    ast: code cleanup for HostName nodes.
    
    This eliminates a to_s that duplicates the parent class.
    
    It also avoids depending on matching a regular expression object against a
    regular expression object - something that apparently works, but I can only
    imagine does so by pure accident.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ce2b3200599c7ae5c733abacca0328d1217e37db
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 19:09:12 2012 -0700

    ast: correctly quote strings in {Flat,}String nodes.
    
    A string that contained an embedded double-quote wouldn't be correctly escaped
    when the AST rendered the node to a flat string - it quoted around the
    outside, but didn't escape the content.
    
    This fixes that, and adds testing that embedded double-quotes are correctly
    handled on output.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c820133e043ba4c9afb2ddc4a1d30e37afb76050
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 18:57:33 2012 -0700

    ast: native boolean stringification is just fine.
    
    We don't need to manually override to_s on boolean objects to get the strings
    true and false out of them - so don't bother with the override.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f1bf0321324d943864d7dc58869d2eb65587a0da
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 18:46:56 2012 -0700

    ast: eliminate dead `settor` attribute of AST nodes.
    
    Once upon a time, AST entries that set something were evaluated before entries
    that didn't.  That was eliminated on Fex 28, 2008, in fd1573fd, by Luke.
    
    We might as well take the last, and misleading, vestige of that out of the
    tree at this point.
    
    Also, eliminate a couple of comment lines that have lingered from that era
    attached to something randomly else.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 326a2a71193bc00a0217ccc2e2da15cb0fc26eb4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 18:35:53 2012 -0700

    ast: trivial indentation and line wrap fixes.
    
        nothing out of place
       exquisite imperfection
         each weed a flower
    
    There are no functional changes here, just moving code around to look less
    terrible in a few places.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ec532aa80e046a711f7d497676ecee0edf131ff7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 18:23:20 2012 -0700

    Use `set_options` rather than open-coding it everywhere.
    
    `Puppet::Util::MethodHelper` has a handful of tools for handling the common
    pattern of accepting a hash and setting object attributes from it.  We also
    had a bunch of places in the code that open-coded this same pattern.
    
    This just replaces them all with the single, standard implementation.
    
    Really, we should probably even hoist this up to something like Object or
    Module so that it is available everywhere to peer with the `attr_*` methods
    and all.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6b5834c65a35e86e0f54c088083048c0d21075c4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 17:59:12 2012 -0700

    compiler: use forwardable where applicable.
    
    The replaces the manual forwardings of methods through to a member with the
    Forwardable module - it makes clearer the intent of the code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f673cf8455f070794134d431812246a001879ce9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 17:51:40 2012 -0700

    Check that function loading worked correctly.
    
    In some odd circumstances - typically, just development errors - you can wind
    up in a world where a function correctly loads but isn't available.
    
    This ensures that the method is defined as expected and raises a clear, quick
    error if not. The alternative is an unclear stack overflow raised because we
    recurse forever through method_missing.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f37b1d1e5c1d28681b45ddba4a2493a4aa1ca327
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 17:14:48 2012 -0700

    Simplify the scope `emphemeral_include?` method.
    
    The implementation had various complications, such as reverse-walking the
    tree, that don't actually make any difference compared to a simple sweep
    through in standard order.
    
    This doesn't change overall behaviour, just makes the code more obvious.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 5d1a7886bfd1873a88eb651ba0e87b6ef51c3264
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 16:46:27 2012 -0700

    Simplify the scope `to_hash` implementation.
    
    Minor code cleanups to make it clearer what is going on; no functional changes.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3a87734f596037ca64b0375041281faba60df38c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 16:39:12 2012 -0700

    Simplify the number? implementation of scope.
    
    The `number?` method coerces an input into a number in a standard way for the
    AST; this rewrites it to a simple, direct case statement rather than the
    previous mess of if-then-else decisions.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit cd6bce356412fea41090942045ee2896a53f4d45
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 16:33:29 2012 -0700

    Treat `nil` as false, not true in scope and AST evaluation.
    
    We had a central place defined in the scope to determine the truthiness of
    objects from an AST / code evaluation point of view.  Since inception this
    treated a `nil` value as *true*, in variance to Ruby behaviour.
    
    While odd, this probably doesn't make sense to preserve, so add a test to
    validate that `nil` becomes false, and stays that way.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 091f6661613b17928a764c0ffb70e2f829226449
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 16:23:35 2012 -0700

    Use `alias` to map []{,=} to {lookup,set}var on scope.
    
    Rather than hand-rolling an alias for the hash-like accessors to the named get
    and set methods, we can just use the stock alias method.
    
    This eliminates an extra layer of function calls, but also makes clearer to
    code analysis and the casual reader what the actual significance of those
    different methods are.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c82be9b69997e931815be3f16ecc7916ace46bbe
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 16:15:07 2012 -0700

    Simplify the code handling the namespace option to the scope.
    
    No functional changes - just a few less method calls required to achieve the
    same result, so it becomes easier to see what the meaning is.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8e0583a66133a16aab13d29466d8b1aa011282f0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 15:43:39 2012 -0700

    Use `Forwardable` rather than hand-rolling it.
    
    Using the standard `forwardable` library makes for a clearer understand of
    what is going on where in our code - if we just wrap directly around a method
    on a member, we might as well delegate properly.
    
    That way people viewing the code know, with certainty, that it isn't actually
    doing anything of significance other than passing that call directly on.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3640de0a8a114477abee7c104a8c67971c6d1e88
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 15:26:52 2012 -0700

    Eliminate an unused library from the scope.
    
    Nothing in the scope uses the `strscan` library, so we can just drop it.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3e060456009bf808feddad7626f5708b98d0b136
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 16:13:00 2012 -0700

    Drop the hash prefix when passing compiler to scope.
    
    Now that the compiler is always required by the scope we can save a few
    keystrokes by making the non-optional argument a regular value, not a name
    prefixed option.
    
    (...even if I love Objective-C as much as the next developer, having the same
     text in every call just to name the argument doesn't make much sense in such
     an internal context.)
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 574b21921c528df8ba95af3a60a3632cbb9e00d1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 14:09:36 2012 -0700

    A scope always has a compiler.
    
    The scope object contained some internal code to substitute an external
    environment when the compiler was not supplied.  This was used only in
    testing, not in any production capacity.
    
    In light of that, we can eliminate the dynamic decision making inside the
    scope and simply demand that a compiler instance (or a fake equivalent) is
    always supplied.
    
    This reduces the complexity of the code and makes clearer the object
    relationships involved.
    
    (The small cost is a lot of testing that depended on this had to change to use
     a real compiler.  Most of the change derives from that.)
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit bea5c78e1a7d9797e1da42a65f1a971378fefa91
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jul 15 13:48:39 2012 -0700

    A node always has an environment.
    
    Puppet node objects, now, always have environments, and they are the genuine
    Ruby object representing an environment, never just the name.
    
    In consequence of this, the code in the compiler to handle two conditions - no
    environment, or an empty string as environment - that presumably could have
    been true at some time in the past ... no longer makes sense.
    
    Instead, replace it with a clear and direct failure in the event we don't get
    the object we expect, and carry on.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 678684181c7a8009198dc523f2362aa0e4999542
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 12 17:08:51 2012 -0700

    zaml: don't use backreferences on strings
    
    While the YAML spec requires that we emit a backreference if the same string
    object occurs twice in our content, it also costs a lot.  About two seconds of
    time encoding the output, in my testing, out of a total of three.
    
    Everything we do internally with YAML doesn't actually *depend* on the ability
    to serialize an object graph that treats String objects as duplicated.
    
    This is reinforced by every object that can serialize to PSON - since
    it *can't* have a back-reference, you automatically get string duplication
    there.
    
    That means that we can just cut those few seconds out of the code without any
    particular cost or suffering, and shave *way* more time off a run than almost
    anything else we can do to our YAML output code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4f652d591d93bc962f3734c671749c9edd27d461
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 12 16:04:16 2012 -0700

    zaml: avoid calling emit when we don't have anything to output
    
    The `nl` method allowed an additional string to be output after the newline;
    this is seldom used, and the default implementation resulted in emitting an
    empty string.
    
    We can just skip that, for a minor win in function call count.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ad895143733cd3e7744f14703785ab163cd3946b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 12 16:01:52 2012 -0700

    zaml: add whitespace for readability.
    
    The ZAML code has very little whitespace, leading to a difficult to read set
    of code.  This just adds a little whitespace, with no behaviour change, to
    improve that before I start hacking directly on that code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8a14514a2179ddda7eb887cd4781bd39033d3389
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 12 16:00:07 2012 -0700

    zaml: rework strings for correctness and speed
    
    This changes the implementation of string output in the ZAML encoder.  On my
    test that delivers around a fifty percent reduction in output time, from 4.11
    to 1.89 seconds on my test of ~ 35,000 output strings.
    
    It also adds a bunch of tests to validate the correctness of binary output
    handling, and some test inputs derived from various security related UTF-8
    encoding problems to validate that (sadly) we pass them through as
    binary data.
    
    Optimally we would treat binary and text input as distinct in the parser and
    compiler of Puppet, then only allow legal UTF-8 in strings - but that is not
    the world in which we live.
    
    It finally fixes a bug in the binary output along the way - which, thankfully,
    nobody actually seems to have run into since I introduced it in ea0dd1483fc2.
    
    Because the Ruby BASE64 encoder will split lines at the 60 character mark, a
    long binary input would end up with embedded newlines in places that were not
    legal for YAML.
    
    Instead of just emitting that, we run through the string encoder over the
    transformed data, which leads to a solid output format that works entirely
    as expected.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d445b3e67f774aea383c27535d41f1ce0805a890
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Sat Jul 14 11:42:22 2012 -0700

    Update main readme to have links to contrib and dev docs
    
    Our README currently rendered on github doesn't show people how get into
    the contribution process.  I've added a very small section to point to
    the other doc files that exist in our repositories.  This was based on
    feedback at the Community Leadership Summit 2012.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit 5af194c5cf25fe2e2bd66f379d62e50f106c9908
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 11 15:59:09 2012 -0700

    zaml: statically determine the to_ascii8bit implementation.
    
    Instead of asking every single string the same question, "do you respond to
    `encoding`", we can just figure that out once and choose an implementation
    based on the result - since it is a static test on the same class every time.
    
    This saves ~ 0.1 second of runtime, which is small but cheap.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a09df46f58187ad9ff0f599de47cd8c1e0a417eb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jul 13 15:30:08 2012 -0700

    Eliminate `symbolize` everywhere, and remove it.
    
    The whole `symbolize` API was confusing and complex: because it didn't do any
    type enforcement, just passed through arbitrary data, we had very unclear API
    in a whole pile of places.
    
    This replaces that method entirely with a more rigid definition: we intern in
    a bunch of places, add the occasional clear failure mode, and then delete the
    original definition.
    
    This eliminates one point of complexity from the codebase.
    
    (These other uses have no notable performance penalty, just code complexity
     and clarity issues.)
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4029c597ccc321fe04c2d73156d714961c7d4443
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 10 16:22:31 2012 -0700

    Use `intern` rather than `symbolize` in Puppet::Type
    
    The cost of symbolize is ~ 50 percent higher than the cost of intern, when
    applied to either a string or a symbol.  Given this is called some 90,000
    times in my real world test run, that adds up to a non-zero amount of
    wasted time.
    
    Sadly, this only works out at 0.15 seconds real time reduction, but it is
    better than nothing - and takes out 85,000 extra calls.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 849f31a605a886b2246c09b7c008835e16010b78
Merge: e357cf6 9b01091
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 13 13:40:29 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      Fix webrick spec to work on Windows

commit 9b01091bf7657e499f3319c8e7d4258a44a831cc
Merge: 6e6b8d7 aba7f91
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 13 13:40:12 2012 -0700

    Merge branch '3.0rc' into 3.x
    
    * 3.0rc:
      Fix webrick spec to work on Windows

commit c00e8f2430291e490782c0452047851cb8cd0055
Merge: 04fbccd 2baceaa
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 13 13:34:58 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 2.7rc

commit 2a07bdedf31a9c8290c5a22964eafe4ca21f0968
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 10 15:43:33 2012 -0700

    Implement Symbol#intern when it is missing.
    
    In order to reduce use of `Puppet::Util#symbolize` in the code - which is
    called some 90,000 times in a real-world run - being able to intern a symbol
    is convenient.
    
    This is a simple implementation: it just returns itself.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 04fbccdb05aa6c29c6dbe97c19645432c9bf6d0f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 11 14:55:29 2012 -0700

    Try again to avoid circular dependency in file indirections
    
    Requiring the model at the end of the file seems the best approach for now.

commit 3e23686094b4767f9b3c8cc0b13d2e41f6b1c803
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 10 22:08:37 2012 -0700

    Avoid circular requirement in FileMetadata indirection

commit aba7f91c11e54ecf4a46823da5c37f38b9ccbfea
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jul 13 11:05:55 2012 -0700

    Fix webrick spec to work on Windows
    
    This also refactors the specs for clarity, and to make expectations for
    exceptions more specific.

commit e357cf6d33e35535625856722d22807f629aea03
Merge: ab0194a 6e6b8d7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 13 09:46:44 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      (Maint) Spec test wasn't testing anything
      (#14964) Unlink Tempfiles consistently across different ruby versions
      Escape unicode in ca specs

commit 6e6b8d7e3f40626c474b54115b00a94a8cfa3aad
Merge: 8592283 77b50d0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 13 09:39:22 2012 -0700

    Merge remote-tracking branch 'upstream/3.0rc' into 3.x
    
    * upstream/3.0rc:
      (Maint) Spec test wasn't testing anything
      (#14964) Unlink Tempfiles consistently across different ruby versions
      Escape unicode in ca specs

commit 77b50d00d042895d6f500ff3eec6838844943482
Merge: 614ee9c 2baceaa
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 13 09:32:28 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.0rc
    
    * upstream/2.7.x:
      (Maint) Spec test wasn't testing anything
      (#14964) Unlink Tempfiles consistently across different ruby versions
    
    Conflicts:
    	lib/puppet/util.rb
    	spec/unit/util_spec.rb

commit 2baceaa92c7d152dab3ecc8d76997b678a377390
Merge: 690c39b 125ecec
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jul 13 09:12:28 2012 -0700

    Merge pull request #927 from joshcooper/ticket/2.7.x/14964-close-unlink
    
    (#14964) Unlink Tempfiles consistently across different ruby versions

commit 125ececa4a19aa2fb4557d779e797379bc2a9736
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jul 12 23:55:21 2012 -0700

    (Maint) Spec test wasn't testing anything
    
    Previously the test was stubbing the `wait_for_output` method, and
    then testing that they `execute` method called it. But because the
    method was stubbed, it didn't actually test anything, other than
    ensuring the execute method didn't raise an exception.
    
    This commit changes the `stubs` to an `expects`.

commit 4c18d085e0b99b34327f89e636e1b0dd1fd7c2a3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jul 12 23:51:21 2012 -0700

    (#14964) Unlink Tempfiles consistently across different ruby versions
    
    The previous fix for #14964 relied on inconsisent behavior of ruby 1.8's
    `Tempfile#close!` method, which is called by `close(true)`.  Although
    the ruby documentation says `close!` is the same as `delete` followed by
    `unlink`, the exact semantics are different.  The former calls the
    Tempfile's finalizer callback directly and can raise an `Errno::EACCES`,
    while `unlink` never does.
    
    In ruby 1.9, the `Tempfile#close!` method was changed to call `unlink`,
    making the two APIs consistent.  As a result, the begin-ensure block
    added previously to fix #14964 was wrong.
    
    Also, previously if the call to `read` failed, then the Tempfile would
    not be closed and deleted until its finalizer ran.
    
    This commit changes the `wait_for_output` method to close and unlink the
    Tempfile in two steps.  The `unlink` method will not raise an
    `Errno::EACCES` in either ruby 1.8 or 1.9.   It also changes the `read`
    call to occur within the begin-ensure block, so that the Tempfile is
    closed and unlinked as soon as we are done with it.
    
    Paired-with: Andrew Parker <andy@puppetlabs.com>

commit ab0194aba2775c30d28a78d1e70070092bf09bf9
Merge: 282fa90 8592283
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jul 12 17:27:54 2012 -0700

    Merge branch '3.x'
    
    * 3.x:
      (Maint) Require the right file for md5

commit 614ee9c5a8d2207766fbe109760842346eefc5c5
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 12 17:24:25 2012 -0700

    Escape unicode in ca specs

commit 8592283b6c546967f4008051724f4a1d66753c69
Merge: ae38ae0 943df50
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jul 12 17:24:17 2012 -0700

    Merge branch '3.0rc' into 3.x
    
    * 3.0rc:
      (Maint) Require the right file for md5

commit 943df506960970d57aacf6152777498cffa448dc
Merge: efba18c 690c39b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jul 12 17:11:55 2012 -0700

    Merge branch '2.7.x' into 3.0rc
    
    * 2.7.x:
      (Maint) Require the right file for md5

commit 690c39bbe2c9022748417ff2928dc9bdace2ed4e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jul 12 11:54:57 2012 -0700

    (Maint) Require the right file for md5
    
    md5 doesn't exist on 1.9.3. It seems to have been an alias in previous
    versions of ruby for digest/md5. Requiring the other file directly
    allows this to work on all supported rubies.
    
    Reviewed-by: Patrick Carlisle

commit 282fa90db0c60aa40d5c1bbbbc96e5a6bb67303a
Merge: 573001d ae38ae0
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 12 16:27:37 2012 -0700

    Merge branch '3.x'
    
    * 3.x: (76 commits)
      Extract host validation in store report processor
      Use cross-platform absolute paths in file_serving tests
      (#15493) Fix test to expect https not http
      (#15492) Deprecate the usage of Puppet::Util.execute in module face
      (#15221) Create /etc/puppet/modules directory for puppet module tool
      (Maint:) Fix bad doc strings for two settings ("wether")
      Try again to avoid circular dependency in file indirections
      Remove useless tests for Envelope
      Clear deprecation warnings between tests
      Avoid circular requirement in FileMetadata indirection
      (Maint) Document common Windows issues
      (#11868) Use `Installer` automation interface to query package state
      (#3120) Fixup default descriptions
      (#3120) Disambiguate the localcacert setting
      Eliminate require calls at runtime.
      Fix broken TransBucket transformation tests.
      Fix broken ability to remove resources from the catalog.
      Fix type check when transforming catalog.
      Fix all trivial "should to must" errors in our tests.
      Enforce "must not should" on Puppet::Type instances in tests.
      ...

commit ae38ae00f5a6a1b169af2a20f33e3350407cc1f3
Merge: a578b65 efba18c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 12 16:27:11 2012 -0700

    Merge branch '3.0rc' into 3.x
    
    * 3.0rc: (76 commits)
      Extract host validation in store report processor
      Use cross-platform absolute paths in file_serving tests
      (#15493) Fix test to expect https not http
      (#15492) Deprecate the usage of Puppet::Util.execute in module face
      (#15221) Create /etc/puppet/modules directory for puppet module tool
      (Maint:) Fix bad doc strings for two settings ("wether")
      Try again to avoid circular dependency in file indirections
      Remove useless tests for Envelope
      Clear deprecation warnings between tests
      Avoid circular requirement in FileMetadata indirection
      (Maint) Document common Windows issues
      (#11868) Use `Installer` automation interface to query package state
      (#3120) Fixup default descriptions
      (#3120) Disambiguate the localcacert setting
      Eliminate require calls at runtime.
      Fix broken TransBucket transformation tests.
      Fix broken ability to remove resources from the catalog.
      Fix type check when transforming catalog.
      Fix all trivial "should to must" errors in our tests.
      Enforce "must not should" on Puppet::Type instances in tests.
      ...

commit efba18cb69560f1a45267061c9b9451e0b08bed9
Merge: fae7848 44ada58
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 12 16:10:52 2012 -0700

    Merge branch '2.7.x' into 3.0rc
    
    * 2.7.x: (26 commits)
      Extract host validation in store report processor
      Use cross-platform absolute paths in file_serving tests
      (#15221) Create /etc/puppet/modules directory for puppet module tool
      (Maint:) Fix bad doc strings for two settings ("wether")
      Try again to avoid circular dependency in file indirections
      Remove useless tests for Envelope
      Clear deprecation warnings between tests
      Avoid circular requirement in FileMetadata indirection
      (Maint) Document common Windows issues
      Update CHANGELOG lib/puppet.rb conf/redhat/puppet.spec for 2.7.18
      Maint: Note in docs that the file type's "replace" attribute defaults to true
      Reject directory traversal in store report processor
      Tighten permissions on classfile, resourcefile, lastrunfile, and lastrunreport.
      Use "inspect" when listing certificates
      Don't allow the creation of SSL objects with invalid certnames
      Validate CSR CN and provided certname before signing
      Add specs for selector terminuses of file_{content,metadata}
      Fix whitespace inside parentheses
      Use head method to determine if file is in file bucket
      Always use the local file_bucket on master
      ...
    
    Conflicts:
    	CHANGELOG
    	conf/redhat/puppet.spec
    	lib/puppet.rb
    	lib/puppet/application/master.rb
    	lib/puppet/defaults.rb
    	lib/puppet/file_serving/terminus_selector.rb
    	lib/puppet/reports/store.rb
    	lib/puppet/test/test_helper.rb
    	spec/integration/file_serving/content_spec.rb
    	spec/integration/file_serving/metadata_spec.rb
    	spec/shared_behaviours/file_serving.rb
    	spec/unit/file_serving/terminus_selector_spec.rb
    	spec/unit/network/handler/ca_spec.rb
    	test/ral/manager/attributes.rb

commit 44ada582453ed281ccc1617ef75098d9cced1d88
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 12 14:41:36 2012 -0700

    Extract host validation in store report processor
    
    Extract the validation step and refactor tests around this. Tests now don't
    touch the filesystem which avoids a corner case on windows that caused test
    failures.

commit 91df2f3529212febd55282150cb83e002aa9f6f2
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 12 11:58:52 2012 -0700

    Use cross-platform absolute paths in file_serving tests
    
    The file_serving tests were failing on windows because they used unix style
    paths. This makes them absolute on both posix and windows.

commit d20d46583bdec5b9e9ca98bd23aebaf0e6a5a8fb
Merge: 59f4226 c7e4ca7
Author: Matthaus Litteken <mlitteken@gmail.com>
Date:   Thu Jul 12 09:48:05 2012 -0700

    Merge pull request #910 from Whopper92/puppet_module_dir
    
    (#15221) Create /etc/puppet/modules directory for puppet module tool

commit 59f4226b6469647ac254e619f829d2097bf42efb
Merge: c48bd17 ddf8358
Author: Matthaus Litteken <mlitteken@gmail.com>
Date:   Thu Jul 12 09:46:45 2012 -0700

    Merge pull request #866 from Whopper92/logrotate_update
    
    Update logrotate config to not restart puppetmasterd

commit fae784827956bee4045523ea148c475f9d5341c4
Merge: 08f9c96 46fff33
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jul 12 08:21:53 2012 -0700

    Merge pull request #925 from kbarber/ticket/3.0rc/15493-missing_https_conversion_in_test
    
    Ticket/3.0rc/15493 missing https conversion in test

commit 08f9c96d55eeebdf86481c5f965784896b582f5c
Merge: 6c765e2 3a6b080
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jul 12 07:48:32 2012 -0700

    Merge pull request #924 from kbarber/ticket/3.0rc/15492-deprecate_puppet_util_execute
    
    Ticket/3.0rc/15492 deprecate puppet util execute

commit 46fff33a5c247720adee007fd374f43445e94b28
Author: Ken Barber <ken@bob.sh>
Date:   Thu Jul 12 14:44:54 2012 +0100

    (#15493) Fix test to expect https not http
    
    After a 2.7.x -> 3.0rc rollup the with_modulepath system test was failing due
    to the conversion to HTTPS. This patch converts the test.

commit 3a6b0801fff22403f9f9a16eab289174ed3c4c7c
Author: Ken Barber <ken@bob.sh>
Date:   Thu Jul 12 14:21:54 2012 +0100

    (#15492) Deprecate the usage of Puppet::Util.execute in module face
    
    The Puppet::Util.execute method is moving to Puppet::Util::Execution.execute,
    so to remove warning messages this patch changes the code that still uses
    the old methodology to the new methodology introduced in 3.x.

commit c48bd17b34c7b6d9a2db1eae7a78d894567cce57
Merge: fe5688a 2fc7191
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Jul 11 22:24:42 2012 -0700

    Merge pull request #798 from zaphod42/bug/2.7.x/14400-user-resources-generate-spurious-messages
    
    Change logging facility to debug for not supported provider features
    
    * zaphod42/bug/2.7.x/14400-user-resources-generate-spurious-messages:
      (#9160) Change logging facility to debug for not supported provider features

commit fe5688aa144ae91aae64da5b2e72941fd30884b6
Merge: 17f1337 03d546e
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Jul 11 22:06:45 2012 -0700

    Merge pull request #918 from joshcooper/maint/2.7.x/updated-README_DEVELOPER
    
    Maint/2.7.x/updated readme developer
    
    * joshcooper/maint/2.7.x/updated-README_DEVELOPER:
      (Maint) Document common Windows issues

commit 17f13370d9fbd41a20d034f721c6b991d2a3ae5c
Merge: 79b4e6c 566bdd9
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Jul 11 21:59:29 2012 -0700

    Merge pull request #911 from nfagerlund/maint/2.7.x/file_replace_default_value
    
    One-line doc string edit in file type
    
    * nfagerlund/maint/2.7.x/file_replace_default_value:
      Maint: Note in docs that the file type's "replace" attribute defaults to true

commit 79b4e6c311a66a6e8e9a3c534d684caf3478f227
Merge: 33fce73 c05489b
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Jul 11 21:54:12 2012 -0700

    Merge pull request #922 from nfagerlund/maint/2.7.x/wether
    
    Fix two bunk doc strings for settings
    
    * nfagerlund/maint/2.7.x/wether:
      (Maint:) Fix bad doc strings for two settings ("wether")

commit c7e4ca7fcd24c793893724b9a8e1d592a9b22566
Author: Will Hopper <whopper@puppetlabs.com>
Date:   Mon Jul 9 11:47:37 2012 -0700

    (#15221) Create /etc/puppet/modules directory for puppet module tool
    
    Previously, this directory was not created by the package,
    which caused errors when the puppet module tool was used
    to install modules. This commit updates the RPM spec file
    to create this directory upon installation of the package.

commit c05489b39f85d44c997ac6c126ea006ef7da5259
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Jul 11 16:35:45 2012 -0700

    (Maint:) Fix bad doc strings for two settings ("wether")
    
    This commit changes "wether" to "whether" at two places in defaults.rb. It
    also fixes some painful wording in the description of the thin_storeconfigs
    setting, and clarifies that it's generally unnecessary with PuppetDB.

commit 6c765e2c4c9088b95f68c324a637de4af8a7adb1
Merge: a0c9c23 ecc52ed
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 11 16:34:13 2012 -0700

    Merge commit 'ecc52ed' into 3.0rc
    
    * commit 'ecc52ed': (33 commits)
      (#11868) Use `Installer` automation interface to query package state
      Eliminate require calls at runtime.
      Fix broken TransBucket transformation tests.
      Fix broken ability to remove resources from the catalog.
      Fix type check when transforming catalog.
      Fix all trivial "should to must" errors in our tests.
      Enforce "must not should" on Puppet::Type instances in tests.
      Initialize resources strictly in backup specs
      Refactor file backup specs
      (maint) Add tags to .gitingore
      Use in memory sqlite database for unit tests
      (#14715) Use gtar with 'puppet module install' on Solaris
      Stub pkginfo when installing in openbsd spec
      (#14962) PMT doesn't support setting a relative modulepath
      (#15078) Document USR2 log rotation signal
      (#14909) Update createpackage.sh to resolve permissions issues
      (maint) Add --test to puppet run
      (maint) Add symlink stub to gentoo service provider spec
      Add comment to upstart provider explaining exclusion of 'wait-for-state'
      Upstart code cleanup, init provider improvement
      ...
    
    Conflicts:
    	lib/puppet/face/module/install.rb
    	lib/puppet/network/handler/fileserver.rb
    	lib/puppet/parser/functions/fqdn_rand.rb
    	lib/puppet/parser/type_loader.rb
    	lib/puppet/ssl/base.rb
    	lib/puppet/util.rb
    	lib/puppet/util/autoload.rb
    	man/man8/puppetmasterd.8
    	spec/lib/puppet_spec/database.rb
    	spec/unit/face/module/install_spec.rb
    	spec/unit/other/transbucket_spec.rb
    	spec/unit/provider/augeas/augeas_spec.rb
    	spec/unit/util/backups_spec.rb
    	spec/unit/util_spec.rb

commit 33fce7305e486da616d387f75fe9885a0ae33355
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 11 14:55:29 2012 -0700

    Try again to avoid circular dependency in file indirections
    
    Requiring the model at the end of the file seems the best approach for now.

commit b227aa103f490e04d295e08dd343d31ea74e1eef
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jul 11 13:56:09 2012 -0700

    Remove useless tests for Envelope

commit 573001dc4457a9879fee6c07bbd6c50740ad747a
Merge: 18f0633 0316a72
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jul 11 12:03:40 2012 -0700

    Merge pull request #921 from rtyler/issues/lc-all-15467
    
    Use a valid locale when setting LC_ALL in the exec posix provider test

commit 0316a7246b5222f6ae4041c422cca4bd35f7c5ab
Author: R. Tyler Croy <tyler@monkeypox.org>
Date:   Wed Jul 11 00:46:51 2012 -0700

    Use a valid locale when setting LC_ALL in the exec posix provider test
    
    Fixes #15467

commit 86ccca4494d15a924153ccceed39c203971dcf45
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 10 22:41:16 2012 -0700

    Clear deprecation warnings between tests

commit d7078c3ba04a4f063bc11fa11323fab7fd0773f6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 10 22:08:37 2012 -0700

    Avoid circular requirement in FileMetadata indirection

commit 03d546e36193f51304767527fe0d8d9cce7fc3d6
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jan 18 09:17:02 2012 -0800

    (Maint) Document common Windows issues
    
    Added a section to README_DEVELOPER.md that describes common pitfalls to
    avoid when developing puppet code that needs to run on Windows.

commit 8aa738340157506318dde6d029103bf6125ef773
Merge: ecc52ed ce300c0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 10 18:10:31 2012 -0700

    Merge remote-tracking branch 'cve/2.7rc' into 2.7.x
    
    * cve/2.7rc:
      Update CHANGELOG lib/puppet.rb conf/redhat/puppet.spec for 2.7.18
      Reject directory traversal in store report processor
      Tighten permissions on classfile, resourcefile, lastrunfile, and lastrunreport.
      Use "inspect" when listing certificates
      Don't allow the creation of SSL objects with invalid certnames
      Validate CSR CN and provided certname before signing
      Add specs for selector terminuses of file_{content,metadata}
      Fix whitespace inside parentheses
      Use head method to determine if file is in file bucket
      Always use the local file_bucket on master
      Fail more gracefully when finding module files if no file is specified
      Reject file requests containing ..
      Add Selector terminus for file_content/file_metadata
      Deprecate IP-based authentication

commit ecc52ed6dd105e156a9ac4be58cb5ebbb24b4b2c
Merge: 3f5454a 761b48f
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue Jul 10 17:37:51 2012 -0700

    Merge pull request #851 from joshcooper/ticket/2.7.x/11868-msi-provider
    
    (#11868) Use `Installer` automation interface to query package state

commit 761b48f8f4cd6f21710971d85240559775ff5eca
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Sat Apr 7 22:01:29 2012 -0700

    (#11868) Use `Installer` automation interface to query package state
    
    Previously, Puppet recorded MSI packages it had installed in a YAML
    file. However, if the file was deleted or the system modified, e.g.
    Add/Remove Programs, then Puppet did not know the package state had
    changed.
    
    Also, if the name of the package did not change across versions, e.g.
    VMware Tools, then puppet would report the package as insync even though
    the installed version could be different than the one pointed to by the
    source parameter.
    
    Also, `msiexec.exe` returns non-zero exit codes when either the package
    requests a reboot (194), the system requires a reboot (3010), e.g. due
    to a locked file, or the system initiates a reboot (1641). This would
    cause puppet to think the install failed, and it would try to reinstall
    the packge the next time it ran (since the YAML file didn't get
    updated).
    
    This commit changes the msi package provider to use the `Installer`
    Automation (COM) interface to query the state of the system[1]. It will
    now accurately report on installed packages, even those it did not
    install, including Puppet itself (#13444). If a package is removed via
    Add/Remove Programs, Puppet will re-install it the next time it runs.
    
    The MSI package provider will now warn in the various reboot scenarios,
    but report the overall install/uninstall as successful (#14055).
    
    When using the msi package resource, the resource title should match the
    'ProductName' property in the MSI Property table, which is also the
    value displayed in Add/Remove Programs, e.g.
    
        package { 'Microsoft Visual C++ 2008 Redistributable - x86 9.0.30729.4148':
          ensure => installed,
          ...
        }
    
    In cases where the ProductName does not change across versions, e.g.
    VMware Tools, you MUST use the PackageCode as the name of the resource
    in order for puppet to accurately determine the state of the system:
    
        package { '{0E3AA38E-EAD3-4348-B5C5-051B6852CED6}':
          ensure => installed,
          ...
        }
    
    You can obtain the PackageCode in ruby using:
    
        require 'win32ole'
        installer = WIN32OLE.new('WindowsInstaller.Installer')
        db = installer.OpenDatabase(path, 0)
        puts db.SummaryInformation.Property(9)
    
    where <path> is the path to the MSI.
    
    The msi provider does not automatically compare PackageCodes when
    determining if the resource is insync, because the source MSI could be
    on a network share, and we do not want to copy the potentially large
    file just to see if changes need to be made.
    
    The msi provider does not use the `Installer` interface to perform
    install and uninstall, because I have not found a way to obtain useful
    error codes when reboots are requested. Instead the methods
    `InstallProduct` and `ConfigureProduct` raise exceptions with the
    general 0x80020009 error, which means 'Exception occurred'. So for now
    we continue to use msiexec.exe for install and uninstall, though the msi
    provider may not uninstall multi-instance transforms correctly, since
    the transform (MST) used to install the package needs to be respecified
    during uninstall. This could be resolved by allowing uninstall_options
    to be specified, or figuring out how to obtain useful error codes when
    using the `Installer` interface.
    
    [1] http://msdn.microsoft.com/en-us/library/windows/desktop/aa369432(v=vs.85).aspx

commit a0c9c23b920d9291a77cbba14c4c495dd805514a
Merge: aa69410 e2cadea
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jul 10 17:20:37 2012 -0700

    Merge branch 'fixup/3.0rc/defaults' into 3.0rc
    
    * fixup/3.0rc/defaults:
      (#3120) Fixup default descriptions

commit e2cadeaeeec635d19c5f0766d506a702542a78ff
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jul 10 17:18:51 2012 -0700

    (#3120) Fixup default descriptions
    
    PR 916 had some poorly formatted descriptions for the new options.  This
    patch cleans up those descriptions and makes their relationship to
    localcacert more clear.
    
    The new look is:
    
        # Where each client stores the CA certificate.
        # The default value is '$certdir/ca.pem'.
        localcacert = /etc/puppet/ssl/certs/ca.pem
    
        # Certificate authorities who issue server certificates.  SSL servers will not be
        # considered authentic unless they posses a certificate issued by an authority
        # listed in this file.  If this setting has no value then the Puppet master's CA
        # certificate (localcacert) will be used.
        # ssl_client_ca_auth =
    
        # Certificate authorities who issue client certificates.  SSL clients will not be
        # considered authentic unless they posses a certificate issued by an authority
        # listed in this file.  If this setting has no value then the Puppet master's CA
        # certificate (localcacert) will be used.
        # ssl_server_ca_auth =

commit aa69410697817b9ed69a74c73487830844a2bc6c
Merge: fd24ffa 30eb983
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jul 10 17:05:09 2012 -0700

    Merge pull request #916 from jeffmccune/ticket/3.0rc/3120_disambiguate_localcacert
    
    (#3120) Disambiguate the localcacert setting

commit 30eb9834fdcebbc95261779d833aac6575aaa753
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jul 10 16:51:36 2012 -0700

    (#3120) Disambiguate the localcacert setting
    
    Without this patch applied the localcacert setting is woefully
    overloaded.  The following behaviors are layered on top:
    
     * Client authentication of the SSL server
     * Server authentication of the SSL client
     * Puppet CA signing and issuing certificates
    
    In addition, we plan to fully support CA chains in #3143 which will
    introduce two additional scenarios of CA certificates that build trust
    but are not used for authentication.
    
    Puppet has assumed in the past that all of these behaviors built on top
    of a single, self signed CA certificate.
    
    This is a problem because there is no distinction between a bundle of CA
    certificates that are usable to authenticate the peer in an SSL
    connection.
    
    This patch fixes the problem by introducing two new configuration
    options, ssl_server_ca_auth and ssl_client_ca_auth.  Both of these
    settings will default to the localcacert setting.
    
    This is slightly confusing because the file pointed to by the
    localcacert setting could contain a bundle of CA certificates.  However,
    Puppet would treat this file as the CA certificate itself so any use of
    multiple CA certificates would only work by accident.
    
    With this patch we now explicitly support authenticating against
    multiple certificate authorities but we do not yet fully support
    authenticating against chained certificate authorities.
    
    The patch also introduces ssl_client_ca_chain and ssl_server_ca_chain as
    commented out options in defaults.rb because these options will be
    required for #3143.
    
    Paired-with: Patrick Carlisle <patrick@puppetlabs.com>

commit 3f5454abbd1a32b5594327e4e68dca31356ff7a1
Merge: e13e751 be5fcf4
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue Jul 10 16:29:38 2012 -0700

    Merge pull request #912 from daniel-pittman/maint/2.7.x/tests-must-use-must-not-should-on-resources
    
    tests must use must not should on resources

commit e13e751bd47dcd278da56f4e054811556f898524
Merge: c737f50 37742db
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue Jul 10 15:57:50 2012 -0700

    Merge pull request #913 from daniel-pittman/perf/2.7.x/eliminate-require-in-functions
    
    Perf/2.7.x/eliminate require in functions

commit cc4d8d22be153da011d1343c7b599c6997e0be85
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 10 15:30:44 2012 -0700

    Don't allow resource titles which aren't strings
    
    It was possible to create resources whose titles weren't strings, by
    using a variable containing a hash, or the result of a function which
    doesn't return a string. This can cause problems resolving relationships
    when the stringified version of the title differs between master and
    agent.
    
    Now we will only accept primitives, and will stringify them. That is:
    string, symbol, number, boolean. Arrays or nested arrays will still be
    flattened and used to create multiple resources. Any other value (for
    instance: a hash) will cause a parse error.

commit 37742db73df73660779a31e402fe9ca4ff54d7f1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 10 13:06:21 2012 -0700

    Eliminate require calls at runtime.
    
    Calling `require` is a surprisingly expensive operation, especially if
    ActiveRecord has been loaded.  Consequently, the places where we do that in
    the body of a function are hot-spots in the profile.
    
    They are also, generally, pretty simple and clear wins: almost all of them can
    simply require the library the first time they are loaded and everything will
    work fine.
    
    In my testing with a complex, real-world set of manifests this reduces time
    spent by ~ 3 wall-clock seconds in require and all children.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit be5fcf4e7d3c2efb0cf53bb96ed70ca99b9cceca
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 10 12:22:27 2012 -0700

    Fix broken TransBucket transformation tests.
    
    This fixes the membership test to check actual resources rather than checking
    if the TransBucket object itself is part of the catalog - it isn't, and hasn't
    been for approximately ever.
    
    It also eliminates a test that resources are "finalized" - a concept that
    isn't valid in the code and hasn't been for years, if ever.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8f991875ccdab16d85e39dc060529b47cc502b31
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 10 11:55:40 2012 -0700

    Fix broken ability to remove resources from the catalog.
    
    For the last forever, the Puppet catalog object has unable to remove resources
    correctly - they used the wrong key to remove items from an internal map.
    
    Because the test was broken we also ran into a situation where this simply
    wasn't noticed - and, presumably, we simply didn't depend on this in the real
    world enough to actually discover the failure.
    
    This fixes that, as well as the bad test, to ensure that the feature works
    correctly, and that it stays that way.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9bd4fd317af102623ea618200d6b07ecdb75d490
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 10 11:33:46 2012 -0700

    Fix type check when transforming catalog.
    
    Because `should` rather than `must` was called, this test previously didn't
    do anything.  This hid the fact that it was actually bad: it asserted that we
    had an instance of Puppet::Type, not a subclass of it, and we have the later.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 825b80d31bc941bc505eab8043b7e4a18a7d8662
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jul 6 16:29:18 2012 -0700

    Fix all trivial "should to must" errors in our tests.
    
    We had a bunch of places that used the wrong invocation to test something on a
    resource instance, revealed by the previous change.
    
    This fixes all the trivial instances - the places that are *correct* despite
    not actually being tested for a long while.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7a7bea767722ca809d54e861e27bb43ee0b7a10d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jul 6 16:09:01 2012 -0700

    Enforce "must not should" on Puppet::Type instances in tests.
    
    Because we define a `should` method on Puppet::Type, and that conflicts with
    the identically named method in RSpec, we have an alias for `must` defined in
    the test helper.
    
    Sadly, this isn't *complete*: if you call `should` on those instances you
    actually get no failure, it just silently ignores your actual test.
    
    This change monkey-patches Puppet::Type in the spec helper, and adds a type
    check to fail hard if you supply something "illegal" as the argument to
    Puppet::Type.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ce300c02f7c68ca2616fd5622cd6e33834843b8f
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Mon Jul 9 16:40:37 2012 -0700

    Update CHANGELOG lib/puppet.rb conf/redhat/puppet.spec for 2.7.18

commit 566bdd95bceda372184cb2fd79bce306752a1747
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jul 10 10:46:15 2012 -0700

    Maint: Note in docs that the file type's "replace" attribute defaults to true

commit 7eb46747260a43d0935863d31752f4f995d454e5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jul 10 16:04:05 2012 +0000

    (maint) Whitespace only settings_spec.rb cleanup
    Without this patch there was a bunch of whitespace related issues at the end of
    the settings_spec.rb file.  This patch is a whitespace only change that cleans
    these up.

commit c737f5066e6ae43f742daf3920e54dcfdd974cf3
Merge: 3316a7d d7e77eb
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Jul 9 17:40:06 2012 -0700

    Merge pull request #828 from joshcooper/ticket/2.7.x/set-scheduled-tasks
    
    Fix several issues with scheduled_tasks on Windows

commit 3316a7df176a3907b9a071f387b5ab97ff948b4f
Merge: 82f2349 3ada851
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Jul 9 17:35:07 2012 -0700

    Merge pull request #849 from joshcooper/ticket/2.7.x/14964-unlink-tempfile
    
    (#14964) Don't fail if we can't unlink the Tempfile on Windows

commit 82f234989353ec73827ddf1428702c3495e7f651
Merge: 831b970 8efc492
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Jul 9 17:13:52 2012 -0700

    Merge pull request #861 from joshcooper/ticket/2.7.x/13489-service-refresh
    
    (#13489) Synchronously start and stop windows services

commit 831b970601aae41f051771545497cabb3f0d0bed
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 9 16:15:40 2012 -0700

    Initialize resources strictly in backup specs
    
    Since these tests implement a lot of expectations on File and FileTest, we
    want to minimize code execution after these expectations are set up.

commit 0a07ee5afff60549c853d7cf45f42c467a16ff80
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jul 9 15:09:09 2012 -0700

    Refactor file backup specs
    
    This reduces some duplication in the backup specs, and confines stubs and
    expectations to be more specific.

commit fd24ffae7eb0e9f3957e9c843c7f37d9d4af8943
Merge: bbdea05 1d2c079
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Sun Jul 8 08:44:15 2012 -0700

    Merge pull request #909 from kbarber/maint/3.0rc/missed_https_conversion_in_tests
    
    Maint/3.0rc/missed https conversion in tests

commit 1d2c079455d6c07204c3fcd3e1141328c33d7d01
Author: Ken Barber <ken@bob.sh>
Date:   Sun Jul 8 16:32:36 2012 +0100

    Fix tests response for nonexistent_directory tests
    
    These tests had missed the transition to the https protocol, so the test
    response did not match. This minor patch corrects http to https for that
    test.

commit 0c872852cc249c47d4653494c67cee1a01e9a9b7
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jul 7 12:49:23 2012 +0200

    (#15398) fix typo in Scope#number? float detection regex
    
    This allowed incorrect numbers (like 2:.34) to be recognized as
    floats (with an incorrect value).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit bbdea057374b9bfbef1cfafefd8cee9d93f6a886
Merge: a25b474 1ae620b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Jul 6 15:42:08 2012 -0700

    Merge branch 'jeffmccune-maint/3.0rc/15307_fix_puppet_help_with_exceptional_faces' into 3.0rc
    
    * jeffmccune-maint/3.0rc/15307_fix_puppet_help_with_exceptional_faces:
      (#15307) Fix puppet help when a face throws an exception
    
    Reviewed-by: Andy Parker
    https://github.com/puppetlabs/puppet/pull/904

commit 1ae620b98a2c720f4495a51dc4f379ee2d3c9869
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jun 28 17:48:56 2012 -0700

    (#15307) Fix puppet help when a face throws an exception
    
    Without this patch applied the `puppet help` command displays nothing
    but an exception when a 3rd party face throws an exception during the
    loading process.
    
    For example:
    
        Error: Could not autoload puppet/face/node/classify: no such file to load -- fog
        Error: Could not autoload puppet/face/node: Could not autoload puppet/face/node/classify: no such file to load -- fog
        Error: Failed to load face node:
        Error: Could not find version current of node
        Error: Try 'puppet help help help' for usage
    
    This is a problem because `puppet help` should be robust and provide helpful
    information in all cases.
    
    This patch fixes the problem by catching loading errors when building the list
    of available face subcommands and their summaries.  If an exception is caught,
    it is handled by marking that face subcommand and presenting a message
    indicating the face is unavailable in the help output.
    
    This looks like:
    
        Usage: puppet <subcommand> [options] <action> [options]
    
        Available subcommands:
    
          agent             The puppet agent daemon
          apply             Apply Puppet manifests locally
          ca                Local Puppet Certificate Authority management.
          catalog           Compile, save, view, and convert catalogs.
          cert              Manage certificates and requests
          certificate       Provide access to the CA for certificate management.
          certificate_request  Manage certificate requests.
          certificate_revocation_list  Manage the list of revoked certificates.
          config            Interact with Puppet's configuration options.
          describe          Display help about resource types
          device            Manage remote network devices
          doc               Generate Puppet documentation and references
          facts             Retrieve and store facts.
          file              Retrieve and store files in a filebucket
          filebucket        Store and retrieve files in a filebucket
          help              Display Puppet help.
          inspect           Send an inspection report
          instrumentation_data  Manage instrumentation listener accumulated data.
          instrumentation_listener  Manage instrumentation listeners.
          instrumentation_probe  Manage instrumentation probes.
          key               Create, save, and remove certificate keys.
          kick              Remotely control puppet agent
          man               Display Puppet manual pages.
          master            The puppet master daemon
          module            Creates, installs and searches for modules on the Puppet Forge.
          ! node            ! Subcommand unavailable due to error. Check error logs.
          ! node_aws        ! Subcommand unavailable due to error. Check error logs.
          ! node_vmware     ! Subcommand unavailable due to error. Check error logs.
          parser            Interact directly with the parser.
          plugin            Interact with the Puppet plugin system.
          queue             Queuing daemon for asynchronous storeconfigs
          report            Create, display, and submit reports.
          resource          The resource abstraction layer shell
          resource_type     View classes, defined resource types, and nodes from all manifests.
          secret_agent      Mimics puppet agent.
          status            View puppet server status.
    
        See 'puppet help <subcommand> <action>' for help on a specific subcommand action.
        See 'puppet help <subcommand>' for help on a specific subcommand.
        Puppet v3.0.0
    
    This patch also contains two squashed commits from Andy Parker
    
     * Cleaned up help action by extracting methods
     * Split apart things to stop mingling concerns

commit 8c5826f2056e4430f97c1d7b030b7a1348d87b43
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Jul 6 09:54:18 2012 -0700

    (maint) Add tags to .gitingore
    
    Exuberant Ctags writes the ctags files to the root of the repository.
    autotag.vim updates this file every time I save something.
    
    I'm adding tags to the git ignore so my working tree isn't always dirty.

commit 8fbc27f293cd15c9162d36d3e31ca3c757d45e7d
Merge: df242de 0bbd165
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Fri Jul 6 09:20:57 2012 -0700

    Merge pull request #894 from kbarber/ticket/2.7.x/14715-solaris_pmt_gnu_tar
    
    Ticket/2.7.x/14715 solaris pmt gnu tar

commit a25b4740cccda5395f9ea3a132c09cec95dc22f8
Merge: 042a4be 4d06c64
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Fri Jul 6 08:25:35 2012 -0700

    Merge pull request #891 from kbarber/ticket/3.0rc/14598-interact_with_the_forge_using_ssl
    
    Ticket/3.0rc/14598 interact with the forge using ssl

commit 042a4be62643bc4225d91e26c175d9d098c53472
Merge: a960a4b 9547b32
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Fri Jul 6 08:23:06 2012 -0700

    Merge pull request #901 from kbarber/ticket/3.0rc/15320-bad_gitignore_for_pmt_generate
    
    Ticket/3.0rc/15320 bad gitignore for pmt generate

commit a960a4b4a7d878c0125218a0476e42016684ef80
Merge: 22c04da d93bf62
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jul 5 17:16:47 2012 -0700

    Merge pull request #905 from pcarlisle/maint/3.0rc/modulepath-cache-before-initialized
    
    Maint/3.0rc/modulepath cache before initialized

commit d93bf62c546a3e7c165cab04a76f474275e0ba53
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 3 16:05:18 2012 -0700

    Only cache module_directories once settings are initialized
    
    Calling module_directories before settings are initialized (and therefore
    before the modulepath is known) returns an empty array. We probably don't want
    to cache this, and it might interfere with loading from the modulepath once it
    is initialized.

commit 22c04da5679653033d8629ea1a365869af3c19ba
Merge: fb6e0d8 8fc094e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 5 16:59:45 2012 -0700

    Merge branch 'environment-performance' into 3.0rc
    
    * environment-performance:
      Refactor module to require path and environment args
      Cleanup unnecessary code in environment
      Store into $LOADED_FEATURES with .rb extension
      Fix assignment in argument in metatype

commit 8fc094ebe7fd7b28fe868beff35e816894da3bb8
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 5 15:59:12 2012 -0700

    Refactor module to require path and environment args

commit ca736a4200de8dbaf41034bbbd41486b491f9ad7
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 5 13:44:48 2012 -0700

    Cleanup unnecessary code in environment

commit f86d95a38e17160f8427bde26cee17fa8f826059
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 5 13:44:28 2012 -0700

    Store into $LOADED_FEATURES with .rb extension

commit f070bf2ebea7cba90dfaaeeb31ce3c1b642fe645
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jul 5 13:43:51 2012 -0700

    Fix assignment in argument in metatype

commit fb6e0d8019b24a616b84a2522a1fb97b0c86e99a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jul 3 16:59:30 2012 -0700

    Stub sleep in runit provider test
    
    The runit provider now sleeps for 5 seconds during the start method. Stub this
    in unit tests for a 5 second speedup.

commit 9b12f746c8c11e6aeb5127423542a8ca6c4348a6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jun 12 18:01:08 2012 -0700

    Stub pkginfo when installing in openbsd spec

commit d9b337e2439681b66ab9220bcf19c1ebb56e3ac2
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jun 28 17:16:15 2012 -0700

    Use in memory sqlite database for unit tests

commit 18f0633379e848a4a2f396b33b7f095e9b492772
Merge: 540a67d 1863e63
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 3 10:49:44 2012 -0700

    Merge branch 'master' of github.com:puppetlabs/puppet

commit 540a67d8369c60afecb617d5edc988fa91ecdedc
Merge: 5c33cab a578b65
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 3 10:41:30 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x: (50 commits)
      (Maint) Fix Could not find Puppet Face :foo
      (Maint) Add tags to .gitignore for ctags
      (maint) Remove duplicate key in requestdir default
      (maint) Standardize on /usr/bin/env ruby -S rspec
      (maint) Add trailing newlines to all files
      (#15202) Handle paths with files in them
      (#15202) Fix acceptance tests for creating non-existance directories
      (#15202) Make puppet module install create parent directories
      Fix spec test failures from diff warning
      Fix Puppet::Util.execute is deprecated warning
      (Maint) Fixed up acceptance tests for pluginsync on windows
      (Maint) Make a CRL valid on the same second it is updated
      (Maint) Clarify flow of CRL generation and update
      (Maint) Moved ca test to correct location
      (Maint) Clarify what certs are being created in ca tests
      (Maint) Remove unneeded checks from ca tests
      (Maint) Remove unused variables from ca tests
      (Maint) Attempt to fix flickering test
      (Maint) Fix up directories used in pluginsync test
      Fix run_mode test w/rt expanding tilde in user dir values
      ...

commit a578b65f1d730f34c697f161ed1d70409703fb87
Merge: 885b899 39d10c5
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jul 3 10:38:18 2012 -0700

    Merge remote-tracking branch 'upstream/3.0rc' into 3.x
    
    * upstream/3.0rc: (49 commits)
      (Maint) Fix Could not find Puppet Face :foo
      (Maint) Add tags to .gitignore for ctags
      (maint) Remove duplicate key in requestdir default
      (maint) Standardize on /usr/bin/env ruby -S rspec
      (maint) Add trailing newlines to all files
      (#15202) Handle paths with files in them
      (#15202) Fix acceptance tests for creating non-existance directories
      (#15202) Make puppet module install create parent directories
      Fix spec test failures from diff warning
      Fix Puppet::Util.execute is deprecated warning
      (Maint) Fixed up acceptance tests for pluginsync on windows
      (Maint) Make a CRL valid on the same second it is updated
      (Maint) Clarify flow of CRL generation and update
      (Maint) Moved ca test to correct location
      (Maint) Clarify what certs are being created in ca tests
      (Maint) Remove unneeded checks from ca tests
      (Maint) Remove unused variables from ca tests
      (Maint) Attempt to fix flickering test
      (Maint) Fix up directories used in pluginsync test
      Fix run_mode test w/rt expanding tilde in user dir values
      ...

commit 39d10c5abf0dcb1ea1d53baa9557bb4661204cb1
Merge: cea1e66 0a95c61
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jul 3 10:04:18 2012 -0700

    Merge branch 'maint/3.0rc/do_not_show_symbols_to_users' into 3.0rc
    
    * maint/3.0rc/do_not_show_symbols_to_users:
      (Maint) Fix Could not find Puppet Face :foo

commit 0a95c61923b1d87b834f0cb6045fb6fece93d891
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jul 3 10:00:43 2012 -0700

    (Maint) Fix Could not find Puppet Face :foo
    
    We're showing a symbol to the user through the use of inspect.  This
    isn't cool since this isn't actually the name of the face or the
    subcommand.
    
    This patch uses .to_s instead of .inspect

commit cea1e669058a0673d83004dcbca1fcec91f8f922
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jul 3 09:52:51 2012 -0700

    (Maint) Add tags to .gitignore for ctags

commit 24d94ec10644b130a978b651ee31f386ace56d37
Merge: fa2a05f 2a907ce
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jul 2 22:33:52 2012 -0700

    Merge pull request #902 from zaphod42/bug/3.0rc/15202-puppet-should-create-module-directories
    
    Bug/3.0rc/15202 puppet should create module directories

commit fa2a05f32f59afa1afab1ff0f2fd23c1ba942681
Merge: c043057 66ae6ec
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 2 18:21:16 2012 -0700

    Merge branch '3.0rc' of github.com:puppetlabs/puppet into 3.0rc

commit 66ae6ecb553673dcce48ab3f7ee08ad42f3a42b1
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jul 2 18:16:02 2012 -0700

    (maint) Remove duplicate key in requestdir default
    
    This is really small patch that simply removes a duplicate key value
    pair from the requestdir default hash.

commit c04305797baf98f0496507943d8be2974845fe07
Merge: 2d5a5dd 34b9c0b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jul 2 17:49:16 2012 -0700

    Merge commit '2.7.17' into 3.0rc
    
    * commit '2.7.17':
      Updating CHANGELOG, lib/puppet.rb, conf/redhat/puppet.spec for Puppet 2.7.17
      (maint) Add symlink stub to gentoo service provider spec
      Add comment to upstart provider explaining exclusion of 'wait-for-state'
      Upstart code cleanup, init provider improvement
      Add spec test for network-interface-security
      Add basic service resource test to upstart acceptance
      Handle network-interface-security in upstart
      Add exclude list to upstart provider
      (#15027, #15028, #15029) Fix upstart version parsing
      (maint) Add --test to puppet run
      Update CHANGELOG, conf/redhat/puppet.spec for 2.7.16
      Update facter dep to reflect epoch 1
    
    Conflicts:
    	CHANGELOG
    	acceptance/tests/helpful_error_message_when_hostname_not_match_server_certificate.rb
    	conf/redhat/puppet.spec
    	lib/puppet.rb
    	spec/unit/provider/service/upstart_spec.rb

commit 5ecfa10374b9032df964e045fc336ae27fe4ce02
Merge: 2d5a5dd edc3ddf
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jul 2 17:38:59 2012 -0700

    Merge pull request #903 from jeffmccune/maint/3.0rc/fix_spec_bang_lines
    
    (maint) Standardize on /usr/bin/env ruby -S rspec

commit edc3ddf60ea36ae57b822a3e1e1ecf4c4077f675
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jul 2 17:22:03 2012 -0700

    (maint) Standardize on /usr/bin/env ruby -S rspec
    
    Without this patch some spec files are using `ruby -S rspec` and others
    are using `rspec`.
    
    We should standardize on a single form of the interpreter used for spec
    files.
    
    `ruby -S rspec` is the best choice because it correctly informs editors
    such as Vim with Syntastic that the file is a Ruby file rather than an
    Rspec file.

commit c7e01e1010f53f1ea25e9f69bb39b036d9279ff0
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jul 2 17:21:02 2012 -0700

    (maint) Add trailing newlines to all files

commit 2a907ce843bba839ae6b024e9510cddc35247197
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 29 14:41:50 2012 -0700

    (#15202) Handle paths with files in them
    
    When creating the install path, if there is a file in the way then there
    was an unhandled exception. This commit extracts out a install directory
    handling code for ease of testing and adds handling for this case.
    
    This class excapsulates the logic of preparing the installation
    directory for modules. As we find more operations on the installation
    directory we should try to move them to this class.

commit 9547b324b07b97602442eb1721c0483e8ad3364c
Author: Ken Barber <ken@bob.sh>
Date:   Mon Jul 2 14:44:12 2012 +0100

    (#15320) pmt generate generated _gitignore instead of .gitignore
    
    So the file stored in the main skeleton was _gitignore. Previously the code
    specified a rewrite from an underscore to a dot, but alas this did not work in
    ruby 1.8.7.
    
    I'm removing that code for now, and renaming the file to .gitignore. I can see
    why people might want the rename behaviour, but this has no tests and doesn't
    work on ruby 1.8.7. For now to get the gitignore working I've reverted this
    behaviour introduced in 94808b89eb27d13c5910ac5c6704e056d6cd46d5.

commit df242de3ffeaae2e52fe75c99af8b75c0936201b
Merge: de4976e 0eef289
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Fri Jun 29 15:35:59 2012 -0700

    Merge pull request #896 from pcarlisle/maint/2.7.x/sqlite-memory-db
    
    Maint/2.7.x/sqlite memory db

commit f20a118e8e7a1e030108132313ebdb8490724117
Author: Ken Barber <ken@bob.sh>
Date:   Wed Jun 27 17:52:06 2012 +0100

    (#15202) Fix acceptance tests for creating non-existance directories
    
    The acceptance tests were failing after we added the new functionality
    for creating dependent directories during module installation.
    
    This patch fixes that, by remedying the tests to make this situation
    acceptable instead of expecting an error and a non-zero exit code.

commit 3c07e11d0df77b97ebf1cc729a0ef0539820e3dd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jun 25 11:14:47 2012 -0700

    (#15202) Make puppet module install create parent directories
    
    Without this patch, the puppet module install command will fail when run
    as a normal user account without a ~/.puppet directory.
    
    The error is:
    
        $ puppet module install puppetlabs-cloud_provisioner
        Preparing to install into /Users/jeff/.puppet/modules ...
        Error: Could not install module 'puppetlabs-cloud_provisioner' (latest)
          Directory /Users/jeff/.puppet/modules does not exist
    
    This is a problem because it adds friction to the process of getting started
    with Puppet.
    
    This patch fixes the problem by creating the directory if the path does not
    already exist.  If the path does exist, then the error is still thrown, but has
    been modified slightly to provide helpful next actions.  The error when the
    path exists as a non-directory looks like:
    
        Error: Could not install module 'puppetlabs-cloud_provisioner' (latest)
          The reason is path '/Users/jeff/.puppet/modules' is not a directory.
          A potential solution is `mkdir -p '/Users/jeff/.puppet/modules'`.
    
    This patch also handles the situation where the target path does not exist but
    the effective uid of the puppet process does not have access to create the
    directory.  The error message in this case looks like:
    
        Error: Could not install module 'puppetlabs-cloud_provisioner' (latest)
          Permission is denied when trying to create directory '/Users/jeff/.puppet/modules'.
          A potential solution is to check the ownership and permissions of parent directories.

commit 2d5a5dda374e9252fa861f63b92bf883f8db139f
Merge: db393ff 6de8b6a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Jun 29 09:43:45 2012 -0700

    Merge branch 'fix/3.0rc/diff_warning_specs' into 3.0rc
    
    * fix/3.0rc/diff_warning_specs:
      Fix spec test failures from diff warning

commit 6de8b6ac9d61a20ba3baac42e26e7bef9618ed8d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Jun 29 09:37:39 2012 -0700

    Fix spec test failures from diff warning
    
    I was bad and made a change to the execution behavior of diff without
    bothering to update the spec tests.  This patch fixes the failing spec
    tests to match the new expectation that Puppet::Util::Execution.execute
    is used instead of Puppet::Util::Diff#execute as was previously used.

commit 0eef289b9cb19c92e61f49968a3f62dfe5f9e228
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jun 28 17:16:15 2012 -0700

    Use in memory sqlite database for unit tests

commit 0fe3d39af1fc7cedf5dfbcdecc320c174d757cb8
Merge: ab27570 d804782
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Thu Jun 28 14:23:50 2012 -0700

    Merge branch 'store-report-processor' into security_fixes_2.7.18

commit d80478208d79a3e6d6cb1fbc525e24817fe8c4c6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jun 28 14:08:55 2012 -0700

    Reject directory traversal in store report processor

commit db393ffac231308b344f6c90263d072da1dc7ea8
Merge: 7f993b7 d3f3088
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jun 28 11:30:17 2012 -0700

    Merge pull request #895 from jeffmccune/fix/3.0rc/diff_warning
    
    Fix Puppet::Util.execute is deprecated warning

commit d3f3088fe14d3301e96874b6edc29b7ee171035f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jun 28 11:20:42 2012 -0700

    Fix Puppet::Util.execute is deprecated warning
    
    Without this patch applied the 3.0rc branch gives this warning when a
    plugin sync file has changed:
    
        jeff@pe-debian6:~$ puppet agent --test
        Info: Retrieving plugin
        Warning: Puppet::Util.execute is deprecated; please use Puppet::Util::Execution.execute
           (at /workspace/src/puppet/lib/puppet/util/diff.rb:14:in `diff')
        /File[/home/jeff/.puppet/var/lib/puppet/cloudpack.rb]/content:
        --- /home/jeff/.puppet/var/lib/puppet/cloudpack.rb      2012-06-28 03:40:01.000000000 -0700
        +++ /tmp/puppet-file20120628-1955-99huz5-0      2012-06-28 03:46:39.000000000 -0700
        @@ -1,5 +1,4 @@
         require 'tempfile'
        -require 'rubygems'
         require 'guid'
         require 'fog'
         require 'net/ssh'
    
    This patch fixes the issue by calling the recommended method in the
    deprecation warning.

commit 0bbd16568359e1fa191a7d3a7d538898723fd6e5
Author: Ken Barber <ken@bob.sh>
Date:   Tue May 29 16:07:49 2012 +0100

    (#14715) Use gtar with 'puppet module install' on Solaris
    
    Previously we were assuming there was a usable GNU tar in the path for Solaris,
    but Solaris provides its own tar implementation which works quite differently.
    
    Solaris tar is also unsafe, as it allows unpacking repositories to absolute
    paths.
    
    This patch changes the behaviour of the unpacker code during module
    installation to use the 'gtar' implementation found on most Solaris 10 systems,
    and later part of core with Solaris 11. 'gtar' is also available on older
    Solaris systems from package providers such as OpenCSW and Blastwave.
    
    This also adds some unit tests for puppet/module_tool/applications/unpacker.

commit de4976e46387c88dfc18ca2121cb7e94d2698651
Merge: 730c149 6fa20bf
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jun 27 21:04:29 2012 -0700

    Merge branch 'ticket/2.7.x/14740-ordering-error' of https://github.com/pcarlisle/puppet into 2.7.x
    
    * 'ticket/2.7.x/14740-ordering-error' of https://github.com/pcarlisle/puppet:
      Stub pkginfo when installing in openbsd spec

commit 9a67da3039f8ede11562ffe07d582b78be8f14b8
Merge: 44bc7cb d6883f3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jun 27 16:39:08 2012 -0700

    Merge remote-tracking branch 'origin/1.x'
    
    * origin/1.x:

commit d6883f34494b7f61e5c1c8c9180df94ce37a553f
Merge: 8388627 44bc7cb
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jun 27 16:33:23 2012 -0700

    Merge remote-tracking branch 'origin/1.0rc' into 1.x
    
    * origin/1.0rc:
      (#15105) Update README YAML examples
      (maint) Hiera Puppet now has a LICENSE file
      (#15184) Refactor parser functions
      (Maint) Create a test for the puppet backend
      (maint) Add acceptance tests
      (maint) parser functions do not require hiera.yaml
      (maint) Follow Puppet Labs style guide + code cleanup
      (#12122) Use nil as default answer in lookup

commit 6fa20bfb8b0f7ce53a825aecd95e3433d5c92896
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jun 12 18:01:08 2012 -0700

    Stub pkginfo when installing in openbsd spec

commit ab27570c050648592c41bb7dbf07099467717b7e
Merge: 18b0a3e fd44bf5
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Jun 27 15:40:40 2012 -0700

    Merge branch 'clean-permissions-2.7.17' into security_fixes_2.7.18

commit 18b0a3e91f4c46180f0a516c9e521d4d3511ccbf
Merge: 9873ea8 ab9150b
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Jun 27 15:40:35 2012 -0700

    Merge branch 'deprecate-ip-authentication-2.7.17' into security_fixes_2.7.18

commit 9873ea8b1e10f061c081cc7711f937bd61f95c18
Merge: 4d7c9fd 38c5a4e
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Jun 27 15:40:20 2012 -0700

    Merge branch 'file-server-2.7.17' into security_fixes_2.7.18

commit 7f993b7416de7bed7cc41e9743c787d26d73ba78
Merge: a287a64 a821079
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jun 27 14:45:01 2012 -0700

    Merge pull request #890 from zaphod42/maint/3.0rc/pluginsync-tests-on-windows
    
    Maint/3.0rc/pluginsync tests on windows
    
    This was done with the help of Josh Cooper.

commit a82107999e21a01f41ab4889cfedead3cf3b2342
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jun 27 14:41:35 2012 -0700

    (Maint) Fixed up acceptance tests for pluginsync on windows
    
    The pluginsync acceptance tests were not using the right path separator
    and directory ownership on windows. By using the values on the host we
    can make sure that the setup is done correctly on both linux and
    windows.

commit 4d06c64782052b02694af1af58f6d3d62bfad8c3
Author: Ken Barber <ken@bob.sh>
Date:   Fri May 18 17:17:20 2012 +0100

    (#14598) Add SSL support for forge interaction
    
    This patch turn on SSL support when an HTTPS url is provided, and also changes
    the default URL to https://forge.puppetlabs.com so that now all interaction is
    done via SSL.
    
    As not all Ruby setups on weird operating systems are proven to work, effort
    was spent in making sure validation errors are captured and returned as a
    meaningful error to the user. This was also captured as a simple acceptance
    test by testing against a self-signed certificate (in our case, a puppet
    master).
    
    The forge error handling in Puppet::Forge::Repository was changed to return
    a new set of exceptions specific to the Puppet::Forge API set, so they can
    be captured by consumers and displayed. This also helps a lot with test mocking
    and tests have been changed accordingly.
    
    To reflect the new error handling in Puppet::Forge::Repository the search face
    was changed to capture exceptions and hand them off to the rendering parts as
    data in a hash, to mimic how the rest of the puppet/face/module components
    work.
    
    All the existing acceptance tests were changed to now test against SSL, and
    existing unit tests were also changed to reflect changes herein. New tests were
    added for Puppet::ModuleTool::Applications::Searcher as previously this had no
    coverage.

commit fd44bf5e6d0d360f6a493d663b653c121fa83c3f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jun 26 13:50:01 2012 -0700

    Tighten permissions on classfile, resourcefile, lastrunfile, and lastrunreport.

commit a287a64f901dd5fcdc8540820410234665eac443
Merge: f936cb8 27f6b77
Author: Justin Stoller <justin.stoller@gmail.com>
Date:   Tue Jun 26 17:14:20 2012 -0700

    Merge pull request #886 from zaphod42/maint/3.0rc/flickering-file-integration-test
    
    (Maint) Attempt to fix flickering test

commit 4d7c9fd9f65c6daaf47515d2faec90b448e3821d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 21 09:56:47 2012 -0700

    Use "inspect" when listing certificates
    
    This fixes an issue of `puppet cert list` potentially not accurately
    depicting the actual certname of the certificate/request. For instance,
    "foo^H^H^Hbar" would simply appear as "bar".

commit bd2820ec6ee8a45f57fcc57f79dddde0062cdca7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 21 09:41:06 2012 -0700

    Don't allow the creation of SSL objects with invalid certnames
    
    This ensures we catch invalid certnames earlier in the process, such as
    when an agent is starting or making a certificate request, rather than
    at the very last step of signing the request. This should make for
    better error messages to the user.

commit f3419620b42080dad3b0be14470b20a972f13c50
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jun 20 13:27:21 2012 -0700

    Validate CSR CN and provided certname before signing
    
    This adds a few new checks when signing CSRs, to validate the CN. First,
    it must conform to a small set of characters, which are the printable
    ASCII characters, except for '/' (because we store these in files). This
    prevents attacks such as a CN "foo^H^H^Hbar", which appears as "bar" to
    "puppet cert list".
    
    The other check is that the certname for the SSL::Host that we think
    we're signing must match the CN. This prevents a CSR with the CN "foo"
    from being submitted as a CSR for "bar", which would cause it to appear
    as "bar" to "puppet cert list", but to issue a certificate for "foo".

commit 38c5a4efd8c369fb939eab5214af15b282b1c036
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jun 25 14:57:47 2012 -0700

    Add specs for selector terminuses of file_{content,metadata}

commit 9e920a8ed27c5a5614f269834c790203125db649
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jun 22 15:57:56 2012 -0700

    Fix whitespace inside parentheses

commit 2d01c2bde3ea104f04565c124755850b466a8bcd
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jun 22 15:57:07 2012 -0700

    Use head method to determine if file is in file bucket
    
    This call was using find, but wasn't doing anything with the result,
    only checking whether the file existed. Using head here is more
    semantic and saves the trouble of reading the file if it does
    exist.

commit 40ee670c60ed703c38e420462dca78f8ec09d551
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jun 22 15:56:11 2012 -0700

    Always use the local file_bucket on master
    
    This fixes an issue where the master could be made to issue arbitrary
    HTTPS requests through carefully constructed URLs. Now the master will
    always use the file_bucket, whereas other applications retain their
    behavior of dynamically selecting the source (rest or file) based on the
    particular request.

commit d881b4b1cc7d3a744e5ef2d55fa0cde1792949de
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jun 22 14:52:30 2012 -0700

    Fail more gracefully when finding module files if no file is specified
    
    Previously this would just complain about trying to call `nil.split`.

commit 20ab0e9ef00f32ad933e837cb4c48cb08c2ac0bd
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jun 22 14:33:16 2012 -0700

    Reject file requests containing ..

commit 10f6cb8969b4d5a933b333ecb01ce3696b1d57d4
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jun 21 15:52:58 2012 -0700

    Add Selector terminus for file_content/file_metadata
    
    This terminus is now the default, and encapsulates the behavior that was
    previously in the IndirectionHooks. That is, we dynamically select the
    terminus to use for a file request based on the key. However, for the
    puppet master, we instead explicitly always use the FileServer terminus,
    so that *all* requests for files from the master will go through
    the file server. This ensures that we will never accidentally
    serve local files on the puppet master.

commit ab9150baa1b738467a33b01df1d90e076253fbbd
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jun 26 16:46:45 2012 -0700

    Deprecate IP-based authentication
    
    This will need to be made explicit in a future version, so it's good to
    get people to stop using it if possible.

commit f936cb84d51cf9abbd0c56eae2ecdf0cfec818d0
Merge: 6d81e66 15a9fb7
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Jun 26 17:01:44 2012 -0700

    Merge remote-tracking branch 'zaphod42/maint/3.0rc/cleanup-crl-start-time' into 3.0rc
    
    * zaphod42/maint/3.0rc/cleanup-crl-start-time:
      (Maint) Make a CRL valid on the same second it is updated
      (Maint) Clarify flow of CRL generation and update
      (Maint) Moved ca test to correct location
      (Maint) Clarify what certs are being created in ca tests
      (Maint) Remove unneeded checks from ca tests
      (Maint) Remove unused variables from ca tests

commit 15a9fb76096e1d0d3642ae2ebcfa72ea9abc367f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jun 6 13:54:17 2012 -0700

    (Maint) Make a CRL valid on the same second it is updated
    
    Because openSSL says that a CRL is valid only at least one second after
    it was last updated, setting the last_updated field to right now causes
    the CRL to be not valid for one second. This was showing up as an
    intermittent failure in our test cases.
    
    The CRL is now always made to be last_updated one second ago so that it
    is immediately valid.

commit 905a947c1e95e04c665fda4f6719cafbb1a516c8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jun 6 13:25:00 2012 -0700

    (Maint) Clarify flow of CRL generation and update
    
    Extract various methods to provide better names for the steps in
    generating a CRL and revoking a cert.

commit 1659181ce9b04e7d4e5d564e1e8204409381b9c9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 5 17:50:20 2012 -0700

    (Maint) Moved ca test to correct location
    
    The ca face test is an integration test as it uses the file system,
    depends on time, and is failry slow to run (8s for ~100 tests on my
    laptop).

commit a9c00aa27cbaf387e64758ff809d0d8dce4aa4ed
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 5 17:38:32 2012 -0700

    (Maint) Clarify what certs are being created in ca tests
    
    The make_certs method that was part of the test was not clear at the
    point of call what the certs were that it was creating. It had two types
    (requests and certificates) that it could make and most callers only
    wanted one to be actaully made. This splits make_certs in two and
    provides a clearer name for each part.

commit 50c123b528828bc8941ebe3753f4b2368ee30f14
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jun 6 10:42:40 2012 -0700

    (Maint) Remove unneeded checks from ca tests
    
    Many tests were asserting that in addition to the expected condition
    that no errors were raised. This check is unneeded since the test will
    fail if an error is raised.

commit 8e107cfd24e54e7f79a0c63563a85b7b525a5f25
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 5 16:04:33 2012 -0700

    (Maint) Remove unused variables from ca tests
    
    The ca face specs were creating an action variable that was never used.
    This gets rid of that variable.

commit 6d81e6668a1ccb86cc9b47b5678918af91316d66
Merge: a4451fb 4e11885
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Jun 26 15:12:06 2012 -0700

    Merge pull request #885 from zaphod42/maint/3.0rc/pluginsync-acceptance-test-using-wrong-directory
    
    Maint/3.0rc/pluginsync acceptance test using wrong directory

commit 27f6b770361be376509d9b3441ab8b06fde734dc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 26 14:36:12 2012 -0700

    (Maint) Attempt to fix flickering test
    
    The file type integration test flickered at times for what seems to have
    been some sort of race for creating tempfiles and tempdirs. I've tried
    to remove much of the interdependence between the tests in a hope to
    remove this bug in the test.

commit 4e11885dfd41787f583cfab0ef0ec39e83a4df06
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 26 11:36:21 2012 -0700

    (Maint) Fix up directories used in pluginsync test
    
    The test previously doubled up on prefixing files with the tmp directory
    name. This removes the double prefix and cleans up the test a little to
    remove redundant logic.

commit a4451fb1789816cb23fc9456d6c781ba076bbe9f
Merge: 624cb1d 911e2d4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 25 18:03:04 2012 -0700

    Merge branch 'tickets/3.x/14136' of https://github.com/domcleal/puppet into 3.0rc
    
    (#14136) Emit debug/warnings when Augeas provider fails to load files
    Originally submitted as #733 against master, re-targeting to 3.x now the
    branch exists.
    
    The messages and information from /augeas//error are now printed to
    debug when the provider opens Augeas, allowing file parse errors to be
    found.
    
    The provider can also restrict the files that are loaded (from the
    default of everything). In these cases, the provider now emits a warning
    and then prints all the detailed information to debug. Since a few parse
    errors are common, no warning is given when these optimisations aren't
    in use.
    
    Conflicts:
    	CHANGELOG
    	lib/puppet/provider/augeas/augeas.rb

commit 624cb1d5c58806ee739cdf079f0856bc27e7e871
Merge: c0d1c2b 11ae0fc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 25 17:46:20 2012 -0700

    Merge commit '11ae0fc' into 3.0rc
    
    * commit '11ae0fc':
      (#14378) Skip context-based optimisation for complex expressions

commit 885b89931947f8287d660d47e1ebb95a2cb6e06b
Merge: aa82915 11ae0fc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 25 17:27:53 2012 -0700

    Merge pull request #835 from domcleal/tickets/3.x/14378
    
    (#14378) Skip context-based optimisation for complex expressions

commit c0d1c2b448c1a75e6af56c1d32ce81fd39254fd3
Merge: 98d77fb 28f9400
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 25 16:13:07 2012 -0700

    Merge pull request #860 from zaphod42/maint/3.0rc/cleaner-bindings-api
    
    Maint/3.0rc/cleaner bindings api

commit 730c149515cf68a5210308569f8a9340bbb63906
Merge: a274e45 39f425f
Author: nfagerlund <nick.fagerlund@puppetlabs.com>
Date:   Mon Jun 25 13:56:45 2012 -0700

    Merge pull request #878 from domcleal/tickets/2.7.x/15078
    
    (#15078) Document USR2 log rotation signal

commit 8560f0ab82d9f88435534a5894316bded59df43e
Author: Jakub Holy <jakub.holy@iterate.no>
Date:   Mon Jun 25 11:43:12 2012 +0300

    tidy.rb: Added info about the default value of 'type' to the doc.

commit a274e45196f3540df12ffd76f2d0cb50b4d4389a
Merge: d41b6d2 39f0bf4
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Sun Jun 24 12:36:05 2012 -0700

    Merge pull request #881 from kbarber/ticket/2.7.x/14962-pmt_relative_modulepath
    
    (#14962) pmt relative modulepath

commit 39f0bf443b5510e67c5b59a6ae5d6dbb1df90b34
Author: Ken Barber <ken@bob.sh>
Date:   Sun Jun 17 21:25:51 2012 +0100

    (#14962) PMT doesn't support setting a relative modulepath
    
    We previously fixed expansion for the target_dir, but this only worked when the
    target_dir was set explicitly, it didn't support relative paths being passed in
    the modulepath. This patch fixes that and adds tests.
    
    As a side-effect, this should also fixes cases where the first modulepath
    defined in the configuration file is relative.
    
    It also corrects the tests previously applied for expanding the target_dir, as
    it used to rely on expanding the target_dir before adding it to the modulepath.
    This wasn't necessary, so now we don't bother testing that the targetdir is
    expanded in the modulepath after being added.
    
    Acceptance tests have been added for testing modulepath, with absolute
    and relative paths.

commit 44bc7cbaebd2046f9f178c6800533997bf142783
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Sun Jun 24 10:32:16 2012 -0400

    (#15105) Update README YAML examples
    
    The Syck YAML Parser in Ruby 1.9.x requires that values like this:
    
        %{location}
    
    Are quoted like this:
    
        "%{location}"

commit 5ddaff3728c97836e93b8463a0fa9c241929cfec
Merge: b69ed3e bdb8563
Author: Ken Barber <ken@bob.sh>
Date:   Sun Jun 24 11:39:00 2012 -0700

    Merge pull request #36 from kelseyhightower/bug/1.0rc/15184_cannot_locate_the_hiera_config_file
    
    (#15184) Refactor parser functions

commit b69ed3e375df49f82774ea35c19701c5e019c8b2
Merge: 51f7713 9ab901f
Author: Ken Barber <ken@bob.sh>
Date:   Sun Jun 24 10:59:37 2012 -0700

    Merge pull request #37 from kelseyhightower/maint/1.0rc/hiera_puppet_does_not_have_license_file
    
    (maint) Hiera Puppet now has a LICENSE file

commit 98d77fbfaf034eea4341bc94d94c99a05835c739
Merge: a04782d 2bc3c99
Author: Chris Price <chris@puppetlabs.com>
Date:   Sun Jun 24 07:12:00 2012 -0700

    Merge pull request #880 from cprice-puppet/bug/3.0rc/15185-default-user-dirs-not-expanded
    
    Bug/3.0rc/15185 default user dirs not expanded

commit 2bc3c99a39dfc1811edbe148833aecbbe25d4303
Author: Chris Price <chris@puppetlabs.com>
Date:   Sun Jun 24 07:09:55 2012 -0700

    Fix run_mode test w/rt expanding tilde in user dir values

commit 911e2d4b973514c515eff1d5a31798bf4830a7c8
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Wed May 2 21:16:00 2012 +0100

    (#14136) Emit debug/warnings when Augeas provider fails to load files
    
    The messages and information from /augeas//error are now printed to debug when
    the provider opens Augeas, allowing file parse errors to be found.
    
    The provider can also restrict the files that are loaded (from the default of
    everything).  In these cases, the provider now emits a warning and then prints
    all the detailed information to debug.  Since a few parse errors are common, no
    warning is given when these optimisations aren't in use.

commit 39f425fec2d7d3c69931088c41a154bc8d0a4d88
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Jun 24 09:43:22 2012 +0100

    (#15078) Document USR2 log rotation signal
    
    USR2 causes Puppet daemons to close log files and reopen them.  It was added in
    issue #305.

commit 9ab901f8de8f27d16ed481d3dd4cfd9467f05c22
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Sun Jun 24 03:42:50 2012 -0400

    (maint) Hiera Puppet now has a LICENSE file
    
    hiera-puppet has always been licensed under the ASL2. This patch makes
    that easier to find by adding a "License" section to the README, and a
    new LICENSE file.
    
    * ASL2 - Apache License, Version 2.0

commit a04782d2990f1eef8dcfe427508589a491012c99
Merge: 03b0916 107715e
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Sat Jun 23 19:38:56 2012 -0700

    Merge pull request #877 from cprice-puppet/bug/3.0rc/15185-default-user-dirs-not-expanded
    
    Bug/3.0rc/15185 default user dirs not expanded

commit 107715e8c90dcda0793b671c7fbc7ff3975991ac
Author: Chris Price <chris@puppetlabs.com>
Date:   Sat Jun 23 19:30:55 2012 -0700

    (#15185) expand default user/conf dirs
    
    The default values specified for user config dir and
    vardir contained the "~" character, but were never
    being expanded out to the full path of the user's
    home directory.  This fixes that and adds tests
    to ensure that the values returned for these two
    paths are absolute.

commit bdb8563b7f23dda54731c1f2db124a784c7db416
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Sat Jun 23 02:12:18 2012 -0400

    (#15184) Refactor parser functions
    
    This patch refactors the parser functions which centralizes hiera
    configuration and lookups into a new `HieraPuppet` module.
    
    The spec tests have be reorganized into a better hierarchy.
    
    Updated specs and acceptance tests are included.

commit 51f7713df3f1b11370d9490feafda714b287d843
Merge: 1554a42 89cde8d
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Sat Jun 23 05:38:16 2012 -0700

    Merge pull request #35 from zaphod42/master
    
    Test data binding integration with puppet backend

commit b8ca7485e9a544d34f6f759481ab7fbecb5cba46
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jan 12 14:17:31 2012 -0800

    (#11727) Support STDIN for `puppet parser validate`
    
    This adds an acceptance test for the STDIN validation feature of the `puppet
    parser validate` action.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 04ba8e20c62d11259fa0cf8ac833b58461fddcea
Author: S. Zachariah Sprackett <zac@sprackett.com>
Date:   Wed Dec 14 23:51:51 2011 -0500

    Add stdin parsing to puppet parser validate

commit 03b091617e8302673ccc85ae4e45e946d5ffbc27
Merge: db604e3 2e225f4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 22 10:31:56 2012 -0700

    Merge pull request #874 from cprice-puppet/feature/master/acceptance-test-util-libs
    
    Feature/master/acceptance test util libs

commit d41b6d2d8103dbc9cacfbfff3bdf87d4dee2453e
Merge: be829ae 300fce9
Author: Matthaus Litteken <mlitteken@gmail.com>
Date:   Fri Jun 22 10:16:42 2012 -0700

    Merge pull request #871 from Whopper92/createpackage_update
    
    Update createpackage.sh to resolve permissions issues with OSX package creation

commit 300fce9193dde8b42c3860f686cbf74e27531f41
Author: Will Hopper <whopper@puppetlabs.com>
Date:   Thu Jun 21 19:04:36 2012 +0000

    (#14909) Update createpackage.sh to resolve permissions issues
    
    Previously, PackageMaker would apply the permissions found on
    the system to files in the package if one of the files in the
    payload already existed on the disk, rather than the ones set
    up in the package root.
    
    This means that when the Mac Puppet package had previously installed
    group-writable files, and PackageMaker was used to build a new
    package, the files in the new package used the local broken
    permissons - resulting in a package containing files with group-
    writable permissions.
    
    This commit changes the call to PackageMaker to explicitly not
    apply recommended permissions to package contents (using the
    '--no-recommend' flag) . This ensures that the desired permissions
    are applied.

commit 0d5a46ad63b323d84592a9dbb4d94fef05d34c42
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Jun 20 18:26:42 2012 +0200

    (#14600) Fix cleanup of tempfiles in file_spec
    
    The file integration test uses temporary files that will be removed
    after each test. A few tests however use the backup functionality of the
    file resource type and these backups were not removed.
    
    Create a temporary directory where the dummyfile is placed. This way the
    spec helper will remove the whole directory after each test including
    every backup of the dummyfile that might have been created during the
    testrun.

commit be829aeb0a43e9db17414010ca41ecb0d440c217
Merge: 34a28b9 34b9c0b
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Jun 19 15:31:37 2012 -0700

    Merge branch '2.7rc' into 2.7.x

commit 34b9c0b6a2e5a8a58b4c9d409ac39c16161cd2c2
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Jun 19 15:31:11 2012 -0700

    Updating CHANGELOG, lib/puppet.rb, conf/redhat/puppet.spec for Puppet 2.7.17

commit 30d89d3b7ecf26a0c4619bdf649a84255da50205
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Jun 18 14:02:18 2012 -0700

    (maint) Add symlink stub to gentoo service provider spec
    
    The gentoo service provider spec test stubbing didn't stub symlinks. A recent
    change in the init provider started discarding symlinks from upstart jobs and
    because this element wasn't stubbed, the test went to the (ubuntu) filesystem
    and found a symlink to an upstart job, which was not the intent of the test.
    This commit adds a blanket stub that there are no symlinks in the filesystem
    for the specific test.

commit ff1b37a2ca1ad5cccb70df067cc9efe6259f6a4d
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Jun 18 11:24:31 2012 -0700

    Add comment to upstart provider explaining exclusion of 'wait-for-state'

commit 6b854f7929bba4f9d453eb829b62d8893ab98fda
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 15 14:45:19 2012 -0700

    Upstart code cleanup, init provider improvement
    
    This commit adds an is_init? function to the init provider, to prevent the init
    provider from handling upstart jobs redundantly (which happens with services
    such as network-interface and network-interface-security). It also adds tests
    for the exlusion of instances in the upstart provider and exclusion of upstart
    services from the init instances. It also cleans up some upstart provider code
    (self.instances, self.search), eliminating redundant code and refactoring some
    methods (upstart_status, status, normal_status).
    This also removes the custom status command from upstart, which almost
    certainly wasn't doing what it was expected. The upstart status command is
    effective at gauging the status of upstart services.

commit 0f81d9a72f0699ec5091f6f828742459459fda84
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 15 09:50:48 2012 -0700

    Add spec test for network-interface-security
    
    This adds a simple test case for the special case of network-interface-security
    to the upstart spec.

commit a2c1e23938a545f62c41f1de124e87aec628ae1f
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 15 09:27:54 2012 -0700

    Add basic service resource test to upstart acceptance
    
    Because `puppet resource service $servicename` doesn't fail when `puppet
    resource service` does, this commit adds an acceptance test to make a `puppet
    resource service` call and search for a running ssh service (which should be
    true, if the acceptance test is running).

commit 2c85d4d3c457374ba74e3b048fbd022832f4bf18
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 15 09:25:47 2012 -0700

    Handle network-interface-security in upstart
    
    Similar to network-interface, network-interface-security is an upstart job that
    requires special handling to get status information. While network-interface
    takes and interface argument, network-interface-security takes a job argument.
    This commit adds that special case, and also updates the search method with a
    corresponding special case so the jobs can be recognized as upstart jobs.

commit ed00e74e87c3c4f012ee8f078e0cd49f6626e1bb
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 15 09:22:47 2012 -0700

    Add exclude list to upstart provider
    
    The wait-for-state service seems to be a helper that is used by upstart, but
    doesn't have a useful status or consistent way to call. Trying to use that
    upstart service generally results in an error. This commit adds an exclude list
    similar to the redhat provider so that services like 'wait-for-state' can be
    excluded from the service instances.

commit 17cc17730b804b85f05c2b2feb370a67bbe7967c
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 15 09:11:07 2012 -0700

    (#15027, #15028, #15029) Fix upstart version parsing
    
    A leading space in the --version argument would confuse upstart, and the
    version returned would not always be a semantic version, which caused the
    upstart provider to fail. This commit updates the initctl call to remove the
    leading space from the --version argument, and also replaces the implicit
    SemVer comparisons with wrapper functions that call out to
    Puppet::Util::Package.versioncmp to do version comparisons. It also fixes a
    subtly broken regex to grab the full version string.

commit 9b30e471e89254b3a1fd2cbda0e6fa2e64485cb4
Merge: f92aefa b0ee6ad
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jun 19 14:50:07 2012 -0700

    Merge pull request #868 from djm68/cpick_add_test_agent_run_hostname_not_match
    
    Cpick add test agent run hostname not match

commit b0ee6ad9ca9257ab7d74bc58b68c4eded65a4dbf
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Tue Jun 19 14:35:01 2012 -0700

    (maint) Add --test to puppet run
    
    Adding --test prevents the agent from using a cached catalog
    and then returning '0' when we need to test to return '1'.

commit 34a28b90d297fac141cb6d45884f90c7e1b31c61
Merge: 90a0d19 2141905
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jun 19 14:39:33 2012 -0700

    Merge pull request #867 from djm68/add_test_agent_run_hostname_not_match
    
    Add test agent run hostname not match

commit 2141905e55c8817070eaaf2371a3b4bf851e578b
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Tue Jun 19 14:35:01 2012 -0700

    (maint) Add --test to puppet run
    
    Adding --test prevents the agent from using a cached catalog
    and then returning '0' when we need to test to return '1'.

commit ddf8358ebbba977d8bc51ae932158d38165a0f9c
Author: Will Hopper <whopper@puppetlabs.com>
Date:   Tue Jun 19 11:14:04 2012 -0700

    Update logrotate config to not restart puppetmasterd

commit 90a0d190c6f9c385f12a78f1cfe25497eb35e912
Merge: 630a29a da771cb
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jun 18 15:25:54 2012 -0700

    Merge pull request #865 from haus/maint/2.7.x/fix_gentoo_test_failure
    
    Maint/2.7.x/fix gentoo test failure

commit da771cb640a5f69db5c3af02937199d2cc2e193d
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Jun 18 14:02:18 2012 -0700

    (maint) Add symlink stub to gentoo service provider spec
    
    The gentoo service provider spec test stubbing didn't stub symlinks. A recent
    change in the init provider started discarding symlinks from upstart jobs and
    because this element wasn't stubbed, the test went to the (ubuntu) filesystem
    and found a symlink to an upstart job, which was not the intent of the test.
    This commit adds a blanket stub that there are no symlinks in the filesystem
    for the specific test.

commit 630a29a8624523054fa4ae7e8d7753deb7d0d7c6
Merge: 590ef50 0e87fe1
Author: lifton <lifton@puppetlabs.com>
Date:   Mon Jun 18 13:15:41 2012 -0700

    Merge pull request #862 from haus/ticket/2.7/15027_15028_15029_upstart_version_not_semver
    
    Ticket/2.7/15027 15028 15029 upstart version not semver

commit 0e87fe183532d78d5b17898bb45d786f7c1357da
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Jun 18 11:24:31 2012 -0700

    Add comment to upstart provider explaining exclusion of 'wait-for-state'

commit 0219818c164672e20d47ff5ce86e807f996fb474
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Jun 18 01:10:22 2012 +0200

    (#14531) Change default ensure value from symlink to link
    
    If ensure on a file resource is omitted, puppet will set the should value
    to :symlink in the initialize method of the file type but the ensure property
    does not use :symlink but :link to identify a link.
    
    As a result, puppet will always treat a resource with a specific target
    property but no ensure property as out of sync:
    
        file { '/tmp/a':
          target => '/tmp/b',
        }
    
    When puppet now calls sync on the ensure property, the fileresource
    (`/tmp/a`) is removed first (method `remove_existing`) but we do not
    execute the block passed to `newvalue(:link)` to recreate it. Because
    there is no `newvalue(:symlink)` block, we instead run the block in
    `newvalue(/./)` which is just a dummy and does nothing at all. As a
    result puppet will *always* say it created something while in fact
    making sure that the resource is *removed*.
    
    Change the default ensure value from :symlink to :link if target is
    set.

commit 0cab9ee92af13bbd3161e4a64d317321e7dfd4d3
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 15 14:45:19 2012 -0700

    Upstart code cleanup, init provider improvement
    
    This commit adds an is_init? function to the init provider, to prevent the init
    provider from handling upstart jobs redundantly (which happens with services
    such as network-interface and network-interface-security). It also adds tests
    for the exlusion of instances in the upstart provider and exclusion of upstart
    services from the init instances. It also cleans up some upstart provider code
    (self.instances, self.search), eliminating redundant code and refactoring some
    methods (upstart_status, status, normal_status).
    This also removes the custom status command from upstart, which almost
    certainly wasn't doing what it was expected. The upstart status command is
    effective at gauging the status of upstart services.

commit db604e353dfcb0f48c2914e0d7ad294302fc607a
Merge: 382672b 2f2459b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Jun 15 10:19:11 2012 -0700

    Merge pull request #857 from pcarlisle/ticket/3.0rc/15024-mount-error
    
    Ticket/3.0rc/15024 mount error

commit 91628be3f42522f3bf639920bdf07006c07633f8
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 15 09:50:48 2012 -0700

    Add spec test for network-interface-security
    
    This adds a simple test case for the special case of network-interface-security
    to the upstart spec.

commit b60ad19d338618b5148ca7d1f709f80cc9bf8311
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 15 09:27:54 2012 -0700

    Add basic service resource test to upstart acceptance
    
    Because `puppet resource service $servicename` doesn't fail when `puppet
    resource service` does, this commit adds an acceptance test to make a `puppet
    resource service` call and search for a running ssh service (which should be
    true, if the acceptance test is running).

commit a6245f9b6db482b026c8d0fb5b4abff6fb6cd3f0
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 15 09:25:47 2012 -0700

    Handle network-interface-security in upstart
    
    Similar to network-interface, network-interface-security is an upstart job that
    requires special handling to get status information. While network-interface
    takes and interface argument, network-interface-security takes a job argument.
    This commit adds that special case, and also updates the search method with a
    corresponding special case so the jobs can be recognized as upstart jobs.

commit 60e37b6fa1739cfeb1a404429fbd087d0cffcd90
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 15 09:22:47 2012 -0700

    Add exclude list to upstart provider
    
    The wait-for-state service seems to be a helper that is used by upstart, but
    doesn't have a useful status or consistent way to call. Trying to use that
    upstart service generally results in an error. This commit adds an exclude list
    similar to the redhat provider so that services like 'wait-for-state' can be
    excluded from the service instances.

commit 2911fec5822777da391e69e389c137e7a2ce84fa
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 15 09:11:07 2012 -0700

    (#15027, #15028, #15029) Fix upstart version parsing
    
    A leading space in the --version argument would confuse upstart, and the
    version returned would not always be a semantic version, which caused the
    upstart provider to fail. This commit updates the initctl call to remove the
    leading space from the --version argument, and also replaces the implicit
    SemVer comparisons with wrapper functions that call out to
    Puppet::Util::Package.versioncmp to do version comparisons. It also fixes a
    subtly broken regex to grab the full version string.

commit 8efc4924a007b156fa583425c313aefb465a0d34
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jun 14 21:06:06 2012 -0700

    (#13489) Use let to memoize instance variables
    
    Converted instance variables, e.g. @resource, to let helper methods to
    reduce verbosity.

commit dc5f57c2fc28b87d1a5e6381cb55195c22b39ba0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jun 11 22:52:53 2012 -0700

    (#13489) Synchronously start and stop services
    
    Previously, we were using the `win32-service` gem to start and stop
    services.  It uses Win32 APIs to programmatically send start and stop
    requests.  The actual service starts/stops asynchronously with respect
    to the request.  As a result, when refreshing a service, puppet would
    issue a stop request, immediately followed by a start request, and that
    would race as the service would often still be running when the start
    request occurred, leading to 'An instance of the service is already
    running'.
    
    This commit changes the windows service provider to use `net.exe` to
    start and stop services.  This command will block until the service
    start/stops, and returns 0 on success, making it easy to adapt to the
    provider command pattern.  The one downside is that the exit codes don't
    have the same resolution that we can get via the `sc.exe` or by calling
    the Service Control Manager programmatically.  But that is not too
    critical because we do capture the output of the `net.exe` command, e.g.
    'The service name is invalid.' and include it in the exception message.

commit 28f94000e4f4f2b94261d1d869610fa62903753e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jun 14 11:31:28 2012 -0700

    (Maint) Limit data binding API information
    
    Previously the data binding terminus took the entire scope object which
    provided far to much access to the internals of puppet to the
    implemetors of data binding terminuses. This changes it to pass through
    only the data that should be needed for discovering what value to use in
    most reasonable implementations of data binding.

commit 85111d805715e2d109f93db9c7ed4f66dc010a3a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jun 14 15:44:47 2012 -0700

    Maint: Actually execute the tests on non-windows platforms
    
    Previously, the tests were using conditional pending statements to
    mark tests that don't pass on Windows:
    
      describe "group" do
        pending("porting to Windows", :if => ...) do
          it "should ..." do
            ...
          end
          it "should ..." do
            ...
          end
        end
      end
    
    But this is not a valid use of conditional pending statements, and it
    causes the examples within the pending block to be silently skipped.
    Instead, the conditional pending statement needs to be within the
    example:
    
      it "should ..." do
        pending("porting to Windows", :if => ...) do
          ...
        end
      end
    
    In our case, we want to mark a set of examples as pending, so we use
    an rspec exclude filter instead:
    
      describe "something", :unless => Puppet.features.microsoft_windows? do
    
    Some tests now pass on Windows, using :file instead of :mount and the
    instrumentation documentation, so I enabled them.

commit d3c64c3842727ae17246e6b13dfb0c8f142da915
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jun 14 15:24:02 2012 -0700

    (#14441) Require instrumentation indirections
    
    Previously, the instrumentation faces were not requiring their
    corresponding indirection, so the indirections were not getting
    registered,
    e.g. Puppet::Indirector::Indirection.instance(:instrumentation_data)
    was nil.  This was causing `spec/integration/documentation_spec.rb` to
    fail -- it was iterating across each face and trying to generate help,
    but that failed because the indirection wasn't registered.  This issue
    didn't show up earlier, because due to a separate issue, the tests
    were not being executed.
    
    This issue only occurs when using the instrumentation related classes
    programmatically, but not when running the applications, e.g. `puppet
    instrumentation_data` because the latter calls
    `Puppet::Util::Instrumentation.init` early on in the application
    lifecycle, and that requires all of the instrumentation code.
    
    This commit changes each instrumentation-related face to require its
    instrumentation indirection, e.g. Puppet::Face[:instrumentation_data]
    requires `puppet/util/instrumentation/data`.
    
    This commit doesn't address the overall issue with #14441 in that
    Puppet::Util::Instrumentation.init` has to be invoked before it can be
    used, so don't close the bug when this is merged.

commit 89cde8d04c27eecfb6385d15da2162725f9d026a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jun 14 11:49:56 2012 -0700

    (Maint) Create a test for the puppet backend
    
    This adds checks that data binding works with the puppet backend

commit 382672b5e7f3d7ab990a8f4d98c25abd6d238253
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 14 11:24:41 2012 -0700

    Fix incorrect command execution in acceptance test
    
    This should be calling host.execute, which constructs a command object,
    rather than host.exec, which is trying to use the string as if it
    were a command object.

commit 590ef5001d7c0780c28ed89659def557fe006ec0
Merge: f92aefa 5146397
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Thu Jun 14 10:22:25 2012 -0700

    Merge pull request #596 from domcleal/tickets/2.7.x/13379-aug-pluginsync
    
    (#13379) Add path of pluginsync'd lenses to Augeas load_path automatically

commit 2f2459b5d7e66b296753a25d91f16f4f7111942d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jun 13 18:01:45 2012 -0700

    (#15024) Improve error logging in fileserver conf

commit f92aefacdb51c67fb5c5b1100cbbdc69c6410b43
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed Jun 13 13:52:13 2012 -0700

    Update CHANGELOG, conf/redhat/puppet.spec for 2.7.16

commit 8270c42fe5d034fb737486a830485a2a19270236
Merge: 64d834f f3d68c3
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue Jun 12 16:19:07 2012 -0700

    Merge pull request #856 from zaphod42/bug/3.0rc/14844-service-provider-instances
    
    Bug/3.0rc/14844 service provider instances

commit f3d68c3ab1391444b4e3c633ffce126a40611936
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 12 16:13:53 2012 -0700

    (#14844) Add test that execpipe works for upstart provider
    
    The test as written covered up the fact that the execpipe method on
    Provider did not work correctly. This modifies the test to move the
    mocking down, out of the class that is under test so that it exercises
    the Provider class.

commit 1863e637c029d1d97d2e52da17a10bfd91f5ecf6
Merge: 5c33cab 60375cd
Author: Matthaus Litteken <mlitteken@gmail.com>
Date:   Tue Jun 12 15:44:14 2012 -0700

    Merge pull request #853 from justinstoller/maint/2.7.x/normalize_gem_task_name
    
    (maint) Make Puppet's gem package task the same name as other Puppetlabs' projects

commit 64d834f0d89ae89a56da5cfc1660d5bad8a9042b
Merge: f082035 21ed30f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 12 15:10:50 2012 -0700

    Merge pull request #855 from pcarlisle/ticket/3.0rc/environment-messages
    
    Ticket/3.0rc/environment messages

commit f08203510412e77ebd9c86455d11e12722f925ab
Merge: f25d9a0 23b317c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 12 15:05:36 2012 -0700

    Merge pull request #848 from pcarlisle/ticket/master/environment-caching
    
    Ticket/master/environment caching

commit f25d9a0d90f875f7a65711e5e25a0e69b15916b2
Merge: 10308a7 6051f5d
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue Jun 12 14:47:58 2012 -0700

    Merge pull request #850 from zaphod42/bug/3.0rc/14901-duplicate-args-remove-all-args
    
    (#14901) duplicate args remove all args

commit 21ed30f0f355be51a704152c66ee92fb6ec5bd9a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jun 12 13:47:42 2012 -0700

    When changing environment make sure to state what the new environment is

commit b1cda3cd4a796cf72f3c64c1dd24d6a224d4caa0
Merge: da36281 99fecc3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Jun 12 13:45:41 2012 -0700

    Merge pull request #842 from MosesMendoza/update_facter_dep_to_include_epoch_1
    
    Update facter dep to reflect epoch 1

commit 60375cda9fb4f4eea3f57336978d58fccaa2d9b5
Author: Justin Stoller <justin@puppetlabs.com>
Date:   Tue Jun 12 13:21:52 2012 -0700

    Make Puppet's gem package task the same name as other Puppetlabs' projects

commit 10308a728a850a22c42c81caa3fadbe3ef2ffeb0
Merge: 82bef19 708e15a
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Jun 12 09:32:25 2012 -0700

    Merge pull request #846 from haus/ticket/3.0rc/14843_add_block_to_self_execpipe
    
    Ticket/3.0rc/14843 add block to self execpipe

commit 30aee5c2436dce2cf86982e619e8c5b7dbb922cc
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 12 12:31:49 2012 +0100

    Fixed #14975 - Fixed incorrect help text in puppet doc application

commit 6051f5da2a8f09a04151205b781385dd04436bc0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 11 16:35:38 2012 -0700

    (#14901) Consistent handling of argument parsing errors
    
    We could previously swallow errors because the error handling code for
    argument parsing only propogated errors in certain cases. By removing
    the special case for error handling we should be much more robust with
    respect to errors during argument parsing.

commit e474c6821b430bea7ef793d0be01f55a9ad46060
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 11 16:10:40 2012 -0700

    (#14901) Simplify argument handling in option parser
    
    Option specification had been done with a series of shifts and pops to
    handle an optional second parameter. Checking the length of the
    arguments array is an easier to understand way of achieving this.

commit 97e64c34e3539f390d55269594fe68dd37a2d0bd
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 11 15:44:44 2012 -0700

    (#14901) Use the last argument when there are duplicates
    
    Previously, Trollop would raise an error if the command line contained
    duplicate arguments. This caused the application to ignore all arguments
    because of the error handling around Trollop. The argument handling will
    now accept duplicate arguments, but will only use the last duplicate's
    value. This is the same as the behaviour of 2.7.

commit 47465a887929b4a775beaa80b62dc602abf866da
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 11 15:23:47 2012 -0700

    (#14901) Refactored test to improve readability
    
    There was a fair amount of duplication in testing the option parser. By
    removing that the tests become much more readable.

commit 3ada85152daf0eb7e232657fe2f1b118274421a8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jun 11 15:26:31 2012 -0700

    (#14964) Don't fail if we can't unlink the Tempfile on Windows
    
    Previously, if the exec resource created a process, e.g. start.exe, that
    executed another process asynchronously, then the grandchild would inherit
    the tempfile handle, preventing puppet from being able to unlink it. This
    is not an issue on POSIX systems.
    
    This commit changes the `wait_for_output` method to ignore Errno::EACCES
    exceptions caused when closing and unlinking the stdout tempfile. The
    behavior on POSIX systems is unchanged.

commit 23b317cf2cacd55c1ae0cd7e3673438ba203119a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jun 11 10:51:57 2012 -0700

    (#14927) Set node environment correctly in termini
    
    The node environment was only being set correctly in the exec terminus. This
    sets it in the other relevant termini. It also involved significant rewriting
    of tests to not mock node objects.

commit 1554a42e369102bd100c6e5a7bb72b470abdfaa3
Merge: e6d57c0 8a49eab
Author: Matthaus Litteken <mlitteken@gmail.com>
Date:   Mon Jun 11 13:35:08 2012 -0700

    Merge pull request #33 from kelseyhightower/1.0rc
    
    (maint) Follow Puppet Labs style guide + code cleanup

commit 708e15ac12566f79d77513276a041b2041b46918
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Jun 11 11:01:30 2012 -0700

    (#14843, #14844) Add block to Puppet::Provider.execpipe
    
    Previously the execpipe wrapper in Puppet::Provider only accepted and passed a
    block if called from a provider instance, and not the class. This led to
    providers failiing with messages of "No block given". This commit brings the
    class wrapper in line with the instance wrapper, adding a block to its argument
    list and to its Puppet::Util::Execution.execpipe call.
    It also adds a single test for the rpm package provider, to verify sanity of
    self.instances.

commit 82bef190732e557e5c2fe16cca0d9cb14bf6c331
Merge: e89aa3e c770c22
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 11 10:10:51 2012 -0700

    Merge pull request #843 from kelseyhightower/ticket/3.0rc/14900_data_bindings_does_not_support_hiera_puppet_backend
    
    Ticket/3.0rc/14900 data bindings does not support hiera puppet backend

commit 8a49eabf9705627eafb2415a581aa2be02d585a5
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Sun Jun 10 23:25:59 2012 -0400

    (maint) Add acceptance tests
    
    hiera-puppet now has acceptance tests.

commit 95d7058165867ba11befa8817665d9820e48b2ab
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Sun Jun 10 19:37:13 2012 -0400

    (maint) parser functions do not require hiera.yaml
    
    The Hiera parser functions now lookup the Hiera configuration file using
    `Puppet.settings[:hiera_config]`. This keeps things in sync between the
    parser functions and Puppet's data bindings.
    
    The `hiera-*` parser functions no longer require a `hiera.yaml`
    configuration file. Instead of raising a parser error, we simply allow
    Hiera to use the default config.

commit 01e9122bfa059588ad059543598744eabd24778d
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Sun Jun 10 18:49:45 2012 -0400

    (maint) Follow Puppet Labs style guide + code cleanup
    
    The hiera-puppet code base now uses two space indentation. This patch
    also removes unnecessary calls to `Hiera::Scope`, which is no longer
    required because core Puppet's scope object allows variable lookup via
    the `[]` method.
    
    This commit includes updated specs.

commit c770c22cf118c6ee47f84611d4b5de45d3fd11a7
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Sat Jun 9 10:29:14 2012 -0400

    (#14900) Add data bindings hiera-puppet support.
    
    Data binding now supports the hiera-puppet backend. When looking up data
    in Hiera we now call the `Hiera#lookup` function with the Puppet scope
    object instead of the host's facts (Hash).
    
    We also remove the need to fetch node facts for every lookup; the scope
    object already contains this info. The scope object provides access to
    Facter Facts via the `Scope#[]` method.
    
    This patch includes updated tests.

commit 99fecc39a7f0c8cdb86acb12a261f187788499a5
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Fri Jun 8 13:27:26 2012 -0700

    Update facter dep to reflect epoch 1
    
    This commit updates the dependency on facter
    to include the epoch 1. Without this commit,
    now that facter 1.6.9 is epoch 1, rpm sees
    facter 1:1.6.9 as > 2.0.0, preventing puppet
    2.7.x from installing on systems with facter
    1:1.6.9. This commit resolves this issue.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit e89aa3e78063adfad2f6020b293d68a860f2b493
Merge: ce60250 d62a201
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Jun 7 16:23:49 2012 -0700

    Merge pull request #840 from pcarlisle/ticket/master/14789-autoloader-loaded
    
    (#14789) Fix inconsistent normalization and API in autoloader

commit e6d57c0411d8d3c97053752375c94dba40c2d2ab
Merge: 8388627 dbdda00
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Thu Jun 7 14:42:19 2012 -0700

    Merge pull request #32 from pcarlisle/ticket/master/12122-multiple-backends
    
    Ticket/master/12122 multiple backends

commit 8388627342350e03a9fba422a15c14e9a62f9f20
Merge: 1138e65 b166328
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Thu Jun 7 12:43:10 2012 -0700

    Merge pull request #31 from pcarlisle/14841-array-hash-error
    
    (#14841) Give useful error for array or hash lookup failure

commit d62a201234162b20ca586ddb7027ce17264421dd
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jun 7 11:29:58 2012 -0700

    (#14789) Fix inconsistent normalization and API in autoloader
    
    Since I didn't get around to adding a require method to the autoloader, it
    still makes sense to have the loaded? method exposed on instances. I also
    added the changed? method, which would be useful in similar situations.
    Testing these changes revealed inconsistency about how names are normalized,
    which is also fixed in this commit.

commit b166328c1dceb4f1ea4907eddeb61b3c3731f775
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jun 6 12:00:09 2012 -0700

    (#14841) Add test coverage for remaining hiera parser functions
    
    These tests were derived from the hiera_hash tests. Importing them included
    fixing all hiera functions to raise an error when no key argument was passed.

commit d76a9d87547a12a41c4ac4fefe234f996e85dab6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jun 6 11:55:54 2012 -0700

    (#14841) Add test for hiera_hash parser function
    
    This required pulling in the puppetlabs_spec_helper, since the parser
    functions depend on puppet being somewhat configured.

commit 7a458a4c1d367553c6555be56783466c75e454d5
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jun 5 17:47:04 2012 -0700

    (#14841) Give useful error for array or hash lookup failure

commit dbdda00e3498426745e70da5c3c0e49eb2b09532
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Jun 6 17:14:00 2012 -0700

    (#12122) Use nil as default answer in lookup
    
    Synchronize with the way backends work in Hiera 1.0 by starting with nil
    instead of Backend.empty_answer

commit 0b01bb31e36612aa9dd935721a72f693d0bdc961
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jun 6 15:01:39 2012 -0700

    (#14860) Fix puppet cert exit status on failures
    
    Without this patch applied the following command errors out but does not
    correctly set the exit status:
    
        puppet cert generate foo.bar.com --dns_alt_names foo,foo.bar.com
    
    The error returned is:
    
        err: Could not call generate: CSR 'pe-internal-broker-test'
          contains subject alternative names (DNS:pe-centos6, \
          DNS:pe-centos6.puppetlabs.vm, DNS:pe-internal-broker-test, \
          DNS:stomp), which are disallowed. Use `puppet cert \
          --allow-dns-alt-names sign pe-internal-broker-test` to sign this \
          request.
    
    However, the exit status is 0.
    
    This is a problem because we need to easily detect if certificate
    generation from the command line failed or succeeded.  The most natural
    and expected way to check this is by looking at the exit status.
    
    The root cause of the problem is that
    Puppet::SSL::CertificateAuthority::InterFace#apply incorrectly catches
    and masks the exception raised by the generate method because it simply
    logs an error with Puppet.err and continues along happily.
    
    This patch fixes the problem by re-raising the error produced by
    generate, allowing the application controller to catch the error
    appropriately and exit with the non-zero exit status.

commit 5c33cab7f4f9e1f985b1526f135b5b2b16ca0269
Merge: f701097 aa82915
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jun 6 15:32:06 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x:
      Updated manpages, CHANGELOG, puppet.spec, puppet.rb for 2.7.16rc1.
      (maint) Update README.md w/ min Facter ver
      (#8858) Explicitly set SSL peer verification mode.
      Test SSL setup code, not our stubbing of it.
      (#14723) Fix http report description

commit aa829158690e24528a8ba7db05da4542078dc694
Merge: 3fc5ce4 da36281
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jun 6 15:30:09 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      Updated manpages, CHANGELOG, puppet.spec, puppet.rb for 2.7.16rc1.
      (#8858) Explicitly set SSL peer verification mode.
      Test SSL setup code, not our stubbing of it.
      (#14723) Fix http report description
    
    Conflicts in man pages were resolved by taking the 3.x version of the
    pages.
    
    Conflicts:
    	CHANGELOG
    	conf/redhat/puppet.spec
    	lib/puppet.rb
    	man/man5/puppet.conf.5
    	man/man8/filebucket.8
    	man/man8/pi.8
    	man/man8/puppet-agent.8
    	man/man8/puppet-apply.8
    	man/man8/puppet-ca.8
    	man/man8/puppet-catalog.8
    	man/man8/puppet-cert.8
    	man/man8/puppet-certificate.8
    	man/man8/puppet-certificate_request.8
    	man/man8/puppet-certificate_revocation_list.8
    	man/man8/puppet-config.8
    	man/man8/puppet-describe.8
    	man/man8/puppet-device.8
    	man/man8/puppet-doc.8
    	man/man8/puppet-facts.8
    	man/man8/puppet-file.8
    	man/man8/puppet-filebucket.8
    	man/man8/puppet-help.8
    	man/man8/puppet-inspect.8
    	man/man8/puppet-instrumentation_data.8
    	man/man8/puppet-instrumentation_listener.8
    	man/man8/puppet-instrumentation_probe.8
    	man/man8/puppet-key.8
    	man/man8/puppet-kick.8
    	man/man8/puppet-man.8
    	man/man8/puppet-master.8
    	man/man8/puppet-module.8
    	man/man8/puppet-node.8
    	man/man8/puppet-parser.8
    	man/man8/puppet-plugin.8
    	man/man8/puppet-queue.8
    	man/man8/puppet-report.8
    	man/man8/puppet-resource.8
    	man/man8/puppet-resource_type.8
    	man/man8/puppet-secret_agent.8
    	man/man8/puppet-status.8
    	man/man8/puppet.8
    	man/man8/puppetca.8
    	man/man8/puppetd.8
    	man/man8/puppetdoc.8
    	man/man8/puppetmasterd.8
    	man/man8/puppetqd.8
    	man/man8/puppetrun.8
    	man/man8/ralsh.8
    	tasks/rake/gem.rake

commit da36281f07a61e2689d38cba5d5e4fe529548628
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed Jun 6 13:48:19 2012 -0700

    Updated manpages, CHANGELOG, puppet.spec, puppet.rb for 2.7.16rc1.

commit ce6025042bce7e5778ccd6e15d531ea4dae5b3e9
Merge: d58a7cc fb4c64b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Jun 6 11:31:07 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.0rc
    
    * upstream/2.7.x:
      (#8858) Explicitly set SSL peer verification mode.
      Test SSL setup code, not our stubbing of it.
      (maint) Add mailmap to identify contributors
      Updating CHANGELOG, conf/redhat/puppet.spec for puppet 2.7.15rc4
      (#14723) Fix http report description
      Remove EL-related test changes from this commit.
      Revert changes to symbolic_modes.rb -- this test should indeed be pending (it should eventually work on Windows).
      Update acceptance tests to use confine instead of skip_test loops
    
    Conflicts:
    	CHANGELOG
    	conf/redhat/puppet.spec

commit fb4c64b6a54b37ef1357f853fb6d00e17202b410
Merge: a212090 8dda6c2
Author: nfagerlund <nick.fagerlund@puppetlabs.com>
Date:   Wed Jun 6 10:47:30 2012 -0700

    Merge pull request #818 from lotheac/fix_http_report_desc
    
    Fix http report desc

commit a212090bacd5e038f38eecb3f24ca9af3d4e8968
Merge: ff052b8 3a06246
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Jun 5 16:58:25 2012 -0700

    Merge remote-tracking branch 'daniel-pittman/bug/2.7.x/8858-ruby-19-default-to-peer-verify-for-https' into 2.7.x
    
    * daniel-pittman/bug/2.7.x/8858-ruby-19-default-to-peer-verify-for-https:
      (#8858) Explicitly set SSL peer verification mode.
      Test SSL setup code, not our stubbing of it.

commit 11ae0fcde346000be596296cb8158cec1bdaf53e
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Tue Jun 5 21:48:24 2012 +0100

    (#14378) Skip context-based optimisation for complex expressions
    
    When optimising loaded files based on the context given, the context would be
    passed into a path expression itself inside quotes.  If the user had given a
    path expression for the context that contained quotes then these would need to
    be escaped, which Augeas doesn't support today.
    
    This disables the optimisation when the user supplies a complex context path,
    preventing errors caused by improperly quoted paths.

commit 3fc5ce470dd070325d2ec06f6881ce1ccbb7616f
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Jun 5 13:38:23 2012 -0700

    (maint) Update README.md w/ min Facter ver
    
    As of Puppet 3.0.0, the minimum version of Facter required is 2.0.0.
    This commit updates the documentation in README.md.

commit f701097d72a7adb49f4dff15e6690de5a6d14ffd
Merge: 6bc7a05 6a63109
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 4 14:30:28 2012 -0700

    Merge remote-tracking branch 'upstream/3.x'
    
    * upstream/3.x: (38 commits)
      (maint) Add mailmap to identify contributors
      Updating CHANGELOG, conf/redhat/puppet.spec for 3.0.0rc3
      Updating CHANGELOG, conf/redhat/puppet.spec for puppet 2.7.15rc4
      (#14761) Add boot, reboot to excludes list for redhat provider
      (maint) Disable upstart spec test on windows
      (#14615) Final stub fixes for the tests.
      (#14615) Fix provider spec tests to work on non gentoo systems
      maint: Make it easier to test the service provider
      (Maint) Close filehandles after read in upstart
      (Maint) Fix upstart provider to work on Ruby 1.9.3
      Update CHANGELOG, conf/redhat/puppet.spec for 2.7.15rc3
      Update redhat.spec dependency to include hiera-puppet
      Update puppet gem dependencies
      Update redhat init scripts to use `puppet (agent|queue|master)`
      (#14297) Don't remove tty1 or rsyslog during upstart acceptance
      (#14297) Define agent in upstart acceptance test
      (#14297) Update upstart provider acceptance tests
      (#14297) Clean up upstart provider and tests
      (#14343) Test cases for more forms of variable lookup
      (#14297) Add acceptance test for upstart provider
      ...

commit 6a631098378286e0ec963a0f433a07500b7f6d5f
Merge: d58a7cc ff052b8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Jun 4 11:23:03 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x' into 3.x
    
    * upstream/2.7.x:
      (maint) Add mailmap to identify contributors
      Updating CHANGELOG, conf/redhat/puppet.spec for puppet 2.7.15rc4
      Remove EL-related test changes from this commit.
      Revert changes to symbolic_modes.rb -- this test should indeed be pending (it should eventually work on Windows).
      Update acceptance tests to use confine instead of skip_test loops
    
    Conflicts:
    	CHANGELOG
    	conf/redhat/puppet.spec

commit 3a0624628c66ba0bc38c9ae3c342357a188151a6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jun 3 19:58:44 2012 -0700

    (#8858) Explicitly set SSL peer verification mode.
    
    In Ruby 1.8 the Net::HTTP library defaults to skipping peer verification when
    no mode is explicitly set.  Ruby 1.9, on the other hand, does not: it defaults
    to verification of the peer certificate - leading to failure when we depended
    on the default value in our HTTP setup.
    
    This changes to explicitly set the verification mode, ensuring we get
    consistent results across all Ruby versions.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit cd4bee829fe26910fb07c17fa472b23b1275c2e4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jun 3 15:28:08 2012 -0700

    Test SSL setup code, not our stubbing of it.
    
    This rewrites the tests to actually test code - previously, almost every
    single object involved was a stub.
    
    There shouldn't be any functional changes, other than tests that might
    actually fail at some point, falling out of this.
    
    The results are not the most awesome of tests, but they are markedly better
    than before we started.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ff052b8548e5cc856b08b345bf01dcb9b1253376
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sat Jun 2 12:25:03 2012 -0700

    (maint) Add mailmap to identify contributors
    
    Without this patch it can be difficult to track a single contributor
    over time.  This is because we switched version control systems early in
    the project and individual contributors have used different email
    addresses over time.
    
    This patch partially fixes the problem by mapping some contributors to
    their current identities.

commit d58a7cce3b66e7a868fca621491ae8cd50559c8b
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 1 15:51:13 2012 -0700

    Updating CHANGELOG, conf/redhat/puppet.spec for 3.0.0rc3

commit 1d8f6c6c99572555fd5c4aa2df6a34997d02f55b
Merge: 401aa7f d110da5
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 1 15:08:19 2012 -0700

    Merge branch '2.7rc' into 2.7.x

commit d110da5f6565f6177a7df2ea5c453ae25caf1026
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Jun 1 15:07:54 2012 -0700

    Updating CHANGELOG, conf/redhat/puppet.spec for puppet 2.7.15rc4

commit 3b7673059e44a36371ecaa74d43f4a5df2870e09
Merge: 1d24ef2 a9bf33f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu May 31 10:43:57 2012 -0700

    Merge remote-tracking branch 'upstream/2.7rc' into HEAD
    
    * upstream/2.7rc:
      (#14761) Add boot, reboot to excludes list for redhat provider
      (maint) Disable upstart spec test on windows
      (#14615) Final stub fixes for the tests.
      (#14615) Fix provider spec tests to work on non gentoo systems
      maint: Make it easier to test the service provider
      (Maint) Close filehandles after read in upstart
      Update CHANGELOG, conf/redhat/puppet.spec for 2.7.15rc3
      (#14615) Exclude helperscripts in gentoo service provider
    
    Conflicts:
    	CHANGELOG
    	conf/redhat/puppet.spec
    	spec/integration/provider/service/init_spec.rb
    	spec/unit/provider/service/init_spec.rb
    
    This commit undoes the restriction on the upstart spec that kept it from
    running on windows. And allowed a freebsd test to begin running on 1.9
    series ruby

commit a9bf33f5a6f3005a0e4bdc8b2973c3e82c615d07
Merge: 9282e27 e619304
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu May 31 09:02:22 2012 -0700

    Merge pull request #827 from haus/ticket/2.7rc/14761_add_excludes_for_sles_services_to_redhat_provider
    
    Ticket/2.7rc/14761 add excludes for sles services to redhat provider

commit d7e77eb7603a8d6ce5b3ddf4467f26192c5a79f5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed May 30 17:18:52 2012 -0700

    (#14749) Clear reference to invalid task after saving
    
    Previously, running `puppet resource scheduled_task <name> ...` to
    create a scheduled task would raise an exception. This would occur
    because the provider's flush method calls `task.save`, which releases
    the reference to the COM interface and sets it to nil. Then later the
    `resource` application attempts to retrieve the state of the resource it
    just flushed. This causes the win32-taskscheduler gem to raise an
    exception because the underlying interface is nil.
    
    This is not an issue when applying a manifest, because puppet doesn't
    retrieve the state of the resource after it's been flushed. However,
    when writing acceptance tests for the scheduled_task type using `puppet
    resource scheduled_task` this bug occurred.
    
    The `Win32::TaskScheduler#save` method should have probably been called
    `close` since you can't perform additional operations on it, once it's
    been closed. However, this is the gem, not puppet code, and the method
    does say:
    
        Note that calling TaskScheduler#save also resets the
        TaskScheduler object so that there is no currently active task.
    
    So whatever.
    
    This commit simply changes the provider's flush method to clear the
    `Win32::TaskScheduler` object after saving it, so that subsequent calls
    to the `task` getter method will create a new `Win32::TaskScheduler`
    instance.
    
    This commit also adds acceptance tests that exercise things that were
    previously broken in #13749, #13008, and #13009. The tests rely on the
    ability to create scheduled_tasks using the `puppet resource
    scheduled_task` style invocation, which this commit fixes.
    
    The acceptance tests are more verbose than one would like because the
    options to the `schtasks.exe` are different for before Vista, and
    Vista and later.

commit a2d95978d6307c97f7429582675b07791b315fd1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed May 30 17:25:37 2012 -0700

     (#13008) Allow scheduled task arguments to be specified
    
    Previously, the `arguments` property of a `scheduled_task` resource
    could not be specified as it would lead to a TypeError when we passed
    the `should` array value to the task scheduler method that expected a
    string.
    
    Previously, scheduled tasks arguments could be specified as either a
    string or an array. But if an array was specified it could only contain
    a single element.
    
    This commit requires that the arguments be specified as a
    space-delimited string, e.g.  'arg1 arg2'.  It is not a breaking change,
    because the ability to specify arguments never worked.

commit c6af946e113c2a9f61a7db11fe521f00e58151f3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue May 29 14:18:24 2012 -0700

    (#13009) Compare scheduled task commands using backslashes
    
    Previously, if the command for a scheduled task was specified using
    forward slashes, puppet would always think the resource was out-of-sync.
    This issue is that Windows does not preserve forward slashes, so the
    *current* value always contains backslashes.
    
    This commit munges forward slashes in the command to backslashes. It also
    uses `File.expand_path`, because otherwise commands like the following in
    the puppet language would be considered different:
    
        command => 'c:\\windows\\system32\\cmd.exe'
        command => 'c:\windows\system32\cmd.exe'

commit e619304a0a60593c4b264d0c522ece7f764f94f9
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed May 30 19:39:00 2012 -0700

    (#14761) Add boot, reboot to excludes list for redhat provider
    
    On sles, the reboot init script would be triggered during a `puppet resource
    service` call, which would ignore the status argument and proceed to reboot the
    system. It would also call the boot init script, which could hang the puppet
    call indefinitely. This commit adds both the boot and reboot services to the
    redhat provider's exclude list. It also updates the redhat provider spec test
    to test for those changes.

commit 9282e27afb0798ef35fe65d6c569506796cbdeda
Merge: 37df5c4 7c1d8c2
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed May 30 17:52:32 2012 -0700

    Merge pull request #826 from haus/disable_upstart_spec_windows
    
    Disable upstart spec windows

commit 7c1d8c200f8aa65149adf682091368f958603a74
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed May 30 17:38:11 2012 -0700

    (maint) Disable upstart spec test on windows
    
    replace_file is disabled on windows, so the upstart spec test fails when the
    provider calls out to replace_file. This commit confines the test to
    non-windows platforms, where replace_file is defined.

commit 401aa7fac2d3d55ab9270ab5cfb6e720fff95b28
Merge: 9758fdc 37df5c4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed May 30 17:09:03 2012 -0700

    Merge remote-tracking branch 'origin/2.7rc' into 2.7.x

commit 37df5c4203fd78a765d789d61e37712bcf7034eb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed May 30 17:06:58 2012 -0700

    (#14615) Final stub fixes for the tests.
    
    The tests assumed that they were run on a Linux, or Linux-like, system that
    had ssh installed an a valid init script for it present.  This isn't true on
    all our platforms, so we need to stub a little more of the outside.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9c9189fecd4cdc8b40097c718290f3d5424c4c49
Merge: e7ca376 f11dfd6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed May 30 16:52:13 2012 -0700

    Merge 'ticket/2.7.x/14615' from stschulte into 2.7rc
    
    This blacklists some helper scripts in /etc/init.d that can, among other
    things, cause the system to immediately reboot when Puppet tries to read the
    status of the "reboot" script.

commit f11dfd6b3021403d746efd863028af8620422e26
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu May 31 00:53:28 2012 +0200

    (#14615) Fix provider spec tests to work on non gentoo systems
    
    The gentoo service provider tests made the assumption that /etc/init.d
    is always the directory where the service provider will look for init
    scripts while in fact the path depends on the operatingsystem.
    
    The service provider spec also made the assumption that the sshd init
    script is present on the target machine.
    
    Stub the operatingsystem fact to prevent failures.
    Stub the stat-call so the sshd script is always considered present.

commit 060810e9affcc13b97d143e0e8ec62a63d5db7ec
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu May 31 00:27:11 2012 +0200

    maint: Make it easier to test the service provider
    
    Before the change the directories to search for initscripts (e.g.
    `/etc/init.d`, `/sbin/init.d`) were stored in a class variable that was
    calculated at load time. This way stubbing `operatingsystem` in test
    cases did not change the value of `@defpath`.
    
    Turning the class variable in a class method. This way stubbing
    operatingsystem does change the result when querying defpath. The fact
    lookup should be relativly cheap so we do not have to cache the
    value in a class variable.

commit e7ca37655ed23bed1830db072ab6a2c4299e32fa
Merge: 20c3da3 c0cb0fa
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed May 30 12:52:38 2012 -0700

    Merge pull request #825 from zaphod42/maint/2.7rc/leaked-filehandles-in-upstart
    
    Maint/2.7rc/leaked filehandles in upstart

commit c0cb0fa0fd3c6412891f8327875eae66efab03dd
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed May 30 08:34:41 2012 -0700

    (Maint) Close filehandles after read in upstart
    
    Not closing the filehandle after reading leaves a File object floating
    around with an open handle. On unix systems this is ok, but on Windows
    this causes a problem for the subsequent move of the new file into
    place.
    
    This changes to reading of a file to ensure that the file handle is
    closed after we finish reading.

commit 1d24ef258a8646dc8df30816f750151b73f43508
Merge: fcbb87e 55505db
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue May 29 16:58:51 2012 -0700

    Merge pull request #822 from zaphod42/maint/3.0rc/fix-upstart-to-work-on-ruby-193
    
    Maint/3.0rc Fix upstart to work on ruby 1.9.3

commit 55505db1dff0972b8fdbb611ca59c5fd81a1ce4b
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue May 29 16:39:40 2012 -0700

    (Maint) Fix upstart provider to work on Ruby 1.9.3
    
    The upstart provider was relying on String#map and String#each it
    manipulate the input files. These functions don't exist on Ruby 1.9.3
    and so are being changed to String#lines.map and String#each_line

commit fcbb87ee1b94bfc2aea5f3a9af40ba24b9a332ae
Merge: 626507f b0f1d58
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue May 29 16:03:19 2012 -0700

    Merge pull request #820 from haus/update_gem_and_redhat_dependencies
    
    Update gem and redhat dependencies

commit 626507f7e3075cff6bc466db7445e4dc80a53d3a
Merge: 84df35d d19f93f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue May 29 16:02:17 2012 -0700

    Merge pull request #819 from haus/update_redhat_init_scripts
    
    Update redhat init scripts

commit 368a1cbab0148316eee2110c97cf72b39313916a
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Oct 7 17:09:23 2010 -0700

    Fix for #3984 -- SELinux warns about changes it doesn't actually make
    
    Volumes that don't suport SELinux should be considered in_sync so they don't
    generate spurious change notice.
    
    Patch from Darrell Fuhriman

commit 84df35dc5de1a58251b37910a64be25d54c962c8
Merge: 0f83fb4 13505c0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue May 29 15:52:56 2012 -0700

    Merge remote-tracking branch 'upstream/2.7rc' into 3.0rc
    
    * upstream/2.7rc:
      (#14297) Don't remove tty1 or rsyslog during upstart acceptance
      (#14297) Define agent in upstart acceptance test
      (#14297) Update upstart provider acceptance tests
      (#14297) Clean up upstart provider and tests
      (#14343) Test cases for more forms of variable lookup
      (#14297) Add acceptance test for upstart provider
      (#14297) Update spec tests for upstart provider
      (#14297) Handle upstart services better
      (#14343) Lookup in correct inherited scope
      (Maint) Added test for fully qualified variables
      Update CHANGELOG puppet.spec for 2.7.15rc2
    
    Conflicts:
    	CHANGELOG
    	conf/redhat/puppet.spec
    	lib/puppet/parser/scope.rb
    	spec/unit/parser/scope_spec.rb

commit 9758fdc596984eae86329db44799e1083829701a
Merge: 8db4418 20c3da3
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue May 29 15:47:14 2012 -0700

    Merge branch '2.7rc' into 2.7.x

commit 20c3da38aca4062fc384571409cf3dcb23aaa4c1
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue May 29 15:45:02 2012 -0700

    Update CHANGELOG, conf/redhat/puppet.spec for 2.7.15rc3

commit b0f1d58e9c191970215c27e72d290a455b25b4d0
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue May 29 15:35:28 2012 -0700

    Update redhat.spec dependency to include hiera-puppet
    
    This updates the redhat rpm spec to conform to the telly dependencies, which
    include hiera-puppet 1.0. The spec already includes dependencies on hiera 1.0
    and facter 2.0.

commit 6e2f23d263cd0264ebebd7a4ec196c08513d1884
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue May 29 15:32:42 2012 -0700

    Update puppet gem dependencies
    
    This commit updates the dependencies for the puppet gem to include Facter 2.0,
    Hiera 1.0, and Hiera-puppet 1.0. This matches the dependencies of our other
    packages.

commit d19f93f1e099d3d3d2782cb80483bbe9aefa287c
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue May 29 15:22:02 2012 -0700

    Update redhat init scripts to use `puppet (agent|queue|master)`
    
    The redhat init scripts still referenced binaries which have been deprecated
    for at least a major release and removed in Telly. This commit updates those
    init scripts to use the appropriate puppet calls, updates the daemon call to
    reference the correct binary, and corrects some of the passed arguments.

commit 8dda6c223477d26c577e170a8e9dd1d0bbe91194
Author: Lauri Tirkkonen <lotheac@iki.fi>
Date:   Tue May 29 18:52:19 2012 +0300

    (#14723) Fix http report description

commit 0f83fb4a0215df0fd8486b558771270a9a60b426
Merge: cb6f71b 6c37538
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri May 25 16:39:34 2012 -0700

    Merge pull request #815 from hkenney/ticket/master/3909_strip_trailing_dot_from_default_fqdn
    
    (#3909) strip trailing dot from default fqdn

commit cb6f71b41b63975649da103d733712114202203d
Merge: 3cab4a4 2864d86
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri May 25 16:29:58 2012 -0700

    Merge pull request #814 from jeffweiss/maint/master/make_facter_2_hard_dep
    
    (maint) Make Puppet have hard dependency on Facter 2.0

commit 13505c06276efe75ba491881dab8fc298c0ff07c
Merge: 56862ca a45942b
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri May 25 15:28:39 2012 -0700

    Merge remote-tracking branch 'haus/ticket/2.7rc/14297_handle_upstart_better' into 2.7rc
    
    * haus/ticket/2.7rc/14297_handle_upstart_better:
      (#14297) Don't remove tty1 or rsyslog during upstart acceptance
      (#14297) Define agent in upstart acceptance test
      (#14297) Update upstart provider acceptance tests
      (#14297) Clean up upstart provider and tests
      (#14297) Add acceptance test for upstart provider
      (#14297) Update spec tests for upstart provider
      (#14297) Handle upstart services better

commit a45942b42c1db2666cb6242e262cb28570b3a93a
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri May 25 15:09:47 2012 -0700

    (#14297) Don't remove tty1 or rsyslog during upstart acceptance
    
    Previously the upstart acceptance would try to remove the tty1 and rsyslog
    packages, which could cause unexpected behavior in the acceptance tests after
    the upstart test was handled. This also removes apache after the test
    concludes, but leaves tty2 and rsyslog intact.

commit 466ab492841d1c6a451ad9ce1ef3128bca8267d5
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri May 25 10:30:41 2012 -0700

    (#14297) Define agent in upstart acceptance test
    
    agent wasn't being passed into the helper function in the upstart acceptance
    test, so this adds the agent variable to the method and passes it in when
    called.

commit 56862cad566ca758266efc5341ac55982fd26a7e
Merge: cfeb013 36c41e1
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu May 24 23:29:11 2012 -0700

    Merge remote-tracking branch 'zaphod42/bug/2.7rc/14343-variable-lookup-fails-with-qualified-classes-in-inheritance' into 2.7rc
    
    * zaphod42/bug/2.7rc/14343-variable-lookup-fails-with-qualified-classes-in-inheritance:
      (#14343) Test cases for more forms of variable lookup
      (#14343) Lookup in correct inherited scope
      (Maint) Added test for fully qualified variables

commit f5d1f74de754d1e12854a0102a9073f3277a9d62
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Thu May 24 21:42:09 2012 -0700

    (#14297) Update upstart provider acceptance tests
    
    Previously this test would grep the status output to determine the status of
    the service. That works for upstart services, but not for init style services.
    For those the return code of status must be checked. This commit adds a wrapper
    function to handle using the right method to determine the service status.

commit 3c5ef408e8593c1b15dd2cf11a8f1b785f6ff20c
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Thu May 24 16:21:06 2012 -0700

    (#14297) Clean up upstart provider and tests
    
    This commit eases readability of the changes to the upstart provider, breaking
    functionality into helper functions where appropriate. The spec tests were
    similarly cleaned up.

commit 36c41e102e342dd43790d9d21f98f6c7740413cf
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu May 24 09:11:45 2012 -0700

    (#14343) Test cases for more forms of variable lookup
    
    * ensure that topscope variable lookup works when inheriting
      from a fully qualified class name.
    * ensure that local scope overrides inherited scope variables

commit 6bc7a05fb81d1878e9144bf83627c94acb491d15
Merge: 6485cfe 5141e52
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu May 24 14:28:41 2012 -0700

    Merge pull request #812 from jeffmccune/maint/master/intialize_hiera_for_rspec_puppet
    
    (maint) Make 3.0.x work with rspec-puppet

commit 5141e52a4bb89dc52f524a462fbefabfcb232652
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed May 23 17:47:58 2012 -0700

    (maint) Make 3.0.x work with rspec-puppet
    
    Without this patch applied Hiera tries to load a file that does not
    exist when running spec tests with rspec-puppet.
    
    The error message without this patch looks like:
    
          1) ntp test platform specific resources for operating system centos should allow package ensure to be overridden
             Failure/Error: subject.should contain_package('ntp').with_ensure('latest')
             Puppet::Error:
               Puppet::Parser::AST::Resource failed with error RuntimeError: Config file /dev/null/hiera.yaml not found at line 3 on node maynard.puppetlab
        s.lan
             # /vagrant/src/hiera/lib/hiera/config.rb:17:in `load'
    
    This patch fixes the problem by setting the hiera_config setting to /dev/null
    explicitly in the TestHelper class.  This is a file that should exist which
    will avoid the exception coming out of the hiera library.

commit 6cca0612c762c93f6677187c360080d194a3093c
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed May 23 14:00:11 2012 -0700

    (#14297) Add acceptance test for upstart provider
    
    This adds a simple upstart provider test to the acceptance tests. It has some
    basic service cases to consider, including an upstart job with a symlink in
    /etc/init.d, an upstart job with no symlink in /etc/init.d, and a init script
    that is not an upstart job. The test was graciously supplied by Justin Stoller.

commit b9ed02670e355e56afa9a8f744b35aea2ff0b6cb
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed May 23 13:53:36 2012 -0700

    (#14297) Update spec tests for upstart provider
    
    This commit adds tests for the upstart provider to verify that it has the
    enableable methods and that it behaves correctly with various versions of
    upstart. The tests include multiline start blocks, manual stanzas, and override
    files.

commit 91827e8daecb179c8b4995397450b1de8f025a41
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed May 23 13:47:15 2012 -0700

    (#14297) Handle upstart services better
    
    The previous changes to the upstart provider didn't take into account services
    that may have upstart jobs in /etc/init with no corresponding symlink to
    upstart-job in /etc/init.d. This fix adds /etc/init/$service.conf to the search
    path in the upstart provider.
    
    In order to allow upstart to use debian as its parent, this commit adds methods
    for enabled?, enable and disable. Without this fix, using a debian style init
    script on ubuntu requires manually specifying the debian provider be used.
    With this commit, the upstart provider can be the default for ubuntu and
    still fail up to its parent, debian.
    
    The enabled?, disable, and enable methods are complicated because upstart has 3
    behaviors to account for. Upstart < 0.6.7 have only the conf file and start on
    stanzas to worry about, 0.6.7 < upstart < 0.9.0 has a manual stanza which
    removes any previous start on declaration, and upstart >= 0.9.0 has an override
    file. In upstart >= 0.9.0, the provider does all of its work using override files
    to leave the upstart conf file for the service intact and unchanged.
    
    Because of the need to know which upstart version is being used, this commit
    also adds a method and a class variable to hold and access the upstart version,
    obtained by a call to `initctl --version`.

commit 3541db606b13179582dd9d4e840e77cf6cf38ae7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed May 23 15:23:23 2012 -0700

    (#14343) Lookup in correct inherited scope
    
    The previous twoscope lookup of the inheritied scope tried to find the
    inherited scope by looking up the class_scope() directly. Unfortunately,
    this does not work correctly in cases where the inherited scope is
    qualified to the topscope (::parent) or where the scope is implicitly
    qualified (class a { class b {} class c inherits b {} }).
    
    By using the same mechanism that variables use for looking up scope (the
    qualified_scope() method) variable lookup will find a scope consistent
    with what qualified variable lookups will find.

commit 2d83e226dad907a2c3d5668ac7d27cf0eff7e481
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed May 23 12:00:01 2012 -0700

    (Maint) Added test for fully qualified variables
    
    A fully qualified variable looks up through the scopes of the scope that
    the variable references.

commit 6485cfe1232a8abd84cac8224627eb82e3f289e9
Merge: 305d7cf 168c8b2
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue May 22 17:48:33 2012 -0700

    Merge pull request #734 from mkincaid/confines
    
    Update acceptance tests to use confine instead of skip_test loops

commit 8db4418ebb800f55e4b360b0d394ef123ff03e36
Merge: 638a6e4 ebf5386
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue May 22 17:48:04 2012 -0700

    Merge pull request #736 from mkincaid/27confines
    
    Update acceptance tests to use confine instead of skip_test loops

commit 3cab4a4c46b69389d3df363ad7fad5340b0155e3
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue May 22 17:11:51 2012 -0700

    Updating CHANGELOG, conf/redhat/puppet.spec for Puppet 3.0.0rc2

commit 378a1a2762eda20ae15f4507c8a3bb80e024dd50
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue May 22 23:06:09 2012 +0000

    Tweak debian packaging
    
    Updating rules file to reference correct package. Updating deb package building
    task to invoke the cowbuilder command.

commit 1138e6579c658899ebc0b21839f6abe4228f09eb
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue May 22 15:54:28 2012 -0700

    Updating CHANGELOG for hiera-puppet 1.0.0rc1

commit 32067a7e0dc8814990e91e664136f9ad5640b691
Merge: 65e2b6b 5adc454
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Tue May 22 15:14:29 2012 -0700

    Merge pull request #29 from haus/add_deb_rpm_packaging
    
    Add deb rpm packaging

commit 5adc454bb0c3b2716d8801d2e5a65e9f9675f23f
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue May 22 11:49:27 2012 -0700

    Add package task to tasks
    
    This commit adds a package task to the tasks directory of hiera-puppet. It
    includes tasks to build rpm, srpm, deb, and tar. It also updates the apple
    package task to reference the ext dir instead of the conf dir.

commit 040c096e0b71189834c79f4b0cdad93bb796d358
Merge: d3277bf 0cea47e
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue May 22 13:58:00 2012 -0700

    Merge pull request #807 from cprice-puppet/bug/master/14609-cant-run-under-passenger
    
    Bug/master/14609 cant run under passenger

commit 0788ea2d3630dc158b121ef44b8cef05d3906a53
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Tue May 22 22:38:35 2012 +0200

    (#14615) Exclude helperscripts in gentoo service provider
    
    The directory `/etc/init.d` does not only store normal initscripts but
    also a few helper scripts (like `functions.sh`). The former behaviour was
    to treat them as regular initscripts which can lead to dangerous results
    especially when running `puppet resource service`. This command will
    issue `/etc/init.d/<script> status` on every script inside
    `/etc/init.d`. Because the helperscripts don't care about arguments,
    this will cause the system to reboot when `/etc/init.d/reboot.sh status` is
    executed.
    
    Exclude helperscripts when searching inside `/etc/init.d`.

commit 0cea47ec90e77e81c27ffbedbd46bb5357a45d66
Author: cprice <chris@puppetlabs.com>
Date:   Tue May 22 12:42:49 2012 -0700

    (#14609) Fix master initialization when running under Passenger
    
    There is some initialization that happens in CommandLine.rb
    (such as parsing the puppet config file) which was being
    bypassed when launching puppetmaster as a Rack/Passenger app.
    
    This commit tweaks the rack config to call into CommandLine
    directly, which is unfortunate but works for now.

commit 470c5c8cc576ec6a681f404c089c29f34714c194
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue May 22 11:48:43 2012 -0700

    Add Redhat packaging to hiera-puppet
    
    This commit adds an erb template for a spec file to build rpms of hiera-puppet.

commit 4101d024e853cf455bac0599f19b0359145e38a6
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue May 22 11:46:43 2012 -0700

    Add debian packaging for hiera-puppet
    
    This commit adds an erb template and other debian packaging files for building
    debian packages of hiera-puppet.

commit 64b7375d6825996368c6af8cc40404b53cb8b2cd
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue May 22 11:54:21 2012 -0700

    Move conf to ext directory
    
    Because the conf directory does not hold configuration information and in fact
    holds packaging information, this commit moves the conf directory to the ext
    directory, where packaging files make sense.

commit d3277bfae3f90ce8ab9dcbacbde1c7e25a2fc360
Merge: d4eb3de b6c5e9d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue May 22 10:00:06 2012 -0700

    Merge pull request #803 from kelseyhightower/ticket/3.0rc/14514_use_default_config_when_hiera.yaml_is_missing
    
    Ticket/3.0rc/14514 use default config when hiera.yaml is missing

commit b6c5e9daf33b30a93f978f3e1bb68d789c4c1aab
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue May 22 09:35:27 2012 -0400

    (#14514) Check for the presence of hiera config
    
    Puppet initializes Hiera using a configuration Hash instead of a
    configuration file. Puppet now checks for the existence of the hiera
    configuration file and uses an empty configuration and logs a warning
    if missing.
    
    We also ensure Hiera uses the Puppet logger by overriding the
    configuration hash to set the logger explicitly.
    
    This patch includes updated specs.

commit 65e2b6b3cb903ad261943c075fb4b9a39c6855b7
Merge: 68aa022 cb721c5
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon May 21 12:47:48 2012 -0700

    Merge pull request #28 from haus/add_mac_packaging
    
    Add mac packaging to hiera-puppet

commit 305d7cf211758e68d3ff6fb72d12c56e75828ac0
Merge: 3c7c90d 1a0729b
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Mon May 21 09:44:58 2012 -0700

    Merge pull request #799 from zaphod42/maint/master/enable-test-for-node-and-enc-on-windows
    
    Re-enable this test to work on windows

commit b572810ed20734eca88358ebdc757674a9af3c00
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon May 21 00:12:09 2012 +0200

    (#14599) Handle ENOTDIR in file type
    
    If a file resource is used with a path where a component of path is not
    a directory, the stat systemcall can raise the error Errno::ENOTDIR
    which was not handled by the file type.
    
    This can lead to the following error (if e.g /tmp/xx is a normal file)
    
        err: /Stage[main]//File[/tmp/xx/yy/zz/1]: Could not evaluate: Not a
        directory - /tmp/xx/yy/zz/1
    
    Catch the error and return nil in the stat method like we do for absent
    files or file where we do not have the permission to stat.
    
    Puppet will still raise errors when trying to create such a file of
    course like
    
        err: /Stage[main]//File[/etc/fstab/foo]/ensure: change from absent to
        file failed: Could not set 'file on ensure: Not a directory -
        /etc/fstab/foo at line
    
    But something like
    
        puppet apply -ve 'file { "/etc/fstab/foo": ensure => absent}'
    
    will now work without errors because `/etc/fstab/foo` is indeed absent.

commit 2e225f46ee6d54f2dc584a8c357eb17a5d08602a
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri May 18 15:59:57 2012 -0700

    Refactor acceptance tests to use util library
    
    This commit adds utility methods to "temp_file_utils.rb"
    and refactors all the tests that were duplicating these
    utility methods to use this library code instead.

commit cb721c5c7847b7ab0d974170c9c9bf74a474aeb7
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri May 18 15:41:38 2012 -0700

    Add mac packaging to hiera-puppet
    
    This commit adds packaging to build a dmg out of the lib, bin and docs of
    hiera-puppet. It includes a rake task to do the build, and two templates to
    generate pkg-info and preflight files for the package during build.

commit 68aa0222f05979a7bdcffe0c0896fba4e2258a14
Merge: aaa1e9e a042de4
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri May 18 13:31:19 2012 -0700

    Merge pull request #27 from kelseyhightower/ticket/master/14461_remove_puppet_parser_functions
    
    Revert "(#14461) Remove Puppet parser functions"

commit a042de4481fe11f555e08f5a78cfa80a241dfa2c
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Fri May 18 16:20:02 2012 -0400

    Revert "(#14461) Remove Puppet parser functions"
    
    This reverts commit 48bfccb45e8234fb6d20929b8259ee8dfccb5298.

commit 16ac6546743991ea1ea79696ce03259b0abecd44
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri May 18 10:19:29 2012 -0700

    initial prototype for acceptance test libraries
    
    * Adds a "helper.rb", which you can use by adding "--helper" to your
      call to systest.rb.  Current implementation doesn't do anything
      except for add puppet/acceptance/lib to your LOAD_PATH, which
      gives you the ability to do "require 'puppet/acceptance/*'" from
      within your tests.
    * Adds acceptance/lib/puppet/acceptance/temp_file_utils.rb, which
      contains a bunch of utility methods for dealing with temp files,
      file permissions, etc. from within your acceptance tests.
    * Modifies "7316_apps_should_be_available_via_pluginsync.rb" to
      use this new library instead of manually defining all of the
      utility methods.

commit d4eb3dec2261e31f6da13a8079acbb5d829000f9
Merge: bd2e430 ca5271f
Author: Dominic  Maraglia <dmaraglia@gmail.com>
Date:   Fri May 18 09:58:17 2012 -0700

    Merge pull request #801 from kelseyhightower/maint/3.0rc/add_databinding_acceptance_tests
    
    (maint) Add data binding Hiera tests

commit ca5271f4dfcfb07f93bb9b33d3613fa45452d76f
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Fri May 18 12:53:36 2012 -0400

    (maint) Add data binding Hiera tests
    
    This patch adds tests for Puppet's support for looking up class parameter
    values from Hiera via the data binding indirection.

commit 1a0729be536477ad813bc32ad56000fc9164da7e
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu May 17 16:59:15 2012 -0700

    Re-enable this test to work on windows
    
    The reason the test wasn't working and why it was changed to not execute
    was that the test environment was mis-configured (the hostname of the
    windows agent was different from what the puppet master knew as that
    machine's name).

commit bf901d0844ca3f72ee937283b83d5ad8a83e5cf8
Author: Joachim de Groot <jdegroot@web.de>
Date:   Thu May 17 00:34:53 2012 +0200

    Add support for DragonFly BSD.
    
    As DragonFly is an offspring of FreeBSD, most of the assumptions for
    FreeBSD are valid for DragonFly BSD. The only notable exception is
    package management, which is performed using pkgin.
    
    While implementing, a missing function in the FreeBSD service
    provider has been noted.

commit bd2e430a31f462aa8a92d930e2b512f120c29c6a
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Thu May 17 14:22:19 2012 -0700

    Updating CHANGELOG, conf/redhat/puppet.spec, conf/redhat/rundir-perms.patch, and man pages for 3.0.0rc1 release.

commit 3c7c90dcc8abea0633ce2b0056f464044fd25f37
Merge: 8eb634e 4a60c2b
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu May 17 14:16:14 2012 -0700

    Merge remote-tracking branch 'cprice-puppet/bug/master/14440-rake-manpages'
    
    * cprice-puppet/bug/master/14440-rake-manpages:
      (#14440) Update outdated reference to puppetdoc
      (#14440) Fix rake manpage generation in master

commit 4a60c2b279e53092d2f6dd5243211ce41acbe4b0
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu May 17 14:13:51 2012 -0700

    (#14440) Update outdated reference to puppetdoc
    
    The old 'puppetdoc' "binary" no longer exists;
    we should be calling 'puppet doc' instead.

commit 638a6e433c22758cbb29e544ee1f0d9833ca33ba
Merge: 48ccf46 cfeb013
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed May 16 17:14:30 2012 -0700

    Merge branch '2.7rc' into 2.7.x

commit cfeb0138b980ecf30ad285a257230d4e58cce931
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed May 16 16:53:21 2012 -0700

    Update CHANGELOG puppet.spec for 2.7.15rc2

commit 2fc7191cf2f0b3e0dbcbda1b2eddacead4f2a66e
Author: Franz Pletz <fpletz@fnordicwalking.de>
Date:   Sat Jan 21 20:49:28 2012 +0100

    (#9160) Change logging facility to debug for not supported provider features

commit 8eb634ee8548ff5bccb87719a3b6db5b1a29b103
Merge: c5de200 450e893
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed May 16 15:09:30 2012 -0700

    Merge pull request #797 from cprice-puppet/cleanup/master/windows-acceptance-failures-20120516
    
    Another (hopefully final) attempt to resolve the source_attribute test failure

commit 450e893bdc9d0deafd15d84183bd18c8fa3fd8e2
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed May 16 14:57:43 2012 -0700

    Another (hopefully final) attempt to resolve the source_attribute test
    failure

commit c5de20011b5050fff9d07a586bad6614962be70d
Merge: c6922b8 48ccf46
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed May 16 14:41:45 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x'
    
    * upstream/2.7.x:
      Apply commit from master that varies ports during tests
      (#8174) Allow defines to reference topscope
      Evaluate node classes either in top or node scope
      Removed topscope being overridden by node
      Update CHANGELOG lib/puppet.rb puppet.spec for 2.7.15rc1
    
    Conflicts:
    	acceptance/tests/language/node_overrides_topscope_when_using_enc.rb
    	lib/puppet.rb
    	spec/integration/network/server/mongrel_spec.rb
    	spec/unit/parser/scope_spec.rb

commit 48ccf46244e5ab3cda3f3e5e0b100d77883af582
Merge: 97962ec 025ddfb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed May 16 14:25:12 2012 -0700

    Merge remote-tracking branch 'origin/2.7rc' into 2.7.x

commit 025ddfbee306ffa750891621d49dff064a79a558
Merge: a731e15 c6e006e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed May 16 14:24:30 2012 -0700

    Merge pull request #795 from zaphod42/bug/2.7.x/8174-incorrect-warning-about-deprecated-scoping
    
    Bug/2.7.x/8174 incorrect warning about deprecated scoping

commit c6922b897e6010364c4ca77745d8c34ee358ae66
Merge: 165c1db 8e2ddf6
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed May 16 14:23:35 2012 -0700

    Merge pull request #796 from cprice-puppet/cleanup/master/windows-acceptance-failures-20120516
    
    Another windows acceptance failure fix

commit 8e2ddf6b21bf622041d5c7d58d4f9f2f32629a3b
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed May 16 14:22:34 2012 -0700

    Another windows acceptance failure fix

commit 165c1dbcc0af09e0294e7f3a47b09d87f198c4f9
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed May 16 14:16:19 2012 -0700

    Restart master for each agent in ENC test to get around caching

commit 28890647d877e315b42d537f59fca6bfcd437dc2
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed May 16 13:57:44 2012 -0700

    Add debugging in environment acceptance test

commit 478d77f9f6649e52148c6f105feb569aa22ac908
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed May 16 13:37:28 2012 -0700

    (#14440) Fix rake manpage generation in master
    
    This commit does some hacky initialization things
    which, in an ideal world, would be handled
    by our API rather than spilling out to the calling
    code.  However, for now, these initialization calls
    are necessary in order to get rake manpage generation
    working.

commit 97962ec22daf7680d6738e458629d64de08c5f89
Merge: a731e15 be6062c
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed May 16 13:14:57 2012 -0700

    Merge pull request #792 from cprice-puppet/cleanup/2.7.x/vary-webrick-port
    
    Apply commit from master that varies ports during tests

commit be6062cf285ed21617f9dfe6b00c560b3e5eae8b
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed May 16 13:11:25 2012 -0700

    Apply commit from master that varies ports during tests
    
    This is basically a cherry-pick of
    
    ceee8a185250bb6b5f52e56c7ed9457408b6cb0a
    
    from master, which should provide enough variance in
    the ports used for webrick/mongrel spec tests to
    reduce or eliminate the transient "address already
    in use" failures

commit c6e006edc54bf6e022e2207ed2d000c70350a179
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed May 16 11:34:24 2012 -0700

    (#8174) Allow defines to reference topscope
    
    Because the compiler re-assigned the topscope, looking up topscope vars
    or facts from a defined resource type was causing deprecation warnings
    when it should not be. By cherry-picking commits
    b02aa930a03a282588e81f65e14f47a138a4b9f0 and
    c995be16bc9e3ad8dbad9d21b49df76de5b72ea9 the topscope is no longer
    re-assigned and so defined resource types can now lookup these kinds of
    variables without problem.

commit e27adf451b1a71d8481219f4d2c2e55b8e25f051
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Apr 18 15:14:36 2012 -0700

    Evaluate node classes either in top or node scope
    
    Classes that are tied to a node should be preferred to be evaluated in
    the node scope, but if we don't have one then they should be in the top
    scope

commit a3d51b280eb519835892bf9a6932f0e6c881d9e1
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Apr 17 18:14:57 2012 -0700

    Removed topscope being overridden by node
    
    This seems to have been an unsuccessful attempt at merging top and node
    scope.

commit bcdd35c07327d8eb7f22c6779fe1b2e2319d2a41
Merge: 1d48c5b 25a1063
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed May 16 12:44:46 2012 -0700

    Merge pull request #790 from pcarlisle/maint/master/fail-is-bad
    
    Remove duplicated buggy fail definition

commit 1d48c5b662d1237f4b7118883e4eee91a6dbbece
Merge: 82e9669 ea7d7c0
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed May 16 12:10:32 2012 -0700

    Merge pull request #791 from cprice-puppet/cleanup/master/windows-acceptance-failures-20120516
    
    added another trace for debugging acceptance tests

commit ea7d7c0b61363148c30aa61a0e46a40a7fa0f91d
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed May 16 12:09:18 2012 -0700

    added another trace for debugging acceptance tests

commit 25a10630d493bed86ce909cf06118e5bdb4ab80d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed May 16 11:20:09 2012 -0700

    Remove duplicated buggy fail definition

commit 82e96698504863b17ad7ddb4e2dd8f5e9065056d
Merge: 22f4fd9 3bec6c4
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed May 16 11:02:55 2012 -0700

    Merge pull request #789 from cprice-puppet/cleanup/master/windows-acceptance-failures-20120516
    
    Add "trace" for a couple of failing tests

commit 3bec6c4ecbb07e42ed1af702dd2b54d72b3fa399
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed May 16 11:02:24 2012 -0700

    Add "trace" for a couple of failing tests
    
    We have been unable to reproduce these tests locally, so
    a trace would be very helpful.

commit 22f4fd9c1dc6ef082302fd089c16d6ee3cbe7e28
Merge: 2cd33ea aa96e9f
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed May 16 10:32:28 2012 -0700

    Merge pull request #788 from cprice-puppet/cleanup/master/windows-acceptance-failures-20120516
    
    Fix more windows acceptance failures

commit aa96e9fa23c1e8e4229641fd07af613d5dfe4894
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed May 16 10:30:55 2012 -0700

    Fix more windows acceptance failures

commit 2cd33ea783628d30e53ca3e53d85533a8388c20e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 15 16:12:22 2012 -0700

    Bump Puppet version to 3.0.0 for the Telly release.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a731e15cff5e1d028b047a4ad8c40bd7ebc43301
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue May 15 15:53:01 2012 -0700

    Update CHANGELOG lib/puppet.rb puppet.spec for 2.7.15rc1

commit 2864d86c6f3a7463781e5a60f3d453a126b61f2b
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue May 15 15:47:43 2012 -0700

    (maint) Change Facter dep from exit to raise
    
    Rather than hard exiting from anything that happens to include Puppet
    with an incorrect version of Facter, we'll instead raise a
    Puppet::Error.

commit 2ec9b74df24d6764fa8bd3c8287efd6c7a4eaae6
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue May 15 15:26:30 2012 -0700

    (maint) Make Puppet have hard dependency on Facter 2.0
    
    Puppet 3.0 requires Facter 2.0. Make the dependency hard and have Puppet
    fail with a useful error message if Facter doesn't exist or is the wrong
    version.

commit 059d4a309ab41347445ca8f32bf8cdb4d19c10ea
Merge: 9ef304b a23dd61
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue May 15 15:24:01 2012 -0700

    Merge pull request #786 from cprice-puppet/cleanup/master/windows-acceptance-failures-20120515
    
    More windows acceptance failure fixes

commit a23dd614ce54347dd5b3a619d3f87b8de81e66c6
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue May 15 15:13:15 2012 -0700

    More windows acceptance failure fixes

commit 6c37538f37701addea75081611b162190e43d26a
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Tue May 15 14:51:07 2012 -0700

    (#3909) Move default certname logic to Puppet::Settings
    
    Move certname logic out of defaults.rb so that the logic can be
    tested because it's nearly impossible to test when that logic is
    executed at readtime for defaults.rb.

commit 9ef304b88fe5968af74d51b8ea5b5a5efb663f7a
Merge: ddd6801 83a7b80
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue May 15 14:36:39 2012 -0700

    Merge pull request #775 from pcarlisle/maint/master/network-device-node_terminus
    
    Set node_terminus in device application

commit 6be09f067441d21a67e7cf8d669484aa2a756570
Author: Hailee Kenney <hailee@puppetlabs.com>
Date:   Wed May 9 16:49:21 2012 -0700

    (#3909) Strip trailing dot from default FQDN
    
    In Facter pull request 200 the default domian can no longer end
    with a trailing '.'. This modifies Puppet's defaults to mirror
    that change.

commit ddd680179a034f580d6d5fb6258785201818696f
Merge: 0b76ba3 1a2a5d0
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 15 12:19:34 2012 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      Use internal domain name for module tool tests

commit 1a2a5d08e5754ebaa9954284cfe0922007c1725b
Merge: 852a1a8 53e0057
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue May 15 12:18:50 2012 -0700

    Merge pull request #784 from cprice-puppet/cleanup/2.7.x/module-dns-acceptance-failures
    
    Use internal domain name for module tool tests

commit 0b76ba3125e53484083d31fd0e18e3abf4c9e395
Merge: 136507e ac1b9d5
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue May 15 12:16:11 2012 -0700

    Merge pull request #782 from daniel-pittman/bug/master/3669-disable-srv-by-default
    
    (#3669) Disable SRV record use by default.

commit 136507e24d8ff06ef4336e4383446ddfe3f2ef2f
Merge: 54da295 639682c
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue May 15 12:15:03 2012 -0700

    Merge pull request #783 from cprice-puppet/cleanup/master/windows-acceptance-failures-20120515
    
    Fixes for acceptance failures

commit 53e0057f29873f17cbe8afbeeeb76454158f11ad
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue May 15 12:13:52 2012 -0700

    Use internal domain name for module tool tests
    
    Some tests were intermittently failing when we used the hostname
    "forge-dev.puppetlabs.com" rather than "forge-dev.puppetlabs.lan",
    because it was resolving to the external IP address and somehow
    that was being blocked by the firewall under certain circumstances.
    
    This changes them to all use the internal name / IP.

commit 639682cce9f13aefb0276599676f73cdf42878e1
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue May 15 12:11:05 2012 -0700

    Fix some windows acceptance failures

commit ac1b9d55a95f27a54ff924081d68687792dbd194
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 15 11:59:42 2012 -0700

    (#3669) Disable SRV record use by default.
    
    This is a nice feature to have, but it is not widely used.  It also triggers
    some odd bugs in some common (embedded device) DNS recursive resolvers, which
    simply ignore the question and lead to a long timeout waiting for the response
    to come back.
    
    Rather than ship this opt-out, it is safer to ship opt-in, and to allow people
    to turn on the facility when they have configured it on their network.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 54da295f637ef75bcbc864b6740d6ae79c0901c1
Merge: 00e5421 e9e1a21
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue May 15 10:50:43 2012 -0700

    Merge pull request #781 from cprice-puppet/cleanup/master/windows-module-tool-spec-failures
    
    Fix failing spec tests for module tool

commit e9e1a21d0f9a6efdf0b283371e40b018fd1380c4
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue May 15 10:39:43 2012 -0700

    Fix failing spec tests for module tool

commit 00e542109ed3103639607ba94aef09e773ea373d
Merge: 70a43c2 852a1a8
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 15 10:38:49 2012 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      Use absolute_path in module install spec
      (Maint) Color console output when the win32console gem is installed

commit 852a1a8e8480f8d5ccfa1b20a5e92e4f8e334adc
Merge: dfce6d3 ead9d25
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue May 15 10:38:28 2012 -0700

    Merge pull request #776 from joshcooper/maint/2.7.x/fix-broken-console-color
    
    (Maint) Color console output when the win32console gem is installed

commit 70a43c2afe319bc79430f8316cedd16d7cf07dbd
Merge: bd97d33 b670c6c
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue May 15 10:37:00 2012 -0700

    Merge pull request #780 from pcarlisle/maint/master/use-externalfileerror
    
    Use ExternalFileError when a file name and line are needed

commit bd97d33f901450158ef7b61bf5492d96285ee52d
Merge: a98969c 5b17fba
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue May 15 09:56:30 2012 -0700

    Merge pull request #778 from kelseyhightower/master
    
    (maint) Manually resolve broken merge of 2.7.x

commit b670c6c610d8498b5c683126e6fa752adf55e343
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon May 14 16:58:53 2012 -0700

    Use ExternalFileError when a file name and line are needed
    
    Several places were trying to set line or file attributes on instances of
    Puppet::Error. This changes those to use exception classes that include
    ExternalFileError.

commit a98969c1374b80408bce308dc7154e17a723df6c
Merge: 926cdf0 2352558
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon May 14 15:56:21 2012 -0700

    Merge pull request #771 from zaphod42/bug/master/14387-user-agent-for-module-tool
    
    Fix User-Agent for ruby 1.8.5

commit 5b17fbac885aab178fcf9e98d5eb76bad09fbde9
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon May 14 18:38:47 2012 -0400

    (maint) Manually resolve broken merge of 2.7.x
    
    This patch resolves a merge conflict with 2.7.x, mainly around some
    changes in the PMT installer face options.

commit dfce6d3c44650b542b43e7499ef63cd768531166
Merge: ab8cd8b f4ba59e
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon May 14 15:26:00 2012 -0700

    Merge pull request #777 from pcarlisle/maint/2.7.x/fix_module_install_specs
    
    Use absolute_path in module install spec

commit f4ba59eb1c444e59a244c79e47983df7adeef710
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon May 14 15:19:30 2012 -0700

    Use absolute_path in module install spec
    
    This fixes the module install spec on windows

commit 2352558ff26100d86d43c219057b980f2b1f46b8
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon May 14 11:34:53 2012 -0700

    Fix User-Agent for ruby 1.8.5
    
    The RUBY_PATCHLEVEL constant is not available on ruby 1.8.5. To fix this
    the pathlevel section will default to nothing if the RUBY_PATCHLEVEL is not
    available.

commit 926cdf050f7aa997e96904a649e69d9c1d5f777d
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon May 14 16:50:25 2012 -0400

    Revert "Merge branch '2.7.x'"
    
    This reverts commit 34ad902015afbd3f8d7597207a1cb4d5cd4cc011, reversing
    changes made to 639f995c91289b3be9ca5347865247907c7dcb5c.

commit aaa1e9e1d8cb3b1de3fa35d98534db3b1a089cf6
Merge: 59b8bf6 48bfccb
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon May 14 13:33:09 2012 -0700

    Merge pull request #26 from kelseyhightower/ticket/master/14461_remove_puppet_parser_functions
    
    (#14461) Remove Puppet parser functions

commit 83a7b803322f2b3ab824f5fbf7152c5de8d553ae
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon May 14 13:32:15 2012 -0700

    Set node_terminus in device application
    
    This was set in the agent application so that an ENC can be properly used, but
    not in device. I also refactored these settings slightly to use the new
    app_defaults method.

commit ead9d254da57f43b18ac7e261eb9a95f4a9399cf
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon May 14 13:05:24 2012 -0700

    (Maint) Color console output when the win32console gem is installed
    
    Originally, we were using a feature to detect whether the platform
    supports ANSI color escape sequences. The feature used to invoke
    `Puppet.features.rubygems?`, which had the side-effect of loading
    rubygems, if it hadn't already been loaded.
    
    However, the ansicolor feature could cause infinite recursive loops when
    trying to log that it failed to load the ansicolor feature. So the code
    for loading the win32console gem was moved into Puppet::Util::Colors in
    commit 91a4a7d.
    
    However, in doing so, rubygems was not being loaded when attempting to
    `require 'win32console'`, causing Windows to always raise a LoadError,
    even when the win32console gem was installed.
    
    This commit adds an explicit call to require rubygems and now correctly
    colors console output when the win32console gem is installed.

commit 34ad902015afbd3f8d7597207a1cb4d5cd4cc011
Merge: 639f995 ab8cd8b
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon May 14 16:09:14 2012 -0400

    Merge branch '2.7.x'

commit ab8cd8be002ea0e8dd72bdb8f0ef740e5546a6b1
Merge: 23f4b5d a76d873
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon May 14 11:44:20 2012 -0700

    Merge pull request #756 from kelseyhightower/ticket/2.7.x/14424_expand_path_of_target_directory
    
    (#14424) Expand path of the target directory

commit 48bfccb45e8234fb6d20929b8259ee8dfccb5298
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon May 14 09:34:40 2012 -0400

    (#14461) Remove Puppet parser functions
    
    The next release of Hiera will ship with the Puppet parser functions:
    hiera, hiera_hash, hiera_array, and hiera_include. To prevent conflicts
    the Puppet parser functions are being removed from the hiera-puppet gem.
    
    We only provide a puppet hiera backend as described in the README.

commit a76d873767cf4d5d3f295eb6a91f5ec168d66ae5
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon May 14 08:55:19 2012 -0400

    (#14424) Expand path of the target directory
    
    This patch expands the path of the target installation directory and
    will prevent the following errors:
    
        Error: undefined method `each' for nil:NilClass

commit 639f995c91289b3be9ca5347865247907c7dcb5c
Merge: f8e4b98 c6ee783
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri May 11 22:21:16 2012 -0700

    Merge branch 'maint/master/fix-printing-version' by pcarlisle
    
    This fixes up my previous change to handle the `--version` option better, by
    allowing applications to override it when required.
    
    This, sadly, also revealed that my `have_printed` rspec matcher was a bit
    buggy at the edges - so includes my rewrite to have that be more robust.

commit c6ee78351f427ee4319bfb4e33d71b9922e24721
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri May 11 22:08:35 2012 -0700

    Rewrite `have_printed` matcher to be more robust.
    
    The DSL for matchers doesn't actually work terribly well with the
    `have_printed` matcher - rewrite it to a class to be a little smoother.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e169ae40a8cdad1c5fb260622714511632d01fcd
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri May 11 15:36:03 2012 -0700

    Interpret global version option only if no subcommand
    
    Some subcommands use --version for other purposes (particularly module), so
    only interpret the --version or -V flag when no subcommand is specified. This
    isn't the best solution, but it's good enough right now.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 23f4b5ddf2e85305bee62f240ed34f1637a86865
Merge: 61ba8ce da5361d
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri May 11 16:19:07 2012 -0700

    Merge pull request #765 from nfagerlund/maint/2.7.x/no-private-forges
    
    Maint/2.7.x/no private forges

commit f8e4b98c3e720afa292582413a4c2aad4a0a8faa
Merge: fc452f1 61ba8ce
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri May 11 16:18:02 2012 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      Fix unit test failure in fileserver due to modules
    
    Conflicts:
    	test/network/handler/fileserver.rb

commit fc452f16fe06ca34ff1788eb578013267096a7d4
Merge: cef16b6 a645639
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri May 11 16:16:30 2012 -0700

    Merge pull request #761 from cprice-puppet/bug/master/13559-two-console-output-styles-enter-one-style-leaves
    
    Bug/master/13559 two console output styles enter one style leaves

commit 61ba8ce2823ca7b4fc765cee38b4ddb48e19bfae
Merge: ea246b1 95b75e1
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Fri May 11 16:15:30 2012 -0700

    Merge pull request #768 from nicklewis/fix-fileserver-test-failure
    
    Fix unit test failure in fileserver due to modules

commit cef16b638905f449b64dac949bf5521755d6b064
Merge: 9fbb36d 8c1b5fd
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri May 11 16:11:22 2012 -0700

    Merge pull request #762 from zaphod42/bug/master/14387-user-agent-for-module-tool
    
    (#14387) user agent for module tool

commit 95b75e120dc4b5acb98ee8af3e58f93389897690
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri May 11 16:07:10 2012 -0700

    Fix unit test failure in fileserver due to modules
    
    This test is setting modulepath, and then testing that it can find
    modules from the modulepath. However, the recent change to module find
    causing it to read from the cached list of modules requires the cache be
    cleared after changing the modulepath in order for the modules to be
    found.
    
    Also, the structure of the test changed a bit because we have to put the
    modules on disk, THEN refresh the cache, THEN we can find them, rather
    than putting them on disk and immediately finding them.

commit a645639815e49e7aa7468217c869718bc24424f1
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri May 11 12:23:28 2012 -0700

    (#13559) added resource context to log messages when available

commit 537343dac7045d126b1e5af2504aec1c208ea59f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 19 16:10:52 2012 -0700

    (#13559) Promote new console output prototype to official.
    
    This makes the prototype new console the official, default, system-wide
    console in Puppet.  This has some small, visible effects on error reporting
    across the board, but more importantly sets the stage for broader changes to
    improve user experience on the command line in future.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a020b902ec5488d31bb9f23a9cc70c2a2f853eb3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 8 12:09:42 2012 -0700

    Fix acceptance test assumption about exec logging.
    
    The acceptance test for overriding the agent name fact was broken, in that it
    assumed that `exec { "echo foo": }` would always write `foo` to the output
    channel.
    
    This isn't true - on success, that output was simply hidden.  By requesting
    that output be logged we can ensure that message will show up and fix the
    problem.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9fbb36deb69e5e105c94c8102d4b6b7e86de36b0
Merge: 2e9f6b7 ea246b1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri May 11 16:02:06 2012 -0700

    Merge branch '2.7.x'

commit ea246b12942fa3420b894b7c3350169237f280f5
Merge: 511df24 dae5539
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Fri May 11 16:01:35 2012 -0700

    Merge pull request #763 from cprice-puppet/bug/2.7.x/help-faces-as-api
    
    Bug/2.7.x/14440-rake-manpages

commit 2e9f6b7a8c60384cb3a3cd09796d0286b6d0f6e8
Merge: 6ff8ed1 8fa55cf
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri May 11 15:38:45 2012 -0700

    Merge pull request #754 from cprice-puppet/bug/master/14200-face-class-names
    
    Bug/master/14200 face class names

commit 511df24c9a412398325d421d3ad874a6262767a2
Merge: 473a41f a7a532c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri May 11 14:59:25 2012 -0700

    Merge pull request #753 from nicklewis/type-loader-performance
    
    Significantly improve compilation performance when using modules

commit 6ff8ed1fdf28d93cabe0fca4ce018eb48e7e4437
Merge: f6a06f4 ae3859c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri May 11 14:55:31 2012 -0700

    Merge pull request #750 from pcarlisle/maint/master/base-setting-refactor
    
    base setting refactor

commit f6a06f4c9627d84623fbefc01e2604ea3f11f599
Merge: 55a6346 3bec1a0
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri May 11 14:49:24 2012 -0700

    Merge pull request #748 from pcarlisle/maint/master/rubygems-i-hate-you
    
    Move rubygems require to executable entry points to Puppet

commit 473a41fd34cd6f9297d608cf81099a167baeebe4
Merge: 3b144bf 0efb4c2
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri May 11 14:48:22 2012 -0700

    Merge pull request #738 from nanliu/ticket/2.7.x/14296
    
    (#14296) Improve template function error message.

commit 3bec1a06aa023fd70039462e5ab3d009498e1cbc
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed May 9 11:46:13 2012 -0700

    Move rubygems require to executable entry points to Puppet
    
    We were trying to load rubygems in lib/puppet.rb so that we could load other
    libraries installed as gems, but this isn't anywhere near the first file
    loaded. By moving this into bin/puppet and other executable entry points, we
    ensure that rubygems is loaded as early as possible.

commit 55a6346182e212ec41996670ed3c91ec126fe523
Merge: 9695fd9 d74f220
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri May 11 14:43:57 2012 -0700

    Merge pull request #688 from ustuehler/master
    
    Better warning about metaparameter redefinitions

commit da5361dc3d96a1251d3c6021a839e416127e5f98
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri May 11 14:26:41 2012 -0700

    Maint: De-genericize Puppet Forge references in module face
    
    The module tool supports a private Forge right now, but only if you have THE
    Forge -- the APIs are not public yet, and are still subject to change as we
    build out new features. This commit changes the help text so that it doesn't
    imply private repos to be an immediately viable thing.

commit ae3859c4a67058f93cef51e64d6949b406e7979a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed May 2 11:07:02 2012 -0700

    Move settings out of util

commit e80cdf06ed928963e51408ebeb72912e084566a6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Apr 27 15:53:53 2012 -0700

    Create an exception hierarchy for settings
    
    This moves all settings exceptions into Puppet::Util::Settings and adds
    ValidationError and InterpolationError.

commit 4d62ec70e127f2d92e8b0778405e2ec3be730db6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Apr 27 15:50:52 2012 -0700

    Split out the basic setting behaviors into BaseSetting

commit 9695fd9d6bfcf9a6393f31a8b2173100433615bc
Merge: 98481c8 1357b78
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri May 11 14:16:46 2012 -0700

    Merge remote-tracking branch 'daniel-pittman/bug/master/14322-puppet---version-doesn't-work' into bug/master/14322-puppet---version-doesn't-work
    
    * daniel-pittman/bug/master/14322-puppet---version-doesn't-work:
      (#14322) Make `--version` or `-V` options work globally.
      Whitespace and logic cleanups for command line tests.
    
    Conflicts:
    	spec/unit/util/command_line_spec.rb

commit 8c1b5fd79ed9f8770766b9e6d681be98ac8981c0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri May 11 13:30:29 2012 -0700

    (#14387) Puppet's Module face should send a User-Agent
    
    The User-Agent will provide the server with some information
    about the version of the module tool, the version of puppet, and the
    version of ruby that is being used.
    
    This commit also ensures that Puppet::Forge does not depend on the
    Puppet::Face code. In order to achieve that the module face now is
    responsible for creating the correct Puppet::Forge object and handing
    that to the various components of the face for execution.
    
    The Puppet::Face now provides an interface for interacting with the
    repository in ways that various users were doing by asking for the
    repository directly.

commit 3b144bf7a093510436e215f92a47ab35c2236645
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri May 11 13:47:16 2012 -0700

    Revert "maint: use relative paths to fixtures."
    
    This reverts commit 7ce9e17cf1077604accc1a5cfe90ad7b1bb99a55.
    The change to using Pathname in fixtures is not compatible with Windows.

commit dae5539a9c68363606a0c2014357a2b3ce5b59e4
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri May 11 13:42:12 2012 -0700

    (#14440) Hack to allow help faces to be used as API
    
    Because we have not done a good job of defining
    state initialization life cycle when we try to use
    puppet as API, we need to add a hack to the rake
    manpage task so that it can generate man pages
    for some faces that don't get properly initialized
    w/o the hack.

commit 4679455a5c1b6faac42418240421e934aaf825fb
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu May 10 10:54:25 2012 -0700

    Cleanup of the Forge code
    
    Removed some unreachable code that occured after an exception being
    thrown. Pushed the construction of the Net::HTTP::Get object into the
    repository so that it doesn't leak as much of its implementation out to
    its clients.
    
    Refactored the tests so that they include as many nested
    contexts and pulled out helper methods to make the tests be more
    explanatory.

commit 98481c8be4a0fea0141aeaa28eeb38a1fad302ca
Merge: 80c8f0a 86b15fc
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri May 11 12:53:45 2012 -0700

    Merge pull request #760 from pcarlisle/maint/master/remove-deprecated-standalone-commands
    
    remove deprecated standalone commands

commit 86b15fca04e76b3e8dbe179021f45f34627b1da6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu May 10 14:26:41 2012 -0700

    Remove references to legacy executables in the code

commit ca542691d692aaf04038433052aea551ffea9ab4
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu May 10 11:41:48 2012 -0700

    Remove manpages for legacy executables that are gone

commit 1357b78be3b1f3df7efe63350501271296ad5d87
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri May 11 11:29:15 2012 -0700

    (#14322) Make `--version` or `-V` options work globally.
    
    The `puppet --version` invocation was broken, and only `puppet $app`
    invocations of it worked.  This is undesirable - displaying the version is
    very much a global activity, and this reflects that by handling it specially
    in the command line parsing.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6bb4f31359cc7b89a312ced51122e98faea0f68f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri May 11 11:42:46 2012 -0700

    Whitespace and logic cleanups for command line tests.
    
    There are no functional changes, just cleanups, in this change.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4c6648ad4ba154abece8f45ee1e4518867e53820
Merge: 1e7c25f b26699a
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri May 11 11:56:56 2012 -0700

    Merge pull request #757 from daniel-pittman/bug/2.7.x/10146-don't-allow-dash-in-variables
    
    Bug/2.7.x/10146 don't allow dash in variables

commit 1e7c25fff878af208f500d9fa91008958fab2ba6
Merge: 7d3e098 e862cad
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri May 11 11:53:57 2012 -0700

    Merge pull request #758 from nfagerlund/maint/2.7.x/fix_man_pages
    
    Fix broken man page rake task

commit 7490954f226c057733e55f244b43c93170906988
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed May 9 14:21:14 2012 -0700

    Remove the standalone puppet executables in sbin
    
    These have all been deprecated for at least one major release.
    The commands are puppetca, puppetd, puppetmasterd, puppetqd, puppetrun.

commit 9385f7487a8ffa87a868426aeddc5ef424cafce5
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed May 9 13:32:31 2012 -0700

    Fix loading of constant_inflector
    
    This fixes an undefined module error when loading constant_inflector

commit 3111914816e4c3a02bf899048d73224085636d42
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed May 9 13:28:13 2012 -0700

    Remove deprecated standalone executables
    
    This removes the standalone filebucket, pi, puppetdoc, and ralsh commands.

commit e862cad62977ae465aa2af36dde2e742dcbc5f3b
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri May 11 11:48:11 2012 -0700

    Fix broken man page rake task
    
    The mass static man page generator was broken! Something changed in commit
    82e5fa9561e2d4cb1d699a41c14f50953d8f2d97 which broke the way we were passing
    render_as to the man action; while that bears further investigation, we were
    able to get the task working again by simply removing it, since the value we
    were passing to option turned out to be redundant when using the action from
    the API.
    
    We also found that I had unwisely called the argument of the save action for
    indirector faces "<object>", which Ronn confuses for an HTML tag of the same
    name and then barfs on. This commit fixes that, too.

commit 8fa55cfc15ceccfb71d6955208f854bb3fab4661
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu May 10 14:43:54 2012 -0700

    (#14200) Telly -> 2.7.x backward compatibility for app/face class names
    
    This is basically just a tweak of
    ce1e5555a847163e6448d1442a6d626957dac798, which was mostly
    some cleanup and fixes for the help face.  However, that commit
    also (intentionally) broke backward compatibility for application class
    names;
    
    In 2.7.x, underscores in file names for puppet applications are expected
    to translate to underscores in the class name.  So, e.g., the
    application defined in "resource_type.rb" is expected to have a class
    name of "Resource_type".
    
    However, that doesn't really match up with "standard" ruby or the
    expectations of ruby developers.  They expect for "resource_type.rb"
    to translate to "ResourceType".  The original commit introduced that,
    but did not provide backward compatibility support for the "_" class
    naming.
    
    This commit does everything that the original one did, but includes
    some hacks for backward compatibility with the underscore pattern.

commit b26699a2b89f3724b4322a3723d2c700fb7e4dd3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu May 10 10:26:28 2012 -0700

    (#10146) `-` is not legal in variable names.
    
    When a bunch of refactoring went on to clean up the grammer and lexer, the `-`
    character became a legal character in variable names.  This was not entirely
    desired - and contravenes our existing rules for naming.
    
    This adds testing for legal variable names, then applies that across the lexer
    to ensure that legal names pass, and illegal names fail.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7ce9e17cf1077604accc1a5cfe90ad7b1bb99a55
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu May 10 10:50:13 2012 -0700

    maint: use relative paths to fixtures.
    
    We used to return absolute paths to fixtures, rather than relative paths.
    
    This made the test output uglier than it needed to be; we may as well do the
    extra work to make them relative.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a7a532cb17b7bc60dac05e02b7db5531de7a4a8c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed May 9 23:02:50 2012 -0700

    Significantly improve compilation performance when using modules
    
    When autoloading classes/defines, the typeloader constructs a set of
    possible locations for the class, based on its name. Effectively, it
    will look in the canonical locations corresponding to each namespace in
    the fully-qualified name. So for each namespace, it will ask the
    environment for a Puppet::Module instance for that module, to ask it
    which of the module's potentially manifests match the class it's looking
    for. To answer that request, the environment instantiates a
    Puppet::Module.
    
    This amounts to potentially thousands of Puppet::Module instances being
    created, because it does this many times (based on nesting of the class
    name) per include/autoload/import. When Puppet::Module instances are
    created, they parse and load their metadata.json file, in part to
    validate their use. This implies that each compilation results in
    metadata.json being parsed thousands of times, which is extremely slow
    (and obviously provides no actual benefit).
    
    Fortunately, the environment object already keeps a list of
    Puppet::Module instances for every module in its modulepath. The fix
    applied here is simply to change the environment such that it provides
    modules by looking them up in its cached list, resulting in up to an
    order of magnitude improvement in compilation time.

commit 80c8f0a7b3a8b944388f506861c06efe6656020a
Merge: 5582168 55bb107
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed May 9 18:07:31 2012 -0700

    Merge pull request #752 from kelseyhightower/master
    
    (#14391) Fix inaccurate message from Hiera data lookups

commit 55bb107dae7ac9ff4c39b05ab302616a6b0ccabd
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Wed May 9 20:57:59 2012 -0400

    (#14391) Fix inaccurate message from Hiera data lookups
    
    When the Hiera gem is missing the error message now reads:
    
    "Hiera terminus not supported without hiera library"

commit 5582168fa5911a4761db0cd4f025d805cb2ff933
Merge: 134bb1f 698f5f8
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed May 9 14:16:05 2012 -0700

    Merge pull request #741 from pcarlisle/ticket/master/13341-nested-exceptions
    
    (#13341) nested exceptions

commit 134bb1fb46dca7a0100b59007accc8c4d196bf8d
Merge: 35f4113 9cd3536
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue May 8 17:25:21 2012 -0700

    Merge pull request #747 from cprice-puppet/cleanup/master/windows-tmpfile-acceptance-failures
    
    Fix windows acceptance failures (mostly related to tmpfile paths)

commit 9cd3536429d622cf9fbc93345e216419b0d1f598
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue May 8 17:07:54 2012 -0700

    Fix windows acceptance failures (mostly related to tmpfile paths)

commit 35f4113f7e428e81061ac139cc7b81c1c171d2f3
Merge: 96712ef 7d3e098
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 8 15:27:46 2012 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      Fix a stub of ansicolor that I missed

commit 96712efeb543928704fc9938e7429552d8ded039
Merge: c71690a 32e33ff
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue May 8 15:06:20 2012 -0700

    Merge pull request #746 from pcarlisle/ticket/master/13858-types-in-environments
    
    (#13858) Use current environment when loading types

commit 32e33ff68d5d97b715ba0f26d302089aec33b6d0
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Apr 24 11:25:26 2012 -0700

    (#13858) Use current environment when loading types
    
    When loading a type we should pass in the current environment. This will make
    the autoloader use the correct modulepath. Without this it will fail to find
    the type unless a local pluginsync has already occurred on the master.

commit 7d3e09801ced1dc31276c6338de7af35f58774de
Merge: 71b09e9 12c5bda
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue May 8 14:55:33 2012 -0700

    Merge pull request #745 from pcarlisle/maint/2.7.x/ansicolor_log_spec
    
    Fix a stub of ansicolor that I missed

commit 12c5bdafb4afb1bf669c2fe0501446123afe92a6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 8 14:54:01 2012 -0700

    Fix a stub of ansicolor that I missed

commit c71690a3777a78ee5f8f2dff3e5373bb99c31fbe
Merge: f0389e6 71b09e9
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 8 14:05:13 2012 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      Add Puppet::Util::Platform to abstract platform checks
      Don't use features to check for color in logging
      (#14288) gem provider should tolerate bad lines.
    
    Conflicts:
    	lib/puppet/provider/package/gem.rb
    	lib/puppet/util.rb

commit 71b09e928b12a30790bdbe33fc748e87cd1ba273
Merge: b245f58 ea740f6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue May 8 13:55:57 2012 -0700

    Merge pull request #744 from pcarlisle/maint/2.7.x/ansicolor-recursion
    
    fix ansicolor recursion

commit ea740f652fb5252569d4adaefd486aa9daf44b63
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 8 12:15:18 2012 -0700

    Add Puppet::Util::Platform to abstract platform checks
    
    This is different from the checks done in features, because sometimes we need
    to check the platform before features are initialized.

commit 91a4a7d683d779fbab93385d2e5e2c38a6806f62
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 8 10:26:33 2012 -0700

    Don't use features to check for color in logging
    
    The ansicolor feature was causing infinite recursion when it failed to load,
    because it's used in logging and features tried to log when it failed to load.
    Since logging should be usable at nearly any point in the system's life, it's
    best to not depend on features at all.

commit f0389e6921e118db4bee009d41c29dfc584a0100
Merge: c9386b5 07a3c7f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon May 7 15:55:00 2012 -0700

    Merge pull request #743 from kelseyhightower/ticket/master/14348_hiera_should_be_the_default_data_binding_terminus
    
    (#14348) Hiera is the default data binding terminus

commit 07a3c7fbdec0357e63f9bb7432fea8e773f6873c
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon May 7 18:27:29 2012 -0400

    (#14348) Hiera is the default data binding terminus
    
    This patch makes Hiera the default data binding terminus. Users have the
    option of "turning it off" by setting `data_binding_terminus` in
    puppet.conf to "none":
    
        # puppet.conf
        [main]
          data_binding_terminus = "none"
    
    This patch includes updated specs.

commit 59b8bf64abaa89472f8b0aa593e439f05258843a
Merge: fe1127e 632457e
Author: Deepak Giridharagopal <deepak@brownman.org>
Date:   Mon May 7 12:48:18 2012 -0700

    Merge pull request #11 from hunner/bug/master/rubygems_unnecessary
    
    Rubygems is not required to use hiera

commit b245f58e0e3f4672af95e063703c88c6c3b5306f
Merge: 80fe59d d5e0cdd
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Fri May 4 14:20:39 2012 -0700

    Merge pull request #735 from daniel-pittman/bug/2.7.x/14288-gem-provider-fails-on-bad-input
    
    Bug/2.7.x/14288 gem provider fails on bad input

commit 698f5f8497d5b1beccb2b86bce69a3b2b96b0380
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed May 2 15:02:39 2012 -0700

    (#13341) Log nested exceptions

commit ac83f85ee0f4d14a58e155393fe766689ede2013
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed May 2 13:47:41 2012 -0700

    (#13341) Add wrapped exceptions
    
    Puppet::Error can now take an original exception as an argument. It had some
    functionality for reporting errors in parsed files which I didn't think
    belonged in our base error class. I moved it out into a module and created
    ParserError and ResourceError for the cases that use it.

commit 632457e437f3a022273ab747831b1e30cd32743b
Author: Hunter Haugen <h.haugen@gmail.com>
Date:   Tue Nov 22 18:07:35 2011 -0800

    Rubygems is not required to use hiera
    
    Hiera may be used if the libs are sync'd from a puppet module via
    pluginsync, even without rubygems

commit c9386b541e9ecf6c0daffde2825bad385ea4da2b
Merge: dc06b8d 80fe59d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu May 3 13:00:43 2012 -0700

    Merge branch '2.7.x'
    
    Conflicts:
    	spec/integration/network/server/mongrel_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 80fe59dbf7c7e4397578eb69ba2131ad5d09fd62
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu May 3 12:33:32 2012 -0700

    Remove a bad test that can lead to random hangs...
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit dc06b8d4b295b96e6e311b9f69ed1cccc7078ac2
Merge: 5902ae9 9a8d1b2
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu May 3 12:29:31 2012 -0700

    Merge pull request #732 from kelseyhightower/maint/master/8235_improve_plugin_system_test_coverage
    
    (#8235) Improve Hiera data_binding test coverage

commit 5902ae92123287e3be74742308e8ed797e339cc0
Merge: ba80b0e 895ce33
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu May 3 12:19:50 2012 -0700

    Merge pull request #645 from zaphod42/refactor/master/stop-provider-from-using-deprecated-execution-methods
    
    Removing use of deprecated execution methods

commit 0efb4c254de3139e362bb0963a3f9e2edb74b016
Author: Nan Liu <nan@puppetlabs.com>
Date:   Thu May 3 07:38:25 2012 -0700

    (#14296) Improve template function error message.
    
    The current template function does not provide sufficient detail for
    troubleshooting. This patch uses the backtrace to provide the fully
    qualified filepath and line number.
    
    Previous error message:
    Failed to parse template test/example.erb: undefined method `[]' for
    nil:NilClass at /tmp/module/test/manifests/init.pp:2 on node example
    
    New error message:
    Failed to parse template test/example.erb:
      Filepath: /tmp/module/test/templates/example.erb
      Line: 10
      Detail: undefined method `[]' for nil:NilClass
     at /tmp/module/test/manifests/init.pp:2 on node example

commit 168c8b2301291cf252a77ca340977cd47305d9bf
Author: Michael Kincaid <michael@puppetlabs.com>
Date:   Wed May 2 18:17:58 2012 -0700

    Change one test to use the new confine syntax.

commit ebf538665e815c186867cf18be131dd67b24d9d3
Author: Michael Kincaid <michael@puppetlabs.com>
Date:   Wed May 2 18:15:40 2012 -0700

    Remove EL-related test changes from this commit.
    
    These changes will go to the 2.6.x branch instead.

commit 2aea708dc95884a0a2c1692e9a096c1ddfe62c15
Author: Michael Kincaid <michael@puppetlabs.com>
Date:   Wed May 2 14:42:13 2012 -0700

    Revert changes to symbolic_modes.rb -- this test should indeed be pending
    (it should eventually work on Windows).

commit b601bb4173dd172d79348cf9b05f2989eda04412
Author: Michael Kincaid <michael@puppetlabs.com>
Date:   Mon Apr 2 15:19:22 2012 -0700

    Update acceptance tests to use confine instead of skip_test loops
    
    Now that the test harness supports confine :except, :platform = 'windows'
    (and the like), update the tests to use that syntax.

commit d5e0cddc9ab604053b060bf98c14e6ba0d65818f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed May 2 16:21:39 2012 -0700

    (#14288) gem provider should tolerate bad lines.
    
    Previously, when the output of the gem command contained a line that didn't
    match it was returned as `nil` - but the rest of the provider didn't handle
    that value at all!
    
    That led to any mismatch causing various failures to dereference `nil` as a
    hash, and general failure.
    
    This fixes this to behave significantly better by just omitting that entry in
    the result, returning only the expected content.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9a8d1b29c87fa9c28b99abbeb6ddd081d69c7f81
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Wed May 2 15:48:03 2012 -0400

    (#8235) Improve Hiera data_binding test coverage
    
    Add tests to exercise Hiera lookup for real, none of that stubbing stuff.
    These test only run if Hiera is installed.
    
    This patch does not introduce any changes in behavior.

commit 94dee104ddb833482ce2356ab3aa33fa9d3d5fb2
Merge: d2b3ba0 574e4c8
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed May 2 10:18:54 2012 -0700

    Merge branch '2.7rc' into 2.7.x

commit 574e4c8466ae797d950fede1bdc9e6798baf6d15
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed May 2 10:03:47 2012 -0700

    Update CHANGELOG, spec files for 2.7.14

commit 895ce33657473b3902db1544a09a27ce736a3851
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 9 11:59:36 2012 -0700

    Removing use of deprecated execution methods
    
    Using the mixins for bringing in the execution methods wasn't
    working to bring in the non-deprecated Puppet::Util::Execution methods.
    Because of the way that these methods are declared trying to understand
    what methods were coming in from where was very hard to trace and so
    I decided to go with explicit delegation.

commit ba80b0e9fad27f2171b7f5e5db4253b89c70dc85
Merge: 685191f d2b3ba0
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 1 14:07:35 2012 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      Revert "Fix incorrect argument handling for expire in NodeExpirer"
      Fix #14123 for Windows
      Fix incorrect argument handling for expire in NodeExpirer
      Fix filebucket specs on Windows
      (#8778) Make '' == undef commutative in the DSL
      (#14173) Enforce that filebucket paths must be absolute
      (#14127) Add integration tests for ssh_authorized_key
      maint: refactor integration specs for ssh_authorized_key
      (#14127) ssh_authorized_keys grammer fails on blank lines.
      (#14123) Puppet shouldn't explode if PATH contains ~nonexistent_user
    
    Conflicts:
    	lib/puppet/provider/ssh_authorized_key/parsed.rb
    	lib/puppet/util.rb

commit d2b3ba06594d43d41f2a36b9d1647426dacae1b7
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue May 1 13:00:32 2012 -0700

    Revert "Fix incorrect argument handling for expire in NodeExpirer"
    
    This reverts commit 1c9bec019e08ce7f53d9fb8c9e7c7b23cc7c8bca. That changeset
    was based on a misunderstanding of the code. NodeExpirer#save has an instance
    of Puppet::Node::Facts but is calling xpire on Puppet::Node, so it's never
    appropriate to pass along the instance.

commit 685191f851598d539e70613958e47265898a6166
Merge: 1c19ce3 3ac5b50
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 30 17:43:54 2012 -0700

    Merge pull request #718 from kelseyhightower/ticket/master/8235_plugin_system_for_tools_like_hiera
    
    (#8235) Add plug-in system for tools like Hiera

commit 1c19ce3eff80d86bcf1426bf0f1e6e9d33e3c361
Merge: cb294d6 db54b30
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 30 17:38:53 2012 -0700

    Merge pull request #715 from ccaum/static_compiler_fix
    
    Properly call indirector when storing file content

commit 978cc15970f3cf3ad4aea0b25e8512b7964e3501
Merge: ac7bd6b 1c9bec0
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 30 17:38:02 2012 -0700

    Merge pull request #728 from pcarlisle/maint/2.7.x/post-facts
    
    Fix incorrect argument handling for expire in NodeExpirer

commit cb294d69f9a2f51170040cb8f3989e9bffe9854d
Merge: 484e170 6d26b5c
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Mon Apr 30 17:01:16 2012 -0700

    Merge remote-tracking branch 'pcarlisle/repase_config_fix'
    
    * pcarlisle/repase_config_fix:
      Update use of reparse to reparse_config_files

commit 6d26b5ce3fcd1b6cc575c531bf7d174dceabafd1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 30 16:56:30 2012 -0700

    Update use of reparse to reparse_config_files
    
    The method in settings was renamed, but this use was missed.

commit ac7bd6b28a2be135410b75d26f20175d11b2bae9
Merge: 6adb2c9 960f017
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Apr 30 14:25:42 2012 -0700

    Merge pull request #701 from daniel-pittman/bug/2.7.x/14127-ssh-auth-keys-fails-on-completely-empty-line
    
    Bug/2.7.x/14127 ssh auth keys fails on completely empty line

commit 960f017e5e0a8519cf2a257c05bad132699bac53
Merge: b4d1c65 402a425
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 30 14:15:11 2012 -0700

    Merge pull request #1 from stschulte/ticket/2.7.x/14127_2
    
    Add extra testing goodness from @stschulte.

commit 484e170ac379df4428a338722f0c2bbbff13bae2
Merge: 8e6a1f4 43dd31d
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 30 13:21:11 2012 -0700

    Merge pull request #726 from pcarlisle/ticket/master/14229-path-setting
    
    (#14229) Add a path type to settings

commit 8e6a1f4a18e9eb8f8c7ab081a65d4d2284876a06
Merge: 21ae404 de8ade8
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 30 12:43:32 2012 -0700

    Merge pull request #706 from pcarlisle/autoloader-windows
    
    Use expand_path to normalize paths in autoloader

commit 6adb2c97168b3f754d3cc3158805fb13aa0a780c
Merge: 7e92a7c 7c7d4b6
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 30 12:25:44 2012 -0700

    Merge pull request #729 from pcarlisle/baduser-windows
    
    Fix for ignoring nonexistent home dirs on Windows

commit 7c7d4b690c2554949e731e13a76546a2de2915f4
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 30 12:15:59 2012 -0700

    Fix #14123 for Windows
    
    Windows raised a different exception when a home directory doesn't exist, so
    we catch that too.

commit 1c9bec019e08ce7f53d9fb8c9e7c7b23cc7c8bca
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 30 11:46:59 2012 -0700

    Fix incorrect argument handling for expire in NodeExpirer
    
    Since it takes an optional key it needs to use that key if it exists. This
    also resolves an error `undefined method 'name' for #<Hash...` that could
    occur when posting facts over REST if the yaml didn't have a proper name
    variable. This will still fail, but at a point that gives a much better error
    message.

commit 7e92a7c416f331d15424e22979471928f7603938
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 30 11:24:27 2012 -0700

    Fix filebucket specs on Windows

commit 36e92f2fad0c959ea8c4f15dda33b6e678e6146c
Merge: 7f0ef4a 36d959a
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Apr 30 11:14:10 2012 -0700

    Merge pull request #700 from daniel-pittman/bug/2.7.x/14123-don't-explode-when-path-has-bad-content
    
    Bug/2.7.x/14123 don't explode when path has bad content

commit 7f0ef4aaa16691f4585567ce82b6c0ed05195306
Merge: 7af59de 603b368
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Mon Apr 30 11:03:45 2012 -0700

    Merge pull request #713 from daniel-pittman/bug/2.7.x/14173-filebucket-resource-should-validate-path
    
    (#14173) Enforce that filebucket paths must be absolute

commit de8ade81a293c6ac5af90dfc066f9a838d9f2953
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Apr 24 13:19:27 2012 -0700

    Use expand_path to normalize paths in autoloader
    
    Just using Pathname#cleanpath didn't properly convert \ to / on windows. Using
    both should give correct normalized paths. This also cleans up the specs to
    work better with Windows paths, as problems there were revealed by this
    change.

commit 43dd31d7599365544668ce90bbde422def37b175
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 25 10:51:54 2012 -0700

    Remove type hack from file settings
    
    File settings could be files or directories based on whether the setting name
    contained 'dir' or if the value ended in a slash. We now have a distinct
    directory type and this is no longer necessary.

commit d9adae4f5e8c221c294f4379ed7fe075c44b037f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Apr 20 12:43:41 2012 -0700

    (#14229) Add a path type to settings
    
    This path type will expand all paths in a string separated by
    File::PATH_SEPARATOR, but does not add the paths to the settings catalog. This
    helps the most on Windows, where it means that paths given to settings will
    consistently use File::SEPARATOR, no matter how they were entered by the user.

commit 1eaf7b88062ac40ec04eaa6d247ba64a652a30d3
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 25 10:43:18 2012 -0700

    Munge settings in value instead of set_value
    
    Before this munging happened before variable interpolation in settings. This
    made it impossible to expand a path properly if it contained a reference to
    another setting. By munging after variable interpolation we can solve this
    problem.

commit 7af59dea8e6edee3147f3b049c0c35729db8ca64
Merge: 24d4bb5 a713f07
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 30 10:01:38 2012 -0700

    Merge branch 'ticket/2.7.x/8778_equality_in_puppet_is_not_commutative' into 2.7.x
    
    * ticket/2.7.x/8778_equality_in_puppet_is_not_commutative:
      (#8778) Make '' == undef commutative in the DSL
    
    Reviewed-by: James Turnbull

commit a713f07a63cbcf0ac4c66711468f7aeebd9afd7f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 30 09:38:52 2012 -0700

    (#8778) Make '' == undef commutative in the DSL
    
    Without this patch applied the Puppet DSL treats undef == '' as true
    but '' == undef as false.  This is undesirable because the equality
    operator should be commutative.
    
    This patch fixes the problem by adding an explicit check for '' == undef
    in the AST.  Without this patch applied, Puppet already has an explicit
    check for undef == '' but not for '' == undef.
    
    The spec tests are also updated by this patch to reflect the change.

commit 21ae4046b4bf38cfa6342d217495375a88d67b24
Merge: 43c84e9 24d4bb5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 29 09:02:36 2012 -0700

    Merge branch '2.7.x'

commit 24d4bb51d07f1c643d6c2277b4901f2044a51a6d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 29 09:01:37 2012 -0700

    Revert "(#11004) Fix regex for pkg provider line matching"
    
    This reverts commit e37b536397568ffa3e6fe9383bc8a19a0d3765e5.
    
    The discussion on the ticket showed that this wasn't correct, but I missed
    that while reviewing the code.  I am backing this out so that it can be
    properly resolved.

commit 085936460b0bd6fe2c3aa6f4346f5a63f2086656
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Apr 11 21:56:39 2012 +0200

    (#13880) Add openrc spec - service with extreme long name
    
    The old gentoo provider has some problems handling services with really
    long names (#5197).
    
    Add a tests to check the correct behaviour of the openrc provider. The
    fake rc-status output was captured after creating a fake initscript in
    /etc/init.d with a really long name

commit af6f7bab66d4d87f4fc2950efd12cebea9a6eb95
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Mar 10 15:57:02 2012 +0100

    (#13880) Add openrc service provider for Gentoo and Funtoo
    
    Gentoo uses openrc (at least since baselayout-2) to
    start/stop/enable/disable services. This can be done with the following
    commands
    
        /bin/rc-status   - show runlevels
        /sbin/rc-service - start/stop a service
        /sbin/rc-update  - enable/disable a service
    
    The openrc provider was written as a replacement for the current gentoo
    provider. The gentoo provider does just use the openrc commands to
    enable/disable a service but it still calls the initscripts directly to
    start a stop service. The gentoo provider does also have problems with
    long service names (#5197).
    
    The reason why this is a seperate provider: #5197 states that the
    rc-service command was probably introduced when gentoo upgraded from
    baselayout-1 to baselayout-2 (I wasn't really able to verify this)
    so the openrc provider will not work on all gentoo systems.
    
    It is also notable that the new openrc provider does not put any confines
    on operatingsystem so the service provider may also be used on other
    systems that use openrc (like the Gentoo fork "Funtoo")

commit 43c84e97a1e0ae4f0cffe55f598bdbfdcd908348
Merge: 5ac252e 6a4b61b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Apr 28 21:19:06 2012 -0700

    Merge 2.7.x into master.

commit 6a4b61b4a7602c106ad505758a261b92f2515cac
Merge: 3be6809 e37b536
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Apr 28 21:18:46 2012 -0700

    Merge pull request #719 from stschulte/feature/2.7.x/11004
    
    Solaris 11 Support in pkg provider

commit 5ac252e3dabb2bf74ed09c872b9fe019e1b4aa0a
Merge: 985c44b 471057e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Apr 28 21:01:33 2012 -0700

    Merge pull request #659 from bodepd/bug/master/13888_systemd_self_instances_fix
    
    (#13888) Fix self.instances for systemd service provider

commit 985c44b6adfffc8c6660db28efa361dfc75d6ecc
Merge: ce1e555 3be6809
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Apr 28 20:50:01 2012 -0700

    Merge 2.7.x into master.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3be6809f9d6bb3e2a453c632e05487d80896548a
Merge: 727dce8 34da6f7
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Apr 28 20:43:37 2012 -0700

    Merge pull request #631 from kbarber/ticket/2.7.x/13651-magenta_not_purple
    
    (#13651) Use magenta, not purple in Facter::Util::Colors

commit ce1e5555a847163e6448d1442a6d626957dac798
Merge: 895de3b 2041052
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Apr 28 20:07:25 2012 -0700

    Merge branch 'cprice-puppet-bug/master/14200-help-face-bad-docs'
    
    Conflicts:
    	lib/puppet/application/face_base.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 895de3b418c294326ef2ea65002aeca4a40e27a8
Merge: 8559955 812b3cd
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Apr 28 19:55:48 2012 -0700

    Merge pull request #710 from cprice-puppet/bug/master/13429-faces-as-libraries
    
    Bug/master/13429 faces as libraries

commit 8559955d95571389fc93ad04e642ea7aaec102ae
Merge: 8de3395 201a379
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Apr 28 19:49:08 2012 -0700

    Merge branch 'ticket/master/13349_incorrect_scope_behavior' from jeffweiss

commit 201a379f4dde1552186f525f4b8387d82fd612dc
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Apr 26 15:09:58 2012 -0700

    (#13349) Add integration test for incorrect scope

commit 234f306a00b5eb4f7d38a1039c3b9be04b0741ac
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Apr 26 14:10:30 2012 -0700

    (#13349) Fix incorrect scope behavior
    
    This commit resolves an error with class inclusion, via a resource
    rather than the include statement, where if the class was a top-level
    class, the class name would get resolved twice: once for adding the
    resource (which happened correctly) and again when evaluating the class
    (which would incorrectly re-check all the namespaces though with the ::
    stripped off) finding the nested version.
    
    Prior to this commit the following manifest would generate both notify
    messages.  After this commit, the manifest only generates the top-level
    notify messages.
    
    class { 'foo::test': }
    class foo::test {
    	class { '::bar::baz': }
    }
    class bar::baz {
    	notify { 'good!': }
    }
    class foo::bar::baz {
    	notify { 'bad!': }
    }

commit 8de3395f3a73a0081e07482a821c159d2742c734
Merge: b5847f4 60ebc03
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Apr 28 19:15:07 2012 -0700

    Merge branch 'bug/master/face-loading-order-dependent-failure'
    
    This resolves the current build failure.

commit 60ebc03e01e54a403b4d2ee7d1012aeced117757
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Apr 28 19:14:54 2012 -0700

    Save face loader state in a different, more robust way.
    
    The previous version mostly worked, but wound up showing an odd failure mode
    under Ruby 1.9.3 where it didn't seem to restore state.  My best guess is that
    something caused the older value to be closed over...
    
    In any case this is an equally horrible, but more effective, way to resolve
    the same problem.  I don't mind *like* either of them, but they work.
    
    Really, the whole thing should be rethought - it may not actually be worth the
    level of pain required to test the loader in the unit tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 34da6f7d1ef086c292c7a8853f1d23ecbfbbd1ee
Author: Ken Barber <ken@bob.sh>
Date:   Thu Apr 5 17:26:21 2012 +0100

    (#13651) Use magenta, not purple in Facter::Util::Colors
    
    This replaces all cases of the term 'purple' for the more standard 'magenta',
    as per the naming used in most ANSI escape code charts.

commit 812b3cd33340a0b65fc751a97a0ba3f3c21060e0
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Apr 24 16:01:27 2012 -0700

    (#13429) refactor some settings initialization
    
    This commit does the following:
    
    * Move some of the settings initialization logic from
      Puppet::Util::CommandLine into the Puppet::Util::Settings class,
      so that it can be called by non-CommandLine code
    * Rename / deprecate / clean up some methods related to parsing
      config files to try to promote a cleaner API for interacting with
      settings.
    * Clean up / improve options for external tools to
      request puppet settings initialization.

commit b5847f4b2d6af7afc839a4f8e15c37675ab378a0
Merge: 4ddac5d cc7c13e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 26 18:07:55 2012 -0700

    Merge branch 'feature/13970/remove-dynamic-scoping' from zaphod42
    
    Conflicts:
    	lib/puppet/parser/scope.rb
    	spec/unit/parser/scope_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4ddac5d183b3eadc77a274086b28bd929d9ce0cf
Merge: 4f295ea a1a41a3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 26 17:43:45 2012 -0700

    Merge branch 'puppet-cleanup/master/bad-settings-specs' from cprice
    
    Conflicts:
    	lib/puppet/util/settings.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4f295ea4774c5817a5d7a8ad6e7a31a759214287
Merge: c3c5252 d936ddf
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Apr 26 17:31:28 2012 -0700

    Merge pull request #702 from jeffweiss/ticket/master/13948_libdir_not_in_load_path
    
    (#13948) $libdir not in $LOAD_PATH

commit c3c525293ee12993c6f60eb4cd4f7ce71f6ca280
Merge: 0a958a7 e58f61a
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Apr 26 17:24:01 2012 -0700

    Merge pull request #690 from jeffweiss/ticket/master/14072_allow_faces_to_inline_setting_docs
    
    (#14072) Allow faces to inline global setting docs

commit 0a958a7be2b15c1b3917a616e17dc605cdb1e4e2
Merge: d63ca26 47e519c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Apr 26 17:15:12 2012 -0700

    Merge pull request #703 from cprice-puppet/feature/master/filter_resource_type_by_type
    
    (#14137) usability improvements to resource_type API

commit a1a41a3650bc0ff1d5a09457ef7e0144f7dd3166
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Apr 26 14:58:08 2012 -0700

    Cleanup some dumb tests in settings specs
    
    Patrick found a few things in the settings_spec tests that
    weren't really testing what they claimed to be.  Minor
    fixes to account for those.

commit 20410528e2c2c05e37bfad49641b13087ae38f2f
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Apr 26 14:08:32 2012 -0700

    (#14200) Fix help face
    
    This commit does the following:
    
    1. Fix the help face so that--in the case where there exists both an
    App and a Face by the same name, and the App is not just a stub for the
    Face--help gives preference to the App instead of the Face.  The help
    face (as a command line tool) is mostly going to be used to help
    users navigate the other command line tools, so, e.g.,
    "puppet help resource" should show help for the same tool that you
    will get by running "puppet resource".  This was not the case
    prior to this commit.
    2. Get rid of the separation between faces and applications in the
    help screen... making this distinction seems more confusing than
    helpful to the users, and exposes implementation details that
    users should not need to be concerned with.
    3. Change all class names for Applications to conform to the
    convention of "foo_bar" file names mapping to "FooBar" class names.

commit d63ca26332d3f93e7cdd1b357e1e246755b21bff
Merge: df8db7c 48a768a
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Apr 26 14:01:14 2012 -0700

    Merge pull request #721 from pcarlisle/file_terminus
    
    Add default_file_terminus setting

commit 48a768a2e33cdc0868ca8dfc9eb86c8fda2f5fcd
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 25 16:18:20 2012 -0700

    (#13966) Remove remaining uses of :name setting

commit 5ad4e1032652000fcafbd5f70681320b5851e9e6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Apr 26 12:14:38 2012 -0700

    Add default_file_terminus setting
    
    This setting is used to determine the default source of files accessed
    with a puppet: url and no server specified, e.g. puppet:///path/to/file.
    Before now, this was done by checking if Puppet[:name] was `apply`. Since
    Puppet[:name] is removed and we don't want application specific logic spread
    throughout the code, we are adding a setting specific to this particular
    behavior. The `apply` application sets a default value of `file_terminus`,
    which retains the previous behavior of `apply`. Otherwise the default value is
    `rest`, causing Puppet[:server] to be used to retrieve the file.

commit e37b536397568ffa3e6fe9383bc8a19a0d3765e5
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu Apr 26 21:21:43 2012 +0200

    (#11004) Fix regex for pkg provider line matching
    
    The pkg provider uses the output of `pkg list` to check if a package is
    present on the system. On solaris 10 the output showed a dedicated
    `status` field to reflect `installed` or `known`. On Solaris 11 this
    field is not present anymore, so it was marked as an optional field in
    the regex that is used to parse the `pkg list` output. The field
    delimiter (\s+) however were notaround not marked as optional so while
    
      library/python-2/pycurl-26 7.19.0.1-0.175.0.0.0.2.537  i--
    
    worked
    
      library/python-2/pycurl-26 7.19.0.1-0.175.0.0.0.2.537 i--
    
    did not (notice there is only one whitespace between version an flags).
    
    Modify the regex so the second example is also interpreted correctly.

commit 51463973ffab726cb6eb3a3492d11c10bfbe243b
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Thu Apr 26 18:19:22 2012 +0100

    (#13379) Add path of pluginsync'd lenses to Augeas load_path automatically
    
    The path $libdir/augeas/lenses is added to the Augeas load_path initialisation
    option automatically to support lenses being pluginsynced.  Lenses should be
    added into the <module>/lib/augeas/lenses directory inside a module.
    
    The load_path parameter has been expanded to support an array of paths as well
    as a colon-separated list.

commit 3ac5b50ce66948d9488bd394c169022d55ecf0d1
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Thu Apr 26 08:19:10 2012 -0400

    (#8235) Add plug-in system for tools like Hiera
    
    A new data_binding indirection is being added for interfacing with
    tools like Hiera; and provides an "in-dsl" solution for data separation.
    Data exposed by tools like Hiera will be made available during parse
    time.
    
    For example, if we had the follow class definition:
    
        class nginx($port=80) { ... }
    
    And it was declared without specifying the `port` attribute:
    
        class {'nginx': }
    
    The above would result in a data lookup to the data_binding backend for
    the following namespaced key:
    
        nginx::port
    
    Namespaced keys are being used to prevent the pollution of the global
    namespace. The convention for namespaced keys is a combination of the
    class name and the class parameter being resolved.
    
    Example:
    
        class ssh::server($port) { ... } # Lookup ssh::server::port
    
    The data_binding backend would need to provide a value for the
    namespaced key or return nil. When a nil value is returned by the
    data_binding backend the class parameter default, if available, will be
    used instead.
    
    It should be noted that class parameters are looked up one at a time
    with no assumptions in regards to the performance of data lookups. It's
    the responsibility of the data_binding backend to handle any performance
    requirements including caching.
    
    This patch also adds two new terminii: hiera and none. The "none"
    terminus implements a find method that always returns nil; it's being
    set as the default data_binding terminus to allow end-users the ability
    to opt-in and maintain backwards compatibility with older versions of
    Puppet.
    
    The "hiera" terminus implements a find method that delegates class
    parameter lookups to Hiera using the Hiera Ruby API.
    
    Two new configuration settings are being added:
    
        [main]
          hiera_config = "$confdir/hiera.yaml"
          data_binding_terminus = "none"
    
    Updated specs are included in this patch

commit 727dce84dfe41c3cbabb36b818368d7d9f28c553
Merge: e505739 9b47110
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 25 19:56:02 2012 -0700

    Merge branch 'fix/2.7.x/13956_fix_spec_tests_when_win32console_is_missing' into 2.7.x
    
    * fix/2.7.x/13956_fix_spec_tests_when_win32console_is_missing:
      (#13956) Fix failing spec tests
    
    Signed-off-by: Jeff McCune <jeff@puppetlabs.com>

commit 9b471101a7b43c27f80441a622f26d74605e2b9f
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 26 03:45:12 2012 +0100

    (#13956) Fix failing spec tests
    
    The tests fail if the win32console gem isn't installed.  This patch fixes the
    problem by stubbing out Puppet.features.ansicolor?

commit e50573985c2a7757377e2f84c742226f1be8d675
Merge: a29822a 7e92dcb
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 25 18:06:15 2012 -0700

    Merge remote-tracking branch 'jeffmccune/fix/2.7.x/specs_fail_without_win32console_gem' into 2.7.x
    
    * jeffmccune/fix/2.7.x/specs_fail_without_win32console_gem:
      Just change Puppet settings in tests, rather than stubbing.
      (maint) Fix destinations_spec failure on windows
    
    Signed-off-by: Jeff McCune <jeff@puppetlabs.com>

commit 7e92dcb057c6232b2d7d577e08c7754093563052
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 25 18:01:26 2012 -0700

    Just change Puppet settings in tests, rather than stubbing.
    
    I'm following Daniel's lead from cde3bee0 on this one.
    
    Stubbing Puppet.settings can cause bad side effects so let's just set
    the setting and let the spec helper reset the settings system for us.

commit ca313dce0c3e55dac6b2ab25e409b43f144f6924
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 25 17:55:19 2012 -0700

    (maint) Fix destinations_spec failure on windows
    
    The CI spec tests for Puppet 2.7.x on windows are failing.  This is bad.
    
    The reason they're failing is because we recently patched Puppet 2.7.x
    to add a new feature, Puppet.features.ansicolor?  If this feature is
    true then Puppet will output with ANSI colors.  If false, bare strings
    are sent.
    
    The existing destinations_spec test wasn't updated to reflect this new
    feature.  The existing spec test assumes ANSI sequences will always be
    sent if Puppet[:color] = true, but this is no longer the case because we
    only send ANSI sequences if Puppet[:color] = true and
    Puppet.features.ansicolor? is truthy.
    
    This patch fixes the problem by stubbing Puppet.features.ansicolor? to
    be true, matching up the spec expectation to the behavior of the system.

commit 47e519c8d880e2f96383b87a825bd0506f2645e8
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Apr 23 17:12:51 2012 -0700

    (#14137) resource_type serialization naming conventions
    
    This commit attempts to bring the serialized representation
    of resource_type objects into better alignment with naming
    conventions that we've established in our documentation
    and elsewhere.  In particular:
    
    * "resource_supertype" => "kind"
    * "hostclass" => "class"
    * "definition" => "defined_type"
    * "arguments" => "parameters"
    
    These changes only affect the serialization (#to_pson/#from_pson).
    The internal representation still uses the old terminology.
    Ideally we'd just change the internals to conform to the
    naming conventions, but that is a larger changeset than we
    can reasonably tackle right now.

commit b678cc4cc6be7b39fff6a7a5c33733d4e18eb899
Author: cprice <chris@puppetlabs.com>
Date:   Thu Apr 19 16:25:08 2012 -0700

    Add ability to filter resource_type output by type
    
    Would really love to think of a different word to
    use for one of those instances of 'type'.  Basically
    this allows you to filter the resource_type output
    by classes, defined_types, or nodes.  It's a small
    part of the data separation / lowrider project.

commit db54b301e9ad9573eaa9fe1d9ce349f67d2c4102
Author: Carl Caum <carl@carlcaum.com>
Date:   Wed Apr 25 15:47:10 2012 -0700

    Properly call indirector when storing file content
    
    Prior to this commit, the static compiler did not specify to use
    indirection when finding file content nor when saving a file to the
    filebucket.  This commit properly calls the indirection method to
    resolve the issue

commit df8db7c6b298fc02637f936b8b0609ee8ca2bb0a
Merge: d97e33e db0b27b
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Apr 25 15:44:55 2012 -0700

    Merge pull request #709 from cprice-puppet/feature/master/log_spec_order
    
    Add ability to log spec test order to a file

commit a29822a94272b71be3c0c70b19e5693be48bb453
Merge: 64348a0 cde3bee
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Apr 25 15:41:53 2012 -0700

    Merge pull request #714 from daniel-pittman/maint/2.7.x/fix-busted-colour-tests
    
    Maint/2.7.x/fix busted colour tests

commit cde3bee077179e94d2e0eee50163012081411e28
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 25 15:16:57 2012 -0700

    Just change Puppet settings in tests, rather than stubbing.
    
    The stubbing in these tests blew up when an unexpected interaction happened;
    it isn't clear why that was stubbed anyhow as we can just set settings
    directly, to avoid exactly this failure mode.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6aa8441b7f1eaa54918a7bc49faf9b5ae01b60ea
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Apr 25 23:25:21 2012 +0200

    (#11004) Support Solaris 11 output in pkg package provider
    
    Solaris 11 has merged the status field and the flag field when running
    pkg list. So instead of
    
        SUNPython  2.5.5-0.111  installed  ----
    
    a line may now look like
    
        compress/zip  3.0-0.175.0.0.0.2.537  i--
    
    Change the regex in the parsing method to be able to correctly
    interpret the output on Solaris 11 boxes

commit d97e33efff86a939e10f7106dcc9fdf03a5efeaf
Merge: b205111 d1f7abd
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 25 14:14:29 2012 -0700

    Merge 'puppet-feature/master/3757-agent-lockfiles' from cprice
    
    This manually fixes the minor merge conflict by hand.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 61e7d3cb3ad4f72c28b02cc3e71702f9224e2b89
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Apr 25 23:11:04 2012 +0200

    maint: Fix pkg_spec test
    
    The pkg_spec test meant to compare different hashes that were created
    like
    
        Hash.new(:key1 => val1, :key2 => val2)
    
    At least on ruby 1.9 this will always return an empty hash so the spec
    tests didn't test correctness at all.
    
    The fix uses just {:key1 => val1, :key2 => val2} to create the different
    hashes so the comparsion does make sense again.

commit 603b368a46a77189bbc1c965f43cee3a0de1afb4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 25 13:13:42 2012 -0700

    (#14173) Enforce that filebucket paths must be absolute
    
    If you passed the filebucket a relative path, perhaps by accidentally quoting
    'false', it would happily accept that and create a directory relative to the
    current working directory to store content in.
    
    This enforces that the path must be absolute, as well as failing cleanly if
    multiple paths are passed.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 64348a0ea036fa6af20ef50b860bfda60c12c719
Merge: 0061ba6 f40cc71
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Apr 25 13:09:29 2012 -0700

    Merge remote-tracking branch 'joshcooper/ticket/2.7.x/13956-colorize-windows' into 2.7.x
    
    * joshcooper/ticket/2.7.x/13956-colorize-windows:
      (#12392): Colorize console output on Windows

commit b20511164b5e702cef7a118fedd34918995afe09
Merge: e31d153 4d600a2
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed Apr 25 11:04:46 2012 -0700

    Merge pull request #711 from jeffweiss/maint/master/fix_acceptance_tests_for_windows
    
    (maint) Fix acceptance tests for Windows

commit 4d600a2f851f216d8d20585388d2b797efb7e29e
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Apr 24 12:29:40 2012 -0700

    (maint) Fix acceptance test for Windows
    
    Change acceptance tests to resolve issues around newlines not being properly matched with Windows and linux.
    Mark topscope acceptance test as win32 pending.
    
    Signed-off-by: Jeff Weiss <jeff.weiss@puppetlabs.com>

commit e31d153c06df908f101bb1430e76dd9bef0fab2b
Merge: 32f91d1 bbda9d2
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed Apr 25 10:21:42 2012 -0700

    Merge pull request #712 from jeffweiss/ticket/master/13966_remove_name_option
    
    (#13966) Fix default pidfile race condition

commit bbda9d21ce193efad2fc0c59d71b482bac0aeede
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Apr 25 09:44:41 2012 -0700

    (#13966) Fix default pidfile race condition
    
    Commit 8b81794 introduced a race condition for the pidfile that
    incorrectly defaulted all pidfiles to user.pid because of when in load
    time defaults.rb was read.  Run_mode bootstraps as user and then
    switches to [master|agent] if necessary. This change modifies the
    default pidfile value to interpolate run_mode at time of pidfile use
    rather than bootstrapped run_mode.  This commit restores proper
    functionality for the pidfile names.

commit d936ddf5c84cc71491628352174df7102a8a4e78
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Mon Apr 23 14:52:56 2012 -0700

    (#13948) $libdir not in $LOAD_PATH
    
    Change :call_on_define to :call_hook with values of
    :on_define_and_write, :on_initialize_and_write, and :on_write_only.
    Make hooks for $libdir, $factpath, and $storeconfig new value of
     :on_initialize_and_write to take advantage of bootstrapping sequence.
    Change Puppet::Util::Settings to call hooks on settings designated as
    :on_initialize_and_write immediately after initialing default
    application values.
    Deprecate Puppet::Util::Settings::StringSetting#call_on_define.
    
    This change is backward compatible, although :call_on_define is
    deprecated and should be changed to :call_hook => :on_define_and_write.
    This change should also be forward compatible if we decide to call hooks
    at other portions of the application bootstrapping lifecycle.
    
    This commit fixes the problem that the default libdir was not being
    added to Ruby's $LOAD_PATH properly.
    
    Prior to this commit, the hooks for $libdir and $factpath were not
    getting called unless explicitly overridden in the code. This meant that
    the default $libdir was not part of $LOAD_PATH and the default $factpath
    was not searched for facts.  This commit fixes those problems by
    enabling settings to declare when the hook should be called.  A hook can
    be only only when a value is overwritten (:on_write_only), which is the
    default. A hook can be called with the default value when when the
    setting is defined (as soon as Puppet::Util::Settings.define_settings is
    called) (:on_define_and_write), in addition to any time the value is
    overwritten. A hook can be called with the default value during
    application initialization (:on_initialize_and_write), in addition to
    any time the value is overwritten.
    
    We've added the call to the initialize hooks in two places because we
    have to deal with the bootstrapping of applications. We need to attempt
    to parse command line options and the configuration file and call the
    hooks. Then we need to do it again after the application is loaded
    because it could very well have changed important things like $vardir,
    which generally affects $libdir.

commit e58f61ab2ef17ded15235c30805d2a2641534b5d
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Apr 18 16:38:53 2012 -0700

    (#14072) Allow faces to inline global setting docs
    
    Add `display_global_options` to Face DSL.
    Add `environment`, and `modulepath` as display_global_options for existing
    module face.
    Add `type` for typed settings.
    Add display_global_options to exising help and man faces.

commit 32f91d11e149bfad7b38639d3aa2aea1e8176cd8
Merge: 91284f5 0de6504
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 24 18:42:20 2012 -0700

    Merge 'pluginsync-error' from pcarlisle

commit 0de6504e5e9efa0d98180016b65cf7e1c47bf32a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 24 18:42:03 2012 -0700

    Fix some additional test problems in skipping pluginsync.
    
    These test failures are revealed by other changes to master; this corrects them.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 91284f5b1ad83b6a1bf9d8ff58e5db359d04f375
Merge: d532cc0 8b81794
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Apr 24 17:44:35 2012 -0700

    Merge pull request #695 from jeffweiss/ticket/master/13966_remove_name_option
    
    (#13966) Remove Puppet[:name] option

commit d532cc08be768169b1372f5c906cd02d00f98b84
Merge: afe4aa8 0061ba6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 24 17:29:51 2012 -0700

    Merge 2.7.x into master.

commit afe4aa86d4e5b49df1d697a9f250ee62ea1fc850
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 24 17:26:48 2012 -0700

    Fix over-stubbing in tests revealed by agent changes.
    
    Various tests of the agent stubbed `File.read` globally, which means that they
    could pass if and only if there was only one read ever made by the agent in
    the execution of "apply".
    
    This was, in fact, true until recent changes to ensure the ENC could correctly
    override the environment that the agent ran in - which, in turn, reveals the
    coupling of these tests to the implementation.
    
    This corrects those tests by using a real temporary file rather than stubbing
    out all file reads in a shot.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 006f9b17b1c71fc9f8e8959b2a4d4c1e783f181b
Merge: 6733671 85ac3fc
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 24 17:28:25 2012 -0700

    Merge branch 'pcarlisle-ticket/master/3910-updates'
    
    This reflects pull request #691, but is being done by hand because the changes
    in this code reveal the weak stubbing performed in other agent tests.

commit 0061ba6b954b71906f131f68295144b0bf552124
Merge: b7828ed a281c48
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Apr 24 17:04:23 2012 -0700

    Merge pull request #634 from stschulte/ticket/2.7.x/13645
    
    #13645 Dont open a smtp connection if we will not sent any mail

commit 6733671030f143bd73c3eaf53a6fdbbdd260c611
Merge: 7e38e34 c6c2e8a
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Apr 24 16:59:44 2012 -0700

    Merge pull request #687 from jeffweiss/maint/master/add_provider_confine_exists_nil_spec
    
    (maint) Add provider confine :exists => nil spec

commit b7828edd6fbbd37b181ea05a20d5a8777139e347
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Aug 29 11:34:18 2011 +1000

    (#3452) Autorequire user for cron
    
    If you specify a “user” on a cron entry, it ought to be automatically
    required.
    
    Patch includes tests from Stefan Schulte
    Patch thanks to Jim Pirzyk
    
    Signed-off-by: Patrick Carlisle <patrick@puppetlabs.com>

commit 7e38e34a34adf2473802c557de8e2edb00b3f415
Merge: 54e1c83 680f9a5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 24 16:43:44 2012 -0700

    Merge 2.7.x into master.
    
    This manually fixes up a pile of Puppet Module Tool conflicts by hand, related
    to overlapping changes with nothing but textual translation.  The rest of the
    merge was smooth and simple.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 680f9a5cbeec6314c583fb059bf4e46de8dd799a
Merge: a47c42d d174a9f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 24 15:45:46 2012 -0700

    Merge 2.6.x into 2.7.x
    
    A variety of unexciting conflicts were manually resolved, and the delta
    checked for sanity, since it was tiny.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a47c42d6b9c7ed6022b0e7d37505b0c694a5b8d2
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Tue Apr 24 11:28:30 2012 -0700

    Update CHANGELOG for 2.7.14rc3

commit fe1127eff5fc0fe5045df1fde94f4b85842bf169
Merge: 54be04b 2df319a
Author: Deepak Giridharagopal <deepak@brownman.org>
Date:   Tue Apr 24 09:59:49 2012 -0700

    Merge pull request #24 from kbarber/ticket/master/14124_ruby19_broken_rake
    
    (#14124) Load rake tasks directly to fix tests for Ruby 1.9.x

commit 402a425d9d26a9b9ecd4f7d27f476e713ae35ed6
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Tue Apr 24 01:15:51 2012 +0200

    (#14127) Add integration tests for ssh_authorized_key
    
    Test the behaviour of the ssh_authorized key type when modifying a file
    with different kind of text lines (inline comment and blank lines)

commit 85ee4412d21253fa2bde44cd992324c98c8ebc3b
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Tue Apr 24 00:52:47 2012 +0200

    maint: refactor integration specs for ssh_authorized_key
    
    Replace all before blocks and instance variables with rspec let methods
    and move the stubbing of File.chmod that happened in all tests to the
    top to reduce code duplication.

commit d0d34a7fac3188305752b1056119b5ad1f8d496a
Merge: 0ee259f 42b20be
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 23 16:25:21 2012 -0700

    Merge branch 'ticket/2.7.x/13682_puppet_should_not_conflict_with_released_puppet-module_gem' into 2.7.x
    
    * ticket/2.7.x/13682_puppet_should_not_conflict_with_released_puppet-module_gem:
      (#13682) Fix acceptance test failures
      (#13682) Rename Puppet::Module::Tool to Puppet::ModuleTool
      (maint) Ensure every file has a trailing newlines
    
    Reviewed-by: Daniel Pittman
    Reviewed-by: Matthaus Litteken
    Reviewed-by: Kelsey Hightower

commit 42b20be815680d0bfb70aedde74847914d62ec7a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 23 13:25:02 2012 -0700

    (#13682) Fix acceptance test failures
    
    On Lucid, /usr/share/puppet may not exist.  The module upgrade tests all
    make the assumption that this parent directory exists.  This causes
    false positive failures when running systest against a Lucid system.
    
    This patch modifies the setup code for all of the tests to ensure the
    parent directory exists.

commit dce3c32d6fd996d73df05d16842f8b584a7697b6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Apr 8 21:54:10 2012 -0400

    (#13682) Rename Puppet::Module::Tool to Puppet::ModuleTool
    
    Without this patch, Puppet will monkey patch the existing implementation
    of the puppet-module Gem if it is used.  This is bad because the two
    implementations are all jumbled up inside of one another and behavior
    may become unpredictable.  Warnings are also displayed directly to the
    end user in the form of redefined constants.
    
    This patch fixes the problem by renaming Puppet::Module::Tool inside of
    Puppet to Puppet::ModuleTool  This fixes the problem because Puppet will
    no longer monkey-patch the Puppet::Module::Tool module inside of the
    puppet-module Gem.
    
    This patch also has the added benefit of making the Module's name match
    up with the CamelCase filepath (puppet/module_tool/ =>
    Puppet::ModuleTool)  As a result, no file moves are necessary.

commit 5117e12d24a81c0d1b7ab0b61fdd7594ab4e55d6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Apr 8 21:21:35 2012 -0500

    (maint) Ensure every file has a trailing newlines
    
    Without this patch some files exist in the tree that don't have trailing
    newlines.  This is annoying because perl -pli.bak -e will automatically
    add a newline to every file it modifies in place.  The files that
    actually have modifications by the global search and replace need to be
    separated from the files that only have newlines added.
    
    This patch simply adds newlines to everything if they don't exist on the
    last line.
    
    Yes, the PNG's are perfectly fine with a trailing newline as well.

commit b4d1c654320ed9f1e5368879d0edb7aec89e4ff0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 23 14:54:40 2012 -0700

    (#14127) ssh_authorized_keys grammer fails on blank lines.
    
    The `ssh_authorized_keys` grammer, defined for ParsedFile, is wrong about both
    comments and blank lines.  Specifically, it failed in two key ways:
    
    It failed if a comment didn't start on character one; any whitespace caused
    the comment to be ignored, which is absolutely incorrect by the official
    OpenSSH implementation.
    
    It also failed because a "blank" line was defined as a line that contained one
    or more whitespace characters at the start - and nothing more!
    
    This failed in a bunch of ways, starting with assuming that a comment on a
    line with leading whitespace was actually a blank line.
    
    This change fixes both of those bugs, as well as adding appropriate tests.
    
    (See `rsa_key_allowed_in_file` in `auth-rsa.c` for the parser, at least in the
     current as of this commit version of OpenSSH.  That is official enough for me
     to assume that everyone will behave that way ;)
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0ee259f3c26608ba58afe5fbd5bb6f6489c0cefb
Merge: b8ff039 25ad6d7
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Apr 23 14:21:39 2012 -0700

    Merge branch '2.7rc' into 2.7.x

commit 25ad6d71d472613f46a32852cad8af9072389709
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Apr 23 14:17:55 2012 -0700

    Updating CHANGELOG for Puppet 2.7.14rc2

commit 74e462f58474aa262146a25a92da25d2722be04c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 20 14:14:16 2012 -0700

    (#14060) Fix quoting of commands to interpolate inside the shell.
    
    The `shell` exec provider was supposed to emulate the behaviour of 0.25 exec,
    which was to pass the content through the default shell to get it executed.
    
    Unfortunately, it got quoting a bit wrong, and ended up interpolating
    variables at the wrong point - it used double quotes where single quotes were
    really what was desired.
    
    Thanks to Matthew Byng-Maddick for the report, and a fix to the quoting; in
    the end we should not be in this position - we shouldn't be using string
    execution where we can pass an array instead.  That avoids any chance that
    there is more than one round of shell interpolation entirely.
    
    As a bonus, this fixes the base exec type to support specifying the command to
    run that very way, and making it good.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 796a0721f83ea9bae7a976518baaf5b70a7c1952
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 20 14:06:31 2012 -0700

    Modernize the style of the shell exec provider tests.
    
    This just whips the content up to the modern standard for tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b8ff039ae208239b0287ada2af9a3977d4a3b988
Merge: 8310d33 9e526c9
Author: Deepak Giridharagopal <deepak@brownman.org>
Date:   Mon Apr 23 14:03:46 2012 -0700

    Merge pull request #698 from daniel-pittman/bug/2.7.x/14060-incorrect-quoting-in-shell-exec-provider
    
    Bug/2.7.x/14060 incorrect quoting in shell exec provider

commit 9e526c9d3b66ed631147081148587fdf44393913
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 20 14:14:16 2012 -0700

    (#14060) Fix quoting of commands to interpolate inside the shell.
    
    The `shell` exec provider was supposed to emulate the behaviour of 0.25 exec,
    which was to pass the content through the default shell to get it executed.
    
    Unfortunately, it got quoting a bit wrong, and ended up interpolating
    variables at the wrong point - it used double quotes where single quotes were
    really what was desired.
    
    Thanks to Matthew Byng-Maddick for the report, and a fix to the quoting; in
    the end we should not be in this position - we shouldn't be using string
    execution where we can pass an array instead.  That avoids any chance that
    there is more than one round of shell interpolation entirely.
    
    As a bonus, this fixes the base exec type to support specifying the command to
    run that very way, and making it good.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 85ac3fc016739cf21ce19826208626766563400c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 18 16:34:28 2012 -0700

    (#3910) Add nodes to auth.conf in acceptance tests

commit 252516dc87fb823036ba950cab9745fca2e20149
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 18 14:29:42 2012 -0700

    Fix file path used in enc acceptance test

commit 5a79d9abd96e73ff166527cdee69a30da8ab0f87
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 18 13:28:30 2012 -0700

    (#3910) Default to no cache for nodes on master
    
    The default cache terminus for nodes on the puppet master was yaml. If you are
    using an ENC, there is no decent way to invalidate this cache. It does not
    seem useful or necessary (the master only queries the node once per agent
    check-in) so we're leaving it off by default.

commit 1f5be217b91a4e4f87b924b580dc677486a3c894
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 16 15:18:21 2012 -0700

    (#3910) Give environment as argument to indirection requests
    
    This threads the environment option through more indirection requests to
    ensure everything happens against the correct environment.

commit c3f8008826e4b97d1b8b6a3c0660d7eb6a888f53
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 16 14:53:16 2012 -0700

    Make positional arguments distinct in Request#initialize
    
    Puppet::Indirector::Request#initialize had a weird implementation giving
    variable semantics to positional arguments. This makes it normal again.

commit 90f16111ac4395848f7dfa45f8c739d9f96c92e7
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Apr 17 15:35:29 2012 -0700

    (#3910) Use catalog's environment when fetching file content
    
    This ensures that file content is fetched from the correct environment. Before
    this it was possible to have the metadata from one environment and content
    from another.

commit 580c94b61a403690d3d57e164d30614d43570ad2
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Apr 17 15:35:10 2012 -0700

    (#3910) Give environment in indirection calls in configurer
    
    In order to make sure we handle the (no longer global) environment correctly
    when setting up an agent run, pass the environment as an option to all
    indirection calls that the configurer makes.

commit 986bf25159b0984ccd909e67b93578d99c36557f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Mar 29 15:05:00 2012 -0700

    (#3910) Thread environment through plugin downloader
    
    The plugin downloader now takes an environment argument, which it uses to
    fetch plugins for the correct environment.

commit 70a1c706da6eef44c19347da48aa4a02ed9201bf
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Mar 29 11:37:30 2012 -0700

    (#3910) Set environment locally in configurer
    
    We have been using Puppet[:environment] as global state, when it should just
    represent the initial configuration. This is a first step to changing that.

commit 093a0745b4e943839850112ca81810749b9bb708
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Mar 28 15:12:16 2012 -0700

    (#3910) Query node before fetching catalog to determine environment
    
    This makes the agent query for its node before getting a catalog so that it
    can determine the correct environment from that node. This allows an ENC to
    override the agent's environment without incurring an extra catalog
    compilation.
    
    It also sets the default node terminus to rest in the agent application.

commit 8804e352623106cdf366d320241a7e89b7088704
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Mar 22 16:10:19 2012 -0700

    Clean up the exec indirection terminus
    
    Slight refactor to make the code a little cleaner.

commit 3ce7f680ad9ead7fa0e4e4f9dbe991bbeab874ba
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Mar 22 13:39:39 2012 -0700

    Refactor removing prepare in configurer
    
    These things don't belong together anymore.

commit 0ecca3212cd70915bf27fec8b40877b609093830
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Mar 21 17:11:59 2012 -0700

    Rename dostorage to init_storage

commit dcb92850596fc9e88286d67352c26c6f7d4b1d71
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Mar 21 17:07:58 2012 -0700

    (#3910) Use the requested environment of node as default in exec terminus
    
    A request has an environment, and if the ENC doesn't override it we should use
    the environment in the request.  This also means that we have to pass along
    the request environment when the compiler terminus requests a node.

commit cc5608bc413bf1c326714f27d8ad1ebffb9b20a6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Mar 20 15:46:46 2012 -0700

    (#3910) Add acceptance test for case of enc that doesn't specify environment

commit 36d959a3186162b64c031e39cced196fb36f43b8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 23 13:09:56 2012 -0700

    (#14123) Puppet shouldn't explode if PATH contains ~nonexistent_user
    
    As reported in http://bugs.debian.org/669650, when the PATH contained an
    expansion for a user that doesn't exist, Puppet handled it the same way Ruby
    does - to raise an exception, and explode.
    
    Leaving aside the sanity of literal tilde in the PATH, we shouldn't explode in
    that case - we should just skip that entry and carry on to the next element in
    the path instead.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 5fddc946259eb1a1569cabddce01b3c88fe7357b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 23 11:45:19 2012 -0700

    Skip pluginsync in puppet apply if no modulepath
    
    If the modulepath contains no existing directories, skip pluginsync

commit 2df319abc05b1ca0492d7a987c4c3e39ad803a6c
Author: Ken Barber <ken@bob.sh>
Date:   Sun Apr 22 00:40:15 2012 +0100

    (#14124) Load rake tasks directly to fix tests for Ruby 1.9.x
    
    The way we loaded rake tasks was not compatible with Ruby 1.9.x, as it relied
    on the fact that Ruby 1.8.x included . in its load path. This patch loads our
    rake tasks directly instead.

commit a009c542073938a15ca0a95569b14120c43c4e3d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 20 14:06:31 2012 -0700

    Modernize the style of the shell exec provider tests.
    
    This just whips the content up to the modern standard for tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit cc7c13eda8aabf7983e2ca4544e6ccd5f09d7afd
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 19 14:49:00 2012 -0700

    Added tests around enc usage
    
    Scoping for classes included by an ENC follow some rules that are not
    immediately obvious. These tests should nail down and clarify that
    behaviour

commit 6ff8bc7fbae51a19277ae78920d15405c166dd14
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 19 14:05:56 2012 -0700

    Added tests to cover old dynamic lookup
    
    These test cases cover what happens in what used to be dynamic lookup
    situations.

commit 6bb10b6b5b596a91bae7dc61bd028d98ef3ae995
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 16 17:03:10 2012 -0700

    Fixed += op changing arrays in outer scope
    
    The += operator was changing the value of the variable that it was
    supposed to clone when the value was an array.

commit e0892d964d4dfc8322ecfeb20a7504a8fa3abdb1
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 19 09:47:35 2012 -0700

    Moved full scoping tests to integrtion
    
    Since these are using the entire parser/compiler system they don't
    really qualify as unit tests.

commit 4ec9f5dd41f7eebc97fefaa3453844b63fd84b31
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 19 15:29:43 2012 -0700

    Removed dynamic scoping
    
    Removed dynamic scoping code and related acceptance tests that checked
    that deprecation warnings were issued about accessing variables via
    dynamic scope. Since there is no dynamic scope anymore there is no
    warning.

commit d60217a57ab11ddc941e557ed3a91ced44803648
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 16 16:47:18 2012 -0700

    Fixed error reporting when appending
    
    There was a pointless raise that a test thought it was checking for, but
    a different error was being raised than was intended. The logic also
    used a lot of "unless"es which made it hard to follow at times, so
    changed them to "if".

commit 43a5754ad51e73d3a4ac13309b4ebeec0103b1c7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 16 16:20:22 2012 -0700

    Removed unused methods
    
    * `unsetvar()` was ommented that it was only used in tests and the only tests that used it
    test it, so it isn't needed to actually test things.
    * Since the `scope_path()` method isn't actually used for looking up the
    variable, there is no guarantee that it is the actual path of scopes
    used.

commit e132cdfbad1d499e8ed8006cc17ce06b870a139a
Merge: 3a4ac60 934ec89
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Apr 20 11:38:29 2012 -0700

    Merge pull request #696 from zaphod42/feature/2.7rc/14101-improved-dynamic-scope-warning-message
    
    Feature/2.7rc/14101 improved dynamic scope warning message

commit 934ec8932d20dfeae4ff2e929cd30079c8a0fe84
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 19 16:47:16 2012 -0700

    Improve deprecation warning for dynamic lookup
    
    The new message will tell the user how to get more information about
    what is occuring. More information will be provided at debug level so
    that a user can see what the change to the lookup will be.

commit 8b8179470f7a0a9a60c42fa253ee52ef511793e7
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Apr 19 23:55:07 2012 -0700

    (#13966) Remove Puppet[:name] option
    
    Replace Puppet[:name] with run_mode.
    Set application default pidfile for puppet queue.
    Make application defaults trump defaults.rb for default comment inside
    --genconfig.

commit db0b27b52f60bf8cd2e7678009bbd00467b5f5ba
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Apr 16 10:23:42 2012 -0700

    Add ability to log spec test order to a file
    
    This commit tweaks the spec_helper to give it the
    ability to log the spec test order to a file.  It
    will only log the order if you have set the
    environment variable "LOG_SPEC_ORDER", e.g.:
    
    LOG_SPEC_ORDER=true rspec spec
    
    This will be useful when using Nick L.'s bisect
    script to identify order-dependent spec failures.
    It should probably be enabled on all of our
    Jenkins jobs, and would potentially allow us to
    start running them with the random order flag
    enabled.

commit 54e1c83afde1b721e5433adea17a4dd0caffbc63
Merge: a52e74f c995be1
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Thu Apr 19 14:45:22 2012 -0700

    Merge pull request #682 from zaphod42/bug/master/enc-variables-not-overridden-by-node
    
    Bug/master/enc variables not overridden by node

commit a52e74fba683d9bfe0a09f5361348c696285aa82
Merge: b7c4fe3 eaa8a77
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Apr 19 11:16:50 2012 -0700

    Merge branch 'maint/master/fix_provider_specs_for_windows'
    
    * maint/master/fix_provider_specs_for_windows:
      (maint) Get provider specs working on windows

commit eaa8a779302edea0ad4a5135ebe18d27e6b97889
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Apr 19 09:39:41 2012 -0700

    (maint) Get provider specs working on windows
    
    Define helper to provider an existing command for windows because "echo"
    is a shell interpreted command, not a proper executable.
    
    As a side note, a helper method was the only way this actually functions
    because of the evaluation context of the confine scenarios hash. Let,
    before(:each), and instance variable all fail.

commit d74f220229861ce044e17a6978c4d19ed54438ae
Author: Uwe Stuehler <ustuehler@team.mobile.de>
Date:   Thu Apr 19 15:53:04 2012 +0200

    More details in metaparameter redefinition warning
    
    Definitions which redefine metaparameters, such as the following,
    generate a warning because metaparameters, unlike normal parameters,
    are inherited by all resources contained in the definition:
    
     define contact_info($alias = undef) {
       ...
     }
    
    To find and fix this problem in the manifests we need to know where
    the parameter is defined or at least the name of the definition, which
    is now part of the warning message.

commit c6c2e8af030e850fe356a2e8166289cf868b9d22
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Apr 19 00:54:47 2012 -0700

    (maint) Add provider confine :exists => nil spec
    
    Add a test for the provider confine exists when the value is nil.
    
    Related tests are failing when confine :exists => nil, but the confine
    :exists => nil case had not explicitly been tested.

commit b7c4fe3ef4ccd9b514d2c48167fe314558eecd31
Merge: a202826 e20729e
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Apr 18 23:44:05 2012 -0700

    Merge remote-tracking branch 'daniel-pittman/maint/master/add-array-drop-to-1.8.5'
    
    * daniel-pittman/maint/master/add-array-drop-to-1.8.5:
      Implement Array#drop for Ruby 1.8.5

commit a202826ae1de4d6824e39000b014175142beb2e6
Merge: 88911e0 aabbf9e
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Apr 18 23:31:48 2012 -0700

    Merge remote-tracking branch 'joshcooper/maint/master/regexp-escape-command'
    
    * joshcooper/maint/master/regexp-escape-command:
      Maint: Escape command in regexp

commit aabbf9e1f097dce9b72f1786b04a3261ee91b2f4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Apr 18 23:00:19 2012 -0700

    Maint: Escape command in regexp
    
    On 64-bit Windows, the directory for 32-bit applications contains
    parentheses: C:/Program Files (x86). The test was using this in a regexp
    comparison and failing because the parentheses are metacharcters that
    need to be escaped.
    
    This failure was introduced when the `fails_on_windows` exclude filter
    was removed (as `Puppet::Util.which` now works on Windows).

commit e20729e3eb16d0406ee6c330f5d44bff1a610b3d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 18 22:42:05 2012 -0700

    Implement Array#drop for Ruby 1.8.5
    
    This is a great convenience method, and people keep wanting to use it, so we
    may as well have a cheap, portable implementation to keep it working.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8310d33462382d1ff51f5bfdc48f49503be489dd
Merge: 3a4ac60 c255414
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Apr 18 22:20:08 2012 -0700

    Merge pull request #681 from jeffweiss/ticket/2.7.x/14036_handle_upstart_better
    
    (#14036) Handle upstart better

commit 88911e04b7e3ade23d4dc67ffcad513878d25250
Merge: 503788d db6e69c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Apr 18 22:19:06 2012 -0700

    Merge branch 'maint/master/pending-windows'
    
    * maint/master/pending-windows:
      (Maint) Mark failing tests as pending on Windows

commit 503788df9d48e51bf8400dc965e85a29ba9e4e1a
Merge: 6872ff4 73f1fc4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Apr 18 22:08:07 2012 -0700

    Merge pull request #679 from jeffweiss/ticket/master/13898_fail_face_on_option_clash
    
    (#13898) Fail Face when option collides w/ setting

commit db6e69c3e98887bbc86f844a540530695593b0e7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Apr 18 22:01:00 2012 -0700

    (Maint) Mark failing tests as pending on Windows
    
    A previous commit removed the fails_on_windows tag but did not add the
    conditional pending block. Additional changes were made to faces
    documentation that do not work on Windows.
    
    This commit just adds a conditional pending block as was done in a
    previous commit, e.g. for the mount type.

commit 6872ff46efb4106073b1c940d51bdba667c97851
Merge: 12c9387 0ecde56
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Apr 18 20:47:04 2012 -0700

    Merge branch 'maint/master/ruby-1.9.3-support' of git://github.com/daniel-pittman/puppet
    
    * 'maint/master/ruby-1.9.3-support' of git://github.com/daniel-pittman/puppet:
      Use conditional pending to block out "fails_on_windows" tests.
      Manually load Win32{API,OLE} for Ruby 1.9.
      Use a platform temporary file instead of a Unix one.
      Use platform path separator in tests.
      Make the base service provider spec work on Windows.
      Accept paths with `~` for `generate` on Windows.
      Make a path absolute on Windows as well as Unix.
      Store Rails logs on physical disk when testing.
      Recover better when `maxgroups` is not implemented.
      Forcibly remove temporary files in tests.
      Fix Rails schema setup on Windows.
      Make `binwrite` emulation work on Windows.
      Use Win32 API atomic replace in `replace_file`
    
    Conflicts:
    	lib/puppet/util/execution.rb
    
    Resolved whitespace conflict

commit 12c9387b7707520bef2a8b8437d116773cc7b04c
Merge: 8a7461a 93d31dd
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 18 19:01:39 2012 -0700

    (#13284) Fix missing env vars during provider command execution
    
    Manual merge and commit of pull request #606, which allows additional static
    environment variables to be added to commands in a provider.  This allows us
    to support the MacPorts provider which fails in an odd way if HOME is not
    available to it.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8a7461aa7d5ad536bac94f6438909887af72f1c6
Merge: b02aa93 6362e53
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Apr 18 17:31:47 2012 -0700

    Merge pull request #616 from jeffweiss/ticket/master/13435_csrs_signed_with_sha1
    
    (#13435) Change default signing digest algorithm

commit c995be16bc9e3ad8dbad9d21b49df76de5b72ea9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Apr 18 15:14:36 2012 -0700

    Evaluate node classes either in top or node scope
    
    Classes that are tied to a node should be preferred to be evaluated in
    the node scope, but if we don't have one then they should be in the top
    scope

commit 0ecde56bc0890a89b66788dc6cb4b800575b534b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 18 12:52:00 2012 -0700

    Use conditional pending to block out "fails_on_windows" tests.
    
    A whole bunch of tests scattered through the system fail on Windows, around
    features that are not supported on that platform.  (They are things that only
    the master does, which an agent-only platform doesn't need to support.)
    
    These were tagged `fails_on_windows` to allow filtering them from rspec runs,
    which is great, but doesn't actually communicate nearly as much useful
    information as it would if we used the "conditionally pending" facilities that
    rspec has supported since 2.3.
    
    That gives us two key things: one, it works automatically based on our
    knowledge of the platform, which means you can't forget to turn off failing
    tests.
    
    Two, it means that if the test starts unexpectedly passing we also get a
    failure, since we should respond to "works when it shouldn't" as seriously as
    "fails when it shouldn't".
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b48d9f8daab4d65f398fcb9ba5f75d6f4cb1e35c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 9 15:01:07 2012 -0700

    Manually load Win32{API,OLE} for Ruby 1.9.
    
    In Ruby 1.8.7 on Windows the Win32API and Win32OLE objects were automatically
    loaded; in Ruby 1.9 there is a general move to get rid of them, and presumably
    one step along the path is that they no longer automatically load.
    
    Explicitly loading them along with other gems we depend on helps solve that
    problem for us automatically.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit cb6c453483ef8d5bc345abe5fbac9e9a35c767a8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 5 22:33:44 2012 -0700

    Use a platform temporary file instead of a Unix one.
    
    The log test used a Unix path, which didn't work on Windows.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b80cbf8186909e2a7bf0c71454424e0fed2414db
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 5 20:06:03 2012 -0700

    Use platform path separator in tests.
    
    When we test path modification, we should use the platform path separator.
    Makes the test pass on Windows.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 30ef0dbcb3d98f28601d820930e30809cb0d659c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 5 19:56:27 2012 -0700

    Make the base service provider spec work on Windows.
    
    The base service provider pushes the status command into an array, and Windows
    has a little heartburn about that vs quoting.  While it isn't clear who is
    right, it is easy to just use an array when creating the test service and have
    things work.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ef27221105861fb80e26f459acd0d3f0dc277c54
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 5 17:49:15 2012 -0700

    Accept paths with `~` for `generate` on Windows.
    
    The `generate` function has a fairly strict definition of what is and isn't
    legal as a command name, in an effort to keep it reasonably sanitary.
    
    On Windows this included `.`, `-`, and any alpha-numeric characters, but not
    the `~` character.  This blew up when faced with an "8.3" generated path -
    something that we legitimately should accept since it can reduce problems
    around spaces in path names.
    
    This changes generate to accept that, and adds a specific test to verify that
    it continues to work as expected.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4bc6deb5dac57ac2a330ec0eb6d13d9c002df81e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 5 17:47:28 2012 -0700

    Make a path absolute on Windows as well as Unix.
    
    When this test was changed the path became relative on Windows, because it
    doesn't have a drive letter.  This fixes that with `make_absolute`.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 110163e061abbae657186c5bfbe6bef45b379880
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 5 17:26:44 2012 -0700

    Store Rails logs on physical disk when testing.
    
    On Unix, we stored the Rails log from our StoreConfigs scratch database in
    `/dev/null`, which is reasonable enough - we don't generally care for them,
    and that works.
    
    On Windows this is harder because their NUL device is magic, and it is hard to
    configure the Rails logs to actually go there.  The system loves to interpret
    it as a random file relative to the current directory and do the wrong thing
    in various test scenarios.
    
    Ultimately, it doesn't matter if we write the logs to physical disk, and we
    already had a scratch directory for the physical database - so we can throw
    the logs there too.
    
    Just another reason to use a tmpfs to back /tmp, I guess.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8a6af16f29740f5513f22e4eae937f0b240565ab
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 4 18:35:06 2012 -0700

    Recover better when `maxgroups` is not implemented.
    
    Puppet tries to bump up the maximum number of supplementary groups for the
    process, which works only on Unix-like platform, in C-like implementations of
    Ruby.
    
    Previously there was a blacklist of platforms where this didn't work, which
    means that as new platforms come along we failed in new and exciting ways.
    
    Instead we can just rescue any failure from invoking the method and carry on,
    which works for any failure mode including "not implemented" nicely.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6c874b406c056beefab4f66f146a7a3390f619b7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 4 14:18:07 2012 -0700

    Forcibly remove temporary files in tests.
    
    We have some test helpers, and they allow us to create scratch files and
    directories that will be politely destroyed at the end of the run.
    
    We also have some tests that result in permissions on files being changed; we
    still want those destroyed, and turning on "force" mode for the delete
    operation gives us what we need with no real cost - we have plenty of other
    safety factors in place.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d565a7fb794cfef6e9fb23a9cb9a503f9093302a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 4 13:14:47 2012 -0700

    Fix Rails schema setup on Windows.
    
    There were several problems with the StoreConfig Rails schema building code on
    Windows, starting with the use of `/dev/null` to discard migration output.
    
    Unfortunately, this was hard to debug - it broke tests silently because of the
    hacking on $stdout, and didn't report anything about failures.
    
    Now, instead of discarding the output we capture it in memory, and report any
    exception we encounter along with the complete textual output at the time of
    failure.
    
    This improves the ability to debug errors in this code, along with making it
    work transparently on any platform.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit fc595ff576eddfe0fb16bc18adf1bd6e2d108ecf
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 30 19:55:00 2012 -0700

    Make `binwrite` emulation work on Windows.
    
    So, it turns out that Ruby on Windows is pretty damn awesome, and that to
    successfully sysopen a file, then use it as an IO, you need to write this:
    
        IO.new(IO::sysopen(filename, mode), mode) {|io| ... }
    
    ...yes, indeed, you need to repeat the mode, and pass the sysopen mode - which
    is completely incompatible with the normal open.  It works when you pass a
    file descriptor from sysopen, though, and gets Ruby convinced to use it right.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 73e302bbf5ab4a6c5513a39070e2c907542775ae
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 30 18:28:15 2012 -0700

    Use Win32 API atomic replace in `replace_file`
    
    The changes to enable Windows support in `replace_file` were not actually
    complete, and it didn't work when the file didn't exist - because of
    limitations of the emulation done on our side, rather than anything else.
    
    Windows has a bunch of quirks, and Ruby doesn't actually abstract over the
    underlying platform a great deal.  We can use the Windows API ReplaceFile, and
    MoveFileEx, to achieve the desired behaviour though.
    
    This adds even more conditional code inside the `replace_file` method to
    handle multiple platforms - but it really isn't very clean.  Better to get
    this working now, then refactor, though.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c2554142d705d9177eadb6f76af0b066b104e93e
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Apr 18 13:47:07 2012 -0700

    (#14036) Add upstart tests
    
    Refactor upstart provider with suggestions from dpittman.
    Add specs for upstart provider.

commit b02aa930a03a282588e81f65e14f47a138a4b9f0
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Apr 17 18:14:57 2012 -0700

    Removed topscope being overridden by node
    
    This seems to have been an unsuccessful attempt at merging top and node
    scope.

commit 73f1fc4014bfeb94d68195fa8538779e2c2cb01b
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Apr 18 09:08:39 2012 -0700

    (#13898) Fail Face when option collides w/ setting
    
    Remove commented out options.

commit dc3bb9fb2546eba61d57f61994e453cd8780e5d1
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Apr 18 01:03:53 2012 -0700

    (#14036) Handle upstart better
    
    Change the upstart provider to better handle the mix of some services
    that are upstart controlled and some that are init script controlled.

commit d62b3c109b17dad3031a8e47c061b101b8f69c1b
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Apr 17 22:36:14 2012 -0700

    (#13898) Fail Face when option collides w/ setting
    
    Change Puppet::Interface::Option to prohibit options on Faces that have
    the same name as an existing Puppet setting.
    Move functionality of Puppet::Util::Setting::StringSetting.setbycli to
    Puppet::Util::Settings and deprecate usage of StringSetting.setbycli
    because StringSetting provides metadata for the definition of setting,
    whereas Setting contains both the value and the origin of the value,
    whether :cli, :memory, :application_defaults, etc.
    Change ca application and certificate Face to properly handle all
    permutations of --dns_alt_names (Puppet setting) and --dns-alt-names
    (Face option).
    Remove "documentation only" options of :modulepath and :environment from
    module Face.
    
    Prior to this commit, Faces could declare options that collided with
    existing Puppet settings, which has caused unexpected behavior for the
    Face.  This commit explicitly prohibits the Face from declaring an
    option which is already a Puppet setting.  This is a potentially
    breaking change for externally developed Faces.

commit d1f7abd7c4bc6bb03343d50f75f5bf6a72dcfae3
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Apr 17 18:41:16 2012 -0700

    (#3757) add acceptance test
    
    This acceptance tests covers the cases around the agent
    --disable/--enable options.  It doesn't cover the
    pidfile case, which will be hard to test without
    running the agent in daemon mode.

commit c1d8a3e13035b460290b04b42f8743019ea0650d
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Apr 17 16:09:13 2012 -0700

    (#3757) cleanup and docs

commit 1b00e7e9befa8f720589c6dc6a3ebbd576b79600
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Apr 17 12:14:02 2012 -0700

    (#3757) Implement json-based lockfiles
    
    This commit does the following:
    
    1. Refactors our main lockfile class to accept a data object
        as an argument to the #lock method.  This data can
        then be retrieved at any time while the lock is held;
        the implementation is to write the hash as JSON to
        the lockfile.  This will allow external tools to
        read it without calling into puppet code.
    2. Refactor pidlock to use the above--but only serializing
        a String (the pid) to the file.
    3. Refactor disabler to use the above, with a Hash containing
        a key/value pair identifying the "disabled" message.
    4. Fix and clean up spec tests.

commit 7484b8aff28ca88df300bd726188e0c3459e592e
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Apr 17 09:32:33 2012 -0700

    (#3757) rename AnonymousFilelock to JsonFilelock
    
    This commit simply renames AnonymousFilelock to
    JsonFilelock.  The behavior hasn't changed at all
    yet, so this is a bit of a suspect commit but
    I wanted to make sure that the git history
    was as clear as possible as to what happened
    here.

commit 93c9217ab40a548a3a71628466d44e7666110ecc
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Apr 16 17:26:14 2012 -0700

    (#3757) Remove 'anonymous' functionality from lockfiles
    
    The agent lockfile mechanisms had a concept of "anonymous"
    built-in to them.  This was necessary to help attempt to
    disambiguate the meaning of the lockfile when we were
    using it for two purposes (administrative-disabling vs.
    run-in-progress).  Since we now have two separate lockfiles,
    this is no longer necessary... and it makes the code
    and API confusing.  This commit removes it, and the
    resulting API feels much cleaner and more straightforward.
    
    The "AnonymousFilelock" class needs to be renamed, but
    I haven't done that yet.  My next commit is going to
    transform it into a JSON-based lockfile class, so I'll
    rename it as part of that commit.

commit 46b6546776598d1761bb4bbffcb504c7908d2426
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Apr 16 16:43:18 2012 -0700

    (#3757) move lockfile path logic into modules
    
    The Puppet::Agent::Locker and Puppet::Agent::Disabler
    had a weird dependency on the existence of some
    lockfile methods in Agent, but Agent didn't use
    those methods anywhere else.  This commit moves
    all of the lockfile related stuff into the modules
    in an attempt to improve encapsulation and clarify
    the API of the modules.

commit a281c4808e2095a15aaec6e6fa022ddb1d20038c
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Tue Apr 17 00:19:28 2012 +0200

    (#13645) Add test cases to tagmail_spec
    
    If puppet is configured to use tagmail as a report, it should not send
    an email if no message match any tag in tagmail.conf
    
    The former behaviour was that puppet opened an smtp connection, did not
    send any mail and then closed the connection again leading to errors on
    the smtp server. The added tests now prove that the send method is never
    even called when no message match any positive tag.

commit a57bc0e248c239795e02cf2cd808d0dd77739594
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Apr 16 15:13:52 2012 -0700

    (#3757) separate settings for agent lockfile paths
    
    There are now two different lockfiles for agents; one
    for indicating that an agent is administratively
    disabled, and one that indicates that an agent run
    is already in progress.
    
    In previous revisions, the paths for these lockfiles
    was being built from a single puppet setting via
    naming convention.  This commit does the following:
    
    1. Creates two settings (:agent_running_lockfile and
    :agent_disabled_lockfile) instead of the previously
    existing one (:puppetdlock).
    2. Removes the Configurer class from the chain of
    command when the Agent class is determining the
    lockfile path.

commit 3a4ac604c85952511fd45c2f0699ce956eda3773
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Apr 16 15:11:03 2012 -0700

    Updating CHANGELOG, lib/puppet.rb for 2.7.14rc1

commit f6ac1bbda292ba2fc206e02fd4810800e07ea41d
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu Apr 5 23:48:40 2012 +0200

    (#13645) Do not open a smtp connection if nothing to report
    
    If tagmail finds out that there are no messages that have to be sent to
    anyone puppet will still open a smtp connection (if smtpserver is set)
    and then close the connection without sending any data. This can lead
    to a lot of syslogmessages on your smtp server like
    
       sendmail: puppet.example.com did not issue MAIL/EXPN/VRFY/ETRN
       during connection to MTA
    
    The fix now does not even enter the send method if there are no reports
    to be sent. This does also prevent unnecessary forking if there are no
    reports.

commit 7e22550553515cc90ae94c5e7c847f15c0313119
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 16 14:28:12 2012 -0700

    Fixed problems caused by 2.7.x merge
    
    Several things had changed on master that caused the automatic merge to
    not catch problems.

commit ee97771d29b7869901aa60f8ba6e7f8b9a7fb3f7
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Apr 16 13:13:02 2012 -0700

    (#3757, #12934) Minor test improvement for agent disable message

commit af12688a32249943e4bd418e2466b2e24e570304
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Apr 16 12:55:31 2012 -0700

    (#3757) re-introduce lockfile changes
    
    This commit re-introduces the lockfile behavior changes that
    were originally merged in to 2.7.x via this pull request:
    
    https://github.com/puppetlabs/puppet/pull/216
    
    It was reverted because of mcollective compatibility issues.
    For more info see:
    
    http://projects.puppetlabs.com/issues/12844
    
    It is now being reintroduced for Telly, but with some minor
    modifications.  See #3757, #12933 and #12934 for details on those.

commit 53b3fe77b8bbf1209485790135215fac7f873f18
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 16 12:37:19 2012 -0700

    Re-apply "Merge remote-tracking branch 'upstream/2.7.x'"
    
    This reverts commit 6d399e087372b77566dd3737d4b444aca2e61050.

commit 6d399e087372b77566dd3737d4b444aca2e61050
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 16 12:32:16 2012 -0700

    Revert "Merge remote-tracking branch 'upstream/2.7.x'"
    
    This reverts commit 7a430815424e053d6e6c5925eef711ca5edd8373, reversing
    changes made to 32172d5d8de35f5cdbc31bce327b3567e078bb83.

commit 7a430815424e053d6e6c5925eef711ca5edd8373
Merge: 32172d5 8908c09
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 16 12:11:14 2012 -0700

    Merge remote-tracking branch 'upstream/2.7.x'
    
    * upstream/2.7.x: (22 commits)
      Removed duplication of compiling a catalog
      Cleaner test for create_resources doing nothing
      Fixing problem caused by activerecord
      Put back require 'puppet' in Puppet::Util
      (#13299) Fix error message when agent is disabled
      Update puppet.spec for rpm packaging
      Fixed old log test to match new autoflush behavior
      Make sure the log file writable
      Default autoflushing of log files to true
      Created test that shows enc warning problem
      (Maint) Fix order-dependent test failure
      (Maint) Don't assume eventlog gem is installed on Windows
      options[:ca_location] is a string not a symbol. Safer to pull Puppet::SSL::Host.ca_location since it is already set correctly.
      (#13204) Don't ignore missing PATH.augnew files
      (#13640) Only agents should use next_agent_run
      Increased test coverage of scoping rules
      Use more descriptive terms for the differing scopes
      Make new scoping look through inherited scopes
      Add tests for mixed inheritence/inclusion
      Remove dynamic option for lookupvar
      ...
    
    Conflicts:
    	lib/puppet/defaults.rb
    	lib/puppet/parser/scope.rb
    	spec/unit/parser/functions/create_resources_spec.rb
    	spec/unit/parser/scope_spec.rb
    	spec/unit/resource/type_spec.rb
    	test/util/log.rb

commit f40cc71e8627abac2f213eb3381226e53ef5ee3a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 28 21:03:08 2012 -0700

    (#12392): Colorize console output on Windows
    
    Previously, `Puppet[:color]` was false on Windows, because the Windows
    console does not support ANSI escape sequences.
    
    The win32console gem converts ANSI color escape sequences into Win32
    console API calls to change the foreground color, etc. If the output
    stream has been redirected to a file, then the gem does not translate
    the sequences, instead preserving them in the stream, as is done on
    Unix.
    
    To disable colorized output specify `color=false` or `--color=false` on
    the command line.
    
    This commit adds a `Puppet.features.ansicolor?` feature that defines
    whether ANSI color escape sequences are supported. On Windows, this is
    only true if the win32console gem can be loaded. On other platforms, the
    value is always true.
    
    The win32console gem will be packaged into the Windows installer, and
    so, `Puppet[:color]` now defaults to true. If the gem can't be loaded,
    then puppet will revert to its previous behavior.

commit 8908c0981423e837517d1c8629df162735dbf7bb
Merge: dff6d9d 0d9e852
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Mon Apr 16 10:48:49 2012 -0700

    Merge remote-tracking branch 'zaphod42/bug/2.7.x/8174-incorrect-warning-about-deprecated-scoping' into 2.7.x
    
    * zaphod42/bug/2.7.x/8174-incorrect-warning-about-deprecated-scoping:
      Removed duplication of compiling a catalog
      Cleaner test for create_resources doing nothing
      Fixing problem caused by activerecord

commit 0d9e85210a6303d393375139cb8515b40653c849
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 16 10:43:12 2012 -0700

    Removed duplication of compiling a catalog
    
    Created a PuppetSpec::Compiler module for helping out testing things
    that want to compile some code to a catalog

commit d67711db34edbb0cf9e1f1b8164dacd8b7f10e33
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 16 10:26:01 2012 -0700

    Cleaner test for create_resources doing nothing
    
    Better expresses that a create_resources with an empty hash is the same
    as doing nothing in the catalog at all

commit 2d3cc63b9d48c4d315361ca4b1db7e05b0ab909a
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Apr 13 17:25:04 2012 -0700

    Fixing problem caused by activerecord
    
    ActiveRecord installed a parent() method that seems to have wreaked
    havoc on the inheritance traversing code in the variable lookup code.
    This uses a new method that achieves the same end, but doesn't rely as
    much on the duck typing (responds to :parent) of the resource.
    
    In addition tests have been added for node inheritance to ensure that
    that inheritance heirarchy is followed as we expect. Also tests that
    tried to fake out things and now have incorrect assumptions have been
    changed to make fewer assumptions about how the system works.

commit dff6d9d6e9c145254d820bb698e74917c5b943d7
Merge: 8f283cc 5178adc
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri Apr 13 17:03:17 2012 -0700

    Merge remote-tracking branch 'haus/update_puppet_spec_for_rpm_2.7.x' into 2.7.x
    
    * haus/update_puppet_spec_for_rpm_2.7.x:
      Update puppet.spec for rpm packaging

commit 8f283cc13bec28b78b7067a84759474754b95708
Merge: 138af47 f1331ba
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri Apr 13 16:22:50 2012 -0700

    Merge remote-tracking branch 'pcarlisle/maint/2.7.x/util_require_puppet' into 2.7.x
    
    * pcarlisle/maint/2.7.x/util_require_puppet:
      Put back require 'puppet' in Puppet::Util

commit 138af47a6b0cf8664dea37ca7f5b97b0cd84366c
Merge: d300bec 27a5eb7
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Apr 13 16:10:16 2012 -0700

    Merge pull request #662 from jeffweiss/ticket/2.7.x/13894_backport_fix_of_12191
    
    (#13894) backport fix of #12191

commit f1331baaaaacb810b141e1358b8def9aae32d627
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Apr 13 11:36:07 2012 -0700

    Put back require 'puppet' in Puppet::Util
    
    There is a load order issue here, and removing the `require 'puppet'` line
    caused some failures. For now, just put it back. The load issues are resolved
    in Telly.

commit d300bec338e75821747e8ffcac64149de5be1ed0
Merge: 849a882 79bf4fa
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Apr 13 14:52:06 2012 -0700

    Merge pull request #671 from pcarlisle/ticket/2.7.x/13299-bad-disabled-error-message
    
    Fix disabled error message

commit 79bf4fa544a28b2e391cced59497a831d1b05747
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Apr 13 12:05:12 2012 -0700

    (#13299) Fix error message when agent is disabled
    
    When attempting to run a disabled agent the user was given an incorrect
    command to re-enable the agent.

commit 5178adcbb8f76a466f954fef29ebc6261ea054ed
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Apr 13 11:59:05 2012 -0700

    Update puppet.spec for rpm packaging
    
    As el4 is now EOL, Ruby 1.8.1 doesn't need to be the minimum Ruby. 1.8.5 is
    available in el5, so that is a sane new minimum. This commit also removes a
    macro that was needed for building rpms on platforms earlier than el5. It also
    updates the changelog and version for the latest release of puppet, 2.7.13.

commit 32172d5d8de35f5cdbc31bce327b3567e078bb83
Merge: e8d8d68 03bf1a6
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri Apr 13 09:17:33 2012 -0700

    Merge remote-tracking branch 'cprice-puppet/bug/master/13929-exit-on-fail-logging'
    
    * cprice-puppet/bug/master/13929-exit-on-fail-logging:
      (#13929) Improve logging for very early failures

commit 849a882d0914e305547d566471f1027102bbfba5
Merge: a30b45f fb96747
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Apr 12 16:15:59 2012 -0700

    Merge remote-tracking branch 'zaphod42/bug/2.7.x/8174-incorrect-warning-about-deprecated-scoping' into 2.7.x
    
    * zaphod42/bug/2.7.x/8174-incorrect-warning-about-deprecated-scoping:
      Fixed old log test to match new autoflush behavior
      Make sure the log file writable
      Default autoflushing of log files to true
      Created test that shows enc warning problem
      Increased test coverage of scoping rules
      Use more descriptive terms for the differing scopes
      Make new scoping look through inherited scopes
      Add tests for mixed inheritence/inclusion
      Remove dynamic option for lookupvar
      Implement newlookupvar() to replace dynamic scope
      Tests for deprecation warnings for dynamic scoping

commit fb967476e6d3aecc9abd23ead3ab00dfc312f4af
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 12 16:12:28 2012 -0700

    Fixed old log test to match new autoflush behavior

commit 03bf1a69d215c71e123bbacfe762afb1908bb035
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Apr 12 16:03:31 2012 -0700

    (#13929) Improve logging for very early failures
    
    This adds a "force_flushqueue" method to the Log class.
    This can be called prior to a system exit, to force
    any queued log messages to be flushed.  If no
    logging destinations have been configured it will
    attempt to create a console destination for the
    queue to be flushed to.

commit a30b45f5ad2994accd43758fdd3d553d1c4dc764
Merge: 1920765 d54100d
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Apr 12 15:15:21 2012 -0700

    Merge remote-tracking branch 'joshcooper/maint/2.7.x/eventlog-order-dependent-test' into 2.7.x
    
    * joshcooper/maint/2.7.x/eventlog-order-dependent-test:
      (Maint) Fix order-dependent test failure

commit 878127f12152242f5c2786f8bd0a85298a95f1de
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 12 15:00:30 2012 -0700

    Make sure the log file writable
    
    The master creates the log file as root and then can't write to it
    anymore after it drops privs.

commit 72d3b564741b916960f520ca3c20733a7efbaaa7
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 12 11:24:57 2012 -0700

    Default autoflushing of log files to true
    
    Log files should automatically write everything to disk eagerly or else
    we could lose data. If a user wants to not autoflush for performance
    reasons they can turn that off.

commit 9711d50a504594f0e12f956cba1db57dee158dbf
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Apr 11 16:45:48 2012 -0700

    Created test that shows enc warning problem
    
    Only when there is an enc in combination with a node statement are
    top-scope, scope, and the enc provided vars incorrectly marked as
    dynamic scoped and warned about.

commit 192076538058f779ee8909680e9659c31b7623c6
Merge: fbad8f0 a7181c8
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Apr 12 14:47:38 2012 -0700

    Merge pull request #658 from pcarlisle/ticket/2.7.x/13640-daemon-infinite-loop
    
    Ticket/2.7.x/13640 daemon infinite loop

commit e8d8d6879cf54881bba1f6887162b78b7ab3c7bb
Merge: 56f6dcc cae71b6
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Apr 12 14:46:44 2012 -0700

    Merge remote-tracking branch 'seanmil/schedule/bug/7639-abbreviated_ranges'
    
    * seanmil/schedule/bug/7639-abbreviated_ranges:
      (#7639) Tests covering edge cases testing schedule boundaries
      (#7639) Assume unspecified time components are zero

commit d54100d44827ef2175e860df623e4ccfeb8aee9a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Apr 12 13:59:34 2012 -0700

    (Maint) Fix order-dependent test failure
    
    Previously, the test assumed that the agent already had a signed
    certificate and would fail trying to connect to the master to retrieve a
    catalog. But this didn't work if the agent didn't have a cert.
    
    This commit changes the test to use a conf directory, whose parents
    don't exist. As a result, puppet will immediately fail to start, but
    report the error, including the path we specified. This way it's not
    dependent on the SSL state, and it doesn't affect the SSL-ness of other
    tests.

commit cae71b699c3293ea6f206ecf15aa96621bd7b726
Author: Sean Millichamp <sean.millichamp@secure-24.com>
Date:   Thu Apr 12 17:34:32 2012 -0400

    (#7639) Tests covering edge cases testing schedule boundaries
    
    Additional unit test covering the edge cases testing just before,
    at, and after the edge of an abbreviated time range specification.

commit fbad8f03c7e8816f5632b74356bd74f484cff194
Merge: bfad88c f531400
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Apr 12 13:42:59 2012 -0700

    Merge pull request #666 from joshcooper/win-service-eventlog
    
    Win service eventlog

commit f53140057b7e9c77f93712b89d748cd3add22052
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Apr 12 13:21:50 2012 -0700

    (Maint) Don't assume eventlog gem is installed on Windows
    
    Previously, the test would fail when run on a Windows box that didn't
    have the eventlog gem installed. Since the Windows agent should be able
    to run without the gem installed, and fall back to writing to a log
    file, this commit changes the test to only run when the gem is
    installed. There is already a test that verifies that we fall back if
    the eventlog feature is not available.

commit bfad88cf7d4c293fd8ae91b5dee1b1618ac3bc6e
Merge: 27e4e9c c01cac9
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Apr 12 11:16:13 2012 -0700

    Merge remote-tracking branch 'domcleal/tickets/2.7.x/13204-aug-boot-enoent-uniq' into 2.7.x
    
    * domcleal/tickets/2.7.x/13204-aug-boot-enoent-uniq:
      (#13204) Don't ignore missing PATH.augnew files

commit 56f6dccc6ee2aedc0d31517ba5c57f542131d7c6
Merge: 9ce967f c9250e4
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 11 21:43:40 2012 -0700

    Merge 2.7.x merge branch into master

commit c9250e4bd08209de416ec9d62c76f2b4123d35ed
Merge: 1cc8403 3eb4577
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Apr 11 21:33:14 2012 -0700

    Merge remote-tracking branch 'cprice-puppet/bug/master/fix-console-logging-for-no-daemonize'
    
    * cprice-puppet/bug/master/fix-console-logging-for-no-daemonize:
      Fix console logging for no-daemonize mode

commit 9ce967f40b63cd68c746be2b5582aeedab307086
Merge: daee520 27e4e9c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 11 20:50:05 2012 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      Fix tempfile cleanup in specs
      Quote strings containing hex numbers when generating ZAML

commit 27e4e9c56aed7eefce54ec932d14363d2b7afae8
Merge: 847b8d1 2957ffe
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Apr 11 20:06:59 2012 -0700

    Merge pull request #665 from cprice-puppet/bug/2.7.x/spec-tmpfile-cleanup
    
    Bug/2.7.x/spec tmpfile cleanup

commit daee52047b977f4023d5e4279aa2456125be11fb
Merge: 1cc8403 8a98229
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 11 17:34:20 2012 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      Fix communication_error acceptance test
      Use :as_platform in the smf service spec
      Use :as_platform in the redhat service spec
      (#13690) add comments to spec_helper
      (#12392) Don't require eventlog gem on non-Windows platforms
      Updating CHANGELOG and lib/puppet.rb for 2.7.13
      (#13690) Update 2.7.x for spec_helper compatibility with external projects
      (#12392) Add eventlog destination and log to it by default on Windows
      Stub mktmpdir and remove_entry_secure in os x package providers
      (#13260) Spec test to verify that mktmpdir is used
      (#12392) Created Windows eventlog message resource dll
      (#13260) Use mktmpdir when downloading packages
      Refactor pkgdmg specs
      Remove telnet Output_log parameter
      Fix for bucket_path security vulnerability
      Removed text/marshal support
      (#12466) unset X-Forwarded-For header
      (#13204) Workaround duplicate Augeas save events
    
    Conflicts:
    	lib/puppet/util/settings.rb
    	spec/spec_helper.rb

commit 2957ffefd603c8fee95e388a1bffae5fa54debd8
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed Apr 11 17:47:04 2012 -0700

    Fix tempfile cleanup in specs

commit 847b8d1f9cfa9ed3a4d1a391fdbdd85b912255da
Merge: 8a98229 49eabd4
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Apr 11 17:14:14 2012 -0700

    Merge remote-tracking branch 'nicklewis/zaml-strings-containing-hex-numbers' into 2.7.x
    
    * nicklewis/zaml-strings-containing-hex-numbers:
      Quote strings containing hex numbers when generating ZAML

commit 8a98229db53477914e5521b45cf148c9cf4a40a6
Merge: 49d878e 2ff6fe4
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 11 17:01:28 2012 -0700

    Merge remote-tracking branch 'cprice/refactor/2.7.x/13690-spec_helper_compatibility' into 2.7.x
    
    * cprice/refactor/2.7.x/13690-spec_helper_compatibility:
      (#13690) add comments to spec_helper
      (#13690) Update 2.7.x for spec_helper compatibility with external projects

commit 3eb45775e5266401d7ef6a55b486f410664cd0da
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed Apr 11 17:00:56 2012 -0700

    Fix console logging for no-daemonize mode
    
    A recent change to how we handle logging for master accidentally
    broke console logging for no-daemonize mode.  This change fixes it.

commit 49d878e907dd2a69f40486ee8215f14470847625
Merge: 4bed502 e2d6915
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed Apr 11 17:00:09 2012 -0700

    Merge pull request #663 from pcarlisle/maint/2.7.x/communication-error-test
    
    Maint/2.7.x/communication error test

commit 1cc840341f3aa8090227535380fcb7cbd54c08a5
Merge: 42c8526 5c80bcb
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Apr 11 16:58:48 2012 -0700

    Merge branch 'maint/master/mac-tempfile-plus'
    
    * maint/master/mac-tempfile-plus:
      (Maint) Allow '+' to appear in generate function commands
      (Maint) Tempfile paths on Mac contain '+' which must be escaped

commit 5c80bcbeedc8bd00c1308bf49927c7bb9097c444
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Apr 11 16:53:07 2012 -0700

    (Maint) Allow '+' to appear in generate function commands
    
    Previously, the posix regex for validating generate function commands
    did not allow '+', however, this character appears in `Tempfile`s on
    Mac.
    
    This commit relaxes the regex to allow for '+' and adds a test for it.
    The '-' character was already allowed.
    
    Reviewed-by: Daniel Pittman <daniel@rimspace.net>

commit b04aac03150b1a8ab414ba6286fbbaee4a00fd50
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Apr 11 16:45:35 2012 -0700

    (Maint) Tempfile paths on Mac contain '+' which must be escaped
    
    Previously, the test was failing on Mac, because Tempfile returns a path
    of the form `/var/folders/9z/9zXImgchH8CZJh6SgiqS2U+++TM/-Tmp-/foo`, and
    performing a regex match with it. Since '+' is a regex metacharacter it
    must be escaped.
    
    Reviewed-by: Daniel Pittman <daniel@rimspace.net>

commit e2d69156fc8e77edef6d500d8c5eee4c86dad4c8
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 11 16:57:10 2012 -0700

    Fix communication_error acceptance test
    
    The assert_equal was failing because the output can have color escape codes.
    Use assert_match instead.

commit 4bed5028b004e49e5123617cedd0f5c4b8733e3b
Merge: cb50578 7d27cd2
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed Apr 11 16:17:38 2012 -0700

    Merge pull request #661 from pcarlisle/maint/2.7.x/redhat-spec-windows-failure
    
    Fix windows spec failures due to absolute_path? changes

commit 27a5eb7441ec35b960d4cbab7b1d79b946804238
Author: Nicholas Hubbard <nick@42pineapples.com>
Date:   Thu Jan 26 10:56:02 2012 -0600

    options[:ca_location] is a string not a symbol. Safer to pull Puppet::SSL::Host.ca_location since it is already set correctly.

commit c01cac95f3985fcfe4404ef2ea6f5167806836ce
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Wed Apr 11 23:46:29 2012 +0100

    (#13204) Don't ignore missing PATH.augnew files
    
    The original fix for #13204 may have masked other potential bugs if the
    PATH.augnew file was missing.  It simply tested for the file existance and not
    only when duplicate save events occurred.
    
    This change de-duplicates the list of save events instead, so if a bug appeared
    where PATH.augnew was genuinely missing, the error wouldn't be squashed.

commit 7d27cd276e01da23e13f500b40c1cc9415907b6e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 11 15:40:57 2012 -0700

    Use :as_platform in the smf service spec
    
    This spec was stubbing features to make Puppet::Util.absolute_path? behave as
    if on posix, but changes in #12101 made that method use File::ALT_SEPARATOR.
    It also introduced the :as_platform context for specs to abstract this type of
    stubbing.

commit 471057e432cc1b688c2ea10550d85fdd23c55670
Author: Dan Bode <dan@puppetlabs.com>
Date:   Wed Apr 11 15:17:33 2012 -0700

    (#13888) Fix self.instances for systemd service provider
    
    Previously, attempting to run puppet resource service
    on Fedora 16 resulted in a stack trace.
    
    This commit resolves the issue so that self.instances should
    work for systemd providers. The issue was that the instances
    method was returning an Array of strings. This commit updates the
    method to correctly return an Array of Provider instances.

commit 876785a5449bbc662d3ef2ddcd7c4b1ad51b422f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 11 15:14:35 2012 -0700

    Use :as_platform in the redhat service spec
    
    This spec was stubbing features to make Puppet::Util.absolute_path? behave as
    if on posix, but changes in #12101 made that method use File::ALT_SEPARATOR.
    It also introduced the :as_platform context for specs to abstract this type of
    stubbing.

commit a7181c81d6cec4ce1ac5dda5b22cb4ea53868092
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 11 14:30:40 2012 -0700

    (#13640) Only agents should use next_agent_run
    
    The new event_loop code in daemon was adjusting the run time based on
    next_agent_run even when not running an agent. This caused the interval to
    always be 0 and peg CPU usage at 100%. We should only make this adjustment if
    there is an agent running. This also somewhat refactors the logic around
    next_event to avoid duplication.

commit cb505786b6c306d6972aaf24cdd62409fa7a001f
Merge: 868d648 8f84207
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Apr 11 14:53:43 2012 -0700

    Merge remote-tracking branch 'MosesMendoza/ticket/2.7.x/12466_unset_X-Forwarded-For_headers_in_supplied_config' into 2.7.x
    
    * MosesMendoza/ticket/2.7.x/12466_unset_X-Forwarded-For_headers_in_supplied_config:
      (#12466) unset X-Forwarded-For header

commit 89e7196761e66c24f5a493aa882904e631f643eb
Author: Sean Millichamp <sean@bruenor.org>
Date:   Tue Mar 13 22:27:58 2012 -0400

    (#7639) Assume unspecified time components are zero
    
    If you abbreviate the time in a range the expected behavior would
    be to assume the unspecified components are zero, but Puppet has
    traditionally used the current time value instead.  This changes
    the behavior so that a time range of "10-11" will always translate
    to "10:00:00 - 11:00:00".

commit 868d648524c52905c9a32cecf20d02dd0620d018
Merge: a6087a4 0498d55
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Apr 11 13:22:20 2012 -0700

    Merge remote-tracking branch 'domcleal/tickets/2.7.x/13204-aug-boot-enoent' into 2.7.x
    
    * domcleal/tickets/2.7.x/13204-aug-boot-enoent:
      (#13204) Workaround duplicate Augeas save events

commit 9aa302fdcae20353675518e62e773e27ba2ae50c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Apr 11 11:24:27 2012 -0700

    Increased test coverage of scoping rules
    
    Added several more cases of how variables are looked up in scopes. Fixed
    a small bug of not issuing a warning from boolean values when we should.

commit 163ab8cbb2f90f89d15176f290c37ba8324a028c
Author: Hunter Haugen <h.haugen@gmail.com>
Date:   Tue Mar 27 16:22:35 2012 -0700

    Use more descriptive terms for the differing scopes

commit 2ddb3d613b0a6ff0227a757b572d029920a77220
Author: Hunter Haugen <h.haugen@gmail.com>
Date:   Tue Mar 27 15:09:45 2012 -0700

    Make new scoping look through inherited scopes
    
    Previous to this commit, Puppet would look through a given scope
    hierarchy and give deprecation warnings when a value was found in either
    an inherited class scope or included class scope, when it should only
    give the warning in the case of the included class scope.
    
    This commit makes the new-scope behavior also examine inherited scopes,
    though continuing to ignore included scopes.

commit b519e2464932563548e7abe216c4903e4d90e389
Author: Hunter Haugen <h.haugen@gmail.com>
Date:   Tue Mar 27 15:03:08 2012 -0700

    Add tests for mixed inheritence/inclusion
    
    The preexisting tests didn't fully test the various forms of inheritence
    and inclusion. This commit adds tests for finding variable values
    through:
    class local scope
    class inheritence scope
    class inclusion scope (with deprecation warning)
    class inheritence+inclusion scope (finding through inheritence)
    node scope
    top scope

commit 48bce6b9f30605254c0481346b3c263c7262a74b
Author: Hunter Haugen <h.haugen@gmail.com>
Date:   Wed Mar 21 12:23:57 2012 -0700

    Remove dynamic option for lookupvar
    
    The :dynamic option for lookupvar() was added in an attempt to track
    dynamic vs non-dynamic scoping in a single pass. This is no longer used.

commit 2e78aad2a3f2b67167f82f36c6315bda2bcba7de
Author: Hunter Haugen <h.haugen@gmail.com>
Date:   Thu Mar 15 17:19:47 2012 -0700

    Implement newlookupvar() to replace dynamic scope
    
    lookupvar() is shifted to oldlookupvar() and newlookupvar() is added. An
    intermediary lookupvar() function will query both and if the answer
    varies then it will throw a deprecation warning for dynamic scoping. The
    intermediary and old lookup functions may be removed at a later date,
    thus completing the transition.
    
    A test case has been introduced to detect dynamic scoping and the
    deprecation warning. Slight modifications to the spec test scoping
    objects were made to bring them more in line with the real world.
    
    All scope tests pass. When oldlookupvar is replaced, the deprecated
    dynamic scoping test case will fail and all other scope test cases will
    pass.

commit 9c9458668bc9454f78a8adeefd31b1eae4f1c642
Author: Hunter Haugen <h.haugen@gmail.com>
Date:   Thu Mar 15 17:17:25 2012 -0700

    Tests for deprecation warnings for dynamic scoping
    
    The tests for dynamic scoping were non existent and thus dynamic scoping
    was implemented incorrectly. This allows us to check for correct
    warnings.

commit d174a9f28a66819bedfead803765d22e2c04411a
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed Apr 11 12:00:43 2012 -0700

    Updating CHANGELOG and lib/puppet.rb for 2.6.16

commit 65446c941fd4e4d0418d4f618518620bb6a66b67
Author: R.I.Pienaar <rip@devco.net>
Date:   Wed Jan 11 17:17:43 2012 +0000

    Revert "(#5246) Puppetd does not remove it's pidfile when it exits"
    
    This reverts commit e0e31d571f38a3f0436e43ea6662f6d6c1e525c5.
    
    This commit caused spurious error messages when running `puppet agent -t` if
    the agent was also running daemonized (#12188). It would display an error of
    unable to remove pidfile, but the error would not affect the exit code.

commit 2ff6fe4ea02a2eab57821c34e1385675ad706bb2
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Apr 9 16:08:36 2012 -0700

    (#13690) add comments to spec_helper

commit f1ff234ae0511804c7e6579e6bf463166dd23c4c
Merge: b00f860 f240a95
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Apr 10 18:26:55 2012 -0700

    Merge branch 'security/2.6.14/filebucket-bucket-path-security' into 2.6.x

commit a6087a46a67b14277b5ce257da2df015ddf136da
Merge: 6b5478e bc797f4
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Apr 10 18:26:32 2012 -0700

    Merge branch 'security/2.7.13/filebucket-telnet-macos-security' into 2.7.x

commit 42c8526aca72a4205358f8e8fdab20f48417106b
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Apr 10 15:55:16 2012 -0700

    (documentation) Change README.md to use backtick
    
    The single quotes of the ruby oneliner was a bit unclear. This commit
    changes them to backticks to make it much more clear that it's a command
    to be run.

commit 6b5478e43bb01f27a0f86894ef9b973aea92b69c
Merge: dce623c 100f42c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 10 14:39:40 2012 -0700

    Merge pull request #650 from joshcooper/maint/2.7.x/eventlog
    
    Don't require eventlog gem on non-Windows platforms

commit 100f42c2e7cd6b25b3d1f44386214f98559cf591
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Apr 10 14:32:23 2012 -0700

    (#12392) Don't require eventlog gem on non-Windows platforms
    
    Commit `8d2ff89` attempted to require the windows eventlog gem within a
    `:if => Puppet.features.microsoft_windows?` describe block, but I forgot
    that requires within the block are still evaluated on non-Windows
    platform, although the tests themselves won't be run.
    
    This commit just conditionally requires the gem.

commit 25018ef96c9980ae51badf2ac3a46767600b779d
Merge: eadbf49 7d253f1
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Tue Apr 10 14:22:44 2012 -0700

    Merge remote-tracking branch 'seanmil/schedule/feature/13054_rangespan-rebase'
    
    * seanmil/schedule/feature/13054_rangespan-rebase:
      Tidy up ScheduleTest includes in schedule spec tests
      (#13054) Fix spanning days with day-of-week in schedule
      (#13054) Add day-spanning support to schedule's range parameter

commit dce623c007e08b894cfec2188c9ecef5b99bf3bc
Merge: c210584 8d2ff89
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Apr 10 11:27:07 2012 -0700

    Merge branch 'ticket/2.7.x/12392-eventlog' into 2.7.x
    
    * ticket/2.7.x/12392-eventlog:
      (#12392) Add eventlog destination and log to it by default on Windows
      (#12392) Created Windows eventlog message resource dll

commit bc797f48dcbc4d3ffa023010a0eb2b131df96eef
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Apr 10 11:26:34 2012 -0700

    Updating CHANGELOG and lib/puppet.rb for 2.7.13

commit eadbf49397324527de9f7d88cf463138e0a45be8
Merge: 89a485b c210584
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Apr 10 11:13:59 2012 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      (maint) Remove unnecessary step from puppet module build help
      (#13659) Convert fact values to string when searching database
      (#13649) Restrict module name matching
      (#13643) Make the use of FileUtils.rm_rf secure
      (#13642) Move search notice message
      (#13639) Don't send errors directly to stderr
      (#13638) Add SemVer#pre function
      (#3581) Stop forking around: Add fork helper method
      (#13397) fix gem provider ensure=>latest bug
      (#12101) Make Puppet::Util::absolute_path? usable in autoloader
      (#12101) Add shared context for specs to imitate windows or posix
    
    Conflicts:
    	lib/puppet/util.rb
    	spec/unit/util_spec.rb

commit f240a95693e3e8b3f26dfb60ba26f36c5b5a0449
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Apr 10 11:13:44 2012 -0700

    Updating CHANGELOG and lib/puppet.rb for 2.6.15

commit b6ee08ac0c94f8ab06b20f095be17814ae3ba768
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Apr 9 12:52:36 2012 -0700

    (#13690) Update 2.7.x for spec_helper compatibility with external projects
    
    This basically entails:
    
    * Introducing a new class Puppet::Test::TestHelper that will contain
      basic setup / teardown methods, which external projects can use to
      make sure that puppet is initialized properly during testing.
    * Remove or abstract the Puppet::Util::Settings#initialize_for_tests /
      clear_for_tests methods in P::U::S
    * Modify puppet core spec_helper.rb to use the new API.

commit 89a485bbabf5b65bc58b358a6d31945f53e6bb61
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 10 09:30:20 2012 -0700

    Bring Nagios module back into the core.
    
    This reverts commit ec1bcdd537d7d8d180c36d16c46e8daa257b7bcc.
    
    We didn't actually have internal agreement that this should be removed to a
    module, despite my belief, so this merge shouldn't have gone ahead.

commit c210584675f30d93ec63933b938d2255f3a8c6f5
Merge: 1849f27 e24755d
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 9 20:11:19 2012 -0700

    Merge pull request #614 from cprice-puppet/bug/2.7.x/13397-ensure-latest-multiple-gems
    
    Bug/2.7.x/13397 ensure latest multiple gems

commit 1849f27023928a092012e782d2c74301d0034f9b
Merge: 3afe751 7e78094
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 9 20:00:59 2012 -0700

    Merge pull request #639 from pcarlisle/ticket/2.7.x/13659-postgres-integer-facts
    
    (#13659) Convert fact values to string when searching database

commit 7a402eeab9610de6288cb84f85ab92c052790066
Merge: a199c23 0b4cbc3
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 9 20:00:27 2012 -0700

    Merge pull request #612 from zaphod42/refactor/remove-unused-fileserver
    
    Removed unused code for FileServer

commit 3afe751b62d20d4c6d1d153bbab06a12208855ab
Merge: 04545eb 1306611
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 9 19:57:48 2012 -0700

    Merge pull request #649 from jeffmccune/maint/2.7.x/puppet_module_build_help
    
    (maint) Remove unnecessary step from puppet module build help

commit 04545eb125d693c6f733442468533855d9ae9345
Merge: cfc631f 3f28268
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 9 19:56:54 2012 -0700

    Merge pull request #611 from pcarlisle/ticket/2.7.x/12101-reapply-autoload
    
    Ticket/2.7.x/12101 reapply autoload

commit cfc631f9c2ca499cc59d732bbb16101c972dec3b
Merge: 30cb4a4 e7d3911
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 9 19:26:56 2012 -0700

    Merge pull request #630 from kelseyhightower/ticket/2.7.x/13649_restrict_module_matching
    
    (#13649) Restrict module name matching

commit 30cb4a43049cb48f6024fa56b36573e2f74a82af
Merge: ffc31bf 45f8009
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 9 19:16:44 2012 -0700

    Merge pull request #625 from kelseyhightower/ticket/2.7.x/13638_add_pre_funciton
    
    (#13638) Add SemVer#pre function

commit ffc31bf687b0edf14d208de30e9bfb77e5cd0f83
Merge: 8a4a51c 9cbda49
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 9 19:16:03 2012 -0700

    Merge pull request #629 from kelseyhightower/ticket/2.7.x/13643_make_rm_rf_secure
    
    (#13643) Make the use of FileUtils.rm_rf secure

commit 8a4a51c08119fbf1c55c6d90130ad4f2c3334513
Merge: 0b13a37 6819cf3
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 9 19:14:14 2012 -0700

    Merge pull request #627 from kelseyhightower/ticket/2.7.x/13642_move_search_notice
    
    (#13642) Move search notice message

commit 0b13a37ff4da055cb1425b9d79f642bed9ac96c2
Merge: aa267ef 1b810b1
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Apr 9 19:01:54 2012 -0700

    Merge pull request #620 from kelseyhightower/kelseyhightower/ticket/2.7.x/3581_fork_that
    
    (#3581) Stop forking around: Add fork helper method

commit 130661156198bef0cd3f4e93427918cfc6f1f97c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 9 16:22:16 2012 -0700

    (maint) Remove unnecessary step from puppet module build help
    
    Without this patch the `puppet help module build` command says to make
    sure the module directory is in the form of <username>-<modulename>.
    This is an unnecessary step because it isn't actually necessary anymore.
    It's a problem because we want to make things appear to be as simple as
    they actually are, not more complex than they need to be.
    
    I just tested this with a module existing at /vagrant/modules/jenkins
    (no symlinks) using the command: `puppet module build .`
    
    Everything worked out fine.  Puppet correctly reads the Modulefile and
    figures out the author name.
    
    This is a documentation only change.

commit a199c23baffcd5cdcff27d74cf043317baef0ab0
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 9 15:00:40 2012 -0700

    Fix loading of faces in specs
    
    Iterating over faces outside of a test causes problems because the run mode is
    not set properly. Moving this inside of actual test cases allows the spec
    helper to fake any necessary setup.
    
    Changes due to Chris Price

commit aa19f5cf75c65a5a869fe82aa31a59ddbd5112e7
Merge: d464652 5ab3ec3
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Apr 9 14:40:51 2012 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      (#9167) Do not send email when nothing changes
      [#13686] Fix directoryservices ShadowHashData code
      Fixup tests to work on CentOS 5
      fix bug in Util#symbolizehash!
      (#13567) Fix create_resources name parameter bug
      (#13636) Update Module Face copyright date
      (#13737) Swap build_tree and format_tree method names
      (#9167) Do not send email when nothing changes
      Add Module Tool
      Make core changes needed for the puppet module tool
      (#13367) Patch SemVer to permit ranges including pre-release components.
      Monkey patch FileUtils.mv in Ruby 1.8.5
      (#1076) Show warning if an empty group is specified
      Maint: Remove unused mock objects in user spec
      Maint: Use real objects in user spec
      Maint: Add a real provider class to user spec
      Maint: Remove unused variable in user spec
    
    Conflicts:
    	lib/puppet/util/monkey_patches.rb
    	spec/unit/type/resources_spec.rb
    	spec/unit/type/user_spec.rb

commit aa267eff69dd5ce6e840bc2aa9592592ea7681d8
Merge: 5ab3ec3 28531f8
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Mon Apr 9 14:26:59 2012 -0700

    Merge remote-tracking branch 'kelseyhightower/ticket/2.7.x/13639_use_puppet_logging_not_stderr' into 2.7.x
    
    * kelseyhightower/ticket/2.7.x/13639_use_puppet_logging_not_stderr:
      (#13639) Don't send errors directly to stderr

commit 5ab3ec3d340189db827fac7586b0b78828112d97
Merge: 4ad37dc a26ff16
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Apr 9 13:11:10 2012 -0700

    Merge branch 'bug/2.7.x/13686_DS_Fix' into 2.7.x
    
    * bug/2.7.x/13686_DS_Fix:
      [#13686] Fix directoryservices ShadowHashData code

commit 4ad37dc38dda264d67609795c55dea9644d53aaf
Merge: c8db033 a2990a8
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Mon Apr 9 12:53:59 2012 -0700

    Merge remote-tracking branch 'kelseyhightower/ticket/2.7.x/13637_rename_build_tree_to_format_tree' into 2.7.x
    
    * kelseyhightower/ticket/2.7.x/13637_rename_build_tree_to_format_tree:
      (#13737) Swap build_tree and format_tree method names

commit c8db033b5c881b0869a8f89bbbc0973035f3271a
Merge: 7afcb04 245c6b7
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Mon Apr 9 12:03:12 2012 -0700

    Merge remote-tracking branch 'kelseyhightower/kelseyhightower/ticket/2.7.x/9167_tagmail_report_sends_email_when_nothing_happens' into 2.7.x
    
    * kelseyhightower/kelseyhightower/ticket/2.7.x/9167_tagmail_report_sends_email_when_nothing_happens:
      (#9167) Do not send email when nothing changes

commit 7afcb0471eb375d9f5651864e197ab11d9019da5
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Apr 3 09:19:28 2012 -0400

    (#9167) Do not send email when nothing changes
    
    Without this patch the tagmail report sends an email even when there are
    no changes or resources out of sync. This has the undesired effect of
    sending emails after every Puppet run.
    
    When there are no changes or out of sync resources, tagmail logs a
    notice stating the fact and skips processing logs and sending emails.
    
    This patch includes new spec tests for the changes in behavior.

commit a26ff1648b48f9aaa7e4a312d5e8f9acbf4e767a
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Mon Apr 9 11:44:11 2012 -0700

    [#13686] Fix directoryservices ShadowHashData code
    
    Previously, Puppet wouldn't set a password if the ShadowHashData key was
    missing from the User's plist.  This change will handle this situation,
    create the key itself, and proceed with setting the password.

commit 7d253f1c09aedd2583bfc378dca5312f1d362a39
Author: Sean Millichamp <sean@bruenor.org>
Date:   Mon Mar 19 14:29:26 2012 -0400

    Tidy up ScheduleTest includes in schedule spec tests
    
    Per Kelsey Hightower's suggestion, move the multiple
    'include ScheduleTesting' statements in the specfile to the parent
    parent describe block.

commit 23f803733c6371d8b75d7f4b87679f51176dd1fa
Author: Sean Millichamp <sean@bruenor.org>
Date:   Sat Mar 10 16:35:24 2012 -0500

    (#13054) Fix spanning days with day-of-week in schedule
    
    Part 2, adjust for the special adjustments needed to properly
    handle the day-of-week parameter when spanning days.

commit 244c16b74a2713dfa72a60b1f6530176fce841ad
Author: Sean Millichamp <sean@bruenor.org>
Date:   Sat Mar 10 16:29:56 2012 -0500

    (#13054) Add day-spanning support to schedule's range parameter
    
    Allow schedule ranges to span the midnight boundary properly.  For
    instance, for a 9 PM to 3 AM change window you can simply state
    "range => '21:00 - 03:00'" instead of
    "range => ['21:00 - 23:59', '00:00 - 03:00' ]"

commit 8ceaaf002a5562b6bd78541a25762e1e7740f933
Merge: 537488f b85cdc9
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Apr 6 15:04:18 2012 -0700

    Merge pull request #638 from zaphod42/bug/2.7.x/13655-test-failures-on-centos5
    
    (#13655) test failures on centos5 on 2.7.x branch

commit b85cdc9d6216930366e9de7da73222da002db36f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 5 12:36:53 2012 -0700

    Fixup tests to work on CentOS 5
    
    Several tests were failing because the depended on being able to find a
    user provider. On CentOS 5 this didn't work because the provider that
    should be used (the useradd provider) is not considered suitable when it
    gets run as a non-privaleged user because the useradd and related
    commands are not executable.
    
    The user_spec.rb and group_spec.rb test didn't need the tests that were
    failing because they were testing functionality that is already tested
    by the Type base class's own tests.
    
    The ral_spec.rb needed more mocking of the things it was using in order
    to abstract it from the system on which it is running.
    
    The resources_spec.rb got a small cleanup and was fixed by reordering
    the data loading in Puppet::Type::Resources so that it doesn't load
    information about a user until it needs to.
    
    Conflicts:
    
    	spec/unit/type/resources_spec.rb

commit 7e780946f76e499f18cae1d41beae0f5d25a8af7
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Apr 6 14:35:15 2012 -0700

    (#13659) Convert fact values to string when searching database
    
    When querying inventory_facts we need to treat the fact value as a string,
    since it's stored as text in the database. This causes an error to be raised
    on postgres.

commit d4646526905f78ad4e2027c5b1d069d446d926b4
Merge: 581539b 2d64313
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Apr 6 13:20:08 2012 -0700

    Merge pull request #637 from zaphod42/bug/master/13655-test-failures-on-centos5
    
    (#13655) Fixup tests to work on CentOS 5

commit 2d64313c63edb3a4f6adba4560c65c147fa0baa3
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Apr 5 12:36:53 2012 -0700

    Fixup tests to work on CentOS 5
    
    Several tests were failing because the depended on being able to find a
    user provider. On CentOS 5 this didn't work because the provider that
    should be used (the useradd provider) is not considered suitable when it
    gets run as a non-privaleged user because the useradd and related
    commands are not executable.
    
    The user_spec.rb and group_spec.rb test didn't need the tests that were
    failing because they were testing functionality that is already tested
    by the Type base class's own tests.
    
    The ral_spec.rb needed more mocking of the things it was using in order
    to abstract it from the system on which it is running.
    
    The resources_spec.rb got a small cleanup and was fixed by reordering
    the data loading in Puppet::Type::Resources so that it doesn't load
    information about a user until it needs to.

commit 581539bc35fc79037bcc992035e571632fa88445
Merge: b6d0f55 ec1bcdd
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Apr 6 11:29:47 2012 -0700

    Merge pull request #598 from jeffweiss/ticket/master/4146_move_nagios_to_module
    
    (#4146) Refactor Nagios to module

commit b6d0f5591aa9c83652ec8976c4e43369e0a8df99
Merge: d8a0ab0 ddbb984
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Apr 6 11:05:34 2012 -0700

    Merge pull request #636 from cprice-puppet/refactor/master/12396-dry-up-timeout
    
    Refactor/master/12396 dry up timeout

commit ddbb984380cfeacdb006a7f1661d2b4e534293d3
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Apr 6 10:46:33 2012 -0700

    (#12396) dry up configtimeout usage
    
    This commit simply addresses the comments on pull request #450.

commit 982b53ac614fc6d3abd0d63dd4c2f8b127554f62
Author: Jeff Weiss <jeff.a.weiss@gmail.com>
Date:   Thu Feb 2 15:56:02 2012 -0800

    (#12396) DRY up self.timeout
    
    Move duplicate definitions of self.timeout into newly created module.

commit d8a0ab06ac15eea479f17732e0792f994d05ccfc
Merge: b19931a 59b0757
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Apr 6 09:46:21 2012 -0700

    Merge pull request #535 from eshamow/tickets/master/7801_include_should_accept_arrays
    
    (#7801) Modify include function to accept arrays

commit 537488f1a7e4d129a972951e3f9080dfed03a451
Merge: ca22046 c6d656a
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Apr 6 09:33:09 2012 -0700

    Merge pull request #528 from stschulte/ticket/2.7.x/1076
    
    #1076: User Type: Show warning if an empty group is specified

commit 59b0757a3748cad625e53b29f4692c451610c2b5
Author: Eric Shamow <eric@puppetlabs.com>
Date:   Tue Feb 28 15:02:31 2012 -0500

    (#7801) Modify include function to accept arrays
    
    When an array of classes is passed to the :include function, it
    currently attempts to wrap the array in another array, and then pass the
    entire array through as a single argument, causing an error.  This
    commit calls flatten against the array before sending it through,
    following the pattern of :realize, and enabling arrays to be passed as
    well as comma-separated or individual class values.

commit ca22046e76967a25c61a215cff41b9a23d300bc5
Merge: ff444aa fc2964f
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Apr 5 17:28:10 2012 -0700

    Merge pull request #635 from cprice-puppet/bug/2.7.x/util_symbolize_hash
    
    fix 2.7.x specs on ruby 1.9

commit fc2964f9a801b9d6534fd520fec4d35dd7b680e6
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Apr 5 17:23:45 2012 -0700

    fix bug in Util#symbolizehash!
    
    The method Puppet::Util.symbolizehash! was modifying a hash
    during iteration; this is (sanely, thankfully) not legal
    in ruby 1.9.  This has been broken in our code for quite
    some time, but we hadn't noticed because nothing was calling
    this method.  A recent commit introduced code that calls it,
    highlighting the bug, which is fixed by this commit.

commit b19931ad8b0dc7fdcb2444b7a4a7f891a3ed36da
Merge: e05680e dbb8e72
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Apr 5 15:20:58 2012 -0700

    Merge pull request #621 from puppetlabs/integration/master/13588-log-dir-perms
    
    fix master acceptance tests

commit ff444aa32a6140bfcd6e0a20e3a7cbd321b70aed
Merge: da765a8 46d8973
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Apr 5 15:08:33 2012 -0700

    Merge pull request #633 from cprice-puppet/bug/2.7.x/13567_fix_create_resources_name_param
    
    (#13567) Fix create_resources name parameter bug

commit e05680ed263f70deb3b23106c9bb8338f4c5d25a
Merge: ba112e9 6fc9757
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Apr 5 14:45:59 2012 -0700

    Merge pull request #632 from cprice-puppet/cleanup/master/ssh_authorized_keys_whitespace
    
    cleanup whitespace, ala pull request #527

commit 6fc975732e28d577e5145e737006aaeb55751b3d
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Apr 5 14:41:44 2012 -0700

    cleanup whitespace, ala pull request #527

commit 46d8973ba39d6773e6f7602fbee5bfc1b69a35e1
Author: Reid Vandewiele <marut@cat.pdx.edu>
Date:   Sat Mar 31 15:21:33 2012 -0700

    (#13567) Fix create_resources name parameter bug
    
    Previously, the create_resources function would inconsistently override
    name parameters provided by the user, setting the name parameter equal
    to the resource title. This commit modifies create_resources such that
    when provided, user-supplied name parameters are used correctly and
    consistently.
    
    Add name parameter tests for create_resources.

commit da765a867cd1b97f64bb114c7381a594e9675075
Merge: d88f3e7 bca4849
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Apr 5 12:26:29 2012 -0700

    Merge pull request #623 from kelseyhightower/ticket/2.7.x/13636_update_module_face_copyright_date
    
    (#13636) Update Module Face copyright date

commit 8d2ff895175346ca419e586f6352ec7f8cfdcf06
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Apr 4 11:55:03 2012 -0700

    (#12392) Add eventlog destination and log to it by default on Windows
    
    Previously, puppet logged by default to syslog or a file.
    
    This commit changes puppet to log to syslog, the eventlog, or a file, in
    that order. Puppet uses `Puppet.features.eventlog?` to determine if the
    Windows eventlog is available on the current platform (which requires
    the win32-eventlog gem). If the feature is false, then the eventlog
    destination is not created, and the next suitable destination is used.

commit bca484949000ce13753294ac1d08cc40a8a8dc83
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Wed Apr 4 21:18:31 2012 -0400

    (#13636) Update Module Face copyright date
    
    Quite a bit of code changed for the module tool in 2012, updating the
    copyright to reflect that fact.
    
    This patch also loosens the restrictions on what is considered a valid
    copyright date; removing the limited of 2011 to 20xx. Sucks for the
    developer in the year 2100.

commit e7d39119b3f97a23da0fb4949b02d99f7b9233a8
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Thu Apr 5 11:52:47 2012 -0400

    (#13649) Restrict module name matching
    
    Before this patch the regex used to match valid module names in
    `Puppet::Node::Environment#modules_by_path` matches invalid module
    names.
    
    This patch replaces the current regex pattern with one more accurate.
    This patch also includes updated specs to cover this change in behavior.

commit 9cbda4997d6456f74006f6b0c4691f7ec4292805
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Thu Apr 5 09:37:15 2012 -0400

    (#13643) Make the use of FileUtils.rm_rf secure
    
    Use the `:secure` option with the `FileUtils.rm_rf` method to
    avoid a TOCTTOU (time-of-check-to-time-of-use) local security
    vulnerability.

commit 6819cf3480d892091faa01f768b1888f17830155
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Thu Apr 5 08:57:06 2012 -0400

    (#13642) Move search notice message
    
    Currently the PMT search action assumes the searcher implementation will
    connect to the HTTP server defined by
    `Puppet.settings[:module_repository]` when searching for modules on the
    Forge. The server defined by `Puppet.settings[:module_repository]` is then
    used in a message printed on the console: `Searching #{server} …`. This
    is a little too close to the implementation and the notice has been
    moved closer to where the search is actually taking place.

commit 28531f814a9736bf1fd84a1324b4ab0a7baf5c3d
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Thu Apr 5 01:14:16 2012 -0400

    (#13639) Don't send errors directly to stderr
    
    Use `Puppet#err` and not `$stderr` to log error messages.

commit 45f8009034fb89ccf663aae089c84700137be903
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Thu Apr 5 00:18:18 2012 -0400

    (#13638) Add SemVer#pre function
    
    Before this patch the `SemVer#[]` method uses a `proc` to pre-process
    version strings, which seems a bit unnecessary when a method would do.
    
    This patch replaces the `proc` with the `SemVer#pre` method and updates
    the related specs.

commit a2990a83f880cd422d1ebc96b6aa750e893fce3d
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Wed Apr 4 21:56:00 2012 -0400

    (#13737) Swap build_tree and format_tree method names
    
    The `Puppet::Module::Tool.build_tree` and
    `Puppet::Module::Tool.format_tree` method names do not match their
    behavior. Both methods actually do the inverse,
    `Puppet::Module::Tool.build_tree` formats a tree for output and
    `Puppet::Module::Tool.format_tree` builds the tree that is passed to
    `Puppet::Module::Tool.build_tree`. Even this commit message is
    confusing.
    
    This patch swaps the names and updates the related specs.

commit 1f58ea69847ee6ce7a8b9be255614f8f7384c209
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 4 13:36:06 2012 -0700

    Stub mktmpdir and remove_entry_secure in os x package providers

commit f7829ec1f1b2c3def8e0eda09c22c3c1fed3a27f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Apr 4 13:36:06 2012 -0700

    Stub mktmpdir and remove_entry_secure in os x package providers

commit 7ac1ec8f75db05c55037556bdbb0be8ded9eb53e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Apr 3 16:17:18 2012 -0700

    (#13260) Spec test to verify that mktmpdir is used

commit b7553a555774d687d2c96f5a2d7b430fbf49c130
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Apr 3 16:17:18 2012 -0700

    (#13260) Spec test to verify that mktmpdir is used

commit f0625ef99ac24817cf3a2c0f6d5f8184b2d0145d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Apr 3 23:35:37 2012 -0700

    (#12392) Created Windows eventlog message resource dll
    
    This commit adds the ability to build a message resource dll used to
    display localized eventlog messages on Windows. Windows eventlog expects
    that each log event has a unique id, which can then be localized in a
    resource dll, one for each locale. However, puppet does not yet support
    this, see #11076. So this commit defines three puppet event ids
    corresponding to the three levels of Windows events that we support
    (info, warn, and error).
    
    In order to build the dll, you need the Windows SDK installed that
    contains the mc, rc, and link utilities.

commit dbb8e723a1c884209075dcc6be18dbf91e132d66
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Apr 3 18:37:02 2012 -0700

    fix pluginsync acceptance tests

commit e5618b9f3da226468e9de2b6a0be95e4b5dd1a2f
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Apr 3 14:26:34 2012 -0700

    fix acceptance test that was relying on implicit 'apply'
    
    As of Telly, we will no longer support the behavior of
    puppet defaulting to 'apply' if you do not provide a
    subcommand explicitly.  This commit fixes a test that
    was relying on that behavior.

commit e7414d691497797996d7d4141c7c8745b5e1bf54
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Apr 3 13:20:32 2012 -0700

    (#13588) fix permissions on log dir
    
    When running puppet master as root, the log dir needs to
    be permissioned as the service user (usually 'puppet').
    This behavior had been inadvertently changed in the
    work relating to #7749, but is fixed herein.

commit c2c082381895954c25357b1ca87ad86ab3532c5c
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Apr 3 16:30:51 2012 -0700

    (#13584) in daemon mode, master can swallow errors during startup
    
    This commit delays the closing of stdin/stdout/stderr to a time
    a little later in the daemon startup process, in hopes of providing
    a larger window in which the console is available as a fallback for
    logging errors.

commit 46e8dc06aa31426ec3bf5203e46107d72a9ba398
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Mar 23 12:20:40 2012 -0700

    (#13260) Use mktmpdir when downloading packages
    
    This fixes a security vulnerability in the appdmg and pkgdmg providers where
    they would curl packages directly into /tmp and the install them, allowing an
    attacker to craft a symlink and overwrite arbitrary files or install arbitrary
    packages.

commit b36bda9ceb14b746a5b37553bff15aaeec7b20fc
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Mar 16 14:44:44 2012 -0700

    Refactor pkgdmg specs
    
    Refactor to a more current spec style. Several of these specs didn't actually
    test anything. They have either been deleted or made more specific.

commit 91e7ce478649490d87684661f79d70b5ca46ddd0
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Apr 3 11:34:33 2012 -0700

    Remove telnet Output_log parameter
    
    The puppet telnet util opened an output log by default with a predictable name.
    This left the log open to a write-through symlink attack as the puppet user.
    This fix addresses that by removing the Output_log parameter from the
    Net::Telnet::new call. Without the parameter, Net::Telnet defaults to no output
    logging. The same is true for the dump_log parameter. The spec test for telnet
    has been updated to test and ensure that no files are opened during connect. It
    also stubs the TCPSocket for the telnet connection so that no connection is
    attempted if @transport.connect isn't stubbed.

commit 0d6d29933e613fe177e9235415919a5428db67bc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 2 11:47:17 2012 -0700

    Fix for bucket_path security vulnerability
    
    This is a fix for Bugs #13553, #13418, #13511. The bucket_path parameter
    allowed control over where the filebucket will try to read and write to.
    The only place available to stop this parameter is in the resolution
    from a URI to an indirectory terminus. The bucket_path is used
    internally for local filebuckets and so cannot be removed completely
    without a larger change to the design.

commit 19bd30a35c0dcf01d58934413d7dabb7edfabd3f
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 2 10:44:26 2012 -0700

    Removed text/marshal support
    
    Removing text/marshal support in order to close the security
    vulnerability described in Bug #13552.

commit 018020095cdaa39a869f0b0fede97e5f4f36d973
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Mar 16 14:44:44 2012 -0700

    Refactor pkgdmg specs
    
    Refactor to a more current spec style. Several of these specs didn't actually
    test anything. They have either been deleted or made more specific.
    
    Conflicts:
    
    	lib/puppet/provider/package/pkgdmg.rb

commit c51447dfa81c9751fdc7663e0e91a9c9238abcaa
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Mar 23 12:20:40 2012 -0700

    (#13260) Use mktmpdir when downloading packages
    
    This fixes a security vulnerability in the appdmg and pkgdmg providers where
    they would curl packages directly into /tmp and the install them, allowing an
    attacker to craft a symlink and overwrite arbitrary files or install arbitrary
    packages.
    
    Conflicts:
    
    	lib/puppet/provider/package/appdmg.rb
    	lib/puppet/provider/package/pkgdmg.rb

commit 245c6b71d484d2be9a59607d3271036142350d09
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Apr 3 09:19:28 2012 -0400

    (#9167) Do not send email when nothing changes
    
    Without this patch the tagmail report sends an email even when there are
    no changes or resources out of sync. This has the undesired effect of
    sending emails after every Puppet run.
    
    When there are no changes or out of sync resources, tagmail logs a
    notice stating the fact and skips processing logs and sending emails.
    
    This patch includes new spec tests for the changes in behavior.

commit 1b810b1b8a5d6ab7f6fd587ee6fa928ed684930a
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Apr 3 01:09:30 2012 -0400

    (#3581) Stop forking around: Add fork helper method
    
    Without this patch we are forking all over the place. All this forking
    around is problematic when it comes to things like ActiveRecord and
    database connections. It turns out that forking has a nasty side effect
    of aggressively closing database connections and spewing errors all over
    the place.
    
    This patch introduces a new `Puppet::Util#safe_posix_fork` method that
    does forking the right way (closing file descriptors, and resetting
    stdin, stdout, and stderr). Tagmail, Puppet kick, and
    `Puppet::Util#execute_posix` have been updated to make use of this new
    functionality.
    
    In the future, `Puppet::Util#safe_posix_fork` should be used in-place of
    direct calls to `Kernel#fork`.
    
    This patch includes related spec tests.

commit 568ded50ec6cc498ad32ff7f086d9f73b5d24c14
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 2 11:47:17 2012 -0700

    Fix for bucket_path security vulnerability
    
    This is a fix for Bugs #13553, #13418, #13511. The bucket_path parameter
    allowed control over where the filebucket will try to read and write to.
    The only place available to stop this parameter is in the resolution
    from a URI to an indirectory terminus. The bucket_path is used
    internally for local filebuckets and so cannot be removed completely
    without a larger change to the design.
    
    Conflicts:
    
    	lib/puppet/network/http/api/v1.rb
    	spec/unit/network/http/api/v1_spec.rb
    
    Conflicts resolved by modifying the patch to fit the use of
    Puppet::Indirector::Request in the code.

commit 6bef2e622584d71e6643aeb6f852bb4773b84e9c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Apr 2 10:44:26 2012 -0700

    Removed text/marshal support
    
    Removing text/marshal support in order to close the security
    vulnerability described in Bug #13552.

commit 6362e5333fa944772f71b04111c744c3a1c257c0
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri Mar 30 16:26:43 2012 -0700

    (#13435) Change default signing digest algorithm
    
    Change the default digest algorithm away from MD5
    
    This commit is one step along the way to FIPS 140-2 compliance (#8120).
    In a FIPS 140-2 environment, MD5 is not available. Older versions of
    Ruby (1.8.7, 1.9.2) will SIGABRT when trying to use MD5 because they
    don't properly check the return code from openssl.
    
    Because the fingerprints between agent and master aren't
    machine-verified and `puppet cert list --digest <digest>` supports any
    of the digests, this commit is backwards and forwards compatibile.
    
    Later portions of #8120 will make the default digest algorithm
    configurable.

commit d88f3e7c387eff270101604f2fec2e086f88ebdd
Merge: 2d51b64 1de8bd7
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Mar 30 14:48:29 2012 -0700

    Merge pull request #613 from puppetlabs/geordi
    
    Add Module Tool

commit ba112e94619e6d35ca1d2d89975f787e537fe1e3
Merge: 125868b 5e8dfbe
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Mar 30 13:09:56 2012 -0700

    Merge pull request #615 from daniel-pittman/maint/master/ruby-1.9.3-support
    
    Ruby 1.9.3-p0 support in spec tests.
    
    This unbreaks the build, and gets everything moving forward as we would expect.

commit 5e8dfbef1cceeba99977f680031a26a124a049b9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 30 13:08:21 2012 -0700

    Ruby 1.9.3-p0 support in spec tests.
    
    Ruby 1.9.3-p0 will invoke `to_ary` on every element of an Array when
    `Array#flatten` is invoked, which Ruby 1.8.7, and Ruby 1.9.3-p125 will not.
    
    This leads to a failure in this test because our stub objects explode when you
    invoke that method, rather than the normal Ruby behaviour.  Just stubbing that
    method to return `nil` will do the right thing.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 1de8bd735c8f78dd8eb95632e0847369d10e6e89
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Mar 26 15:56:08 2012 -0700

    Add Module Tool
    
    This rather large commit includes all the work needed to get the `puppet
    module` face in Puppet with all it's actions.  I tried to break this up
    into smaller commits, but it was difficult to do so and keep the
    individual commits in a state that had passing specs since many changes
    in shared module_tool code affected multiple actions.  This code was
    developed in an integration branch over a few montsh and is now being
    merged back into Puppet core in the same state that shipped with Puppet
    Enterprise 2.5.
    
    The work here was done by Pieter van de Bruggen <pieter@puppetlabs.com>,
    Kelsey Hightower <kelsey@puppetlabs.com> and myself.

commit 125868b89791b4cafcd0fa1a5e8af1ce2c0819f6
Merge: 719d393 0819652
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Mar 30 12:26:28 2012 -0700

    Merge pull request #575 from daniel-pittman/maint/master/ruby-1.9.3-support
    
    Real, complete Ruby 1.9 support - at last.

commit 081965210626a06d4f380505322e0579254e8994
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Mar 24 18:30:54 2012 -0700

    Modernize selector_spec, add Ruby 1.9.2 support, with bonus bugfix.
    
    The spec was wildly out of date, and did horrible things with stubs and
    instance variables.  Instead, lets rewrite to use nice let methods, helper
    functions, and a modern approach without stubbing the world.
    
    This sets the stage for the relatively minor changes needed to support 1.9.2
    in this particular area of the tests.
    
    Finally, actually *testing* the code turned up a cosmetic bug in the string
    output code: if you only had a single match value, which pretty much never
    happens, you would represent it as:
    
        ... ? { "match", "value" }
    
    The correct output, now implemented in a nasty, inefficient way, is:
    
        ... ? { "match" => "value" }
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4f04f2df34ae5358477bc1de567c52bc113a742f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Mar 24 11:57:16 2012 -0700

    Define Symbol#intern if missing.
    
    Ruby 1.9 defined Symbol#intern as `return self`, which makes perfect sense.
    There is no equivalent on 1.8, which means that we can hit some issues now
    that we return symbols for 1.9 compatibility in places.
    
    Since the definition is obvious and correct, we may as well just implement the
    missing method.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8774699cbfffe7a586d1df60a37d889b3b77330a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 23 10:54:12 2012 -0700

    Fix nameservice provider auto-generated IDs that may overlap.
    
    When the ID autogenerator was implemented in the nameservice provider base, it
    had a small bug: it would always use the GID of the entry to find the largest
    number, regardless of it looking for a GID or a UID.
    
    This means that if you did not use the modern convention of per-user primary
    groups, and your highest UID was larger than your highest primary GID, you
    would happily generate overlapping IDs.
    
    While the method itself isn't awesome, it is broadly enough used that we
    shouldn't get rid of it entirely.  This fixes it to correctly determine the
    largest UID for UID search, and GID for GID search, with less metaprogramming.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3c6b448ae3fa10ad897d1a89b39dfec52a7bedad
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 22 18:21:54 2012 -0700

    Fix signal handling test vs Ruby 1.9 async signals.
    
    Ruby 1.9, unlike Ruby 1.8, uses a dedicated OS-level thread to handle signals.
    This means that there can be arbitrary delays in signal delivery, thanks to
    the vagaries of OS level thread scheduling.
    
    The recent refactoring of application bootstrapping reduced the amount of OS
    level activity in the self-signalling area, revealing this problem.
    
    In the specific test, we used to have enough delay and OS interaction to
    reliably (enough that I never saw the failure) switch to the signal thread and
    run the code *before* we restored the previous signal handler.
    
    After the changes we don't do that - that work is delayed, so the signal is
    delivered during the test cleanup cycle, or even delayed until after the suite
    exits.
    
    This is, of course, not a problem on Ruby 1.8, where the signal is handled in
    the main thread, and much more synchronously to the rest of the code.
    
    So, the test is rewritten: we poll waiting for completion in the signal
    handler, and have an outer timeout to catch a failure to invoke and fail out
    of the test anyhow.
    
    None of the native Ruby cross-thread communication or locking mechanisms
    really satisfy the needs of this code, since we want to complete regardless of
    when the condition is satisfied - even before we enter the wait period.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d7fad097980c2cd350d6cffa3cc19d76de42d1b0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Mar 20 21:13:31 2012 -0700

    Use RbConfig rather than Config
    
    RbConfig and Config are both names for the compile-time configuration
    constants out of Ruby as far back as 1.8.5, so we can happily use the newer
    name.
    
    This eliminates a deprecation warning from Ruby 1.9, which finally started
    complaining that we should have made this move already.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 880374539f0b798545350e5ada2af969c7d61f45
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 16 13:23:34 2012 -0700

    Remove useless or redundant Test::Unit tests.
    
    The other test suites, especially acceptance, cover everything that these
    tests cover for the a whole bunch of the RAL tests in the older system.
    
    Others were entirely disabled, and can simply be stripped out.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit fd2be8bc03196382e3745125807892426b4add14
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Mar 20 21:02:14 2012 -0700

    Port the large fixture for the sshkey test from Test::Unit.
    
    The only test not present in the existing spec was an effort to parse a large
    sample file, and ensure it would round-trip correctly through the parsedfile
    provider.
    
    This is now ported over.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 610740b2acfc2a61b4106a6dba226deeedad6c20
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Mar 20 20:47:43 2012 -0700

    Port the base service provider tests from Test::Unit.
    
    The `base` service provider is terribly anæmic, but we had some tests, and it
    does serve as the parent for almost every other provider.  So, port those
    tests over.
    
    Also, add a dash of cross-platform support by invoking the current Ruby
    interpreter to do file system manipulation things - rather than leaning on
    Unix tools that are not available everywhere.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7961382378ee811f0f0143a5b673dfaf099c043f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Mar 20 20:04:14 2012 -0700

    Port the provider tests from Test::Unit.
    
    The provider tests exercise a whole pile of code that wasn't covered by the
    specs.  This ports those tests over, and extends them to do further
    combination testing in a few places.
    
    These are very repetitive, table driven tests - but so is the underlying
    feature we are trying to test.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2ab8d36e00b5e963571b63c4fcbeed633516b454
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Mar 20 16:25:44 2012 -0700

    Port the aptrpm and aptitude tests from Test::Unit.
    
    These are fairly weak tests, but they exist - which ensures that we can't slip
    through a syntax error in that provider.  So, better ported than destroyed.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8efa8cb4ce43a88102580a700cc05eed44df5663
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Mar 20 13:28:34 2012 -0700

    Port the crontab Test::Unit tests to RSpec.
    
    These tests covered a bunch of content that wasn't already covered, so they
    should be ported.  Includes some fun around enumerators and Ruby 1.8.5.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6ccd5df2d7e904da80204e980a6d4dbb4070ab87
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 16 13:23:01 2012 -0700

    Port the mailalias test directly to RSpec.
    
    The old Test::Unit mailalias test is fairly up-front about being a weak test,
    but it was more than we had in the spec area at all.  So, it can be ported
    as-is to retain at least the same level of testing of the type.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 5c853f766626a98714adeeaf8c9588b589cef956
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 16 11:19:55 2012 -0700

    Port the useful cron Test::Unit test to an acceptance test.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 5ee8e1d4df8f9b38be029c3cb32d9e69d0099eaa
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 16 11:00:27 2012 -0700

    Port some exec tests from Test::Unit to RSpec
    
    Most of the tests were redundant to either existing acceptance tests, or to
    existing spec tests, but a couple of combination tests were worth porting.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 35ff7f3eb6288ae894b0cfacacf8a7edacc6b3dc
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 15 23:21:23 2012 -0700

    Port over `ral/manager` tests to RSpec.
    
    The RAL manager tests exercise code that isn't otherwise exercised, so most of
    the tests can be ported over.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b51da9290c069add5d26708158c684e846951c39
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 15 22:27:26 2012 -0700

    Port some type class tests over to RSpec.
    
    The type tests exercise parts of the type code in ways that the other tests
    don't, so they should be ported over.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b5c8ee13291fbde3c958bc35a1204d58a428bc91
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 15 21:38:00 2012 -0700

    Port tests of the defaults system from Test::Unit.
    
    The only meaningful test was that the Puppet version number was sane.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d574f901fd68d6a9d65451e15c81ac32da7ce99e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 15 21:17:04 2012 -0700

    Port Puppet[:libdir] and LOAD_PATH test from Test::Unit
    
    This ports over the :libdir setting test, and checks that it adjusts the
    LOAD_PATH.  That, like the previous test, highlights a shared resource that
    was not being saved or restored in our test suite.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 5cd3cd3c3415a4b149edd75405ae9fc66f54c6e3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 15 20:53:43 2012 -0700

    Port Puppet[:path] test from Test::Unit to RSpec
    
    This test checks that changing the setting results in changing the process
    environment.  Not the most awesome test, but nothing else checks either.
    
    It also highlights that we didn't preserve the process environment over tests,
    which is bad, because that is a shared, persistent resource that will change
    state in response to test actions.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e28e9b57e1791759a01608020039343dfc5d0593
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 15 20:45:00 2012 -0700

    Port `test/provider` to RSpec
    
    This brings over the meaningful tests of the provider class over from
    Test::Unit to RSpec.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 23c8ca745ee07a710fe5ca7ec2ae6bf3c4092343
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 15 17:42:42 2012 -0700

    Port old `test/language` tests into rspec...
    
    In Ruby 1.9 the Test::Unit library was replaced by MiniTest.  This changes
    some "esoteric" parts of the code, sadly including the parts of the library we
    depend on to confine certain tests to only some systems.
    
    Instead of investing heavily in rebuilding that facility over the new MiniTest
    library it makes sense to just check for and either destroy or port the old
    tests to the new rspec harness.
    
    This is our desired future - that only one test framework exist - and we might
    as well take full advantage of this opportunity to clean up our legacy code.
    
    It also drops tests that duplicate testing already present in the spec suite.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 245c34c5cbcd999ef0e9fe875850b5004a55f8a9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Mar 14 16:23:37 2012 -0700

    Whitespace cleanup in old-style aptrpm package test.
    
    There are no functional changes, just fixing odd whitespace.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2363b02226eebe2f9a22a1569f97ebe399ec3a76
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Mar 14 12:03:14 2012 -0700

    Trivial spelling fix.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit fec7d4812b983ddfb6f7219532e54d908e3b3f32
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Mar 12 00:31:36 2012 -0700

    Remove the "fails_on_ruby_1.9.2" tag from tests...
    
    Now we have passing tests on Ruby 1.9, we can make all those tags go away and
    enable the full suite.  Now anything that fails should be treated like a real
    failure, which is reasonable since this is a real and supported platform.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ceee8a185250bb6b5f52e56c7ed9457408b6cb0a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Mar 20 14:02:01 2012 -0700

    Use PID-based ports to test web server listening.
    
    When running more than one instance of the spec suite concurrently on a single
    machine, the hard-coded listening ports in some of the integration tests could
    lead to failures - when multiple suites hit the same tests at the same time.
    
    This uses a port number based off the PID, which helps ensure we don't get
    spurious failures from concurrency.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit cea48e24be76117dc4a6d852b1a30246a2d15bee
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Mar 12 09:32:16 2012 -0700

    When shutting down Mongrel, wait synchronously for stop.
    
    The Mongrel tests on Ruby 1.9 were highly unreliable, sometimes failing
    because they tried to bind a port that was already in use.
    
    This turns out to be because the default shutdown mode is to asynchronously
    stop workers - combined with the fact that our test made a TCP connection to
    the service, but never actually completed the request.
    
    That led to one thread that dangled, if the socket didn't close in a timely
    fashion, and blocked up the listen port.
    
    Instead, two things: first, wait for all threads to terminate (or 60 seconds
    to pass) in the stop method, and second, use a full HTTP request to test, not
    just a TCP connection with no content.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ea0dd1483fc2430674df243df1e7dff799e35e1d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 23:33:20 2012 -0700

    Implement YAML 1.1 binary data encoding in ZAML
    
    The YAML spec has a mechanism to flag arbitrary binary data, as opposed to
    sequences of Unicode characters in UTF-8.  This implements full support for
    that in the ZAML encoder.
    
    This is used on the basis of a string that doesn't contain valid UTF-8.
    Another stinking heuristic, but at least one that results in conformant YAML
    being emitted.
    
    Pleasantly, the !binary tagged data is correctly ready by Syck as far back as
    Ruby 1.8.5, allowing us to confidently ship this data without too much concern
    for compatibility with older libraries.
    
    Additionally, we stop escaping all UTF-8 data as a sequence of bytes.
    Theoretically we could go back to escaping it, using real Unicode character
    markers, but literal UTF-8 in the output file is just as acceptable.
    
    This should gain better support for the Ruby 1.9 encoding markers, so that
    strings could carry their binary or non-binary nature in ... but this gets
    things working and passes both Unicode and Binary data tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2e9460d02b5295b2b3705150251bcac426c9810f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 22:26:43 2012 -0700

    Partially fix UTF-8 and PSON encoding tests for Ruby 1.9
    
    With the introduction of real encoding support in Ruby 1.9, various problems
    including incorrectly encoded UTF-8 strings crop up.
    
    By flagging the encoding of the spec file to Ruby, and forcing binary encoding
    on strings we compare that contain invalid UTF-8, we can bypass some of those
    headaches.
    
    Since PSON is, by design, not compatible with JSON and can do useful things
    with arbitrary binary data, this is the most reasonably current choice for how
    to handle this troublesome set of data.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b0f9e737fc58f75f025e4fa8d710eaf29d908370
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 22:18:34 2012 -0700

    Fix Cisco device canonicalization regular expression on 1.9
    
    The behaviour of the `\b` Regexp match operator, or rather, the classification
    of `/` as an end of word character, changed between Ruby 1.8 and 1.9.
    
    Most uses in our code are safe, and this will lead to equally correct
    behaviour, but the Cisco device interface canonicalization code used it where
    "end of string before newline" was intended.
    
    Moving to the `\Z` match, which imposes the exactly desired condition,
    resolves the problem.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4089770d34114727e94e6f3dc938496fd7f4ceaa
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 22:01:36 2012 -0700

    A correct implementation of IO#binwrite for Ruby 1.8
    
    When we added the `IO#binwrite` method to our collection of backported
    features, the specification was misinterpreted and the offset was treated as
    "offset in the string we are writing".
    
    Instead, it is an instruction to seek in the output file before writing, which
    meant that our semantics were all wrong - and tests broke - when we ran
    against the native binwrite on Ruby 1.9.
    
    The new implementation is correct in behaviour on all tested cases, and has a
    more extensive test suite exercising all the various parts of the behaviour
    that we need.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit fde0ec3786665d4f7ac69d402b04726dcc623325
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 20:29:38 2012 -0700

    The return type of `methods` changed in 1.9
    
    This test depended on the return type of `methods`, which went from array of
    strings to array of symbols in Ruby 1.9.  Given that it really wanted to test
    if the instance responded to the message, we can just directly test that.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 399c859f26695f0f256994571c4d08448c4a2987
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 18:47:08 2012 -0700

    Handle the real semantics of `String#lines`...
    
    The previous monkey-patching of `String#lines` and `IO#lines` led to their
    behaving differently in our code than in standard Ruby code.  This is
    generally surprising, and led to some subtle misuses of the method.
    
    This corrects that, by adapting all the abusers to real Ruby calling
    conventions over the enumerator interface.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0dc446956894b23ff6599c1c2a43a083fc83aedb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 18:15:02 2012 -0700

    Protect all existing methods when monkey-patching.
    
    Most, but not all, the method we add to objects while monkey-patching were
    correctly protected against overriding a core method.  This adds the right
    protections to the handful that were missing them.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 860d91658e74ad172c2265fa742cba1b3cc2ce9a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 18:18:15 2012 -0700

    Fix the shellquote parser function on Ruby 1.9
    
    The semantics of `String#include?` changed a little in Ruby 1.9, so that you
    can't just pass an arbitrary integer and have it check for character
    containment.  (...or, perhaps, the semantics of characters vs integers
    changed.  Either way, the effect is the same.)
    
    This fixes the code to do the right thing on all platforms; we want to process
    the string byte-wise, since that is how sh may well regard it, and we have to
    work around some limitations on 1.8.5 semantics of string iterators.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 1b8a64f00d48c1ae96e442170325dcbe03a26f26
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 17:58:53 2012 -0700

    Whitespace and formatting cleanup on shellquote spec.
    
    The formatting in the spec file was very odd, with extraneous and random
    whitespace around arguments, odd line breaks, and so forth.
    
    It also used a whole pile of temporary variables that it didn't need to.
    
    This cleans that up, without making any functional changes to the code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 88281c0d7a10fcfc41311fb9352198834429a191
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 17:50:32 2012 -0700

    Regular expression matching on symbols changed in Ruby 1.9
    
    In Ruby 1.8 a regular expression match on a symbol would never match, while in
    Ruby 1.9 it is equivalent t a regular expression match on the equivalent
    string.  This is very sensible behaviour, but trips up parts of code that
    expect an implicit "... but not symbol" match.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e0ca0bc8bde3938427bb23c09340db5e3bb57f81
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 20:05:48 2012 -0700

    `String#to_a` doesn't work in Ruby 1.9
    
    In Ruby 1.8, counterintuitively, `"foo".to_a` would return `["foo"]` - an
    array with a single entry, the string.  This went away in Ruby 1.9, likely
    as a transition path to a much less confusing set of semantics.
    
    Either way we should stop relying on that behaviour and get with the program.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8023c169a2210b9cdaeba508eee347b8e7397650
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 17:45:44 2012 -0700

    Calling map on string now fails, rather than yielding the string.
    
    In Ruby 1.8 `"foo".map` would yield "foo" once, while in Ruby 1.9 it is not
    defined as a method.
    
    Various parts of our testing code stub other methods and return strings where
    arrays of strings are appropriate; this historically worked because of that
    1.8 shim, and no longer does.
    
    The same is true of `String#each`, which fails in the same way.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 76da03e02554c0cf2928d89d910dbc99ae170c9e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 15:10:22 2012 -0700

    Syck specific YAML parser tests can only run with the old engine.
    
    Ruby 1.9 moved to using the Psych engine as the default YAML engine, replacing
    the older Syck based YAML engine.  They did this without any regard to parse
    tree compatibility, or abstraction over the underlying tool.
    
    Consequently, the test that gets very intimate with the encoding format for
    the parsed YAML tree is unable to function with the modern engine - it tries
    to interact with a pile of methods that just don't match.
    
    This commit disables that test unless the Syck parser is in use.  Really, the
    entire test should be an external, abstracted acceptance level test.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 1f4e44c26a0d703d1192d26ef8ab555e4508e338
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 13:36:30 2012 -0700

    `instance_variables` changes return type between 1.8 and 1.9
    
    The return type of `instance_variables` changes between Ruby 1.8 and 1.9
    releases; it used to return an array of strings in the form "@foo", but
    now returns an array of symbols in the form :@foo.
    
    Nothing else in the stack cares which form you get - you can pass the
    string or symbol to things like `instance_variable_set` and they will work
    transparently.
    
    Having the same form in all releases of Puppet is a win, though, so we
    pick a unification and enforce than on all releases.  That way developers
    who do set math on them (eg: for YAML rendering) don't have to handle the
    distinction themselves.
    
    In the sane tradition, we bring older releases into conformance with newer
    releases, so we return symbols rather than strings, to be more like the
    future versions of Ruby are.
    
    We also carefully support reloading, by only wrapping when we don't
    already have the original version of the method aliased away somewhere.
    
    This includes a second monkey-patch, on the `resolv` library that ships with
    Ruby 1.8.  This is the only bit of code in the core stack that made
    assumptions about the return format of names from `instance_methods`.
    
    Specifically, it assumed they were strings, and could be evaluated using
    `instance_eval` to fetch out the value.  The fix is to replace that with a
    call to `instance_variable_get` which, like it does in Ruby 1.9, avoids the
    cost of eval parsing as well as being more robust overall.
    
    I did audit the rest of the standard library on 1.8.5 and 1.8.7 to verify
    this.  We only need worry if we start using the SOAP or Tk support.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 769eb943bda65a46e4d1e22f9fd6c549acf5a581
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 13:11:48 2012 -0700

    Eliminate dead home-made assertion-at-dev-time-only code.
    
    The assertion code hidden in here, designed to allow development time
    assertions than vanish at runtime - in the classic "better to keep working on
    corrupt data and failed assumptions than fail in front of the user" mode - was
    not actually used anywhere in the product.
    
    We may as well not carry this little legacy around any further than it current
    has been, then.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 252c884284fa1958cff27a28c7c09b1d9422dd92
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 17:31:30 2012 -0700

    Hash references on string now raise errors, not return nil.
    
    Under Ruby 1.8 the syntax `"foo"[:bar]` would return `nil`, while Ruby 1.9 is
    strict: it enforces that only numeric index arguments are acceptable and
    raises an error when that precept is violated.
    
    This means that a whole pile of specs that used to pass strings where
    structured objects were accepted now blow up - because you can't request
    arbitrary nonsense against their array dereference interface.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9d5a9dec5092139370b8e46640cb74d05d6bfeb9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 12:37:39 2012 -0700

    Action definition requires at least one argument.
    
    Ruby 1.9 allows us to enforce the calling convention of face actions at load
    time, rather than failing with a runtime error.  This, in turn, means that we
    should define actions correctly in our tests, if we expect them to work.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f826ab91e039669a3cb4b30b0f790ce39464a6b4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 12:05:25 2012 -0700

    Handle YAML load errors from the new Psych YAML parser.
    
    Earlier versions of Ruby used the syck library to parse YAML; during 1.9 this
    moved to the Psych parser based on libyaml.  This brings YAML 1.1 compliance
    to the library, and generally moves in a forward direction.
    
    It also makes some radical changes to the failure modes, since Psych is much
    more forgiving of some YAML constructs that would previously block the heck
    up.
    
    It also, in Ruby tradition, does absolutely nothing to abstract over the
    implementation: Ruby can use either Psych or Syck and will raise different
    exceptions on failure in both cases.
    
    Worse, Psych exceptions are not derived from StandardError, so
    Psych::SyntaxError will actually bypass almost any normal attempt to trap the
    error, and will have wildly different details to the Syck errors.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b5a73b6dc298c0fd452af5504d4c819189da663a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 11:01:42 2012 -0700

    Fix terminus testing for Ruby 1.9
    
    The order of evaluation of abstract classes (Class.new) changed in Ruby 1.9,
    resulting in the hacks here that worked around the "must be bound to a
    constant" rules in the indirector starting to fail.
    
    Technically, though, we don't actually care: we can define a whole class stack
    properly, binding everything the way the system expects, and then clean it up
    afterwards.
    
    Less stubbing, better tests, and clearer logic, all of which are pretty nice.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7d8fd144949f21eff924602c2a6b7f130f1c0b69
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Mar 11 00:35:52 2012 -0800

    Replace Puppet::Util::FileLocking with atomic `replace_file`
    
    The Puppet::Util::FileLocking module had substantial complexity in aide of
    allowing careful, synchronized updating of individual files.  It was super
    careful, and wanted to be absolutely sure that it didn't have concurrent reads
    and writes going on, so it:
    
     * used per-file Ruby level locks to avoid multiple threads accessing the file
       at the same time.
     * used file-system level cooperative file locking on the target file to avoid
       multiple processes seeing concurrent updates.
     * used a temporary file to avoid rewriting the target file in place, so there
       was no "partial file read" window.
     * carefully used portable constructs to achieve locking rather than
       OS-specific kernel level exclusions.
    
    Of course, some of those claims were documented but no longer valid - using a
    temporary file *and* cooperative file locking don't play nice, and the
    temporary file bit had dropped from the actual implementation forever ago.
    
    It also did nothing to satisfy any of the other interesting conditions around
    files: if multiple concurrent writers began, there were no assurances beyond
    chance in the OS process scheduler which would win and replace the file.
    
    In practice all that was really wanted were some very, very simple semantics:
    
    Any process or thread can read the file at any time, and will get a complete
    and correct version of the file.
    
    Any process or thread can write at any time, provided that the read constraint
    is satisfied.
    
    It turns out that we recently built a method with these exact semantics,
    `replace_file`, which will perform an atomic replacement using rename, but
    only if the new file content is safely and completely stored on disk.
    
    That satisfies all current semantics: any process can read at any time, and
    will either get the complete previous version, or the complete new version,
    depending on how it schedules around the (POSIX defined atomic) rename.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 107d2e7857c272b221a8188ac378ddb218efa8be
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Mar 10 23:59:22 2012 -0800

    Revert "Disable replace_file on Windows"
    
    This reverts commit 4272d1f7674911c15da3ff6516d5827646a6bda6.
    
    To quote:
    
        Our current approach of setting owner/mode in the Puppet way risks
        losing any extra permissions beyond owner/group/everyone, which is
        significant enough that it is better to simply not support this
        operation until we have a better solution. replace_file isn't used in
        any code which actually runs on Windows at the moment, so this is
        a benign change.
    
    ...except that it isn't so benign as all that: various other parts of the code
    open-code the same method, poorly, and with various different bugs.  They will
    all, without question, lose permissions in exactly the same way on Windows.
    
    At least by routing them through a central path we can start to unify their
    behaviour and get to a place where fixing one point in the code fixes all the
    faulty permission transfers that we previously had.
    
    We win an overall net reduction in bug count, and an increase in
    predictability of bugs, from this change.

commit 32cc8ff9ab5c236cb3a2e2495ea6fe710f4cd73b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 9 19:37:48 2012 -0800

    Avoid class level variables, as they are not helpful.
    
    Ruby 1.9.3 highlights some of the strange and confusing problems around class
    level variables in Ruby; they tend to look and behave much more like global
    state than people imagine, and lead down the road to trouble.
    
    This migrates away from them to other mechanisms better fitted to solving the
    problem in the Ruby language - and, typically, in ways that are much more
    portable between the different Ruby interpreter implementations.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d7993a877f61473139b287bc8e9b9c64c235e5ff
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 9 18:32:19 2012 -0800

    Don't cache check for `cdrom` source in the apt provider.
    
    Ruby 1.9 warned about access to a class variable in providers, because their
    semantics are almost never what users expect.
    
    However, the use of a class variable in the apt provider was very strange: it
    wanted to check if a cdrom source was specified, and fail if it was present,
    to avoid a situation where apt would prompt for a CD to be inserted and hang
    forever.
    
    Since that is just as much a problem on the second package install as on the
    first, it makes much more sense to perform this sanity check and fail before
    every install - and the overall cost is relatively low.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 62d11401b186d075fe533f47493a1b074e922c3d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 9 18:06:10 2012 -0800

    Simplify a YAML report test to work with Ruby 1.9
    
    The order of invocation of local method definition and the parent `inherited`
    hook changed between 1.8 and 1.9, resulting in the hack that works around a
    development check in this test stopping working.
    
    None of that ceremony is actually needed, though, since we can totally just
    use an instance of the actual class we are testing.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a71208ba651d96d2ac9792c5358f10231a140e10
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 9 14:43:02 2012 -0800

    Ruby 1.9.3 has a different error when `require` fails.
    
    The text of the error message when load fails has changed, resulting in the
    test failing.  This adapts that to catch the different versions, allowing this
    to pass in all cases.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 18615ef5bf90a507d1be2494f9d88f669f989d1e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 9 14:32:49 2012 -0800

    Ruby 1.9.3 is strict about block argument counts.
    
    Unlike earlier versions, Ruby 1.9 is strict about matching argument counts in
    blocks with their uses.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 47779496de53b3d87c775c3f26f5bdf671e7a957
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 8 00:35:19 2012 -0800

    Document and cleanly fail when unsupported RDoc is used.
    
    Update the documentation and code to fail cleanly when a supported version of
    RDoc is not available.
    
    This does not yet tackle loading an RDoc version specific implementation of
    the process, only a clean failure when we can't cope.  In future this should
    be replaced by some dynamic loading process based on the supported RDoc
    version, if we retain the tool.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 267f417f5b750547699cd347fb908791506d2548
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 8 00:31:40 2012 -0800

    Fix 4-space indentation in puppet/util/rdoc.rb
    
    There are no functional changes to this commit, just whitespace changes.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b5cbc8203059e134e976255fd505d3ac785265f2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 8 00:14:27 2012 -0800

    Add a feature to detect RDoc 1.0.1 being present on the system.
    
    In practice the Puppet manifest documentation generator only works with the
    version of RDoc that ships with Ruby 1.8 - version 1.0.1, which was identical
    in 1.8.5 ad 1.8.7.
    
    Previously, because it was a core library, we just assumed it was present; now
    we need to test conditionally for it being there *and* the correct version.
    
    That allows us to have a nicer failure mode as we work through rdoc use, to
    clearly indicate to users which version we have.  As we support newer
    versions, additional features can better identify what is available.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 719d393fbdf2f24d7896c52bc40102a3002066ad
Merge: ed0e0db 2d51b64
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Mar 30 09:56:28 2012 -0700

    Merge branch '2.7.x'
    
    This commit looks like a no-op, but it resolves a conflict for
    a commit in 2.7.x that had to do with spec_helper compatibility
    w/stdlib and grayskull (#13439)
    
    Conflicts:
    	lib/puppet/util/settings.rb

commit e24755dafe0fd739e2b9894bcce431585bb0e815
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Mar 29 17:18:14 2012 -0700

    (#13397) fix gem provider ensure=>latest bug
    
    As of 2.7.12, if you had "ensure=>latest" for any gem package
    resource, puppet would not correctly detect that the gem
    was already installed and would attempt to install it on
    every run.  (This was because the "latest" method on the
    gem provider was always returning an array, when it should
    always be returning a single value.)

commit 271c7f2f48385b1d7d7df49a52ff8205acc8ac4a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Mar 26 15:55:42 2012 -0700

    Make core changes needed for the puppet module tool
    
    This includes changes to portions of the Puppet code base that have some
    use by other parts of Puppet than the module tool, but are necessary for
    the module tool work.

commit 7994400aab514d206589558d0dab96303f3890fb
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Fri Mar 23 11:56:07 2012 -0700

    (#13367) Patch SemVer to permit ranges including pre-release components.

commit 1342558a01d70589b026f55f24a069cd12ecbe7d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Mar 26 14:37:30 2012 -0700

    Monkey patch FileUtils.mv in Ruby 1.8.5
    
    The FileUtils.mv method in Ruby 1.8.5 can't mv directories across
    devices.  File.rename causes "Invalid cross-device link" errors, which
    is rescued, but in Ruby 1.8.5 it tries to recover with a copy and
    unlink, but the unlink causes the error "Is a directory".  In newer
    Rubies remove_entry is used, so the implementation in this patch is
    what's used in Ruby 1.8.7 and Ruby 1.9
    
    This was an issue in installing modules using `puppet module install`
    since the module is extracted to a temporary directory and then moved to
    the modulepath.

commit 0b4cbc3b119be1835d2bd169c6c4950f6b7e55c4
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Wed Mar 28 16:57:38 2012 -0700

    Removed unused code
    
    There is no way that this code can be used since in tries to require
    puppet/network/handler which doesn't exist. So if this code was ever
    loaded it would raise an error.

commit 3f28268b171699c4a575826e0bc85f9a10677b34
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jan 23 12:50:41 2012 -0800

    (#12101) Make Puppet::Util::absolute_path? usable in autoloader
    
    This makes Puppet::Util::absolute_path? check File::ALT_SEPARATOR to determine
    path behavior of the local system instead of Puppet.features, which required
    having an Autoload instance already. File::ALT_SEPARATOR is only defined on
    systems with Windows path behavior, and the Ruby standard library uses this
    frequently to distinguish systems.

commit 772f7566d68d8898b20aec28dff8a71697e81627
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jan 23 16:11:07 2012 -0800

    (#12101) Add shared context for specs to imitate windows or posix
    
    Add "windows" and "posix" shared contexts to rspec. If you give :as_platform
    => :posix or :as_platform => :windows as argument to a describe block, it will
    automatically stub the relevant facts and path behavior to imitate windows or
    posix.

commit 8f84207c12938e7db01e13f91d90b8a013a1a84a
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Mar 28 10:54:59 2012 -0700

    (#12466) unset X-Forwarded-For header
    
    Without this patch the handling of
    X-Forwarded-For headers is insecure in a
    default apache conf supplied with puppet.
    This patch ensures X-Forwarded-For headers
    are dropped.
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit 49eabd40657755169fa6ea7970fe857f3631bf01
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 27 16:48:59 2012 -0700

    Quote strings containing hex numbers when generating ZAML
    
    When generating ZAML, we prefer to write bare strings when possible. To
    that end, we have rules about which sorts of strings are not safe to
    write bare. One of those rules is strings containing numbers (for if we
    wrote those bare, they would be revived as numbers). However, ZAML
    wasn't properly considering hex digits when identifying a string
    containing a number, resulting in those strings being written unquoted,
    and revived incorrectly as numbers.
    
    That is, YAML.load(ZAML.dump("0xffff")) would return 65535, when it ought
    to be "0xffff".

commit ed0e0dbe91a81c6d4e4eecf734eb0cef2819161a
Merge: eb20f70 56c55d5
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue Mar 27 16:08:24 2012 -0700

    Merge pull request #603 from cprice-puppet/bug/master/13439-spec-compatibility
    
    (#13439) refactor spec_helper for spec compatibility between 2.7 and master

commit 2d51b642fcd1fd835d3a5d21bb09b3b74718c874
Merge: 56ce669 f5487bd
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue Mar 27 16:08:12 2012 -0700

    Merge pull request #602 from cprice-puppet/bug/2.7.x/13439-spec-api-incompatibility
    
    (#13439) refactor spec helper for spec compatibility between 2.7 and master

commit eb20f706d60764b30ca0beb9210cdbf728d4a8df
Merge: 6d91543 38a887b
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Tue Mar 27 15:39:46 2012 -0700

    Merge pull request #605 from cprice-puppet/cleanup/master/remove-tabs-from-defaults
    
    remove literal tabs from defaults.rb

commit 93d31dd3ff49c2968f0eb0dbf07dc87897d9b2bc
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 27 15:21:53 2012 -0700

    Deprecation points to has_command for substitute

commit 526d7c35112d346685c82d5248727ad541d3f297
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 27 15:06:01 2012 -0700

    Cleanup of internals
    
    Moved around parameters to Puppet::Provider::Command and cleaned up the
    interface to the CommandDefiner sub-language of the Puppet::Provider so
    that using it is a little simpler to read.

commit 9e811e62bfc4bc8abd7ffc9e5dbb60c2b2a96415
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 27 14:18:43 2012 -0700

    Allow definition of commands via a dsl
    
    Allows definition of single commands and specifying more specific things
    about how they should be executed (such as environment variables to have
    set)

commit 2ccba1f3a7051e5e893897dd2cfeb2d48e5d8cbb
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 27 11:03:04 2012 -0700

    Moved Puppet::Provider::Command
    
    It had been created in the wrong place. Moving to the right location

commit 4e1830dfe409a9eaaf5b8b49e523ef4d10a8c874
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Tue Mar 27 10:05:22 2012 -0700

    Added tests around suitability of provider

commit 38a887be8ca440dd7c73afbc4e7ea9fe2592df15
Author: cprice <chris@puppetlabs.com>
Date:   Tue Mar 27 15:28:09 2012 -0700

    remove literal tabs from defaults.rb
    
    It was brought to my attention that there were a lot of literal
    tab characters in defaults.rb.  Cleaned them up.

commit b99508f4edfa018e465d5cb2112290ed7ad0eb8c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Mar 26 11:48:00 2012 -0700

    Added unit tests for Provider command DSL
    
    Testing the command method creation, invocation of the command and
    effect on the suitability of the provider.

commit 0420c8454f098b5e8f84fa0d36e6e272bf2b6236
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Mon Mar 26 10:43:11 2012 -0700

    Unit test for Puppet::Provider dsl

commit c7a134b7077ff5a1ac982260142871b4946cee14
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 23 14:28:36 2012 -0700

    Documented commands

commit 4792f9713c77c7c70599bb6409989d30af7b0c27
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 23 14:12:10 2012 -0700

    Delegate all commands to Puppet::Provider::Command
    
    Command execution for providers is now all coerced into
    Puppet::Provider::Command.

commit 781936878fa6e0ebc0afa7638700bd9eac2d7bb9
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 23 11:17:52 2012 -0700

    Deprecated make_command_methods
    
    This is a private method that should not be exposed.

commit eb293812d735c405d85c13a625ee171e65b1656d
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Fri Mar 23 10:02:01 2012 -0700

    Puppet::Provider constructs Command objects
    
    Delegation to a command object to handle executing a command.

commit 04b608bbdec6ac63840ea89dd68337bde3120953
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Mar 22 17:21:50 2012 -0700

    Simple complete command wrapper for providers
    
    Will be used for keeping track of commands registered in providers.

commit 5155c730f2c04c129500555360174409ced9fe8c
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Mar 22 16:37:36 2012 -0700

    Added doc of the command parameter

commit 89d57e72a6894830df5470df81a3db1e6af67797
Author: Andrew Parker <andy@puppetlabs.com>
Date:   Thu Mar 22 14:59:10 2012 -0700

    Allow passing extra options to the execute
    
    In order to allow the macports execution to have the normally not
    allowed HOME environment variable the Provider.commands() method has
    been extended to allow specifying the options to pass through to the
    execute call

commit 56c55d54474d97958f0f21e715237cf3f2117668
Author: cprice <chris@puppetlabs.com>
Date:   Tue Mar 27 14:10:44 2012 -0700

    (#13439) refactor spec_helper for spec compatibility between 2.7 and
    master

commit 6d91543c3537a7917e9e0c4d27d3c5504dd33cc3
Merge: 1d09389 23a1a17
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Mar 27 13:50:54 2012 -0700

    Merge pull request #601 from cprice-puppet/master
    
    Merge 2.7.x

commit 23a1a17bebaadbb9b3a1611f34ae46d06b531136
Merge: 1d09389 56ce669
Author: cprice <chris@puppetlabs.com>
Date:   Tue Mar 27 11:48:25 2012 -0700

    Merge branch '2.7.x'
    
    Conflicts:
    	lib/puppet/daemon.rb
    	spec/unit/daemon_spec.rb
    	spec/unit/parser/ast/leaf_spec.rb
    	spec/unit/provider/package/dpkg_spec.rb
    	spec/unit/util/settings_spec.rb

commit f5487bd1d6d5c301700d63d747e655dd1edcee53
Author: cprice <chris@puppetlabs.com>
Date:   Tue Mar 27 10:30:25 2012 -0700

    (#13439) refactor spec helper for spec compatibility between 2.7 and
    master

commit 1d09389a06560308668b2d2cfb4faa5727620e35
Merge: 0b900c9 193e19e
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Mar 26 17:08:47 2012 -0700

    Merge pull request #589 from jeffweiss/ticket/master/13296_unless_in_exec_causes_syntax_error
    
    (#13296) 'unless' as a parameter inside a resource causes syntax error

commit 193e19eb14ff640a68f2a21fd525ef6c8825dbf2
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Mon Mar 26 16:38:12 2012 -0700

    (#13296) allow any keyword as resource param name
    
    Add list of keywords to grammar.ra
    Regenerate parser from grammar
    Add parser tests for each keyword as a parameter
    Add unless to keyword list in lexer tests
    
    Prior to #13296, the resources did not allow parameter names to be
    language keywords.  With this commit, resources can use any of the
    keywords as a parameter name.
    
    For example this is again legal:
    exec { '/bin/echo foo':
      unless => '/usr/bin/false',
    }

commit 56ce669c68f7867970213acaa25e89f445d096fd
Merge: eb46b93 a62f711
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Mar 26 13:42:42 2012 -0700

    Merge pull request #597 from stschulte/ticket/2.7.x/8193
    
    ssh_authorized_keys should support new key types

commit eb46b93208d0a4da664e0936bed700ef96b54074
Merge: b2e0944 2732f25
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Mar 26 13:17:39 2012 -0700

    Merge pull request #470 from daniel-pittman/bug/2.7.x/12479-bad-undef-vs-regex-match-behaviour
    
    Bug/2.7.x/12479 bad undef vs regex match behaviour

commit b2e0944c06eac7ae643a42b289a79800b7a45972
Merge: 2b62839 db17d7c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Mar 26 11:54:13 2012 -0700

    Merge pull request #595 from jeffweiss/ticket/2.7.x/13380_cron_acceptance_tests_break_when_no_cron
    
    (#13380) cron acceptance tests break when no cron

commit 087d5aeed1597a132dbf50e5062ed017a73f79af
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Wed Nov 30 23:03:19 2011 +0000

    (#7285) Add spec for Augeas initialisation and file loading
    
    Simple initialisaton tests with combinations of lens include paths, explicit
    file/lens loading against a few example files.

commit db17d7c2a4634e1c884b50f0526931a0b9ea5904
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Fri Mar 23 16:31:01 2012 -0700

    (#13380) Cron acceptance tests don't ensure cron actually installed
    
    Add cron package resource to cron resource acceptance tests

commit 0498d55e2d943f821b1fc0028b922cc56d602866
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Mar 23 22:24:51 2012 +0000

    (#13204) Workaround duplicate Augeas save events
    
    Bug #264 in Augeas causes duplicate save events to be returned when editing
    under /boot in newfile mode.  Because we loop around these events, diffing and
    unlinking the files, this causes an ENOENT error when we process the same event
    twice.
    
    This commit checks that the file we intend to operate on exists.

commit 54be04bb999004d34f19a0482299d017556604af
Merge: 602cc67 927de1f
Author: Nan Liu <nan.liu@gmail.com>
Date:   Fri Mar 23 11:31:46 2012 -0700

    Merge pull request #17 from glarizza/feature/master/raise_parse_error
    
    Raise a ParseError if a lookup key isn't passed

commit ec1bcdd537d7d8d180c36d16c46e8daa257b7bcc
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Thu Mar 22 20:59:20 2012 -0700

    (#4146) Refactor Nagios to module
    
    Move the nagios types, grammar, and naginator to an external module

commit 0b900c9548f6c652f0d7271156b69c35aa232ead
Merge: c20c81a dbc1165
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 22 15:39:45 2012 -0700

    Merge pull request #590 from cprice-puppet/cleanup/master/trollop_pull_request
    
    Add comment with URL of upstream pull request for trollop

commit dbc1165dfae6268e54010d4246b69a46efeb90c6
Author: cprice <chris@puppetlabs.com>
Date:   Thu Mar 22 15:31:31 2012 -0700

    Add comment with URL of upstream pull request for trollop
    
    Submitted a patch to the upstream trollop library, in hopes
    that these changes will get included and we won't have our
    own custom fork of the project.  Added this to the comments
    for visibility.

commit c20c81aabaab6d0da09f4a0986edddb57f7e525c
Merge: 0a96a8e e78a77e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 22 14:34:08 2012 -0700

    Merge pull request #571 from puppetlabs/integration/master/7749-bootstrapping-puppet
    
    (#7749) improve bootstrapping puppet to support pluginsync apps.

commit e78a77edbd2880dd6c882efcaa7408a16176bd14
Author: cprice <chris@puppetlabs.com>
Date:   Fri Mar 16 16:31:44 2012 -0700

    (#7749) doc / tests cleanup

commit 56339d3c0be96ab35e0239206d945711171c37e2
Author: Jeff Weiss <jeff.weiss@puppetlabs.com>
Date:   Wed Mar 21 16:49:36 2012 -0700

    (#13296) 'unless' as a parameter inside a resource causes syntax error
    
    Add test to validate that unless gets parsed properly if a parameter
    Add case to grammar to PARAMETER for UNLESS => EXPRESSION
    Regenerate parser from grammar

commit 1aa71a91e755690effedd3e428f3ea0eb29954df
Author: cprice <chris@puppetlabs.com>
Date:   Fri Mar 16 15:11:01 2012 -0700

    (#7749) rename "Settings#setdefaults" to "define_settings"
    
    This is just to clarify the intent of the code, mostly in defaults.rb.
    The old signature still exists, but prints a deprecation warning.

commit 274847c3b3148a7407d5c238c016228818878a8e
Author: cprice <chris@puppetlabs.com>
Date:   Fri Mar 16 14:43:13 2012 -0700

    (#7749) get rid of $puppet_application_name and $puppet_application_mode globals
    
    This state is now handled via instance variables in the Settings class.

commit 4751522dac956f80a54495698f541bee3dc974d8
Author: cprice <chris@puppetlabs.com>
Date:   Fri Mar 16 13:30:32 2012 -0700

    (#7749) get rid of "set_run_mode" method in Application class
    
    The "set_run_mode" method in the Application class made it a little
    too easy to do dangerous / scary things to the main application
    state during run time.  Get rid of this method and provide slightly
    more controlled ways to accomplish the necessary goals.

commit e465c160d6d6c592a86aba2db74c5c9e5cb0ecab
Author: cprice <chris@puppetlabs.com>
Date:   Tue Mar 13 10:28:37 2012 -0700

    (#7749) Improvements to handling settings, bootstrapping puppet
    
    Major changes include:
    
    * support multiple config files (/etc/puppet, ~/.puppet).  we no longer
    use "run_mode" to determine the location of the config file.
    * remove all references to application run_mode/state from defaults
    * make the typing of settings a little more strict
    * create a new setting type for directories, to make us a little less vulnerable to the terrible matching algorithm in FileSetting

commit cb3ce74744f842b0ec9fc69c39caa35a413f8e11
Author: cprice <chris@puppetlabs.com>
Date:   Wed Mar 14 15:48:12 2012 -0700

    (#7749) Parse command line args and config file before loading app/face
    
    This commit is mostly focused on solving the following chicken-and-egg
    problem: the way the code worked before, the command_line class would
    try to load an app before doing any parsing of the cli args or the
    puppet config file.  However, we want to support being able to load apps
    and faces from the libdir... and if your libdir is in a non-standard
    location, which you've specified via the command line or config file, then
    the command_line class would fail to find any apps that were in your
    libdir and exit before it ever even looked at the cli args or the config
    file.
    
    To get around this, and to prepare for supporting the ability to run
    faces without an application stub, we needed to move the parsing of
    the cli args and config file to an earlier point in the lifecycle.
    
    The major changes in this commit are:
    
    * Move the initial parsing of the cli args and the config file out of
    application.rb and into command_line.rb so that they happen before
    puppet tries to locate apps/faces.
    
    * Remove all of the "should_parse_config" and "should_not_parse_config"
    options and tests from the various apps.  These are not relevant any
    longer because we always need to parse the config file to make sure
    we know where the libdir is before we try to load faces / apps.
    
    * Introduce a new option parser implementation, to supplement and
    perhaps eventually replace our use of the Ruby stdlib OptionParser.
    The stdlib OptionParser has some very undesirable behaviors that
    are not configurable; the new PuppetOptionParser is a wrapper
    around an open source parser called "trollop"; it maintains the
    same API that OptionParser exposes, but gives us complete control
    over what is happening behind the scenes.
    
    Conflicts:
    
    	spec/unit/util/command_line_spec.rb

commit 2b62839e54a815734db50f07ea902b367b306558
Merge: 75476e1 7048e88
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Mon Mar 19 09:03:30 2012 -0700

    Merge pull request #583 from nfagerlund/ticket/2.7.x/3022_force_attribute
    
    Ticket/2.7.x/3022 force attribute

commit 06eb9a9bdba5e814a847488e4e8a2c9d6fa16135
Author: Andy Sykes <a.sykes@ucl.ac.uk>
Date:   Sat Mar 17 00:26:09 2012 +0000

    Fixes for #10915 and #11200 - user provider for AIX
    
    The user provider on AIX fails to set the password for local users
    using chpasswd.
    
    This commit includes the code in ticket #11200 suggested by Josh
    Cooper. It works in my environment (AIX 5.3 + 6.1).
    
    chpasswd can also return 1 even on success; it's not clear if this is
    by design, as the manpage doesn't mention it. The lack of output from
    chpasswd indicates success; if there's a problem it dumps output to
    stderr/stdout.

commit 75476e1ae2b3440af423d52869a9ff9e6a9637ea
Merge: 3df8eef dba27c9
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Mar 16 11:49:11 2012 -0700

    Merge remote-tracking branch 'daniel-pittman/refactor/2.7.x/4862-remove-the-event-loop-library' into 2.7.x
    
    * daniel-pittman/refactor/2.7.x/4862-remove-the-event-loop-library:
      (#4862) Finally remove the event-loop library.
      (#4862) define_method is not a public method in Ruby.
      (#4862) `returning` is not a standard Ruby method.
      (#4862) Stop using EventLoop in the Puppet daemon.

commit 7048e889d72669f1aaf3f6bb0ca64da5d567756b
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Mar 16 11:17:09 2012 -0700

    (#3022) File type's force attribute's description is incomplete
    
    Puppet always resists destroying directories unless you use force => true. The
    previous description of the attribute said something noncommittal about
    replacing directories with links; this commit describes its complete behavior.
    
    This commit also improves the description of purge.

commit 3df8eef6c13cb95fff52f6b9e511b3f97c2f751a
Merge: 96eda07 95c2b90
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 15 10:33:32 2012 -0700

    Merge pull request #580 from pcarlisle/ticket/2.7.x/13117-semodule-broken
    
    (#13117) fix semodule broken by misuse of readline vs each_line.

commit 96eda070716a2675c0467d330e08f85961a7e66f
Merge: e1a4962 43003f5
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 15 10:10:38 2012 -0700

    Merge pull request #581 from joshcooper/maint/2.7.x/fix-fqdn-rendezvous
    
    (Maint) Consistently use the same agent fqdn

commit 43003f5b6a62dd598e81d4babe90396b77289b8d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 14 20:19:23 2012 -0700

    (Maint) Consistently use the same agent fqdn
    
    Previously, the test would always fail when the rhel6-32-1 box was
    reverted to its `git` snapshot, and the test executed. The box, for
    better or worse, reports the following:
    
        [root@rhel6-32-1 ~]# hostname -f
        rhel6-32-1
        [root@rhel6-32-1 ~]# facter fqdn
        rhel6-32-1.puppetlabs.lan
    
    The agent submits its report using the latter, but the test attempts to
    retrieve the facts using the former:
    
        curl -k -H \"Accept: yaml\" https://rhel6-32-1:8140/override/facts/`hostname -f`"
    
    And that always fails:
    
        Could not find facts rhel6-32-1
    
    This issue does not occur when running the non-Windows acceptance tests,
    because those jobs run on centos-55-386-1 and ubuntu-1004-32-1, which
    don't have inconsistency in their domain as reported by facter and
    `hostname -f`
    
    This commit changes the test to request the facts from the master using
    the same fqdn that the agent used in its report.

commit 2fe5b25f8cd349df4740b8def60e763d434eba2c
Author: cprice <chris@puppetlabs.com>
Date:   Wed Mar 7 17:49:33 2012 -0800

    Add lib_trollop.rb, an alternative implementation of an option / cli parser

commit dc23404bc8bf80c4ce1af84978ed51f09d7a2bfb
Author: cprice <chris@puppetlabs.com>
Date:   Tue Mar 6 14:50:10 2012 -0800

    (#7749) Reduce weird scope cycles when bootstrapping settings
    
    This commit is a first step towards cleaning up the way that settings
    are loaded when puppet is bootstrapped.
    
    A major symptom of the old load order was that if you do a 'require "puppet"'
    too early in your code, everything will break because the defaults will
    be screwed up.
    
    This commit does not represent an ideal (or probably even a 'good') solution,
    it just tweaks a few things in order to make a more meaningful cleanup
    possible.
    
    Specifically:
    
    * Makes the ":mutable_defaults" class of settings more sticky, so that they
      are actually used when interpolating settings
    * Simplify resolution of run modes for legacy application names; previous
      implementation required *ALL* available apps to actually be fully parsed
      and loaded in order to resolve these, and that introduced some challenging
      bootstrap dependency cycles.

commit 95c2b901a9d437ba9487eea4b80235ebf7bb97c1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Mar 14 15:01:22 2012 -0700

    Stub execpipe using StringIO
    
    The real execpipe yields an IO object so this is more realistic as a test.

commit ca32364232648540e8e4f2fae4a935e7f2189c6e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Mar 14 14:49:16 2012 -0700

    (#13117) Fix selmodule error on each_lines
    
    This adds a test for selmodversion_loaded (which previously had no coverage at
    all) and fixes the conflicting use of readline and each_line by choosing just
    one.

commit 0a96a8ec5cb74ab661b690988fb72c9aae725499
Merge: 7e0e641 e1a4962
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Mar 14 13:47:24 2012 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      (Maint) Don't change permissions on /etc/hosts
      Update CHANGELOG for 2.7.12
      Update packaging spec files for 2.7.12

commit 7e0e64184d2a50e19a0b2942d70f2fdca35870e8
Merge: 719e137 694394e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Mar 14 12:06:00 2012 -0700

    Merge pull request #483 from daniel-pittman/maint/master/facter-1.5.7-compatibility-in-test
    
    Facter 1.5.7 compatibility in the test condition.

commit e1a49621b34e468b975e5cb1e0e88e6bf47d3e08
Merge: 0988101 bdb5922
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Mar 14 11:40:14 2012 -0700

    Merge pull request #577 from joshcooper/maint/2.7.x/fix-etc-hosts-test
    
    Don't change /etc/hosts permissions in acceptance tests.

commit bdb5922bcfff3c2259ea74045209bbc278cba6a2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Mar 14 09:59:54 2012 -0700

    (Maint) Don't change permissions on /etc/hosts
    
    Previously, the acceptance test was backing up /etc/hosts, modifying it,
    verifying that `puppet resource host` returned all of the host records,
    and then moving the backup over /etc/hosts. In doing so, the permissions
    on /etc/hosts were overwritten.
    
    Since puppet runs as root on agent nodes, the test was setting the mode
    of /etc/hosts to 0600 (based on root's umask).
    
    However, when the node is also a master, the puppet master cannot read
    the file, since it runs as `puppet`. This causes problems for any later
    test that uses `with_master_running_on`, e.g.
    ticket_7117_broke_env_criteria_authconf.rb:
    
       Could not resolve 192.168.100.114: Permission denied - /etc/hosts
    
    This commit changes the test so that the existing /etc/hosts file is
    truncated and the old contents restored, thereby preserving its old
    mode.
    
    Ideally, it would be nice to not have to overwrite /etc/hosts at all,
    e.g. puppet resource host --param target=/my/tmp/file, but this only
    works for a single host resource, not when querying all of them.

commit 719e137aad922b5e1d511817b793a367801dcc40
Merge: d79afc6 a3230f8
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Mar 14 00:06:22 2012 -0700

    Merge pull request #570 from francois/master
    
    Document missing --noop option for puppet apply

commit d79afc6e7d4787cc46610e7d07145689912c0068
Merge: b25260e e798176
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Mar 12 16:34:53 2012 -0700

    Merge pull request #569 from pcarlisle/ticket/master/3910-server-authoritative
    
    Ticket/master/3910 server authoritative

commit b25260ec8307d9c012d7022243e838cca3877bfd
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Mar 12 11:11:03 2012 -0700

    Revert "Provide a helpful error message when name resolution fails"
    
    This reverts commit aae3a58b7d241b33b7a12ff2aadafa2db3b4904d.

commit 09881017c8fb2aa096433c5a498315c7bc32e0ff
Merge: b01088d 029dae9
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Mon Mar 12 09:21:36 2012 -0700

    Merge branch '2.7rc' into 2.7.x

commit 029dae917ff9b21fbd6388efab7ce8354d9d3d0e
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Mon Mar 12 09:20:42 2012 -0700

    Update CHANGELOG for 2.7.12

commit f569662673863e0683bc67229f4884d6f1ad15ad
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Mon Mar 12 09:00:50 2012 -0700

    Update packaging spec files for 2.7.12

commit b05d4f094c83d7ffe6ece93d3ce0bb97457b8ab2
Merge: 597d134 aae3a58
Author: lifton <lifton@puppetlabs.com>
Date:   Fri Mar 9 20:50:23 2012 -0800

    Merge pull request #573 from nicklewis/helpful-name-resolution-failure-message
    
    Provide a helpful error message when name resolution fails

commit aae3a58b7d241b33b7a12ff2aadafa2db3b4904d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Mar 9 16:30:15 2012 -0800

    Provide a helpful error message when name resolution fails
    
    Previously, this would print a message like:
    
    getaddrinfo: nodename nor servname not provided, or not found
    
    Which is opaque to anyone who doesn't already know what it means. This is a
    very common case (it happens, for instance, when first starting a default agent
    without setting up a DNS entry for 'puppet'). Now, we catch SocketError when
    making an HTTP request, and print a more useful error message if this is the
    particular failure case.

commit 597d134b6555a3c96034f33db0d66faa60f22bb2
Merge: fc0e8c4 b01088d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 9 13:21:18 2012 -0800

    Merge remote-tracking branch 'origin/2.7.x'
    
    Conflicts:
    	spec/unit/parser/functions/create_resources_spec.rb
    	spec/unit/resource_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b01088d112010452942b425c15894036bdea8a83
Merge: 63f8fe9 ea116f5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 9 13:12:32 2012 -0800

    Merge remote-tracking branch 'origin/2.7rc' into 2.7.x

commit 63f8fe9e2f9fd0ffbab7b513deb9a00c29508d85
Merge: 031cbad b00f860
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 9 13:12:22 2012 -0800

    Merge remote-tracking branch 'origin/2.6.x' into 2.7.x
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a3230f888d8234c710aa760c0d0a3828cd02b030
Author: François Beausoleil <francois@teksol.info>
Date:   Fri Mar 9 00:19:08 2012 -0500

    Documenting missing --noop option for puppet apply

commit e79817635d3798aafb324407117b8ddf61803ddd
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Mar 7 17:47:48 2012 -0800

    (#3910) Acceptance tests for environments and ENC
    
    Added acceptance tests around the setting of environments by an agent and an
    ENC. Verify that pluginsync and filebucket requests use the correct
    environment.

commit ce6fecc865ea9ab83e33bf81fe4fb775ba3546ed
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Mar 7 11:08:34 2012 -0800

    (#3910) Make puppet agent use environment specified in catalog
    
    If there is an environment specified in the catalog to be applied (i.e. an
    external node classifier was used and gave an environment for this node) the
    puppet agent will switch to that environment.
    
    When switching environment, the agent needs to get facts and plugins again
    using the new environment, and then try fetching the catalog again using the
    new facts, since this may change the catalog. It loops in this process several
    times, until the environment doesn't change. If it fails to stabilize in a
    limited number of tries it will raise an error and abort the run.
    
    This change also means that the prerun command runs after fetching catalog but before
    applying. It previously ran before fetching the catalog.

commit a15a572c93d9ad59ded60ac78ce7f1aafceb55ff
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Mar 7 11:17:48 2012 -0800

    Remove unused clear method in configurer

commit c9b98635a70f74e884040ff1a8d7c072f7248d70
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Mar 7 10:02:07 2012 -0800

    (#3910) Include environment in catalog
    
    This adds an environment field to a catalog, so that the puppet master can
    tell agents what environment it used to compile the catalog and what it
    expects them to use.

commit 031cbad48bc797c2659fcf3b15720a7cc31f7d7c
Merge: dad6f17 40ee256
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Thu Mar 8 12:16:52 2012 -0800

    Merge pull request #568 from daniel-pittman/maint/2.7.x/12960-fix-order-dependent-test-failures-over-global-state
    
    (#12960) fix order dependent test failures over global state

commit 40ee256f15d60dc990e312567b59672101ac6818
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 8 11:50:27 2012 -0800

    Finally, stop using the `foo` name in the type_spec test.
    
    Using a common name like `foo` runs the risk that things go terribly wrong;
    better to use something less likely to conflict.  Now we expunged the other
    places this broke, this is safe to do.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 245f1b9961e33fee3ff3c8c98e397add4cd41bfb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 8 11:49:43 2012 -0800

    Clean up the "foo" name in create_resources_spec.
    
    Using a common meta-name like "foo" in testing runs a risk that global state
    will lead down the path to things going wrong.  In this case, it clashed
    with a type created elsewhere that lingered...
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit eb2c71bb9acf1e8c6a475fefa5cefee406a20fac
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 8 11:40:10 2012 -0800

    Clean up "foo" name in global resource state.
    
    Expecting that a type by the name of "foo" doesn't exist is asking for
    trouble, because other tests are highly likely to create one.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ec5c4bfc9a221baf58193fd7cf76a1073f2a791a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 8 11:41:43 2012 -0800

    Document the problem with the `apply_to_device` and related methods.
    
    These methods were introduced, producing a pale shadow of the constraint
    system that we already had, as part of building out device support.
    
    Now that we are confident of the long term value of that support, and are
    looking to better integrate it, we should start cleaning up these older relics
    of the initial design.
    
    This flags, in a comment, what the problem is and what the solution should be,
    so that folks looking at the code get directed to the right sort of place.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit dad6f17281771747cac246e53814b5d6bea0ac26
Merge: 290c39f 6a31287
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 8 11:14:45 2012 -0800

    Merge pull request #565 from lotheac/fix_subcommand_exit_status
    
    (#12981) Fix external subcommand exit status

commit fc0e8c4800356833dcb06ed7850febfe51abae2c
Merge: 317d968 fc07871
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 8 11:02:35 2012 -0800

    Merge pull request #545 from pcarlisle/ticket/master/12891-reload-features
    
    (#12891) Make features reloadable

commit 317d968850fb67b9faae744245dd9aa082e645c6
Merge: 215d1a1 ab9e30e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 8 10:40:40 2012 -0800

    Merge pull request #522 from domcleal/tickets/master/8011c
    
    (#8011) Support temp repo URLs in pkgutil provider

commit 290c39fbfbb9e7a0d6e9d0d882aa04643cfc4a15
Merge: d3083d0 0b7841a
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 8 10:21:46 2012 -0800

    Merge pull request #562 from stschulte/ticket/2.7.x/12960
    
    (#12960) Fix puppet resource <type> if type has no providers

commit 215d1a108d7ec70f5eef86e516b64f795cf5f340
Merge: 18f1e91 cee318e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 8 09:36:10 2012 -0800

    Merge pull request #567 from Erkan-Yilmaz/master
    
    add missing )

commit cee318ebc437b1550bb5e39b5a59c088d23e7185
Author: Erkan Yilmaz <erkan77@gmail.com>
Date:   Thu Mar 8 14:28:20 2012 +0100

    missing: )

commit d3083d09db9755a245f60fc5184856bd30c56805
Merge: b27f64a d6da1b7
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Mar 7 14:29:19 2012 -0800

    Merge pull request #566 from daniel-pittman/maint/2.7.x/fix-pkg-provider-tests-on-1.8.5
    
    Maint/2.7.x/fix pkg provider tests on 1.8.5

commit d6da1b7b66b9d4ff67d5d8dd60c82acd913e3dce
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Mar 7 14:18:28 2012 -0800

    Fix hash comparison under RSpec with 1.8.5
    
    The behaviour of eql isn't quite right, and == actually does the right check,
    on all versions of Ruby / RSpec.  This accepts that, and stops using eql in
    rspec checks.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b27f64aa0dc345eedbae6c61eb0f979811eec0cf
Merge: 70d73fa 54e5d18
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Mar 7 11:08:43 2012 -0800

    Merge pull request #560 from stschulte/ticket/2.7.x/7986
    
    (#7986) Modify pkg provider to handle publisher

commit fc0787130ed5ca6b3c8068c084cfef5178fc261b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Mar 6 14:04:16 2012 -0800

    Fix order dependent spec failure caused by formats_spec
    
    This was adding a feature for pson inside of a block that already depended on
    the pson feature. This seems unnecessary.

commit 0b7841a052ddc24fad699033aad81abd6112ffcb
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Mar 5 22:52:14 2012 +0100

    (#12960) Fix puppet resource <type> if type has no providers
    
    puppet resource type calls the instances method of the type class. The
    instances method then calls providers_by_source which can fail if the
    following conditions are true
    
        1) there is at least one provider defined for the type
        2) all providers are unsuitable
    
    If both requirements are met, the method self.defaultprovider will
    return nil and we get the following error message (provided by Ben Ford)
    
        # puppet resource maillist
        puppet/type.rb:902:in `providers_by_source': undefined method `source'
        for nil:NilClass (NoMethodError)
    
    The fix handles the case where defaultprovider can be nil

commit 18f1e919de458004d52d8ba05eb5de4be34c3aeb
Merge: b9ccf40 6d13675
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Mar 6 10:43:22 2012 -0800

    Merge pull request #544 from pcarlisle/ticket/master/12763-reloadable-plugins
    
    Ticket/master/12763 reloadable plugins

commit 70d73fa419069f4036ec74ec3bfee7d808d770aa
Merge: 69016b8 c4b3c84
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Mar 6 10:34:42 2012 -0800

    Merge pull request #536 from pcarlisle/ticket/2.7.x/9491-filesetting-munging
    
    (#9491) Preserve trailing slashes in FileSettings

commit 6a312873eae3edd44ebec3c50f0cb9d55f053945
Author: Lauri Tirkkonen <lotheac@iki.fi>
Date:   Tue Mar 6 13:44:17 2012 +0200

    (#12981) Fix external subcommand exit status

commit b9ccf40c824f37f51b4c76fe85fe5bc8a479b498
Merge: 372c398 69016b8
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Mar 5 16:10:53 2012 -0800

    Merge branch '2.7.x'
    
    * 2.7.x:
      (#10722) Add spec to verify that an error is logged on bad http
      (#10722) Refactor http_spec to use expectations
      Updating CHANGELOG for 2.7.12rc2
      (#7592) Remove redundant call to String#to_s
      (#11988) Work around Augeas reload bug when changing save modes
      (#11988) Don't overwrite symlinks in augeas provider
      (#8312) Fix zypper provider so ensure => 'latest' now works
      (#12844) Fix a unit test relating to lockfiles
      (#12914) Allow puppet to be interrupted while waiting for child
      (#12933) Better error message when agent is administratively disabled
      (#7592) Remove redundant call to String#to_s
      (#12844) Agent lockfiles: backwards compatibility with 2.7.10/2.7.11
      (#10722) Display errors on HTTP report submission failures
      Revert "Merge remote-tracking branch 'masterzen/tickets/2.7.x/3757' into 2.7.x"
      Revert "(#12844) Backwards compatibility for 'puppet agent --enable'"
      (#11988) Work around Augeas reload bug when changing save modes
      (#11988) Don't overwrite symlinks in augeas provider
      (#12881) Fix cron type default name error on windows
      (#12844) Backwards compatibility for 'puppet agent --enable'
      (#8312) Fix zypper provider so ensure => 'latest' now works
    
    Conflicts:
    	lib/puppet/provider/augeas/augeas.rb
    	lib/puppet/reports/http.rb
    	lib/puppet/util/pidlock.rb
    	spec/unit/application/agent_spec.rb
    	spec/unit/provider/augeas/augeas_spec.rb
    	spec/unit/reports/http_spec.rb

commit 69016b85b2fb2a2ee443d10702fb53bcf62390cc
Merge: 3c42231 a2208d0
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Mar 5 14:24:46 2012 -0800

    Merge pull request #561 from pcarlisle/ticket/2.7.x/10722-error-on-bad-http-response
    
    (#10722) report an error on bad HTTTP response to report submission

commit a2208d037aca65cb211a653fb15a14af35fa94ff
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Mar 5 11:55:32 2012 -0800

    (#10722) Add spec to verify that an error is logged on bad http

commit 7207b68cdc104b45b92d136ca03c583386cb6c2a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Mar 5 10:59:28 2012 -0800

    (#10722) Refactor http_spec to use expectations

commit 54e5d18efe988b628028c64c7944156c465864bd
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Jul 13 17:57:15 2011 +0200

    (#7986) Modify pkg provider to handle publisher
    
    The methods :instances, :query and :latest did not handle pkg list -H
    lines correctly when the publisher of a package is not the preferred
    publisher.
    
    Modify the parsing method to handle lines with publisher correctly

commit 2e3292444903c4bd0f6e01109d1d88488d6bbeed
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu Jul 14 17:58:08 2011 +0200

    (#7986) Cleanup pkg provider #2
    
    Switch from Puppet.warning to the warning classmethod. This is mostly
    for testing purposes and changes messages produced by puppet slightly.
    Instead of
    
        warning: Failed to match 'pkg list' line foo
    
    The user will now get
    
        warning: Puppet::Type::Package::ProviderPkg: Failed to match 'pkg
        list' line foo

commit 113fc5410df5d03a644e99c912850f9bdb86ec24
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu Jul 14 17:56:03 2011 +0200

    (#7986) Cleanup pkg provider #1
    
    The testing of hash[:error] is apparently dead code because it is never set
    to anything different than "ok". Remove the hashkey :missing because it is
    never used later.

commit ea116f587b6cc867c4dfcf06da0ca73a1dd2e421
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Sat Mar 3 16:14:35 2012 -0800

    Updating puppet.spec for 2.7.11-1, 2.7.11-2

commit 3c422310c05e884c65b24c9af76e56a8d625d6c7
Merge: a3dddd9 6cb0690
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Sat Mar 3 11:55:08 2012 -0800

    Merge branch '2.7rc' into 2.7.x

commit 6cb069012a3fa7e9952a666bf618198bcc02b26b
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Sat Mar 3 11:54:33 2012 -0800

    Updating CHANGELOG for 2.7.12rc2

commit 21cdab1c8281620b816ce8709e8bd8ccbce370af
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Dec 6 21:18:40 2011 -0800

    (#7592) Remove redundant call to String#to_s
    
    Previously, the augeas provider made calls like the following:
    
     @aug.get(key).to_s
    
    Since the Augeas#get method returns a String not an array, the to_s
    call is redundant. (Note the #match method does return an array.)
    
    The augeas tests were stubbing the #get method to return an array in
    some places (and a string in others). Prior to 1.9.2, ruby will
    automatically convert ["foo"].to_s to "foo", so everything worked as
    expected. However, under 1.9.2, ["foo"].to_s becomes "[\"foo\"]".
    
    These failures weren't noticed earlier, because our 1.9.2@allFeatures
    jenkins nodes do not have ruby-augeas installed. In other words, tests
    that require Puppet.features.augeas? were never running in
    Jenkins. The recent change to improve augeas testing, removed the
    dependency on this feature being installed, so these tests started
    failing.
    
    This commit just removes the redundant call to String#to_s, and
    updates the spec tests to match what the Augeas#get method really
    returns.

commit 5474941f2735e6384cd776931c6bf25f51924d27
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Thu Mar 1 08:31:44 2012 +0000

    (#11988) Work around Augeas reload bug when changing save modes
    
    After saving a file in one save mode and switching to another, Augeas realise
    to reload the file when Augeas#load is called again.  Work around this by
    explicitly reloading all files we saved while using the first save mode.

commit f4d9753c7ea90bd9683a653722ec7a6122166d44
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Feb 9 14:08:36 2012 -0800

    (#11988) Don't overwrite symlinks in augeas provider
    
    Previously, if not running with `force` set, we would try to write the
    file in SAVE_NEWFILE mode to create a <filename>.augnew file with the
    changes. We determined whether there were changes to be made based on
    that file (and used it to show a diff). When it came time to actually
    make the changes, we would simply move the .augnew file over the file
    being managed. Unfortunately, if the file being managed were a symlink,
    this would clobber it.
    
    There was a fallback path in the case of force (or older versions of
    augeas not supporting SAVE_NEWFILE) in which we would make the
    changes in SAVE_OVERWRITE mode as normal. Now, the behavior is a
    combination of the two; we still use SAVE_NEWFILE to determine whether
    changes need to be made and to show a diff, but then remove the .augnew
    file and always run again in SAVE_OVERWRITE mode to save the changes.
    This effectively delegates the behavior of preserving the file, etc.
    to augeas, so we don't duplicate effort or bugs.

commit c085327ada0846ad3d2f4c7422d48a12eb6eddc3
Author: Ken Barber <ken@bob.sh>
Date:   Tue Feb 28 16:38:03 2012 +0100

    (#8312) Fix zypper provider so ensure => 'latest' now works
    
    Previously the regular expression to match the correct column from
    'zypper list-updates' was wrong, it seems to have been based on the command
    'zypper packages' instead. This was caused ensure => 'latest' to fail as the
    provider couldn't adequately figure out what newer versions were actually
    availabe.
    
    So I've fixed the regular expression (based on Felix Frank's patch) and updated
    the spec test so that it uses the real output from zypper list-updates and now
    references an external spec file, as apposed to referencing the content inline.

commit 5bf45d5e1bf6ebe1289bd1bd8827032cbd05c08b
Merge: a3e0e82 28d5d9b
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Sat Mar 3 10:20:03 2012 -0800

    Merge pull request #559 from cprice-puppet/bug/2.7.x/12844-agent-enable-doesnt-remove-old-lockfile
    
    Bug/2.7.x/12844 agent enable doesnt remove old lockfile

commit 28d5d9b3779e4e77a74091037f72348e7c1e6212
Author: cprice <chris@puppetlabs.com>
Date:   Sat Mar 3 07:46:46 2012 -0800

    (#12844) Fix a unit test relating to lockfiles
    
    The recent changes to support backwards compatibility with 2.7.10
    and 2.7.11 introduced a very minor change in behavior with regards
    to when a stale lockfile gets cleaned up.  Fixed this test to
    recognize the change.

commit a3e0e82070b3e4dece7868e02e1fa9e11212c99c
Merge: 6273818 1d058ce
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Mar 2 18:36:41 2012 -0800

    Merge pull request #556 from joshcooper/ticket/2.7.x/12914-poll-child
    
    (#12914) Allow puppet to be interrupted while waiting for child process

commit 62738187b8a1ba1bd2b5e0737836741b8019a924
Merge: 51a3090 8f626d0
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Mar 2 18:35:13 2012 -0800

    Merge pull request #551 from cprice-puppet/bug/2.7.x/12844-agent-enable-doesnt-remove-old-lockfile
    
    Bug/2.7.x/12844 agent enable doesnt remove old lockfile

commit 1d058ce233aeb2f70e1612c56dac52aa5f9c4387
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Mar 2 15:56:51 2012 -0800

    (#12914) Allow puppet to be interrupted while waiting for child
    
    Previously, puppet on Windows could not be interrupted, e.g. Ctrl-C,
    while waiting for a child process it executed to exit. For example,
    when executing a pre/post run command.
    
    This commit changes puppet to poll the state of the child process'
    handle, sleeping for 1 second in between.

commit 8f626d00ebe8f8bf6172d51bf2836612ee097886
Author: cprice <chris@puppetlabs.com>
Date:   Fri Mar 2 14:15:55 2012 -0800

    (#12933) Better error message when agent is administratively disabled
    
    Detect the difference between the cases where an agent run is
    aborted due to another agent run already in progress vs. being
    aborted due to the agent being administratively disabled via
    '--disable', and print a more useful message for the latter case.

commit a3dddd93411c5be81cb8f3fe1ec60c86b9cb0331
Merge: 46c5b85 452e2c4
Author: Deepak Giridharagopal <deepak@brownman.org>
Date:   Fri Mar 2 13:50:54 2012 -0800

    Merge pull request #552 from nicklewis/ticket/2.7.x/11988
    
    Ticket/2.7.x/11988 Augeas spec fixes on Ruby 1.9

commit 452e2c4e3892a1f19e81ea74fee17fbe61460bb5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Dec 6 21:18:40 2011 -0800

    (#7592) Remove redundant call to String#to_s
    
    Previously, the augeas provider made calls like the following:
    
     @aug.get(key).to_s
    
    Since the Augeas#get method returns a String not an array, the to_s
    call is redundant. (Note the #match method does return an array.)
    
    The augeas tests were stubbing the #get method to return an array in
    some places (and a string in others). Prior to 1.9.2, ruby will
    automatically convert ["foo"].to_s to "foo", so everything worked as
    expected. However, under 1.9.2, ["foo"].to_s becomes "[\"foo\"]".
    
    These failures weren't noticed earlier, because our 1.9.2@allFeatures
    jenkins nodes do not have ruby-augeas installed. In other words, tests
    that require Puppet.features.augeas? were never running in
    Jenkins. The recent change to improve augeas testing, removed the
    dependency on this feature being installed, so these tests started
    failing.
    
    This commit just removes the redundant call to String#to_s, and
    updates the spec tests to match what the Augeas#get method really
    returns.

commit 30855bddaaf809e06aa3b80013d1946aed2900af
Author: cprice <chris@puppetlabs.com>
Date:   Thu Mar 1 17:49:23 2012 -0800

    (#12844) Agent lockfiles: backwards compatibility with 2.7.10/2.7.11
    
    In 2.7.10 there was a change in behavior introduced with regards
    to agent lockfiles.  Basically we split the concept of "an agent
    is currently running" apart from the concept of "the agent has
    been administratively disabled" by using 2 different lockfiles.
    
    That change was determined to have broken compatibility with
    mcollective, so it has been reverted as of 2.7.12.
    
    This commit provides backwards compatibility between 2.7.12+
    and 2.7.10/2.7.11 for cases where a user may have administratively
    disabled their agent and then upgraded to a newer version of puppet.

commit 46c5b85361264abfca7d3481a451b084d2278ae9
Merge: 675b245 2973d5c
Author: Deepak Giridharagopal <deepak@brownman.org>
Date:   Fri Mar 2 11:06:18 2012 -0800

    Merge pull request #546 from nicklewis/ticket/2.7.x/11988
    
    (#11988) Don't overwrite symlinks in augeas provider

commit 51a3090d9348bda6f82b27d0cac67e919983660a
Merge: 46903a3 2d8d9ce
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Mar 2 10:20:32 2012 -0800

    Merge pull request #542 from jeffmccune/ticket/2.7rc/12881_fix_cron_missing_provider_error_message
    
    (#12881) Fix cron type default name error on windows

commit ee554ebf7328d29c063f7372b71bdbab4be3af63
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Thu Nov 10 13:57:35 2011 -0800

    (#10722) Display errors on HTTP report submission failures
    
    We were failing silently if the report submission to http
    returned a non-200 response code.

commit bcbe2a3753e43c9ab0c37407c24d3509e953571b
Author: cprice <chris@puppetlabs.com>
Date:   Thu Mar 1 16:02:38 2012 -0800

    Revert "Merge remote-tracking branch 'masterzen/tickets/2.7.x/3757' into 2.7.x"
    
    This reverts commit 86a806f595f8b7bb280c8c445eef51dfd71bf39d, reversing
    changes made to ac81771a9cc70b5fb58f86439ebb0585ce92d4e8.
    
    See tickets #3757, #12844, #4836, #11057.  These changes were deemed to
    be breaking public APIs, and thus are being reverted from 2.7.x.  They'll
    be reintroduced in 3.x.
    
    (The changes in question were relating to how puppet agent creates /
    manages its lockfiles.)
    
    Conflicts:
    
    	lib/puppet/util/pidlock.rb
    	spec/unit/agent_spec.rb
    	spec/unit/util/pidlock_spec.rb

commit 95810adfeae696f26a5595b8f294104bb088db61
Author: cprice <chris@puppetlabs.com>
Date:   Thu Mar 1 15:39:43 2012 -0800

    Revert "(#12844) Backwards compatibility for 'puppet agent --enable'"
    
    This reverts commit fcac8f7163c99884fc6b75e3851c4a5e16a3ff07, which
    was a backwards-compatibility workaround intended to handle some new
    behavior related to puppet agent lockfiles that was introduced in
    2.7.10.  The fix is being reverted because we've decided to remove
    the new lockfile behavior from the 2.7.x series entirely, and push
    it out to 3.x.

commit 372c3982888d9048be0a08921e39c81dab3a5dec
Merge: 196c85f 9b62607
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Thu Mar 1 13:33:58 2012 -0800

    Merge pull request #549 from cprice-puppet/cleanup/master/ruby-185-execution-spec-failures
    
    More fixes / cleanup for 1.8.5

commit 9b62607af61452a3aafda51a0268498e4d2f829e
Author: cprice <chris@puppetlabs.com>
Date:   Thu Mar 1 12:27:02 2012 -0800

    More fixes / cleanup for 1.8.5

commit 2973d5c6e76e8b27e5ffccec0f01d8e6f9084057
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Thu Mar 1 08:31:44 2012 +0000

    (#11988) Work around Augeas reload bug when changing save modes
    
    After saving a file in one save mode and switching to another, Augeas realise
    to reload the file when Augeas#load is called again.  Work around this by
    explicitly reloading all files we saved while using the first save mode.

commit 196c85f51dd1839c67715f576830b942f8a90a27
Merge: bf8a77c 85077ea
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Feb 29 17:18:17 2012 -0800

    Merge pull request #548 from cprice-puppet/cleanup/master/ruby-185-execution-spec-failures
    
    Fix ruby 1.8.5 failures for execution_spec

commit 85077ea13ce9b12aee6179158c3c2176617e0251
Author: cprice <chris@puppetlabs.com>
Date:   Wed Feb 29 17:12:15 2012 -0800

    Fix ruby 1.8.5 failures for execution_spec

commit bf8a77c8f6cfb1b14f7513c298471813da979eea
Merge: b8d8e5d 7c475a2
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 29 15:54:44 2012 -0800

    Merge pull request #547 from pcarlisle/ticket/master/12126-fix-ruby1.8.5-acceptance
    
    Ruby 1.8.5 fix for autoload and up2date

commit 7c475a20ce7f4d2484fc322ee5f9832cb86de56a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 29 15:38:30 2012 -0800

    Fix up2date spec for ruby 1.8.5

commit 023ba591a503e66300b1966934aa4619b596380c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 29 15:20:46 2012 -0800

    (#12126) Fix autoload for ruby 1.8.5
    
    Don't use String.end_with.

commit dfefc23b744b68589068f1c0e92e2b7baee0cf83
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Feb 9 14:08:36 2012 -0800

    (#11988) Don't overwrite symlinks in augeas provider
    
    Previously, if not running with `force` set, we would try to write the
    file in SAVE_NEWFILE mode to create a <filename>.augnew file with the
    changes. We determined whether there were changes to be made based on
    that file (and used it to show a diff). When it came time to actually
    make the changes, we would simply move the .augnew file over the file
    being managed. Unfortunately, if the file being managed were a symlink,
    this would clobber it.
    
    There was a fallback path in the case of force (or older versions of
    augeas not supporting SAVE_NEWFILE) in which we would make the
    changes in SAVE_OVERWRITE mode as normal. Now, the behavior is a
    combination of the two; we still use SAVE_NEWFILE to determine whether
    changes need to be made and to show a diff, but then remove the .augnew
    file and always run again in SAVE_OVERWRITE mode to save the changes.
    This effectively delegates the behavior of preserving the file, etc.
    to augeas, so we don't duplicate effort or bugs.

commit 6d13675a18288249a6a3a3ecc5b91292255b80dc
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 29 12:55:02 2012 -0800

    (#12882) Make functions reloadable
    
    This just changes the error to a warning when a function is reloaded. There
    don't appear to be any actual technical barriers to reloading.

commit 6f38feba68f25168ebe85206aa8995cb6ec69b3f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Feb 27 14:19:01 2012 -0800

    (#12763) Allow actions to be redefined in faces

commit c412bfd48c21a480352507604d7bc088ab0527ea
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Feb 21 15:01:21 2012 -0800

    (#12763) Use autoloader for each face's actions

commit e566ac35a3d27cc3bce5405d2d1a91d0ea261854
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 29 14:34:30 2012 -0800

    (#12891) Make features reloadable
    
    This removes a non-functioning check to prevent reloading features and makes
    reloading work correctly. Prior to this an old cached value of a feature could
    be incorrectly returned. This makes sure the cache is cleared when a new
    version is loaded.

commit 675b245647f5452796216eeb35763579c0c8973b
Merge: 1b3fb06 27bd6bc
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 29 14:19:48 2012 -0800

    Merge pull request #532 from kbarber/ticket/2.7.x/8312-zypper_latest
    
    (#8312) Fix zypper provider so ensure => 'latest' now works

commit b8d8e5d278386a5e30eab1e4d6472d9d8c921595
Merge: f08a95a 1b3fb06
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 29 14:00:56 2012 -0800

    Merge branch '2.7.x'
    
    * 2.7.x:
      Stubbing time is risky, better an approximate compare.
      Don't stub the database in Puppet::Rails tests.

commit 1b3fb064e3a3a8ef4cd8e70a3bb2921a4d840b3b
Merge: 281901e d27af92
Author: pcarlisle <patrick@puppetlabs.com>
Date:   Wed Feb 29 13:35:09 2012 -0800

    Merge pull request #543 from daniel-pittman/maint/2.7.x/test-failure-after-activerecord-cleanup
    
    Maint/2.7.x/test failure after activerecord cleanup

commit d27af929b6a019e0ed3f7979ce6d222695d6a8c1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Feb 29 13:22:56 2012 -0800

    Stubbing time is risky, better an approximate compare.
    
    This test stubbed time, but didn't catch every possible avenue for creating a
    new instance based no the current time of day.  This, combined with the
    Ruby1.9.2 runtime moving to support fractional seconds more broadly, led to
    two "equal" times that didn't compare as identical.
    
    We really don't care about the exact time, so much as that we update it
    appropriately on the object, so an approximate comparison is more robust than
    trying to stub out and freeze time.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 46903a3690e784a2e10e2a13592f30c4ee3e1796
Merge: 5f0f269 fcac8f7
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed Feb 29 12:35:05 2012 -0800

    Merge pull request #540 from cprice-puppet/bug/2.7.x/12844-agent-enable-doesnt-remove-old-lockfile
    
    (#12844) Backwards compatibility for 'puppet agent --enable'

commit 2d8d9ceff86363ea303eaf4584d767040a343794
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Feb 28 14:42:21 2012 -0800

    (#12881) Fix cron type default name error on windows
    
    On windows I ran into this error with the cron type:
    
        err: Failed to apply catalog: undefined method 'name' for nil:NilClass
    
    Without this patch, the problem appears to be that the cron type name
    parameter defaults to the following block:
    
        defaultto { Etc.getpwuid(Process.uid).name || "root" }
    
    On windows `Etc.getpwuid(Process.uid)` returns `nil`.  This patch fixes
    the problem by binding the object returned by
    `Etc.getpwuid(Process.uid)` to a variable.  We then check if the
    variable responds to the `name` method, and only send a message to name
    if so.  Otherwise, we return "root"
    
    The included spec test will fail if there is a regression in the desired
    behavior.  The expected failure looks like:
    
        Failures:
    
          1) Puppet::Type::Cron should default to user => root if Etc.getpwuid(Process.uid) returns nil (#12357)
             Failure/Error: entry = described_class.new(:name => "test_entry", :ensure => :present)
             NoMethodError:
               undefined method `name' for nil:NilClass
             # ./lib/puppet/type/cron.rb:359:in `default'
             # ./lib/puppet/type.rb:540:in `set_default'
             # ./lib/puppet/type.rb:1834:in `set_parameters'
             # ./lib/puppet/type.rb:1833:in `each'
             # ./lib/puppet/type.rb:1833:in `set_parameters'
             # ./lib/puppet/type.rb:1797:in `initialize'
             # ./spec/unit/type/cron_spec.rb:474:in `new'
             # ./spec/unit/type/cron_spec.rb:474

commit fcac8f7163c99884fc6b75e3851c4a5e16a3ff07
Author: cprice <chris@puppetlabs.com>
Date:   Tue Feb 28 17:52:44 2012 -0800

    (#12844) Backwards compatibility for 'puppet agent --enable'
    
    In version 2.7.10 we changed the name of the lock file that is
    used by 'puppet agent --enable/--disable'.  A side effect is
    that if the lockfile was created under an older version of
    puppet, the "--enable" command in the newer versions won't
    delete the old lockfile and thus you can't run your agents.
    Make --enable attempt to detect and resolve this situation.

commit f08a95a4325d13bb1d0eaab4283d40382c3584e1
Merge: 04c6a22 1640db5
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 29 10:37:37 2012 -0800

    Merge pull request #533 from pcarlisle/ticket/master/12126-fix-test
    
    (#12126) Fix autoload spec on windows

commit 281901e6bc90236966339c581512d7256d60d924
Merge: 2768b9c 01c8623
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Feb 28 17:55:52 2012 -0800

    Merge pull request #538 from daniel-pittman/maint/2.7.x/test-failure-after-activerecord-cleanup
    
    Don't stub the database in Puppet::Rails tests.

commit 01c8623c2b5d630491b063c9ecbe514ac66cf3f5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Feb 28 17:28:55 2012 -0800

    Don't stub the database in Puppet::Rails tests.
    
    The tests for the Puppet::Rails::Host and other Rails interface class stubbed
    out parts of rails, in a way that confused things later on and ended up
    breaking unrelated tests ... but only when they were invoked in a very
    particular order.
    
    Thankfully, just using a scratch database is both cheap and easy here, and
    makes this all just work.  So, do that instead.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c4b3c8470698bf4dbaf0e8ec1ff8da63407dc0e6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Feb 28 11:58:48 2012 -0800

    (#9491) Preserve trailing slashes in FileSettings
    
    We use the trailing slash in a FileSetting to determine whether it's a
    directory. The change in 97c043f4 caused trailing slashes to be stripped.
    This caused errors like:
    
    change from directory to file failed: Could not set 'file on ensure: Is a directory - /var/lib/puppet/facts

commit 04c6a22e02e9fe02aec30cd8749b08aeca328488
Merge: e692c7a bd1f679
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Feb 28 13:29:46 2012 -0800

    Merge pull request #534 from cprice-puppet/feature/master/3324-yumrepo-ssl-options
    
    Feature/master/3324 yumrepo ssl options

commit bd1f679b023a5a0e144ede64cba5e2cbd4dd56f1
Author: cprice <chris@puppetlabs.com>
Date:   Mon Feb 27 10:38:53 2012 -0800

    (#3324) Ported yumrepo unit tests to spec
    
    * Port test from test/ral/type/yumrepo.rb into yumrepo_spec.rb
    * Delete old test and supporting files

commit ab23e4360438827fc37f2803242b8cad34626545
Author: Dieter De Meyer <dieterdemeyer@gmail.com>
Date:   Sat Jan 28 22:33:13 2012 +0100

    (#3324) yumrepo doesn't support ssl options

commit 1640db52d84b6cd2056a76f8aa30e53ff2668963
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Feb 28 10:44:23 2012 -0800

    (#12126) Fix autoload spec on windows
    
    When setting libdir the path is expanded, so using the actual libdir setting
    in the test instead of expecting it to remain what we initially set it to.

commit 27bd6bc67fa5c9bf7de241dbf99266adc5eb7c43
Author: Ken Barber <ken@bob.sh>
Date:   Tue Feb 28 16:38:03 2012 +0100

    (#8312) Fix zypper provider so ensure => 'latest' now works
    
    Previously the regular expression to match the correct column from
    'zypper list-updates' was wrong, it seems to have been based on the command
    'zypper packages' instead. This was caused ensure => 'latest' to fail as the
    provider couldn't adequately figure out what newer versions were actually
    availabe.
    
    So I've fixed the regular expression (based on Felix Frank's patch) and updated
    the spec test so that it uses the real output from zypper list-updates and now
    references an external spec file, as apposed to referencing the content inline.

commit e692c7ae5036f5703a46f4a3df6a47c34b5d761b
Merge: 2b457f0 2768b9c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Feb 27 18:01:57 2012 -0800

    Merge remote-tracking branch 'origin/2.7.x'
    
    Conflicts:
    	spec/unit/indirector/catalog/active_record_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2b457f00dd7c54dd1a434b277e1d38b723386f6d
Merge: fdc7c4d 2655bb1
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 27 17:46:14 2012 -0800

    Merge pull request #516 from pcarlisle/ticket/master/12126-autoloader-reload
    
    (#12126) autoloader reloading

commit 2768b9cf3e386cf0e7188533f1af998e3e975928
Merge: 5f0f269 600a6e7
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 27 17:42:40 2012 -0800

    Merge pull request #497 from daniel-pittman/bug/2.7.x/active-record-test-failures-with-3.2.1
    
    Bug/2.7.x/active record test failures with 3.2.1

commit 2655bb18b14066af2ebc843a4081da36e382289c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Feb 27 16:39:35 2012 -0800

    (#12126) Update comments in Autoload to reflect reality

commit 8870379ad7abbb09ad0eae5f79ff38d33af659f6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Feb 27 16:13:35 2012 -0800

    (#12126) Normalize path names to avoid unnecessary reloading

commit f43dbba66358570d51e55fe4c6372985912cbe9b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Feb 27 11:00:19 2012 -0800

    (#12126) Use $LOADED_FEATURES instead of $" in autoloader.

commit 0d57a1afeaeea0a61c06086e86edfb54abd4465f
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Feb 21 14:57:34 2012 -0800

    (#12126) Mark a file as loaded when starting to load instead of after
    
    Without this it's possible to recurse indefinitely in loadall.

commit 821c2e87eb3f096b5c4baecefebfc476edc27cd9
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Feb 13 15:19:39 2012 -0800

    (#11858) When syncing plugins, use autoloader to reload changes
    
    Before this, all files synced would be loaded. This resulted in inconsistent
    behavior, since not all files would necessarily be loaded during runs when
    they did not need to be synced. This makes it so that any already loaded files
    that are changed by pluginsync will get reloaded, and any other files are left
    to be autoloaded as they normally would be.

commit c15efb4960adefa88837b438833234a210cbed84
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 15 13:37:07 2012 -0800

    (#12126) Remove unnecessary searchpath method

commit c897a0b6174696592c59e5913241eb26cf04872d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 15 11:27:00 2012 -0800

    (#12126) When reloading files detect changes anywhere in the load path
    
    Prior to this change, if a file is loaded, and a new version is placed at a
    higher priority location in the load path, reload_changed would not detect it.
    This makes it properly detected so the first copy in the load path at the time
    reload_changed is called will always be loaded.

commit fdc7c4d71815a827f1ab309aad610ad98b5a4064
Merge: 5055e39 088b4a4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 27 17:29:20 2012 -0800

    Merge pull request #529 from joehillen/master
    
    Show matched processes for services in debug.

commit a4d3df260e2cfc11dfe1db18e1dda6ac8113b743
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Feb 14 16:01:04 2012 -0800

    Remove Puppet::Util::Autoload::FileCache.
    
    This cache module was complex and had obvious bugs in it, and it's not clear
    that it was necessary. We'll add something back if it turns out we needed to
    cache file operations in the autoloader.

commit 4e8c36867c229c80a2e4415edf7a3ecd820312b3
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Feb 13 11:57:57 2012 -0800

    (#12126) Implement reloading changed files
    
    This adds a reload_changed method to the autoloader. It checks all loaded
    files for changes (based on the mtime of the files) and reload any paths that
    have changed. Deleted files are still listed as loaded since there is no way
    to actually unload code in Ruby.

commit 432426f4b19af1258750a089c6da663d3d00c930
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Feb 13 11:46:48 2012 -0800

    (#12126) Track mtime of autoloaded files

commit bbfec56f814cc8d6c5b9eb656a12c60e850e45a1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 8 14:53:42 2012 -0800

    (#12126) Refactor Puppet::Util::Autoload
    
    This consolidates all the the loading logic into the singleton associated with
    the Autoload class. The Autoload instance is now a thin proxy to this
    singleton. This may not seem like an improvement in the short term but it lays
    the groundwork for reloading support. Having the logic in the singleton gives
    load methods access to the full tree of loaded files, which will be necessary
    when we want to reload all changed files.

commit f01473abf20e042be9c590dd32e86dfa5407936d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 8 13:47:10 2012 -0800

    (#12126) Improve autoloading specs
    
    In preparation for refactoring, this adds some specs for the autoloader and
    cleans up the depedency on PuppetSpec in the existing specs.

commit 7780504ed2ed0b97f81defba14862676bb48fb8e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Feb 2 14:06:42 2012 -0800

    (#12126) Rename loaded to mark_loaded to avoid conflict with new accessor

commit 5055e39d93fd1be807e866d3a6fb575aabe3eacf
Merge: b01fc5f 7fc2971
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Feb 27 15:25:13 2012 -0800

    Merge pull request #515 from cprice/cleanup/master/improved-logging-during-plugin-loading
    
    * cprice/cleanup/master/improved-logging-during-plugin-loading:
      Extra debug logging during plugin loading

commit 088b4a4501dddf3cfb012136eb74d17349ac8e35
Author: Joe Hillenbrand <joehillen@gmail.com>
Date:   Mon Feb 27 13:10:32 2012 -0800

    Show the process line matched for services in debug.

commit b01fc5f44150ae710a2039daf7762531bf837ec6
Merge: efa6184 5f0f269
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Feb 27 12:39:41 2012 -0800

    Merge branch '2.7.x'
    
    * 2.7.x:
      Updating CHANGELOG and lib/puppet.rb for 2.7.12rc1
      (#12572) Fix failing last run summary test on windows
      (#12188) Handle Win32 as well as Unix in pidfile tests.
      Updating CHANGELOG again for 2.7.11
      (#12188) Better handling of PID file cleanup warnings.
      (#12572) Add acceptance test to make sure no last_run_summary diff is printed
      (#12572) Revert fix for #7106 and implement a more minimal fix

commit efa6184786f2d43a71ea48d39f3d018ae3e8b170
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Feb 27 10:37:26 2012 -0800

    Fix Windows test that was broken in merge from 2.7.x.

commit c6d656ae204c0a4f4ee34bfa1a3f11b20deb0336
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Feb 27 00:25:27 2012 +0100

    (#1076) Show warning if an empty group is specified
    
    If the user passes an empty group to the user type, puppet will execute
    an invalid `usermod` command.
    
    e.g. if groups of user 'foo' is currently 'bar' and we do
    
        user { 'foo':
          groups     => '',
          membership => minimum # this is the default
        }
    
    puppet will build a should value of ',bar' (old group + the new group '') and
    will pass '-G ,bar' to the usermod command (which will then fail).
    
    To really specifiy 'no group' the group property does allow an empty
    array so we should fail if we find an empty string as a group.

commit e1f99570524296a4fc66e5f490c5cf509c957c37
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Feb 27 00:35:49 2012 +0100

    Maint: Remove unused mock objects in user spec
    
    Also remove the modification of the PATH environment variable because we
    will always have our :simple provider which does rely on any commands in
    /sbin.

commit bc64d9b4510919327e0867bd13bc19e628a9745c
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Feb 27 00:10:02 2012 +0100

    Maint: Use real objects in user spec
    
    Remove all references to the mock resource object

commit 7eb4f5bd949cdbf4ab8865b9b6127dc05b17528c
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Feb 26 23:23:22 2012 +0100

    Maint: Add a real provider class to user spec
    
    Add a real provider class we can use in the tests.

commit d28c62ab190b041c8126a8f57ba176a54271495c
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Feb 26 22:53:43 2012 +0100

    Maint: Remove unused variable in user spec
    
    If rspec already gives us the described class why not using it.

commit 5f0f269428587e97dabaca1fa812f7c5d616ec29
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Feb 24 13:16:31 2012 -0800

    Updating CHANGELOG and lib/puppet.rb for 2.7.12rc1

commit adea7420e810b34561d096ec2fa676b214838518
Merge: 70677b2 7f887c6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Feb 23 14:20:16 2012 -0800

    Merge branch '2.7.x'
    
    * 2.7.x: (63 commits)
      Maint: Fix bad copy and paste
      (#12725) Fix puppet agent --listen on Windows
      (#11740) Wait on the handle from the PROCESS_INFORMATION structure
      (#12564) Stub CHILDSTATUS in all test cases, not just failure cases.
      Updating CHANGELOG and lib/puppet.rb for 2.7.11
      (#12412) Mark symbolic file modes test as pending on Windows
      Symbolic file mode test fixes when no mode change happens.
      Fix spec ordering failure on environment
      Updating CHANGELOG and lib/puppet.rb for 2.7.11
      Disable specs that use replace_file on Windows
      Disable replace_file on Windows
      Remove unnecessary fallbacks in change_{user,group}
      Document uid/gid-related methods in Puppet::Util
      Copy owner/group in replace_file
      (#12463) eliminate `secure_open` in favour of `replace_file`
      (#12460) use `replace_file` for the .k5login file
      (#12462) user_role_add: use `replace_file` for /etc/shadow
      (#12463) add secure `replace_file` to Puppet::Util
      (#12459) drop supplementary groups when permanently dropping UID
      (#12458) default to users primary group, not root, in `asuser`
      ...
    
    Conflicts:
    	lib/puppet/application/queue.rb
    	lib/puppet/provider/package/openbsd.rb
    	lib/puppet/util.rb
    	spec/unit/network/http/webrick_spec.rb
    	spec/unit/util_spec.rb
    	test/lib/puppettest/servertest.rb

commit 5a7b39d697fe150150f0a08f7b81bd61fd40faec
Merge: 7f887c6 7c5d1e4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Feb 23 13:58:05 2012 -0800

    Merge commit '7c5d1e4' into 2.7.x

commit b00f8600a3cfd37590e644da98b12800569554d2
Merge: 4173839 a61c785
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Feb 23 11:15:44 2012 -0800

    Merge tag '2.6.14' into 2.6.x

commit 7f887c637eb06794e5e7ff034610f767d245f22e
Merge: 1ae3fce a4dea0f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Feb 23 11:15:10 2012 -0800

    Merge tag '2.7.11' into 2.7.x

commit 7c5d1e40d363d78ba4213445c35e5ac71e319862
Merge: 87bcf3f c814c6b
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed Feb 22 19:16:36 2012 -0800

    Merge pull request #6 from pcarlisle/ticket/2.7.x/12572-last-run-summary
    
    Ticket/2.7.x/12572 last run summary

commit c814c6b525c3a0eebad4b4f69f1051b1abc6551a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 22 18:38:23 2012 -0800

    (#12572) Fix failing last run summary test on windows
    
    This reverts the test to the previous version, which should work on all
    platforms. The test didn't work on windows since /dev/null isn't special.

commit 87bcf3f6950bcf9e7ae2a50d373c9fcbbff69a57
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 18:03:12 2012 -0800

    (#12188) Handle Win32 as well as Unix in pidfile tests.
    
    When I changed the testing for the PID file system I neglected to check that
    Win32 would work; this makes sure the path used is absolute for the platform
    the specs run on, fixing that problem.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 16d9af902203c3053ad2727379d997d231c76f5a
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Wed Feb 22 16:18:39 2012 -0800

    Updating CHANGELOG again for 2.7.11

commit 01b57e9c1a61d460ed9b00f8037b356c03f7a82e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jan 26 17:24:36 2012 -0800

    (#12188) Better handling of PID file cleanup warnings.
    
    Previously everyone who invoked the `unlock` method of our pid file code would
    duplicate all the internal logic to issue a warning, but only if we tried and
    failed to delete the PID file.
    
    This seems redundant compared to just pushing that down to the code that
    actually fails, which this commit does.
    
    Along the way it helps ensure that we don't warn unnecessarily about PID file
    deletion, and adds tests to validate that.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 70677b25f85bb9b0721e327770c5fb2c18208a59
Merge: e4c3148 59fa2cd
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 22 15:57:23 2012 -0800

    Merge pull request #524 from cprice-puppet/bug/master/fix_backups_spec_test
    
    Fix backups_spec, which fails if run by itself

commit e4c31488ac2f9370ee5c65fd9f80920c6ec45594
Merge: b8a6f23 a43d546
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 22 15:54:53 2012 -0800

    Merge pull request #518 from cprice-puppet/bug/master/7316-acceptance-tests
    
    (#7316) Initial acceptance tests

commit 1ae3fce74e0602dabd4291fb98e88b1412583f24
Merge: 1518894 90fb5c8
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Feb 22 14:37:02 2012 -0800

    Merge branch 'ticket/2.7.x/12725-puppet-kick-windows' into 2.7.x
    
    * ticket/2.7.x/12725-puppet-kick-windows:
      Maint: Fix bad copy and paste
      (#12725) Fix puppet agent --listen on Windows

commit dba27c9809d5af26cdf31c7de9cb3b55fa24faba
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Feb 22 13:58:13 2012 -0800

    (#4862) Finally remove the event-loop library.
    
    Now that all the consumers of the event-loop abstraction have been removed,
    delete the obsolete code from Puppet.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8e1176639afb1110d671b73dfd3571ff5d5ac905
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Feb 22 13:52:37 2012 -0800

    (#4862) define_method is not a public method in Ruby.
    
    The `better-definers` part of the EventLoop library change `define_method` to
    be public on all objects, rather than private.  This isn't standard in Ruby,
    and we only had one place that wasn't respecting this to start with.
    
    Rather than retaining this divergence we just use `send` to trigger the
    behaviour externally in the one place that is needed.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 11501a7c8db9e7547bfa94a79dc60160a20825a7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Feb 22 13:46:50 2012 -0800

    (#4862) `returning` is not a standard Ruby method.
    
    The `returning(foo) do ... end` idiom used in this method isn't a standard
    part of Ruby; it comes from the event-loop better definers code.  Since this
    is the one occurrence in the source tree, might as well open-code it.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 30a23ac94c99e1a44fa6b5f7cdcfe896906a53fc
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Feb 21 17:58:02 2012 -0800

    (#4862) Stop using EventLoop in the Puppet daemon.
    
    This eliminates the places in the code that use the EventLoop model directly:
    the two timers established to check configuration changes and run the agent,
    and the invocation of the main loop in daemon mode.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 411828be395a68d70fec634fa8d8ff12572e8501
Merge: a4dea0f a8b6088
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 22 13:00:35 2012 -0800

    Merge pull request #5 from pcarlisle/ticket/2.7.x/12572-last-run-summary
    
    (#12572) Don't print a diff of last_run_summary.yaml

commit a8b608807c116cf2aa63339de4404f8bf3e250e5
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 22 11:48:54 2012 -0800

    (#12572) Add acceptance test to make sure no last_run_summary diff is printed

commit 40480ed1aba80f407911521a2121b62cf821fdbd
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 22 11:13:33 2012 -0800

    (#12572) Revert fix for #7106 and implement a more minimal fix
    
    The original fix for #7106 (last_run_summary.yaml only readable by root) used
    a catalog to write out the last run summary. This created extra output if
    show_diff is turned on. This reverts that change, and adds a chmod call to set
    the mode based on settings.

commit 59fa2cd6d21e32318aa579cc9c272d2537d991f2
Author: cprice <chris@puppetlabs.com>
Date:   Tue Feb 21 17:53:57 2012 -0800

    Fix backups_spec, which fails if run by itself
    
    If you run backups_spec without any other tests, it will fail due to
    an incomplete expectation on FileTest.exists?.  This commit fixes it.

commit 90fb5c8eee1a828e6d76b2ac4e4e739ad9dc72f7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Feb 21 16:47:57 2012 -0800

    Maint: Fix bad copy and paste
    
    The code for creating the webrick access log file was copied from
    ruby's `WEBrick::BasicLog.initialize` method so that we can prevent
    the file descriptor from being inherited across an exec call. However,
    the pasted version changed `sync = true` to just `sync`, which doesn't
    do what we want.
    
    This commit sets the sync mode on the access log file descriptor so
    that writes are automatically flushed.

commit aa8a00b3939e8b154b9e8f4f9a7fd6addf7a1b15
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Feb 21 00:11:06 2012 -0800

    (#12725) Fix puppet agent --listen on Windows
    
    Previously, running `puppet agent --listen` failed on Windows, because
    we were trying to set the Fcntl::FD_CLOEXEC flag on webrick's http
    access log, but Windows does not support that flag.
    
    There are ways to prevent file handles from being inherited across
    calls to CreateProcess (either disabling inheritance on a given handle
    or preventing all handles from being inherited). But for now, this
    commit just skips setting the flag on Windows.
    
    This commit also re-enables spec tests that were disabled on
    Windows. The thinking previously is that webrick would never run on a
    Windows agent, but that's not true.

commit a4dea0f174b5a99e7b07518add5ca1751a578249
Merge: b2ef3a9 febe9bf
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Feb 21 15:53:37 2012 -0800

    Merge branch 'puppet-2.7.11-cve+regression' of github.com:puppetlabs/puppet-cve-test into puppet-2.7.11-cve+regression

commit ab9e30e2e27da6cfc5493c47a4d04212eb0459cb
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Tue Feb 21 22:30:51 2012 +0000

    (#8011) Support temp repo URLs in pkgutil provider
    
    One or more URLs to pkgutil repositories can be supplied in the "source"
    attribute and are given to pkgutil via the -t option as temporary repos.  A
    single URL can be given, or multiple URLs as an array.

commit 1518894f29e00f014d53f478fd5193896a440d22
Merge: 05e4643 c5d3825
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Feb 21 08:51:05 2012 -0800

    Merge pull request #520 from joshcooper/ticket/2.7.x/11740-handle-is-invalid
    
    (#11740) Wait on the handle from the PROCESS_INFORMATION structure

commit 05e46434c35da8e9c0baf9b65ada6dd0456feb5b
Merge: c5cf798 4f493a3
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 20 19:03:15 2012 -0800

    Merge pull request #519 from daniel-pittman/bug/2.7.x/12564-insufficient-stubbing-of-childstatus
    
    Bug/2.7.x/12564 insufficient stubbing of childstatus

commit c5d382563e6701261dce188257e49aac5e02fcf6
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Feb 20 15:06:49 2012 -0800

    (#11740) Wait on the handle from the PROCESS_INFORMATION structure
    
    Previously, the `Puppet::Util.execute` method was using `waitpid2` to
    wait for the child process to exit and retrieve its exit status. On
    Windows, this method (as implemented by the win32-process gem) opens a
    handle to the process with the given pid, and then calls
    `WaitForSingleObject` and `GetExitCodeProcess` on the process
    handle. However, the pid-to-handle lookup will raise an exception if
    the child process has exited. As a result there was a race condition
    whereby puppet could sometimes fail to retrieve the exit status of
    child processes.
    
    The normal way of getting the exit code for a child process on Windows
    is to use the child process handle contained in the
    `PROCESS_INFORMATION` structure returned by `CreateProcess`. This
    works regardless of whether the child process is currently executing
    or not.
    
    This commit reworks the `Puppet::Util.execute_windows` method to wait
    on the child process handle contained in the process information
    structure. This requires that we pass the `:close_handles => false`
    option to the win32-process gem so that it doesn't close the handles.
    
    This commit also re-enables tests that were previously being skipped
    due to this bug.

commit 4f493a32fb28bae85835951bf8ea0b6e954be5d9
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 20 16:12:50 2012 -0800

    (#12564) Stub CHILDSTATUS in all test cases, not just failure cases.
    
    On my machine, $CHILDSTATUS is always "success", so I didn't notice the
    failure to stub out the first couple of tests correctly.  Now, with them
    stubbed, it is no longer possible that a previous test can leave global state
    dangling that will break their assumptions.
    
    Signed-off-by: Daniel Pittman <daniel@rimspace.net>

commit a43d546ff16c69cbc4cd389fb98f9d9ece3a2f63
Author: cprice <chris@puppetlabs.com>
Date:   Mon Feb 20 16:05:01 2012 -0800

    (#7316) Initial acceptance tests
    
    This is an acceptance test for #7316 and #6753.  It creates an application
    and a face on the master, runs the agent, verifies that the pluginsync
    brought down the correct files, and then attempts to run the app/face.
    
    If the app/face run successfully then we've illustrated that the pluginsync
    worked and that the app/face are available on the node, and also that the
    face can be run without having a stub placeholder file in the application
    directory (#6753).
    
    These currently fail, which is why they are in the "pending" directory.

commit febe9bfa35a0391ec976807baa50685aa041ddcf
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Feb 20 12:42:56 2012 -0800

    Updating CHANGELOG and lib/puppet.rb for 2.7.11

commit 0486462945a0685fa3466749b8e81e778ea5ef14
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Feb 3 10:32:30 2012 -0800

    (#12412) Mark symbolic file modes test as pending on Windows
    
    Previously, the test used hard-coded tmp file locations, and then
    passed the posix style paths to puppet apply, which doesn't work on
    Windows agents.
    
    This commit refactors the test to use `Host#tmpfile` and Host#tmpdir`
    methods, which requires using `agents.each do |agent|` style test.
    
    Also, there are problems executing `chmod 0000 path` via Cygwin as the
    resulting file always has at least 0400 permission. For now, I'm
    marking the entire test as pending on Windows and will come back to
    it.

commit 115ba71939a7d3cec45bddbae16975fb85151425
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Feb 2 14:36:10 2012 -0800

    Symbolic file mode test fixes when no mode change happens.
    
    The acceptance test for symbolic file modes didn't handle a case when the
    initial and target file mode were identical correctly; it expected a message
    about a change, which was never delivered.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c5cf798ca1d023352efb099fc1817a6948bfe8ce
Merge: 7ac86b8 0a7d05a
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 20 14:42:21 2012 -0800

    Merge pull request #517 from mmrobins/maint/2.7.x/fix_enviornment_sort_spec_failure
    
    Maint/2.7.x/fix enviornment sort spec failure

commit 0a7d05aa7de73ed685c0e5f17f22b4382f4ed36a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Feb 16 11:20:37 2012 -0800

    Fix spec ordering failure on environment
    
    The module_requirements method was sorting the requirements, but only as
    it went along, not for the entire list of requirements that got put in
    the data structure.  This caused intermittent test failures since
    sometimes the results would come out in a different order than the
    specs asserted.
    
    This moves the sort to happen *after* the data is all in.

commit a61c7851ee3f02118d9f10724e95554fa90e7d18
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Feb 20 12:46:38 2012 -0800

    Updating CHANGELOG and lib/puppet.rb for 2.6.14

commit 7ac86b8357a8631f98276a1d043accb6a1baba85
Merge: ccdc774 7f6947a
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 20 12:44:07 2012 -0800

    Merge pull request #452 from daniel-pittman/bug/2.7.x/8435-openbsd-package-provider-broken-with-remote-packages
    
    Bug/2.7.x/8435 openbsd package provider broken with remote packages

commit b2ef3a9ccd649802a8133322b672d32a691e3c3e
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Feb 20 12:42:56 2012 -0800

    Updating CHANGELOG and lib/puppet.rb for 2.7.11

commit 7fc29710bdd5ad8fafbb761f7a13f6349a24b7e7
Author: cprice <chris@puppetlabs.com>
Date:   Mon Feb 20 10:53:17 2012 -0800

    Extra debug logging during plugin loading
    
    As a new-ish puppet user, it is incredibly easy to screw up your
    module path (e.g., by adding a directory that directly contains
    module/plugin contents to the module path, rather than adding the
    *parent* directory.  This basically means that there would be a
    'lib' directory directly in your module path.)
    
    This commit just adds a few debug messages that may give a user
    hints about what could be wrong with their module path when
    we are able to detect these sorts of situations.

commit b8a6f230c99a82ee4fae0ae18bca9dae61e4f1f7
Merge: 95a8dfb bb4f3c0
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 20 12:32:24 2012 -0800

    Merge pull request #241 from GregSutcliffe/pacman_aur_support
    
    Extend Pacman provider for Archlinux to use Yaourt

commit 95a8dfb4d1e92e2d2c309a932458345a0beb2117
Merge: 821a669 e8a7425
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 20 12:27:36 2012 -0800

    Merge pull request #508 from pmorch/doc-for-apply-noop
    
    Add documentation for puppet apply --noop

commit dde39455384fee4af92020c79ec0871f45eacb11
Author: Deepak Giridharagopal <deepak@puppetlabs.com>
Date:   Fri Feb 17 17:16:08 2012 -0700

    Disable specs that use replace_file on Windows
    
    The k5login and solaris user_role specs use replace_file, which currently
    doesn't work on Windows.
    
    Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>

commit 4272d1f7674911c15da3ff6516d5827646a6bda6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Feb 14 18:02:33 2012 -0800

    Disable replace_file on Windows
    
    Our current approach of setting owner/mode in the Puppet way risks
    losing any extra permissions beyond owner/group/everyone, which is
    significant enough that it is better to simply not support this
    operation until we have a better solution. replace_file isn't used in
    any code which actually runs on Windows at the moment, so this is
    a benign change.

commit 4bcbad4badb5dbfa2703f2f5ec2c34c20f800aa9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Feb 13 15:36:33 2012 -0800

    Remove unnecessary fallbacks in change_{user,group}
    
    These methods were attempting to call change_privilege, and rescuing
    NotImplementedError, to use our own implementation of similar behavior.
    As it turns out, the only system on which change_privilege is not
    implemented is Windows, which these methods already don't support. So
    there's no reason to have a fallback that would only ever fail or not be
    reached.

commit ff372fb9426a5386959c6908b477f32eb8cc93e4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Feb 13 13:03:52 2012 -0800

    Document uid/gid-related methods in Puppet::Util

commit 5f8f3ba05ea65564758f3bce363cc0b4823f4832
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Feb 13 13:02:30 2012 -0800

    Copy owner/group in replace_file
    
    If the file doesn't exist, this will still use the current user/group as
    the uid/gid of the file.

commit f0c99956e7e3dcd68bdec570cbc32adf88b53163
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Feb 6 14:37:06 2012 -0800

    (#12463) eliminate `secure_open` in favour of `replace_file`
    
    None of the users of `secure_open` in the codebase actually want to achieve a
    result different from `replace_file`, so we might as well eliminate the older
    API in favour of one that is easier to use and clearer in intent.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0c967037ec8305aceb81f0a3e5d2969054bce2e2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Feb 6 11:03:16 2012 -0800

    (#12460) use `replace_file` for the .k5login file
    
    Previously this hand-coded replacing the .k5login file; Replacing that with
    the standard API ensures consistent, safe, and atomic updates of the target
    file.
    
    It also reduces the cognitive burden of the provider, since the semantics of
    the standard method are clearer than the semantics of the type.
    
    Finally, this commit adds some tests for the type, and the inline provider, to
    help ensure that the type continues to work into the future.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7900a66c9c75224d74535fd612298b50395fe86a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Feb 5 21:16:29 2012 -0800

    (#12462) user_role_add: use `replace_file` for /etc/shadow
    
    The user_role_add provider for user management previously open-coded the safe,
    atomic replacement of /etc/shadow after in modified it.
    
    Mostly even safely, except that it didn't enforce permissions on the temporary
    file, so might have spilled data to third parties, if tempfile isn't
    sufficiently secure.  (Ruby makes no promises about tempfile mode.)
    
    We replace that with the standard, central replace_file API, which ensures
    that is done in a safe, correct, and standard fashion.
    
    On the way through this removes the window where this could previously have
    lost the content of /etc/shadow due to an unfortunately timed crash, by
    ensuring we fsync the content of the temporary file.
    
    It also documents, but doesn't eliminate, the lack of locking and other races
    around this update to the shadow file.
    
    Finally, some minor code and test updates to make it easier to test this on
    fake data, rather than like on your own /etc/shadow file...
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f9f9961444b48700040815ffeaf8a23d9ca5b778
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Feb 5 20:45:36 2012 -0800

    (#12463) add secure `replace_file` to Puppet::Util
    
    There is some complex logic around replacing an existing file safely, and it
    used to be scattered all over the tree - making the whole system much harder
    to use nicely and pleasantly.
    
    It is much better that we provide a central, and easy to use, method for
    achieving that specific and common goal in a consistent, secure, and easy to
    audit fashion.
    
    Based on code submitted by me on 2010-04-08.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit db0f8720dea15b6deb401deab9ce4f706ca34dc6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Feb 5 15:58:24 2012 -0800

    (#12459) drop supplementary groups when permanently dropping UID
    
    On certain platforms, Process::UID.change_privilege doesn't handle
    changing supplementary groups. In that case, we need to always
    explicitly initgroups, regardless of whether we're using
    change_privilege, or change_group/change_user.
    
    Analysis by Dominic Cleal <dcleal@redhat.com>
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7f26d2830a6ccba51c5dea620c1cb0271ae20bda
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Feb 5 15:46:31 2012 -0800

    (#12458) default to users primary group, not root, in `asuser`
    
    When only a user (no group) was given to the asuser method, the egid wouldn't
    be changed and would remain the privileged gid.  This has been changed to the
    primary gid of the user.
    
    Fix and analysis by Dominic Cleal <dcleal@redhat.com>
    
    Contributed: Daniel Pittman <daniel@puppetlabs.com>
    Contributed: Deepak Giridharagopal <deepak@puppetlabs.com>
    Contributed: Nick Lewis <nick@puppetlabs.com>

commit a96babffebda0285026397cd34bb33ad0a9038e3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Feb 5 12:09:37 2012 -0800

    (#12457) add users primary group, not Process.gid, in initgroups
    
    The Process.gid (real gid) was always included when initialising supplementary
    groups in the initgroups method (called when changing the euid via the
    change_user method).  This has been replaced by the primary gid of the user.
    
    This led to a privilege leak, as well as a potential surprise when it came to
    file ownership, in both the agent and the master.
    
    Fix and analysis by Dominic Cleal <dcleal@redhat.com>
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4173839dd274202bb74a3dd59e6d66e4e52e40e5
Merge: 311848a 60b7aa5
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 20 11:37:40 2012 -0800

    Merge pull request #509 from justinstoller/bug/2.6.x/12692-dont_hard_code_paths_in_tests
    
    (#12692) Don't hard code CI paths into tests

commit 2f215460a77bf8f38d7bbe57510abc221235c179
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jan 30 10:10:15 2012 -0800

    Restore compatible `insync?` behaviour for matching arrays.
    
    Prior to the start of these cleanups, when matching the entire array rather
    than part of it, we accepted the situation where the `is` array - what the
    provider returned - matched one of two arrays:
    
    One, if it matched as-is the `should` array, which is what the resource is
    configured to be delivering.
    
    Two, if it matched the `should` array after every value in it was transformed
    via `to_s`, into a string.
    
    Preserving this does mean that the `property_matches?` method is no longer
    used for comparison when `array_matching :all` is in force - because it
    internally handles the value comparisons, we can't expose the logic that
    refuses to match anything but the entire array to it.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6ffe25badc4c1d1464ff995333556000e5dd5197
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 16:35:00 2012 -0800

    Fix bugs around the finer-grained insync? protocol.
    
    Due to the lack of effective testing around `insync?`, when I refactored it I
    missed one of the inequality cases.  This restores the correct behaviour, in a
    separate commit to call out the actual change in structure better.
    
    It includes some specific tests around the new `property_matches?` method, to
    ensure that it preserves the current - if odd - behaviour.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 133b7390b4dd7e209f27a3dd80f08d4a2958eaef
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 15:56:23 2012 -0800

    Add unit tests for the `insysc?` method of a property.
    
    Previously this core, vital method was covered by a bunch of other random
    stuff, including acceptance tests, but it didn't actually have tests that
    belonged to just it.
    
    This was revealed to be a problem in the last refactor of the code, which blew
    up in nasty ways when an edge case wasn't found.
    
    These tests do, in fact, show up that problem and everything.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 908bfbda134e427956f82f23fe0332acbc0813d7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 15:09:11 2012 -0800

    Property Spec cleanup: eliminate stubbing of resource and provider.
    
    Now that the state and scope of all our resources and providers is clear, it
    becomes much easier to replace the stubs and mocks with real instances.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0d95eb771708436e1bdec9726eaa76c4e0015b49
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 15:06:37 2012 -0800

    Property Spec cleanup: last let method extraction.
    
    This helps eliminate member variables in tests, making it easier to see where
    state is or isn't shared between tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 539441328b2be0b1b0a7e8c9caa0ca84ad3cecc6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 15:03:18 2012 -0800

    Property Spec cleanup: extract more let methods.
    
    This helps eliminate member variables in tests, making it easier to see where
    state is or isn't shared between tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f919e174235de5cea27128512b72a087c3f64f71
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 14:59:12 2012 -0800

    Property Spec cleanup: remove unused instance variable.
    
    Nobody actually used the object that was set up at the start of this context,
    so we can just eliminate it.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7bb261b8f9c405c0706179b5796647d1e2eecbeb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 14:56:45 2012 -0800

    Property Spec cleanup: remove some pointless extra stubs.
    
    One test context had a duplicate version of the outer instance management
    code, probably because it was in a different class so couldn't see the member.
    
    Replacing the outer version with let methods means that we also see the
    helpers down in our nested contexts, so we can ditch the extra code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e81f02cbf92b4fc39acb4e13ee7b3ecbee999f83
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 14:49:57 2012 -0800

    Property Spec cleanup: extract property instance to a let method.
    
    This helps eliminate member variables in tests, making it easier to see where
    state is or isn't shared between tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4fc4dd4eb99ad7b7f72711674fb726f98076723d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 14:48:35 2012 -0800

    Property Spec cleanup: extract mock resource to let method.
    
    This helps eliminate member variables in tests, making it easier to see where
    state is or isn't shared between tests.  This only tackles the top level stub
    object, rather than the embedded versions that overwrote it in other tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9083fc6b8eaac27a48d2720d24b2590b11ba8cc3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 14:46:58 2012 -0800

    Property Spec cleanup: extract mock provider to let method.
    
    This helps eliminate member variables in tests, making it easier to see where
    state is or isn't shared between tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 25d7c99fd929482569bf19206fa76ab0ee276264
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 14:45:48 2012 -0800

    Property Spec cleanup: extract new subclass to let method.
    
    We need a shiny, new subclass of Puppet::Property every test, because we
    modify class level things - and so we would pollute the tests if we touched
    the same class object.
    
    This extracts the logic around that to a let method, making the lifecycle
    easier to follow by eliminating a member variable.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3638651155493baf9147a0ba1d00a96c412c1057
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 13:56:58 2012 -0800

    (#2927) Acceptance test for symbolic file modes.
    
    This adds an acceptance test that validates that symbolic file modes are
    functional on all our platforms, as expected.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit daa247eb925191e0da772d95eb1464a3b2de89c7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 16:58:44 2012 -0800

    (#12296) Acceptance test for cycle detection in graphs.
    
    This adds a simple acceptance test that validates we detect and report cycles
    in a catalog as we compile and try to execute it.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 1f0f40e97b7dcadc41e48adc67df91bf201bf7e9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 16:32:58 2012 -0800

    Use natural ordering of Puppet::Provider.
    
    The module tool used to generate and sort by a proxy key for providers, when
    detailing their content.  Instead, this can use the natural ordering of
    providers previously introduced.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3c1604a0ec9a793be6e2f10870297852dc48593f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 16:30:48 2012 -0800

    Make `Puppet::Provider` ordered.
    
    Like types, our providers have a natural internal order.  Exposing that allows
    us to eliminate proxy sorting everywhere that it is done, and have more
    uniform treatment of our types.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 50dc35d1714101380f287d2f3e367bb26aab236d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 16:09:02 2012 -0800

    (#12296) Now that `Puppet::Type` is ordered, use that.
    
    This eliminates the proxy sorting in the graph library, which was working
    around the fact that Puppet::Type was not able to be ordered out of the box.
    
    That makes the whole process significantly more robust.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9962ac0885f915fcd7095b2a961f7fc62d331a00
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 15:34:30 2012 -0800

    (#12296) Make `Puppet::Type` ordered.
    
    Type instances have a reasonable natural order, which allows us to make them
    Comparable.  This, in turn, makes any interaction where ordering is of
    interest easier to deal with.
    
    This implementation uses the string form of the resource as the basis for
    comparison, which is a reasonable starting point from existing definitions of
    ordering over resource instances.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b28d4ce84a5689b6f5a1714c283b1908aed58342
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 14:40:30 2012 -0800

    (#12296) Test cycle detection on real Puppet::Type instances.
    
    We have found a couple of places where the behaviour of the items tested, and
    the behaviour of the real system, differ - because the tests were run over
    simpler objects than the real Puppet::Type instances we work on in the field.
    
    This moves from testing on fake things to testing on the real deal, which
    gives us a much more solid basis to trust the tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 103a554b766e7ae66833acc7bcd5a2f26510469a
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Feb 6 13:53:45 2012 -0800

    (#12310) Remove process_name instrumentation listener
    
    This was causing a performance regression in 2.7.10. Removing it for now, to
    be added back later when the issue is fixed.

commit 821a66975abdf11f5e89934dd99882a1b508dfc5
Merge: 69db777 537718f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 20 11:31:28 2012 -0800

    Merge pull request #512 from cprice-puppet/feature/master/improve-backtrace-logging
    
    Minor improvement to backtrace logging

commit f11ee449cbeb4e6c935c6670d887b8b6f1d39381
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jan 31 14:12:02 2012 -0800

    (#12464) Avoid unnecessarily reloading facts when node_name_fact is not set
    
    In fixing #8341 we reduced the caching of facts, leading to a performance
    regression in puppet apply. Puppet apply loaded facts twice, first to look up
    the fact for node_name_fact, and then a second time under the new node name
    given by node_name_fact. This optimizes the common case where node_name_fact
    is not set so that facts are only looked up once.
    
    Reported in #12310.

commit ccdc77459066149f979fca7c9f3f7f50dac3c648
Merge: a357d23 8be0882
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Feb 18 12:12:51 2012 +0100

    Merge pull request #514 from nfagerlund/typo/2.7.x/seperated
    
    * 'typo/2.7.x/seperated' of git://github.com/nfagerlund/puppet:
      Typo: "Seperated" -> "separated"

commit a357d2301261b14694b745b3f179b2c885ccfba1
Merge: e57831d 2575417
Author: Deepak Giridharagopal <deepak@brownman.org>
Date:   Fri Feb 17 15:15:31 2012 -0800

    Merge pull request #458 from daniel-pittman/bug/2.7.x/12405-remove-old-storeconfig-cleaner
    
    Bug/2.7.x/12405 remove old storeconfig cleaner

commit 8be08828f55f3de4c21e4a556d3168f50f28487a
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Feb 17 13:56:55 2012 -0800

    Typo: "Seperated" -> "separated"
    
    A surprisingly widespread typo! This commit changes all instances of
    "seperated" in description strings to "separated."

commit 537718f15bb3361474e4ae67ae01bda6ce4b6840
Author: Chris Price <cprice@explosivo.(none)>
Date:   Fri Feb 17 11:07:25 2012 -0800

    Minor improvement to backtrace logging
    
    With --trace and log_exception(), backtrace logs were being printed
    without line separators between them.  This simply cleans up the
    formatting so that each hop in the stack is printed on its own line.

commit e57831dc1364d28adfe2ffcf24b01b8a3db198cc
Merge: e3f1769 86f2876
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Feb 17 10:57:15 2012 -0800

    Merge branch 'ticket/2.7.x/11408-remote-recursion' into 2.7.x
    
    * ticket/2.7.x/11408-remote-recursion:
      (#11408): Don't add execute bit to newly created files on Windows
      (#11408) Skip default file permissions for sync'ed files on Windows
      (#11408) Allow POSIX paths for files served to Windows agents

commit 86f2876980e59d1b3acc32294f1da3bf861e7e2e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Feb 15 21:58:04 2012 -0800

    (#11408): Don't add execute bit to newly created files on Windows
    
    Previously, if a directory was executable for owner or group, then any
    file created at a later time in the directory would have its execute
    bit set. For example, if a directory's mode is set to 0750, then any
    file created in the directory at a later time would have the same
    mode.
    
    This causes the file mode to change unnecessarily across puppet
    runs. For example, when puppet starts for the first time, it creates a
    $vardir/certs directory that is executable. During the same run, it
    writes out its signed cert, which is now executable. The second time
    puppet runs, it sees that the mode is out-of-sync, it should be 0644,
    and changes the mode.
    
    If the same scenario occurs to a service's configuration file, then
    puppet could bounce the service unnecessarily.
    
    This commit creates two sets of inherit-only access control entries on
    the parent directory. One set applies the same permissions from the
    parent directory to its subdirectories (containers) at creation time. The other set
    masks off the execute bit for its files (objects) at creation time.
    
    Note puppet always has FULL_CONTROL (which includes FILE_EXECUTE) for
    files it creates, so this commit does not prevent puppet from being
    able to execute content that it downloads. It only prevents group and
    other from having execute permission by default.
    
    In order to grant execute permission to group and other on a file that
    puppet manages, you must explicitly specify the appropriate mode in
    the file's resource.

commit 673c4256123aa1e9d7d2a1f1a145eab835846408
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 16 11:56:52 2012 -0800

    (#11408) Skip default file permissions for sync'ed files on Windows
    
    Previously the pluginsync acceptance test fails on Windows because we
    were trying to guess the appropriate default user and group to create
    sync'ed files as, and guessing wrong.
    
    When using cygwin and ssh with publickey authentication, the cygwin
    sshd server, running as `cyg_server` creates a token to impersonate
    the ssh client, `Administrator` in my case, and starts a shell process
    using the token. The new process runs as the authenticated user,
    `Administrator`, but calls to `GetUserName` (which the sys-admin gem
    calls), returns `cyg_server`. See "method 1: create a token from
    scratch"[1].
    
    As a result, puppet was setting the $vardir/lib directory owner to
    `cyg_server`, group nobody, and mode 0755, which meant puppet running
    as `Administrator` couldn't download (write) files into the directory.
    
    The real issue, though is that we shouldn't be trying to guess what
    the default owner/group for newly created files/directories that are
    plugin sync'ed. This is because the default DACL varies across OS
    (2003, 2008, ...) and user (Administrator vs SYSTEM).
    
    This commit just omits the owner and group parameters from downloaded
    file resources on Windows, so that they get created with the default
    owner and group. The POSIX behavior is unchanged, using the
    Process.uid/gid.
    
    [1] http://cygwin.com/cygwin-ug-net/ntsec.html

commit 94f5f53244eddb80bc4e8cb58859d12624b2daa9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 16 11:54:18 2012 -0800

    (#11408) Allow POSIX paths for files served to Windows agents
    
    Previously, Windows agents would fail during fact and plugin sync. The
    agent would retrieve the remote file metadata and attempt to set the
    metadata's path based on the path of the file as it exists on the
    remote system. Since the remote system is typically a POSIX puppet
    master, our `Puppet::Util.absolute_path?` path check would fail on
    Windows.
    
    To complicate matters, the path of the "remote" file can in fact be a
    Windows-style path, such as when using puppet apply and a modulepath
    that refers to the local filesystem.
    
    This commit changes the `Puppet::FileServing::Base#path=` method to
    allow both POSIX and Windows style paths on Windows hosts, but only
    allows POSIX style paths on POSIX hosts, since we don't support
    running puppet master on Windows.

commit 60b7aa540ca47035ec6e2ce0d43ed4fcc1facdc0
Author: Justin Stoller <justin@puppetlabs.com>
Date:   Thu Feb 16 10:12:55 2012 -0800

    Prior to this commit we hard coded paths in two tests that depended on
    our CI system directory structure. This made it hard to use our
    acceptance suite without also including the exact same setup. It also
    increased the cost of maintaining our CI setup.
    
    This uses a path relative to the test itself (the file that it SCPs
    should always be in the same directory as the test itself)
    
    Signed-off-by: Justin Stoller <justin@puppetlabs.com>

commit e8a7425e08b322749e9bdeb98a091e220c1f969e
Author: peter <peter@morch.com>
Date:   Tue Feb 14 19:29:20 2012 +0100

    Add documentation for puppet apply --noop

commit e3f1769420a9183107e8ca34cc0a5e11e1ef59e2
Merge: f9e4b89 50082e3
Author: lifton <lifton@puppetlabs.com>
Date:   Wed Feb 15 20:32:58 2012 -0800

    Merge pull request #498 from daniel-pittman/bug/2.7.x/6663-increase-default-key-length
    
    Bug/2.7.x/6663 increase default key length

commit f9e4b8911f6435af43c8e1588330b9692b3ae272
Merge: 4d27b8b e323bce
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Wed Feb 15 17:43:29 2012 -0800

    Merge pull request #507 from mmrobins/ticket/2.7.x/fix_module_spec_for_windows
    
    Ticket/2.7.x/fix module spec for windows

commit e323bcec334f8abe7d24d1d395d37032fd3bfe81
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Feb 15 14:09:19 2012 -0800

    Fix a test that tries to create a dir with '*' in the name
    
    Windows has a bigger list of reserved characters that can't be used in
    directory names than Linux does, so a spec failed that tried to create
    an invalid module dir actually created an invalid Windows dir.
    
    http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#naming_conventions
    
        The following reserved characters:
        < (less than)
        > (greater than)
        : (colon)
        " (double quote)
        / (forward slash)
        \ (backslash)
        | (vertical bar or pipe)
        ? (question mark)
        * (asterisk)
    
    The main point of the failing spec was to show the restrictions on module
    directory names, which is /^[-\w]+$/, so I'm just going to use an '=' in the
    spec since Windows doesn't reserve that.

commit 4d27b8b48da5af01fc315cc5a4bcedddc1fb7244
Merge: 8b28379 03bd20b
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 15 14:02:24 2012 -0800

    Merge pull request #506 from mmrobins/ticket/2.7.x/12631-remove_puppet_module_face
    
    Ticket/2.7.x/12631 remove puppet module face

commit 8b283790c74e697f128deb7e0955182da290e0ba
Merge: bd4b6cf edf13c1
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 15 14:02:10 2012 -0800

    Merge pull request #505 from mmrobins/maint/2.7.x/fix_range_monkey_patch_mistake
    
    Maint/2.7.x/fix range monkey patch mistake

commit 03bd20b61e218e0302d6d1ddb9e8d5300a2bee78
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Feb 15 12:48:00 2012 -0800

    (#12631) Remove puppet module face
    
    The current state of the module face was deemed not ready for shipping
    because there was insufficient testing and formatting.  This removes the
    parts of the code that make the module face accessible as a face
    application, and the accompanying tests.  This change will be reverted
    after the 2.7.11rc is cut so that work can continue on the module face
    for the next release.

commit edf13c19cf04e07bf410552129dc749c52b102f5
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Feb 15 13:23:59 2012 -0800

    Fix range intersection monkey patch :& alias
    
    I made a last minute change to the original pull request to not monkey
    patch Range to have an intersection method if it was already defined.
    However, I also added `unless method_defined? :intersection` to the &
    alias after intersection had been defined, so the alias never got
    defined.  This commit fixes the :& alias.

commit bd4b6cf7eee74ac379e950903bb545e63dc4887e
Merge: fef777b f903c41
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 15 13:04:48 2012 -0800

    Merge pull request #504 from mmrobins/ticket/2.7.x/12256-module_tool_core_changes
    
    Ticket/2.7.x/12256 module tool core changes

commit f903c418327aad2c7ca8cbb403cc32bd659c8569
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Feb 15 11:07:44 2012 -0800

    (#12256) Fix SemVer's range behavior to work with Ruby 1.9
    
    In Ruby 1.9 Range's implementation of include? changed so that if the
    objects being compared were non-numeric it would iterate over them
    instead of doing a comparison with the endpoints.  We're subclassing
    numeric to force non-discrete range behavior.
    
    Numeric doesn't allow singleton methods to be defined, so we had to
    change the way inspect worked when dealing with MIN and MAX values.
    
    Paired-with: Pieter van de Bruggen <pieter@puppetlabs.com>

commit bbff8d0d2e40ac519488fa72fb460ceb60031b90
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Wed Feb 15 01:00:28 2012 -0500

    (#12256) module_requirements should include versions
    
    Before this patch module requirements do not include version numbers.
    Since modules with the same name, but different version numbers, can be
    installed at the same time -- in different parts of the modulepath,
    there is no way to tell which module has the dependency.
    
    This patch fixes this issue by changing the data structure that
    represents module requirements from a two item Array to a Hash with
    three keys: name, version, and version_requirement.
    
    This patch includes updated spec tests related to this change.

commit 7156e9cd291c24644f1f7c9e7fc483b6ba5fe09a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Feb 14 14:47:21 2012 -0800

    Update module and environment with functionality for the module tool
    
    Being able to figure out what other modules depend on a module is useful
    for resolving contraints when installing and preventing uninstalls of
    modules that are still required.  And being able to tell if a module has
    local changes is useful to prevent accidentally losing those changes
    when upgrading or uninstalling a module.

commit b6d052e727629738969121b746362be11f537c08
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Feb 14 13:15:29 2012 -0800

    (#12424) Update SemVer to use ranges and new comparison operators
    
    Having range intersection allows easier checking of version constraints,
    and new comparson operators allow for ranged version constraints like
    you would expect from a typical packaging system (ex 1.2.x).
    
    There is also a slight change to the way prerelease version numbers are
    validated so that a dash is required between the patch version and
    prerelease string.  This was done to comply with the declared semver
    spec:
    
        A pre-release version number MAY be denoted by appending an arbitrary
        string immediately following the patch version and a dash
    
    This could affect forge module versions, or face versions, but neither
    of these were found to be using prerelease versioning anyway.
    
    Pieter van de Bruggen was the original author of these changes, but I'm
    submitting them as part a larger rebase for module tool change.  I've
    also reviewed the changes.

commit 69db777c3ad5dd4c91db5046d5d4ab928350242f
Merge: dae9468 79c0ac2
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 15 10:43:11 2012 -0800

    Merge pull request #502 from cprice-puppet/bugs/master/fix_stderr_acceptance_tests
    
    re-fix acceptance test related to logging changes

commit fef777b60ffca37cd3a41dd642c6b0838e32b492
Merge: b9655fe 2e98bd1
Author: Matt Robinson <mattr@mattrobinson.net>
Date:   Wed Feb 15 10:09:42 2012 -0800

    Merge pull request #501 from kelseyhightower/ticket/2.7.x/12645_face_actions_should_have_the_ability_to_set_specific_exit_codes
    
    Ticket/2.7.x/12645 face actions should have the ability to set specific exit codes

commit 79c0ac2a01efc647718c7eacbb55db2560eb814c
Author: cprice <chris@puppetlabs.com>
Date:   Wed Feb 15 09:36:10 2012 -0800

    re-fix acceptance test related to logging changes

commit 2e98bd1ee729bc9fccd99e05b238e397f332b3a8
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Feb 14 23:31:18 2012 -0500

    (#12645) Face actions should be able to set exit codes
    
    Before this patch Face actions do not have the ability to set specific
    exit codes. The only way to set a non-zero exit code is to raise an
    exception, which sets the exit code to 1.
    
    This patch provides the ability for Face actions to set specific exit
    codes by simply calling `Kernel::exit`.
    
    Example:
    
        exit(2)
    
    Calling `Kernel::exit` raises a SystemExit exception which we rescue in
    the `Puppet::Application::FaceBase` class -- the base class of all
    Faces, which updates the status variable used to set the exit code later
    on.
    
    This patch also includes updated specs related to this change.

commit 50082e3f5d3d5291252d54d0eb6fb163084f26f8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Feb 14 17:04:16 2012 -0800

    (#6663) Raise default key lengths in Puppet.
    
    The CA key length was lower than it should be - 1024 bits is no longer secure
    enough for real world use.  This raises both client and CA certs to use 4096
    bit keys.  Those are slow, but effective for long term security.
    
    People who know enough to decide that the trade-off of speed vs limited window
    of security can still totally reduce the size of the key without much trouble,
    but we default to being more cautious.
    
    This also pegs the key lengths low in testing, since building a 4K key is
    awful slow if you want to do it time and time again over the course of dozens
    of tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 600a6e7f1e8d5c2e7df6ac8df86adb43f386f7f8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Feb 14 15:20:42 2012 -0800

    Clean up and unify scratch database setup logic.
    
    Now that we have a pile of places all trying to do the same setup and
    exclusion for SQLite in their tests, it pays to push all that into a central
    location and make it uniformly available to all the tests.
    
    This provides a nice, global method that can be invoked by any test suite to
    configure the database, and then uses that everywhere that was doing scratch
    database setup.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 17a530256d944970c889f08ed7a63f0a9b35d04b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Feb 14 15:26:26 2012 -0800

    Make PuppetSpec::Files methods available at module level.
    
    Previously you could only access the `tmpfile` and `tmpdir` helpers by mixing
    the module in somewhere, despite them exclusively mutating global state.
    
    This became inconvenient when trying to centralize the database setup, so I
    moved them to module functions and made the helpers that mix in defer to the
    module level methods.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3857e2b3ac6231bd90e59507b13d2b8dada555aa
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Feb 14 15:06:06 2012 -0800

    Fix stubbing of ActiveRecord that doesn't work in AR 3.2.*
    
    These tests worked really hard to try and stub out the AR stack and avoid
    using a database - which worked, until the AR 3.2 series changed their
    internals and so the stubbing stopped working.
    
    Instead, rewrite the tests to actually use a database.  Works much better and
    catches way more errors, even if the tests run marginally less often.
    Honestly, though, almost everything here is database layer behaviour...
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit dd6d36cbb096a8fe03bdaab071908c72b30feb08
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Feb 14 13:59:22 2012 -0800

    Fix Rails compatibility code to be less stupid.
    
    When the Inventory ActiveRecord node object was implemented, an alias was
    created to make the `scope` vs `named_scope` change over the Rails 2.x to 3.x
    releases work nicely.
    
    Sadly, this did this by using the older name, and creating an alias on the
    modern releases.  That works great until the 3.2.x release, where the
    internals changed and the compatibility stuff broke.
    
    Instead, we apply the change so that the modern version works for older
    releases, which should be much more robust - not least because they don't
    develop on the older versions, so they are not a moving target.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b9655fea47c5eefaa6f4768b750e634aeb063aca
Merge: 0d168ec 6fc9ccd
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Feb 14 12:53:05 2012 -0800

    Merge pull request #494 from joshcooper/ticket/2.7.x/12403-windows-default-log-destination
    
    (#12403) Always create a default log destination

commit dae9468f8bf2e76d19f62c270cc9274dab119876
Merge: 2f2d428 0d168ec
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Feb 14 12:30:55 2012 -0800

    Merge remote-tracking branch 'origin/2.7.x'
    
    Conflicts:
    	acceptance/tests/resource/file/source_attribute.rb
    	acceptance/tests/resource/file/ticket_8740_should_not_enumerate_root_directory.rb
    	acceptance/tests/ticket_7139_puppet_resource_file_qualified_paths.rb
    	lib/puppet/network/http/handler.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0d168ec78af3d75de374b9359b8dad9e226fbe1c
Merge: 53380b9 4720a94
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Feb 14 12:24:01 2012 -0800

    Merge pull request #493 from pvande/tickets/2.7.x/12080-telly-prototype-console
    
    tickets/2.7.x/12080 Telly prototype console

commit 2f2d428d916f1b06cef4a03be0c37ebc014694c7
Merge: 4f0559b 25a6d5c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Feb 14 12:10:55 2012 -0800

    Merge pull request #495 from cprice-puppet/cleanup/master/deprecated-util-execution-message
    
    Clean up deprecation warning

commit 6fc9ccd30073df4a96354e25ee200aee8a223d9e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Feb 14 00:24:53 2012 -0800

    (#12403) Always create a default log destination
    
    Previously, assumptions were being made that the syslog feature was
    always present, which isn't true by default on Windows. As a result,
    puppet agent on Windows would not write to a log file unless
    explicitly enabled using the --logdest command line option.
    
    This commit adds a new method `Puppet::Util::Log.setup_default` that
    registers a :syslog log destination provided the corresponding feature
    is present. Otherwise, it uses a file log destination using the
    default `puppetdlog` setting. This ensures agents without syslog
    always have a default log destination.
    
    The commit is fairly straightforward, except for the change to the
    application_spec test. I had to stub Puppet.features.stubs(:syslog),
    because bug #12540 causes the logdir setting, and all of its
    descendent properties, to be corrupted when the value of
    `Puppet::Util::RunMode#logopts` is passed to
    `Puppet::Settings.set_value`, but not when passed to
    `Puppet::Settings#setdefaults`. The latter accepts an older style
    array containing the default value and description, but the former
    does not. Instead, it munges the default value and description
    together, which makes it unsuitable as a file log destination, causing
    the test to fail on Windows. Since the actual type of log destination
    is not important for the application_spec test, this commit ensures we
    always use syslog for the test.

commit babe7e468d78709c266ef4cae79b31092038a722
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Feb 13 21:01:36 2012 -0800

    Maint: Remove duplicate code from bad merge conflict
    
    Merge 67e4e399 resulted in duplicate code for processing the logdest
    argument. This commit just removes the duplicate code.

commit 27476f6727f7467660c232939d5542e89977239d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Feb 13 20:45:28 2012 -0800

    (#12403) Refactor duplicate log setup
    
    Previously, the code for setting up the default log destination was in
    the base `Puppet::Application` class and various application
    subclasses duplicated the code in their `setup_logs` method.
    
    This commit refactors the code for setting up the default log
    destination, and modifies the subclasses to invoke the method of their
    superclass.
    
    This change is being done in preparation for changing the default log
    destination on Windows.

commit 4720a9456daa4b03af7641b006f63add081e47dd
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Mon Feb 13 19:19:17 2012 -0800

    (#12080) Implement a rich console logging prototype.
    
    The new telly_prototype_console log destination aims to be a more human-friendly logging
    endpoint, and acts as a prototype of some of the work we plan to build into Telly.

commit 53380b98a2899ef94b1f50027d5fb6b5d04e9ba4
Merge: 3b8c786 a195717
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 13 17:17:49 2012 -0800

    Merge pull request #487 from joshcooper/ticket/2.7.x/12412-root-user
    
    (#12412) Don't assume root user exists

commit 7f6947a3943f4b8b32e3a3b7c1c677860cf216d7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Feb 13 16:23:36 2012 -0800

    (#12564) Paste execpipe commands together with spaces.
    
    Previously the `execpipe` method would create a command from an array by
    pasting the content together as strings.  This was all well and good, but it
    required the caller to add whitespace manually when invoking the command.
    
    Instead, we can paste together with a space character - leading to a better
    external experience, and less repetitious code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ade5965e4e4d31e7b554372a96d599804b3e6ee7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Feb 13 15:36:33 2012 -0800

    Remove unnecessary fallbacks in change_{user,group}
    
    These methods were attempting to call change_privilege, and rescuing
    NotImplementedError, to use our own implementation of similar behavior.
    As it turns out, the only system on which change_privilege is not
    implemented is Windows, which these methods already don't support. So
    there's no reason to have a fallback that would only ever fail or not be
    reached.

commit 0a09a64457ef37f97bbe493f2fd90aca5ca73746
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Feb 13 13:03:52 2012 -0800

    Document uid/gid-related methods in Puppet::Util

commit 2599d563ff290447653dca5e3927511b3a911422
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Feb 13 13:02:30 2012 -0800

    Copy owner/group in replace_file
    
    If the file doesn't exist, this will still use the current user/group as
    the uid/gid of the file.

commit 9e672a35d4e16cad527a2784a7c1c56ebc8a6276
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Feb 2 16:38:43 2012 -0800

    Add tests for the OpenBSD package provider.
    
    This adds testing for the OpenBSD package provider, with a view to having at
    least a basic idea that it works, and a basis to test any future failures
    against.
    
    Thanks to Tim Sharpe <tim@github.com> for the fixtures and support in
    validating the tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 74cc1eb1991869034a782212da780f66714f630b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Feb 2 16:38:15 2012 -0800

    Whitespace cleanup on OpenBSD package provider.
    
    A gratuitous space can go away.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3d1c68709cf7fd6a739598c5f11375796dd3d402
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Thu Aug 4 00:05:11 2011 +0200

    Possible fix for #8435 - remote package installation broken
    
    This is the current fix I'm using to be able to use remote package
    installations on openbsd. This is just a proposal as it's a quick
    and dirty workaround and lacks tests.
    
    Brought to 2.7.x and conflicts resolved in:
     * lib/puppet/provider/package/openbsd.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 25a6d5c503c409e6ced21fb24e666df34ee718cc
Author: cprice <chris@puppetlabs.com>
Date:   Mon Feb 13 15:02:32 2012 -0800

    Clean up deprecation warning
    
    Puppet::Util.execute deprecation warning message had a typo; also
    fixed a few places that were calling the deprecated code path.

commit ead36ff3a8b4f37f1f0b4d0afed5b6d7c0bd15b9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Feb 6 14:37:06 2012 -0800

    (#12463) eliminate `secure_open` in favour of `replace_file`
    
    None of the users of `secure_open` in the codebase actually want to achieve a
    result different from `replace_file`, so we might as well eliminate the older
    API in favour of one that is easier to use and clearer in intent.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 146953861e007a91545fdbd0ea59ab3509326e09
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Feb 6 11:03:16 2012 -0800

    (#12460) use `replace_file` for the .k5login file
    
    Previously this hand-coded replacing the .k5login file; Replacing that with
    the standard API ensures consistent, safe, and atomic updates of the target
    file.
    
    It also reduces the cognitive burden of the provider, since the semantics of
    the standard method are clearer than the semantics of the type.
    
    Finally, this commit adds some tests for the type, and the inline provider, to
    help ensure that the type continues to work into the future.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8461203aa7ebfb083bce605bd44c2f579342f5bb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Feb 5 21:16:29 2012 -0800

    (#12462) user_role_add: use `replace_file` for /etc/shadow
    
    The user_role_add provider for user management previously open-coded the safe,
    atomic replacement of /etc/shadow after in modified it.
    
    Mostly even safely, except that it didn't enforce permissions on the temporary
    file, so might have spilled data to third parties, if tempfile isn't
    sufficiently secure.  (Ruby makes no promises about tempfile mode.)
    
    We replace that with the standard, central replace_file API, which ensures
    that is done in a safe, correct, and standard fashion.
    
    On the way through this removes the window where this could previously have
    lost the content of /etc/shadow due to an unfortunately timed crash, by
    ensuring we fsync the content of the temporary file.
    
    It also documents, but doesn't eliminate, the lack of locking and other races
    around this update to the shadow file.
    
    Finally, some minor code and test updates to make it easier to test this on
    fake data, rather than like on your own /etc/shadow file...
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0ad532a4b26ea54455d77791006324b684cf5b10
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Feb 5 20:45:36 2012 -0800

    (#12463) add secure `replace_file` to Puppet::Util
    
    There is some complex logic around replacing an existing file safely, and it
    used to be scattered all over the tree - making the whole system much harder
    to use nicely and pleasantly.
    
    It is much better that we provide a central, and easy to use, method for
    achieving that specific and common goal in a consistent, secure, and easy to
    audit fashion.
    
    Based on code submitted by me on 2010-04-08.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 76d0749f0a9a496b70e7dc7e6d6d6ff692224e36
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Feb 5 15:58:24 2012 -0800

    (#12459) drop supplementary groups when permanently dropping UID
    
    On certain platforms, Process::UID.change_privilege doesn't handle
    changing supplementary groups. In that case, we need to always
    explicitly initgroups, regardless of whether we're using
    change_privilege, or change_group/change_user.
    
    Analysis by Dominic Cleal <dcleal@redhat.com>
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 50909b93dc01b735c1aa104fd568d71b0760ccd9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Feb 5 15:46:31 2012 -0800

    (#12458) default to users primary group, not root, in `asuser`
    
    When only a user (no group) was given to the asuser method, the egid wouldn't
    be changed and would remain the privileged gid.  This has been changed to the
    primary gid of the user.
    
    Fix and analysis by Dominic Cleal <dcleal@redhat.com>
    
    Contributed: Daniel Pittman <daniel@puppetlabs.com>
    Contributed: Deepak Giridharagopal <deepak@puppetlabs.com>
    Contributed: Nick Lewis <nick@puppetlabs.com>

commit 3b8c7866f53250779633871f49e3665d1da946ce
Merge: 7c300f2 25bbecf
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 13 10:38:32 2012 -0800

    Merge pull request #490 from pcarlisle/ticket/2.7.x/12310-remove-process_name-listener
    
    Ticket/2.7.x/12310 remove process name listener

commit 4f0559bd459c4fa72a8ce82163c4ac8536d8cc51
Merge: 5bb758b 68e1bbb
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Feb 13 10:38:19 2012 -0800

    Merge pull request #491 from cprice-puppet/bugs/master/fix_stderr_acceptance_tests
    
    Fix a few acceptance tests that were checking stderr

commit 25bbecf90ed8a69661052159ff27d9bc07dc8e19
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Feb 6 13:53:45 2012 -0800

    (#12310) Remove process_name instrumentation listener
    
    This was causing a performance regression in 2.7.10. Removing it for now, to
    be added back later when the issue is fixed.

commit 68e1bbbce28be5b713f83947cf92b14f99b4bfa6
Author: cprice <chris@puppetlabs.com>
Date:   Mon Feb 13 10:23:02 2012 -0800

    Fix a few acceptance tests that were checking stderr
    
    We recently made a change that tried to fix places where we had been
    writing output directly to stdout/stderr rather than using the
    Puppet::Util::Logging framework.  There were a few acceptance tests
    that were not updated properly in accordance with this change; this
    should fix "ticket_8740_should_not_enumerate_root_directory.rb" and
    "should_not_reassing.rb".

commit 7c300f268a58a6def2c03dc9d7d9acdfa4c322ba
Merge: 5fa80ea 0eab682
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Fri Feb 10 15:46:01 2012 -0800

    Merge pull request #489 from cprice-puppet/feature/2.7.x/5454-pluginsync-features-autosign
    
    Feature/2.7.x/5454 pluginsync features autosign

commit 0eab68225817f7ac53c1c23e3f42c78ae76d7225
Author: cprice <chris@puppetlabs.com>
Date:   Fri Feb 10 14:36:46 2012 -0800

    (#5454) add "autosign" argument
    
    We are removing "autosign" from the list of default arguments for
    the with_master_running_on method in the acceptance test framework.
    Thus, this test now needs to specify that argument explicitly.

commit 5fa80eac95a753edeae4738ee97207b37aece13a
Merge: 21808b7 1e54190
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Feb 10 12:18:30 2012 -0800

    Merge branch 'joshcooper-ticket/2.7.x/10299-LocalSystem-not-root' into 2.7.x
    
    * joshcooper-ticket/2.7.x/10299-LocalSystem-not-root:
      (#10299) Use CheckTokenMembership to see if user has admin rights
      (#10299) Refactor Windows administrator detection
    
    Reviewed-by: Jeff McCune

commit 1e541900c5eba981be1008e73aaedf3bc2493381
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Nov 11 10:11:24 2011 -0800

    (#10299) Use CheckTokenMembership to see if user has admin rights
    
    Previously, on Windows 2003 and earlier, Puppet.features.root? was
    implemented by checking if the current user is a member of the local
    Administrators group. However, many accounts, e.g. LocalSystem, are
    implicit members of this group, so Puppet.features.root? would
    incorrectly return false. This led to puppet not being able to find
    its default configuration directory, among other things.
    
    Conversely, a process can be executing using a restricted token, so
    while the user may be a member of the Administrators group, the
    process will be running with less privileges, and
    Puppet.features.root?  would incorrectly return true.
    
    This commit uses CheckTokenMembership to determine if the local
    Administrators group SID is both present and enabled in the calling
    thread's access token.
    
    The behavior on Vista/2008 is unchanged. The calling thread's token
    must be currently elevated.

commit 44af10ff53629b71a532970e6f33bca5565fcbee
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Nov 10 16:28:19 2011 -0800

    (#10299) Refactor Windows administrator detection
    
    This commit refactors the code that detects whether we are running as
    `root` on Windows. This is being done in preparation for using native
    Windows APIs to detect whether we are running as a privileged user.

commit a1957172a82e33feaa8bd5f9445a63284eb3d240
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Feb 10 11:55:02 2012 -0800

    (#12412) Don't assume the `root` user exists
    
    Previously, the test was verifying that puppet didn't create the
    `root` user, assuming it already existed on the host. But that's not
    the case on Windows.
    
    This commit just changes the test to use `Host['user']`, which always
    refers to the user that we ssh'ed to the host as, and therefore,
    always exists.

commit 21808b769173e2eb772a4ca41456fcfd81dbed1e
Merge: 5b88024 2dd0f55
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Feb 10 11:16:59 2012 -0800

    Merge pull request #486 from kelseyhightower/ticket/2.7.x/12106_PMT_uninstall_command_ux_improvements
    
    Ticket/2.7.x/12106 pmt uninstall command ux improvements

commit 2dd0f55f59a60361ff20d25ef5e9e5f451ba3f62
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Wed Jan 18 23:30:37 2012 -0500

    (#12106) Enhance the uninstall PMT action for UX
    
    Before this patch the uninstall action only uninstalled puppet modules by
    name. The uninstallation of a module consists of removing a directory in
    the module path that matches the name of the module. This does not take
    into account the version of the module installed.
    
    This patch changes the behaviour of the uninstall action with the
    following features:
    
    * Modules can be uninstalled by specific version
    * Modules can be uninstalled by enviornment
    * Output of the unistall command has been enhanced to provide a better UX
    
    This patch also includes updated specs for the change in behaviour.

commit 5bb758bb3035f40c436887c89ac64138a7162ad7
Merge: 19404f2 f7b667b
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 9 16:52:35 2012 -0800

    Merge pull request #484 from binford2k/master
    
    Indentation fix

commit 694394efd86f62680cb1f0d36a490ff5bf5df39d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Feb 9 16:46:56 2012 -0800

    Facter 1.5.7 compatibility in the test condition.
    
    The `augeasversion` fact was only introduced in Facter 1.6.1, and this test
    depends on it - or blows up trying to process `nil` in `versioncmp`.
    
    If we don't have the fact we might as well skip over the test set; it isn't
    much worse than working harder at this, and less false positives than guessing
    the other way around.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f7b667b5004d4ac0cfdccc051b5dea1d53cb03fe
Author: Ben Ford <ben.ford@puppetlabs.com>
Date:   Thu Feb 9 16:46:55 2012 -0800

    Just fixed the indentation on a couple lines so the website doesn't use
    smart quotes!

commit 5b88024ebeb0fa3e314ef6c21457105f91681367
Merge: e5e3b21 bad1d31
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 9 15:49:36 2012 -0800

    Merge pull request #480 from cprice-puppet/feature/2.7.x/5454-pluginsync-features
    
    (#5454) Acceptance test to verify that pluginsync works properly with "features"

commit e5e3b21ceff7361c96a5b191d5e2fff718f34c1c
Merge: 6e39e58 9ff4d1f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 9 15:47:26 2012 -0800

    Merge pull request #481 from nfagerlund/doc/2.7.x/puppet-kick-howto-in-manpage
    
    Doc/2.7.x/puppet kick howto in manpage

commit 9ff4d1f8fd0dc1f97313bc5ea1a61f705d1eb5fb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Feb 9 13:45:02 2012 -0800

    Improve guidance for getting `puppet kick` to work.
    
    Previously we told users where they had to look to get this to work; now we
    tell them exactly which steps to take, hopefully reducing the barrier for entry.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6e39e583c737fed93a4a48cfa645c27902dba6b9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Feb 9 15:38:00 2012 -0800

    Revert "(#12106) Enhance the uninstall PMT action for UX"
    
    This reverts commit b222cd5845721285cc52f4d4caa05c5bd3329628.
    
    This change broke on Ruby 1.9.2, so needs rework before it is ready to include
    in the tree.

commit bad1d315568966a3903f607b13a2ecec3e273d8f
Author: cprice <chris@puppetlabs.com>
Date:   Wed Feb 8 10:42:58 2012 -0800

    (#5454) Acceptance test to verify that pluginsync works properly with "features"
    
    This has been refactored to relieve its dependency on some changes to the
    acceptance framework (re: directory creation, file permissions, etc.) that
    are not going to be merged; it does still have a dependency on the following
    pull request:
    
    https://github.com/puppetlabs/puppet-acceptance/pull/138
    
    also includes a minor improvement to exception logging within the master's
    http handler, so that backtraces are available in the master log file
    when running via the acceptance framework.

commit bb4f3c0991a1439551251b63d9301b7db4580ec9
Author: Greg Sutcliffe <gsutcliffe@gmail.com>
Date:   Sat Dec 3 22:28:13 2011 +0000

    Correctly check that Yaourt is present

commit 26c44eb4089c071a40081f36cbcd5fbcfafafc86
Author: Greg Sutcliffe <greg.sutcliffe@gmail.com>
Date:   Thu Feb 9 21:57:59 2012 +0000

    Add support for Yaourt (AUR helper) to Pacman provider

commit 6dbaaea727b6f8f61c2880ffc460c915d3d4a9f2
Merge: 30ba581 b222cd5
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 9 11:36:26 2012 -0800

    Merge pull request #398 from kelseyhightower/ticket/2.7.x/12106_PMT_uninstall_command_ux_improvements
    
    Ticket/2.7.x/12106 pmt uninstall command ux improvements

commit b222cd5845721285cc52f4d4caa05c5bd3329628
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Wed Jan 18 23:30:37 2012 -0500

    (#12106) Enhance the uninstall PMT action for UX
    
    Before this patch the uninstall action only uninstalled puppet modules by
    name. The uninstallation of a module consists of removing a directory in
    the module path that matches the name of the module. This does not take
    into account the version of the module installed.
    
    This patch changes the behaviour of the uninstall action with the
    following features:
    
    * Modules can be uninstalled by specific version
    * Modules can be uninstalled by enviornment
    * Output of the unistall command has been enhanced to provide a better UX
    
    This patch also includes updated specs for the change in behaviour.

commit 19404f2034d37a3fc941b8473f19a2cd3255c0e7
Merge: 76d05c2 c804275
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 9 10:58:59 2012 -0800

    Merge pull request #478 from cprice-puppet/bug/master/12490-execution_spec-sets-ENV
    
    (#12490) fixing windows spec tests

commit c8042755e159aef4459c01686e22103786747ee1
Author: cprice <chris@puppetlabs.com>
Date:   Wed Feb 8 13:47:07 2012 -0800

    (#12490) fixing windows spec tests
    
    This should fix the failures in exec_spec.rb and util_spec.rb.  Has
    been tested on Win2k3.

commit 30ba5814924d228629bc2f0afb405703e767a6cb
Merge: b8d77a6 0b95f3a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Feb 9 09:05:34 2012 -0800

    Merge remote-tracking branch 'joshcooper/ticket/2.7.x/12412-windows-acceptance-tests' into 2.7.x
    
    * joshcooper/ticket/2.7.x/12412-windows-acceptance-tests:
      (#12412) Mark symbolic file modes test as pending on Windows
      (#12412) Skip ca acceptance test on Window agents
      (#12412) Refactor execution of echo in acceptance tests
      (#12412) Use host-specific methods for generating tmp file/dir
      (#12412) Warn when running hostname -f on Windows agents
      (#12412) Skip symlink tests on Windows
      (#12412) Refactor puppet_resource('exec')
      (#12412) Refactor puppet_resource('host')
      (#12412) Refactor puppet_resource('tidy')
      (#12412) Skip cron on Windows
      (#12412) Refactor puppet_resource('file')
      (#12412) Refactor puppet_resource('group') tests
      (#12412) Refactor puppet_resource('user') tests
    
    Reviewed-by: Jeff McCune

commit b8d77a69135f6d2791f21046c4013feec9721a16
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Feb 8 18:32:23 2012 -0800

    Revert "(#12339) Adding basic search output formatting."
    
    This reverts commit a7bd5698ab9bc8c11885737da2e7ec380275f24b.
    
    That was part of a series of enhancements to the integrated Puppet Module Tool
    that broke on Ruby 1.8.5.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c01571a1afb92e5e011bc396777562cdda9d0698
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Feb 8 18:32:17 2012 -0800

    Revert "(#12339) Improving documentation around Puppet::Util::Terminal.width."
    
    This reverts commit 0e7d2f0ecfd778d04f3cbbc677ae6673bcf12a12.
    
    That was part of a series of enhancements to the integrated Puppet Module Tool
    that broke on Ruby 1.8.5.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 00685a2b5cf489c35ae242532f0db3fd2f6d1461
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Feb 8 18:31:43 2012 -0800

    Revert "(#12339) Clarifying source attribution."
    
    This reverts commit bfcb775d9cabbccc7a945f05c9161f5bdade9a51.
    
    That was part of a series of enhancements to the integrated Puppet Module Tool
    that broke on Ruby 1.8.5.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3d518b01681a7ddf934cbb6bb91f8cd56e2e8096
Author: cprice <chris@puppetlabs.com>
Date:   Mon Feb 6 14:04:11 2012 -0800

    (#12454) device_spec.rb fails with ruby 1.8.7-p357 and mocha v.0.9.12

commit 43ff7f31bfe37908619f671ec5f79af59b0c8adc
Merge: cce6dbf bfcb775
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 8 17:26:28 2012 -0800

    Merge pull request #442 from pvande/tickets/2.7.x/12339-module-search-formatting
    
    Tickets/2.7.x/12339 module search formatting

commit d00c5cc45e3ccf8c80535d372027dca8452d1056
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Feb 5 12:09:37 2012 -0800

    (#12457) add users primary group, not Process.gid, in initgroups
    
    The Process.gid (real gid) was always included when initialising supplementary
    groups in the initgroups method (called when changing the euid via the
    change_user method).  This has been replaced by the primary gid of the user.
    
    This led to a privilege leak, as well as a potential surprise when it came to
    file ownership, in both the agent and the master.
    
    Fix and analysis by Dominic Cleal <dcleal@redhat.com>
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 76d05c25a71ec9cde27ba83884cdb7cebcb26320
Merge: 9859517 b89da8c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 8 15:42:36 2012 -0800

    Merge pull request #462 from lurkermike/master
    
    (#12402) split log messages into individual lines before sending to syslog

commit 9859517b28590bdae8c0a47f393981e4b51b2cdb
Merge: 142b249 e3c46b4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 8 14:04:09 2012 -0800

    Merge pull request #456 from cprice-puppet/refactor/master/12359-improve-backtrace-logging
    
    Refactor/master/12359 improve backtrace logging

commit cce6dbfea0b85c7baf0ca78f054e055f154d9440
Merge: 0b26142 6569af3
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 8 13:49:08 2012 -0800

    Merge pull request #477 from kelseyhightower/ticket/2.7.x/12244_centralize_forge_interation
    
    (#12244) All forge interactions should be centralized

commit 6569af3e11fb34244a065a08e97a05dad6ec9845
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Thu Jan 26 11:04:06 2012 -0500

    (#12244) All forge interactions should be centralized
    
    Before this patch each module application makes direct connection to the
    Puppet Forge. This is a maintenance nightmare, any changes to the
    Forge API requires changes to all the module applications.
    
    This patch re-factors how we communicate with the Forge. All module
    application now use the interface exposed by the `lib/puppet/forge.rb`
    module.
    
    This patch also includes tests for the new forge.rb module, and updates
    others to reflect the new behaviour.

commit 142b249f48204e3ac4e199a000a2c10236fda68a
Author: Russ Allbery <rra@stanford.edu>
Date:   Sat Feb 4 21:44:59 2012 -0800

    Updates and bug fixes to puppet-mode.el
    
    A jumbo update for the Puppet Emacs mode.  This update does the
    following:
    
    * Fix indentation of array contents when the first element of the
      array isn't on the same line as the opening of the array.
    
    * Fix indentation of the else and elsif line and after a ") {" line
      that ends the parameters to a define and starts the body of the
      define.
    
    * Indenting a line no longer moves the point to the position following
      the indentation unless the line is entirely whitespace.
    
    * Update font lock keywords with all the latest Puppet keywords.
    
    * The type face is now used properly for all resource types.
      Previously, some of them would show up as the keyword face because
      they were also keywords. puppet-mode is now smarter about figuring
      out the context.
    
    * regexp-opt is now used to make keyword matching more efficient.
    
    * Clean up unnecessarily-complex code and refactor somewhat.
    
    * Add standard elisp library file headers and footer.

commit 0b26142d19f72f17a9fe0f9dc6fe6031befc1909
Merge: 50e0863 15de31a
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 8 12:23:30 2012 -0800

    Merge pull request #474 from nfagerlund/ticket/2.7.x/11535_windows_provider_docs
    
    Ticket/2.7.x/11535 windows provider docs

commit 891281fa08e26aae6270be9660e2b0dce53cbf73
Merge: 93180b8 194b2c3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Feb 8 11:34:42 2012 -0800

    Merge branch 'bug/master/12490-execution_spec-sets-ENV' of https://github.com/cprice-puppet/puppet
    
    * 'bug/master/12490-execution_spec-sets-ENV' of https://github.com/cprice-puppet/puppet:
      (#12490) execution_spec causes failures on windows

commit 93180b8ff6b3b4cb332274bbfe0fdb8dd72592b3
Merge: ace0679 1c0360e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 8 11:20:55 2012 -0800

    Merge pull request #473 from cprice-puppet/bug/master/12336-PATH-contains-tilde
    
    (#12336) Util::'which' may fail if user's path contains a tilde

commit ace06795b07142d899637405aec64dee0ba00cb3
Merge: 83f61eb 9143e29
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 8 11:11:05 2012 -0800

    Merge pull request #476 from joshcooper/maint/master/test-fixes
    
    Maint: Fix parenthesize warning message

commit 9143e294cf57522b47a8533633cbbccb7f148b25
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Feb 8 09:37:18 2012 -0800

    Maint: Fix parenthesize warning message
    
    When DNS SRV support was added, it resulted in a warning message to
    parenthesize arguments when run on ruby 1.8.5. The warning message is
    written to stderr, which was causing the
    acceptance/tests/module/list.rb acceptance test to fail.
    
    This commit just parenthesizes the yielded argument.

commit 15de31a51beaa1efcbe632e3815a7054be5f81fd
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Feb 7 17:00:15 2012 -0800

    (#11535) Edit scheduled_task type docs
    
    This commit:
    
    * Makes the documentation of the trigger attribute more legible
    * Adds details on accepted input formats to the trigger attribute docs
    * Does minor wordsmithing and reformatting
    * Calls out issues with versions < 0.2.1 of the win32-taskscheduler gem

commit 194b2c3ce56cae83c2d277d4f06356266cd73b0c
Author: cprice <chris@puppetlabs.com>
Date:   Tue Feb 7 16:27:35 2012 -0800

    (#12490) execution_spec causes failures on windows
    
    With regards to calling "execute_posix" during test runs:
    
    a) It should not be called during windows test runs, and
    
    b) We needs to take more care not to inadvertently set
    environment variables in the main ruby process.

commit 1c0360e7cf95bbaa76440fa835e581727018dc3e
Author: cprice <chris@puppetlabs.com>
Date:   Tue Feb 7 18:43:17 2012 -0800

    (#12336) Util::'which' may fail if user's path contains a tilde
    
    In certain circumstances (user's HOME environment variable is not set, or has
    been unset during ruby execution, plus PATH contains a literal ~ character), Util::w
    hich would raise an ArgumentError.  Handle this error by logging a warning (one time only) and ignoring this element of the PATH.

commit 50e0863212bc02ff02467ce7c2a27ba6da225758
Merge: b01d717 3b0e359
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Feb 7 18:03:44 2012 -0800

    Merge pull request #469 from grimradical/ticket/2.7.x/12452v2
    
    (#12452) Make Puppet::Util::SELinux#read_mounts work on Ruby 1.9

commit b01d7170ebfa64afeed5a55bd36f434bb49d9a26
Merge: bec38de e32a39c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Feb 7 17:46:29 2012 -0800

    Merge pull request #467 from pcarlisle/ticket/2.7.x/12464-puppet-apply-fact-loading
    
    Ticket/2.7.x/12464 puppet apply fact loading

commit 83f61eb7652c0d19788a03ee6c6f23a59cbfb13c
Merge: b37a68a 5d2b1a6
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Feb 7 17:35:54 2012 -0800

    Merge pull request #465 from cprice-puppet/bug/master/12454-device_spec-ruby187-357
    
    (#12454) device_spec.rb fails with ruby 1.8.7-p357 and mocha v.0.9.12

commit bec38de1a2cb6696a5a56698b8e55733bd1f9a4b
Merge: 5cc2cf7 ba6b8b5
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Feb 7 17:14:56 2012 -0800

    Merge pull request #464 from kscherer/ticket/2.7.x/7485-zypper-0.6-support
    
    Ticket/2.7.x/7485 zypper 0.6 support

commit b37a68a61961b9b960739f7ace020fd6a4d3ff79
Merge: 6576e16 dd74734
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Feb 7 17:05:23 2012 -0800

    Merge pull request #463 from 20after4/ticket/master/4480-Sleep-5s-before-starting-runit-service
    
    Fix for puppetlabs issue 4480 (bug in the runit service)

commit 6576e16b7ce22e6b65565df392b349dbc3327496
Merge: 009b350 47719cc
Author: lifton <lifton@puppetlabs.com>
Date:   Tue Feb 7 16:10:44 2012 -0800

    Merge pull request #471 from pcarlisle/clear_deprecations
    
    Clear deprecation warnings after each test.

commit 47719ccbcc40ec2bcd84bd6d3aa3a4e5ba1cb180
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Feb 7 15:53:30 2012 -0800

    Clear deprecation warnings after each test.

commit 009b350d06d3ddc7bf47905c1c67031f0f004365
Merge: 6896d02 5cc2cf7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Feb 7 15:04:49 2012 -0800

    Merge remote-tracking branch 'origin/2.7.x'
    
    Conflicts:
    	lib/puppet/network/handler/fileserver.rb
    	spec/unit/provider/package/dpkg_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2732f250886f6b6b4f4efcf7efa8d8ffdf1a076e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Feb 7 13:05:30 2012 -0800

    (#12479) Don't make undef regexp match as the string undef.
    
    As part of commit 53869e99 we did work to make the behaviour of variables that
    were explicitly `undef` at least somewhat saner.
    
    One unintended side-effect of this was that we started matching `undef` as the
    literal string `undef`, not as the empty string, and not "not matching".
    
    Either of the later would have been sane things to do; this fixes that by
    picking "match undef as empty string".
    
    That is for consistency: we already match the *literal* empty string as equal
    to undef, so it makes sense to treat it the same way for a regular expression.
    (Debate on that point is welcome elsewhere, but we should change literal and
    regexp matching the same, consistent way if we change it anywhere.)
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 163da1964987e568806d0e241d539b5c5f377ee8
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Feb 7 11:19:58 2012 -0800

    (#11535) Update Windows exec provider docs
    
    This commit mentions the following in the Windows exec provider docs:
    
    * You can use the old 2.6 pre-shell-provider workaround to use shell built-ins.
    * PowerShell scripts won't work unless you change the default execution policy.

commit 44bd7418960ed975f28e21aec08ccd4bf0dda544
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Feb 7 10:49:56 2012 -0800

    (#11535) Update package type docs w/ Windows-specific quirks
    
    This commit documents the following:
    
    * install_options are package-specific; there is no master list of these, so
      users must check the vendor's documentation.
    * MSI provider needs a source.
    * MSI provider can't uninstall arbitrary packages, just the ones Puppet installed.

commit 4ec0bc86f35ef1e9b612318007b4ab6a88a477d0
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 6 17:13:55 2012 -0800

    (#11535) Update service type w/ Windows-specific quirks
    
    This commit makes minor changes to the wording of the Windows service
    provider's documentation, and mentions that one should use the short system
    name for a service rather than the display name.

commit 7cfcbda0f8f0b5a96f32fc844594dd39836d2153
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 6 16:51:24 2012 -0800

    (#11535) Update group type's docs w/ Windows-specific quirks
    
    This commit mentions that:
    
    * Nested groups aren't supported.
    * Puppet treats names case-sensitively.
    * The GID property is read-only on Windows.
    * We only do local groups.

commit 27aa56004d7eb357d328eb37c63d1a39e15d6294
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 6 16:36:10 2012 -0800

    Maint: Kill bogus allowdupe compatibility warning for FreeBSD
    
    As of commit 9b8829d2b6d4e23a4959935c796f4d7dcab96001, allowdupe works on
    FreeBSD, tested (per commit message) on versions 7, 8, and 9. The
    compatibility warning was never removed. This commit brings that doc string
    back in line with reality.

commit 675ddbb9b1363c36a028bbe502a107286ed280de
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 6 16:22:54 2012 -0800

    (#11535) Update user type docs w/ Windows-specific quirks
    
    This commit adds mention of the following to the user type's doc strings:
    
    * The windows_adsi provider manages local users, not all kinds of users.
    * Windows users don't have a gid or shell attribute.
    * Windows passwords are cleartext-only.
    * Most platforms use sha1 for passwords, OS X Lion uses sha512.
    * Puppet treats user names case-sensitively, regardless of the platform's rules.

commit 3b0e35927eb28f81e44f2627f309940a4d9cef75
Author: Deepak Giridharagopal <deepak@puppetlabs.com>
Date:   Mon Feb 6 15:07:45 2012 -0700

    (#12452) Make Puppet::Util::SELinux#read_mounts work on Ruby 1.9
    
    There's no String#collect in Ruby 1.9. #each_line works in both 1.8 and 1.9,
    and I think better captures the intent of what we were trying to do anyway.
    
    Signed-off-by: Deepak Giridharagopal <deepak@puppetlabs.com>

commit e32a39cde2ea0eec11efef8d2f342f6828f626b9
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jan 31 14:12:02 2012 -0800

    (#12464) Avoid unnecessarily reloading facts when node_name_fact is not set
    
    In fixing #8341 we reduced the caching of facts, leading to a performance
    regression in puppet apply. Puppet apply loaded facts twice, first to look up
    the fact for node_name_fact, and then a second time under the new node name
    given by node_name_fact. This optimizes the common case where node_name_fact
    is not set so that facts are only looked up once.
    
    Reported in #12310.

commit f5067ed306bd73df0f113276aa50e7f100e2ce0d
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 6 14:22:34 2012 -0800

    (#11535) Update file type with Windows-specific quirks
    
    This commit adds the following Win-specific information to the file type's documentation:
    
    * No symlinks
    * Puppet doesn't translate line-endings (that is, content is managed in binary mode)
    * Paths need drive letters
    * Use / in paths, not \
    * Users can be groups and vice-versa
    * Other maps to Everyone
    * r/w/x map to FILE_GENERIC_READ, FILE_GENERIC_WRITE, and FILE_GENERIC_EXECUTE
    * User permissions should be superset of group which should be superset of other
    * Mapped drives are OK for file sources

commit f16881fe48c7c180ba93c675b232261d786c701f
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 6 14:11:14 2012 -0800

    (#2927) Document symbolic modes in mode parameter
    
    This commit documents symbolic modes (added to the file type in issue #2927).
    
    * Mention that the magic search bit behavior only applies to numeric modes
    * Add brief syntax for symbolic modes
    * Add brief syntax for numeric modes
    * Explicitly call out that we translate Unix permissions as a metaphor on other
      platforms

commit 5d2b1a63e3775cb6a24aba4944c3237ae58d05e0
Author: cprice <chris@puppetlabs.com>
Date:   Mon Feb 6 14:04:11 2012 -0800

    (#12454) device_spec.rb fails with ruby 1.8.7-p357 and mocha v.0.9.12

commit ba6b8b58039a4591cd4781e2bb714799bdd19dfe
Author: Konrad Scherer <Konrad.Scherer@windriver.com>
Date:   Mon Feb 6 15:43:46 2012 -0500

    (#7485) Support zypper 0.6 with zypper package provider
    
    Replaced code that was erroneously assumed to be equivalent with a
    more verbose version that works on all Suse systems.
    
    Tested on:
    SLE 10.2, 11.0, 11.1
    OpenSuSE 10.2, 10.3, 11.1, 11.2, 11.3, 11.4

commit e3c46b41f5c5ced385bcb2e6006edc255b31f61a
Author: cprice <chris@puppetlabs.com>
Date:   Fri Feb 3 10:10:12 2012 -0800

    (#12359) Improve logging of backtraces
    
    There were a ton of places in the code where we were doing this:
    
        rescue => detail
           puts detail.backtrace if Puppet[:trace]
    
    In addition to this not being very DRY, it was making it harder to debug the puppet master from within the acceptance testing framework (because when puppet is run in a daemon mode, stdout is swallowed... the "puts" messages were not showing up in the log files or anywhere else, so it was impossible to see the backtrace when something went wrong on the master).
    
    This commit refactors all(?) occurrences of this pattern to call a new utility method:  Puppet::Util::Logging.log_exception(), which provides one single code path for handling exception logging.  It still only logs the backtrace if Puppet[:trace] == true, but it now logs it through the standard Puppet logging framework rather than via "puts".

commit 0b95f3a55ec7e861d792c6fd241f073a1d24a876
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Feb 3 10:32:30 2012 -0800

    (#12412) Mark symbolic file modes test as pending on Windows
    
    Previously, the test used hard-coded tmp file locations, and then
    passed the posix style paths to puppet apply, which doesn't work on
    Windows agents.
    
    This commit refactors the test to use `Host#tmpfile` and Host#tmpdir`
    methods, which requires using `agents.each do |agent|` style test.
    
    Also, there are problems executing `chmod 0000 path` via Cygwin as the
    resulting file always has at least 0400 permission. For now, I'm
    marking the entire test as pending on Windows and will come back to
    it.

commit 8ae92477c2d6b6e94ec2d06784fa5554f6656d45
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Feb 3 10:16:17 2012 -0800

    (#12412) Skip ca acceptance test on Window agents
    
    Previously, this test would fail on Windows agents, because the ca
    code makes assumptions about posix style paths. Since this
    functionality is not supported on Windows anyways, this commit just
    skips the test when run on Windows agents. In order to make that
    possible, it refactors the test to use the `agents.each do |agent|`
    style test.

commit 104192db739b559ba8a7ecb5c6936b4ce9d0f8e4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Feb 3 10:13:16 2012 -0800

    (#12412) Refactor execution of echo in acceptance tests
    
    Previously, some of the acceptance tests were using `/bin/echo ...` as
    the command for an exec resource, which doesn't work on Windows
    agents.
    
    This commit refactors the tests to use the `Host#echo` method, which
    generates a platform-specific command for executing echo. By default,
    the method generates a fully-qualified path for executing echo, but if
    you pass false, then it generates an unqualified path (for cases where
    the manifest specifies the path to use).
    
    The commit also refactors the tests to use `agents.each do |agent|`
    style test, which is necessary to generate platform-specific commands.

commit dce3d58e4d0493aa8627250f77a2f6c0af24711b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Feb 3 09:55:51 2012 -0800

    (#12412) Use host-specific methods for generating tmp file/dir
    
    Previously, each test case was hard-coding the path of its
    tmpfile/dir, and then passing the posix style path to puppet,
    e.g. puppet resource file path, which won't work on Windows.
    
    This commit changes the tests to use the tmpfile/tmpdir method on the
    `Host` instance, and converts the tests from `on agents` style to
    `agent.each do |agent|`.

commit 75d484e5845f85c4c31d6869f42f81d58b3140e4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Feb 3 09:32:14 2012 -0800

    (#12412) Warn when running hostname -f on Windows agents
    
    Neither Windows nor cygwin support `hostname -f`, so the acceptance
    tests that use it fail on Windows.
    
    This commit changes two of the acceptance tests to log a warning when
    run on a Windows agent and skip to the next agent in the list. I've
    filed a ticket to re-enable these tests on Windows (#12407).

commit e1f1f4182f64fe5a6f90e4fe85ec8dd7247784f4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Feb 3 09:20:56 2012 -0800

    (#12412) Skip symlink tests on Windows
    
    Skip performing symlink tests on Windows agents as this is not
    supported. In the process, changed `on agents` style to `agent.each do
    |agent|` and used `Host` methods to generate tmpfiles.

commit 6201ecdb5052e53bb35b9f11ce69cffa05efe6a5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Feb 1 15:59:39 2012 -0800

    (#12412) Refactor puppet_resource('exec')
    
    Previously, the exec tests did not run on Windows, because they tried
    using Unix utilities within an exec resource, e.g. /bin/touch.
    
    This commit uses the exec methods on the agent instances instead to
    generate an appropriate command for that platform. In the process, it
    also uncovered an issue whereby multi-line commands don't work on
    Windows (#9996). This is because Windows doesn't support a shell exec
    provider, and so this test is skipped on Windows agents.
    
    The `should_run_command` test also demonstrates a known race condition
    in Windows (#11740) which can cause the child process to exit before
    the parent has a chance to get its exit code. This test will warn on
    Windows agents, and once #11740 is fixed, we can re-enable the
    acceptance test.

commit 1d1f68791a6eec931a55fd778a1c638ccb085902
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Feb 1 15:57:16 2012 -0800

    (#12412) Refactor puppet_resource('host')
    
    Previously, the host tests were creating files in '/tmp' and failing
    on Windows.
    
    This commit changes them to use `agent.tmpfile` instead. Most of the
    changes are a result of not being able to call `TestCase#on` with an
    array of agents, and instead iterating over each one in an outer loop
    (so that context-dependent tmpfiles can be created).

commit 612f945d1e7b0e0da8dc213e59bc0eb46b30c0cb
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Feb 1 15:56:02 2012 -0800

    (#12412) Refactor puppet_resource('tidy')
    
    Minor changes to allow the tidy acceptance test to run with Windows
    agents.

commit 0544ca7a5ee5db2bdeac79696853e52302d1270c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Feb 1 15:55:09 2012 -0800

    (#12412) Skip cron on Windows
    
    The cron resource is not supported on Windows, so Windows agents skip
    the test.

commit 41e91d800a58fb19f18dd37941b5fd7b7c294b70
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Feb 1 09:42:09 2012 -0800

    (#12412) Refactor puppet_resource('file')
    
    Previously, the file acceptance tests were failing on Windows agents
    due to using POSIX style paths.
    
    This commit changes them to use the `agent.tmpfile` command to
    generate a valid temp file for that agent.

commit fb28ce0337b0e170bad8c0742d963a6a9c25261d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 31 15:22:16 2012 -0800

    (#12412) Refactor puppet_resource('group') tests
    
    Previously, the Linux-specific logic for validating
    puppet_resource('group') was contained within each 'group' test case. In
    order to support executing resource acceptance tests on non-Linux
    agents, I could have added if-then-else statements to each test case,
    though that would lead to logic-sprawl.
    
    This commit refactors the existing set of 'group' acceptance tests to
    use native commands to validate that the tests work on any supported
    agent platform. Specifically, that puppet_resource('group') can create,
    delete, query, and query_all, and that it doesn't try to
    delete a non-existent group, or add a group that already exists.
    
    The goal of these tests is to validate that puppet_resource "works"
    with group resources, and can therefore be trusted to validate the
    results of subsequence acceptance tests.
    
    The commit also preserves tests that exercise unique behaviors,
    e.g. should_modify_gid.rb.

commit 85fd6901cd8018d1c82c810d83c4935ff1b33137
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 31 15:07:02 2012 -0800

    (#12412) Refactor puppet_resource('user') tests
    
    Previously the Linux-specific logic for validating
    puppet_resource('user') was contained within each 'user' test case. In
    order to support executing resource acceptance tests on non-Linux
    agents, I could have added if-then-else statements to each test case,
    though that would lead to logic-sprawl.
    
    This commit refactors the existing set of 'user' acceptance tests to
    use native commands to validate that the tests work on any supported
    agent platform. Specifically, that puppet_resource('user') can create,
    modify, delete, query, and query_all, and that it doesn't try to
    delete a non-existent user, or add a user that already exists.
    
    The goal of these tests is to validate that puppet_resource "works"
    with user resources, and can therefore be trusted to validate the
    results of subsequence acceptance tests.
    
    The commit also preserves tests that exercise unique behaviors,
    e.g. should_create_with_gid.

commit 9b4c97d66cd8e67ebded24b887281ce1fda5e625
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 6 09:23:23 2012 -0800

    Maint: General improvement of file type parameter doc strings
    
    This commit clarifies several descriptions.

commit 2a9562ab8e4b37762ddce920ab800a30b41cf335
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Feb 3 16:01:13 2012 -0800

    Maint: Improve documentation of file type's source parameter
    
    This commit tightens up the huge description of the source attribute, by:
    
    * Explaining the recommended puppet URI format instead of the complete format
    * Fixing a misleading example to use puppet URIs instead of local files
    * Calling out the source/content/target trichotomy
    * Inserting an example of how module layout maps to puppet URIs

commit 8b874525dcb76ee799bf9d88b519e42e9cfabee7
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Feb 3 15:54:10 2012 -0800

    Maint: Clarify ancient text about directories of symlinks
    
    This commit replaces some unclear text about "recursive symlinks" that dated
    from 2006.

commit 6896d029f5f0cf8a3a48b490a48e9bc35fa51496
Merge: 58eff8f 76784da
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Feb 3 15:15:17 2012 -0800

    Merge pull request #461 from cprice-puppet/refactor/master/12309-posix-util-exec-cleanup
    
    (#12309) Fix broken module_spec.rb

commit 76784dacad82c338c755784fd285c7e43879fa49
Author: cprice <chris@puppetlabs.com>
Date:   Fri Feb 3 15:12:30 2012 -0800

    (#12309) Fix broken module_spec.rb

commit b89da8cbfbae0ebdc5527c7a7de570cec58ff0b2
Author: Michael Warren <mike@ef.net>
Date:   Fri Feb 3 14:58:11 2012 -0800

    (#12402) split log messages into individual lines before sending to syslog

commit 58eff8f8afeef6c5549899c887af815c44341b87
Merge: 10fea32 c586eef
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Feb 3 14:50:09 2012 -0800

    Merge pull request #460 from cprice-puppet/refactor/master/12309-posix-util-exec-cleanup
    
    (#12309) Fix broken rspecs

commit 5cc2cf7cb0604f476d11a724bc8e75746c5cbba6
Merge: e80e514 3365c85
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Feb 3 14:34:01 2012 -0800

    Merge branch 'ticket/2.7.x/12349-order_module_list_stderr_output' of https://github.com/mmrobins/puppet into 2.7.x
    
    * 'ticket/2.7.x/12349-order_module_list_stderr_output' of https://github.com/mmrobins/puppet:
      (#12349) Order stderr output to fix acceptance test for `module list`

commit c586eef9913cfe9f3ef254e378f051cc2f334e64
Author: cprice <chris@puppetlabs.com>
Date:   Fri Feb 3 14:32:32 2012 -0800

    (#12309) Fix broken rspecs

commit 3365c854b959def367c5e84f7ffb22433911d03b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Feb 3 11:55:53 2012 -0800

    (#12349) Order stderr output to fix acceptance test for `module list`
    
    The stdout was ordered, but not the stderr, so the acceptance tests that
    passed on my system failed when run by CI.
    
    To order the stderr output I changed the format of the method that gets
    unmet dependencies to be a hash that contains the dependency module name
    in addition to the error message so that I could sort by that name.
    
    There's also some additional documentation updates to the list command
    to show example error output for unmet dependencies.
    
    I changed the unsatisfied_dependencies method to unmet_dependencies
    since in future changes that's how dependency problems will be described
    to the user, and it's shorter.

commit 10fea329d8a116e79aedbbaca0618e5caf681f90
Merge: f894ffb f0c1768
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Feb 3 12:53:51 2012 -0800

    Merge pull request #454 from cprice-puppet/refactor/master/12309-posix-util-exec-cleanup
    
    Refactor/master/12309 posix util exec cleanup

commit f894ffbe07449fb5de23af603c63f6c14bc2570e
Merge: 7059061 a387031
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Feb 3 12:36:47 2012 -0800

    Merge branch 'refactor/master/12399-don't-repeat-yourself'

commit a3870319484f65d8f5dcf623d0f34ef4930a6275
Author: Jeff Weiss <jeff.a.weiss@gmail.com>
Date:   Thu Feb 2 16:48:57 2012 -0800

    (#12399) DRY up rest.rb
    
    Move the calls to request.do_request(...) to a method to encapsulate
    the params

commit 7059061892b9c5bf0932e4ebe81f9206f2c57465
Merge: ca50b7c 4ee252d
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Feb 3 12:25:51 2012 -0800

    Merge pull request #453 from jeffweiss/ticket/master/12401_remove_files_that_should_have_been_removed_earlier
    
    (#12401) Remove files that should have been removed earlier

commit bfcb775d9cabbccc7a945f05c9161f5bdade9a51
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Fri Feb 3 12:16:56 2012 -0800

    (#12339) Clarifying source attribution.

commit 257541753396da0a959ba0ed205e9b684437006d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Feb 3 11:59:22 2012 -0800

    (#12405) Remove obsolete storeconfig purging code.
    
    Now that `puppet node clean` can remove storeconfig data for a system, we can
    eliminate this external bit of code.  There is nothing that this does that the
    better integrated tool didn't already do.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e80e514b788350cdf40fb6242905b0f17a79ddca
Merge: 96e7954 f73a741
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Feb 3 11:53:27 2012 -0800

    Merge pull request #232 from kscherer/ticket/2.7.x/7485-zypper-0.6-support
    
    Ticket/2.7.x/7485 zypper 0.6 support

commit f73a741e0dc6e0f15956966fb24dac97a3bd6b4a
Author: Konrad Scherer <Konrad.Scherer@windriver.com>
Date:   Fri Feb 3 10:06:45 2012 -0500

    (#7485) Support zypper 0.6 with zypper package provider
    
    Zypper version 0.6.104 which is the default version on SLED 10 does not
    support the --quiet flag. It only supports the --terse flag from
    rug.
    Zypper version 0.6.13 on OpenSuSE 10.2 does not support the auto agree
    with licenses and this flag is not used.
    Tested on:
    SLE 10.2, 11.0, 11.1
    OpenSuSE 10.2, 10.3, 11.1, 11.2, 11.3, 11.4

commit f0c17680591305912666abf176f0cc81fa84dcc7
Author: cprice <chris@puppetlabs.com>
Date:   Thu Feb 2 19:49:34 2012 -0800

    (#12309) Refactor deprecated uses of Util.execute
    
    * Improve logic of deprecation_warning
    * Add utility method for logging deprecation warnings to a file
    * Refactored all references of Puppet::Util.execute to call Puppet::Util::Execution.execute

commit 49a089f855db45018f71191707d7280dc7314629
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Jan 30 11:15:33 2012 -0800

    (#12309) refactored all(?) deprecation warnings to use Puppet.deprecation_warning

commit d02169eb87890dd85250bfef52201f8b4dd7f100
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Jan 27 17:11:43 2012 -0800

    (#12309) move execution-related methods from Util to Util::Execution
    
    There are still deprecated stubs for execpipe, execfail, and execute in Puppet::Util for backwards compatibility.  rspecs are all passing, but would still like to go through and check for deprecation warnings that were triggered by this changeset (and fix them, obviously).
    
    get spec tests running against Puppet::Util -> Util::Execution refactor

commit d1a66d79b9bd94cefc5a7db38930ba177d95e32e
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Jan 27 15:11:51 2012 -0800

    moved posix-specific constants from Util to Util::POSIX

commit 4ee252dfcd06cb9984653e5e8958513099b59cdb
Author: Jeff Weiss <jeff.a.weiss@gmail.com>
Date:   Thu Feb 2 18:35:19 2012 -0800

    (#12401) Remove files that should have been removed earlier
    
    Remove 3 files that despite c3baa2899d were not removed

commit 0e7d2f0ecfd778d04f3cbbc677ae6673bcf12a12
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Thu Feb 2 16:53:18 2012 -0800

    (#12339) Improving documentation around Puppet::Util::Terminal.width.

commit 96e79544ad7617b2302729d6b673075ca45cd36c
Merge: 5614ad1 77f5a48
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 2 16:18:21 2012 -0800

    Merge remote-tracking branch 'daniel-pittman/bug/2.7.x/symbolic-file-mode-acceptance-test-wtf' into 2.7.x
    
    * daniel-pittman/bug/2.7.x/symbolic-file-mode-acceptance-test-wtf:
      Symbolic file mode test fixes when no mode change happens.

commit 64abee3dfec0d76d8e4a619fb20d5c3e29165326
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Feb 2 16:06:35 2012 -0800

    (#11535) Call out differing config defaults on Windows
    
    The default values of several configuration settings (diff, color, daemonize)
    are different on Windows, but these differences did not appear in the online
    configuration reference, as it is generated on a POSIX system. This commit
    adds notes on these differing defaults to the description strings of the
    affected settings, to ensure that the configuration reference remains
    accurate.

commit 5614ad1e3f87990a639ebd5f22eab67648fc5081
Merge: 090b8b1 de58c0b
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 2 15:35:55 2012 -0800

    Merge pull request #449 from mmrobins/ticket/2.7.x/12349-order_module_list_output
    
    Ticket/2.7.x/12349 order module list output

commit 99e67085cf56a7855cd3968e57c05ec1e82e3023
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Feb 2 15:18:42 2012 -0800

    (#11535) Platform agnosticism: Desc strings should refer to path separator instead of ':'
    
    We were interpolating the File::PATH_SEPARATOR character in the desc string to
    display the actual character being used on the platform on which it is
    printed. This is marginally useful when running with --genconfig, but since
    the config reference properly lives online, it should be platform-agnostic for
    the benefit of Windows users.

commit de58c0bc0c51ef5495b4a2dbbfa94a8c9c8c44fb
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Feb 2 15:00:58 2012 -0800

    (#12349) Order module list output
    
    This is necessary both for consistency for the user, and so that tests
    pass every time.  An acceptance test that passed when I ran it did not
    when CI ran it because the output order was different.  This fixes that.

commit 77f5a487fec07a42db1054e105b7b794dcb7b5af
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Feb 2 14:36:10 2012 -0800

    Symbolic file mode test fixes when no mode change happens.
    
    The acceptance test for symbolic file modes didn't handle a case when the
    initial and target file mode were identical correctly; it expected a message
    about a change, which was never delivered.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ca50b7cd625d654265138ca07106317180ec4c04
Merge: 24d694d 692e085
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 2 13:41:11 2012 -0800

    Merge pull request #445 from lotheac/https-reporturl
    
    (#8465) Support SSL in HTTP report via HttpPool

commit 090b8b1f8467892995e52fe9dd282e0c68315773
Merge: 132a2ef 5225d39
Author: lifton <lifton@puppetlabs.com>
Date:   Thu Feb 2 13:01:25 2012 -0800

    Merge pull request #446 from joshcooper/ticket/2.7.x/12386-disable-kick-on-windows
    
    (#12386) Disable puppet kick application on windows

commit 9e2705bb3cc8bd801b8b24f97b2ffeb2b85b5431
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Feb 2 12:31:25 2012 -0800

    Maint: Update external_nodes setting description for changes from 2.6.5
    
    The classes key of an ENC's output can contain a hash instead of an array, as
    of Puppet 2.6.5. This commit updates the description of the external_nodes
    setting accordingly.

commit d14ee6a82d4eb0e3b54063a554a98b8849afe50a
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Feb 2 12:26:32 2012 -0800

    Maint: Configuration settings shouldn't be referred to as "parameters"
    
    This description-string-only commit changes the remaining references to
    "configuration parameters," opting instead for the less ambiguous
    "configuration settings" (or just "settings").

commit 5225d39435cfe14119474540a5d5d6a7d057be9e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Feb 2 12:12:31 2012 -0800

    (#12386) Disable puppet kick on windows
    
    Previously, running puppet kick on Windows would go into an infinite
    loop, because the win32-process version of Process.wait returns nil
    instead of Errno::ECHILD, if there are no child processes. This was
    causing puppet kick to go into an infinite loop.
    
    This commit disables the puppet kick application on Windows, in the
    same way that we handle running puppet master on Windows. I also
    audited the code base to ensure Process.wait is not being used
    elsewhere, and it's not.

commit 24d694d8359fcca3a9bdc6ecd89d35d3be1dd9c8
Merge: fb36b5a d8a3f4d
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 2 10:41:01 2012 -0800

    Merge pull request #82 from adimania/master
    
    Fix for bug #9256

commit dd74734cfe95fb4e898998bbe2113bd3acf33bbb
Author: 20after4 <twentyafterfour@gmail.com>
Date:   Sat Jan 28 13:03:57 2012 -0600

    Sleep for 5 seconds after enabling the service, but
    before calling sv start. This gives runsvdir time to
    notice the new service symlink so that it won't return
    an error on start which would otherwise cause puppet
    to fail the start command and skip depenent resources.

commit 692e085bb04c8c564a46ca1390f3b8f18845b95e
Author: Lauri Tirkkonen <lotheac@iki.fi>
Date:   Thu Feb 2 04:46:32 2012 +0200

    (#8465) Test for SSL if using https reporturl

commit 4d98f6091064cc051a1edaee1207443cf3376ce2
Author: Lauri Tirkkonen <lotheac@iki.fi>
Date:   Thu Feb 2 04:37:02 2012 +0200

    (#8465) Fix args to http_instance in spec

commit ce44885ff63086620ec200b4e1b22b56eeec97e9
Author: Lauri Tirkkonen <lotheac@iki.fi>
Date:   Thu Feb 2 04:15:01 2012 +0200

    (#8465) Support SSL in HTTP report via HttpPool

commit fb36b5ab157261e0ee77e1293ea8f3abee4757b0
Merge: 9b07962 8ac1797
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 1 17:58:02 2012 -0800

    Merge pull request #424 from jeffweiss/ticket/master/7792_allow_unless_as_replacement_for_if_not
    
    (#7762) In DSL allow UNLESS as replacement for IF NOT

commit 132a2efed31bdca56623589e505f4b641d31dbc5
Merge: 79c3b47 d3cc7d6
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 1 17:41:04 2012 -0800

    Merge pull request #391 from tdb/ticket/2.7.x/12081-missing-pw-userdel-flag
    
    #12081 ensure that managehome is respected when deleting users with the pw provider

commit 79c3b4785d5102c8bd2c5abb91b4518d54f1cac2
Merge: da2f43c 984997f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 1 17:37:12 2012 -0800

    Merge pull request #443 from jeffweiss/ticket/2.7.x/12372_remove_duplicate_methods_from_certificate_request
    
    (#12372) remove duplicate methods from certificate_request

commit da2f43c16e3332b74e2467ad8bec4d307d261e57
Merge: 8782e33 0578737
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 1 17:29:46 2012 -0800

    Merge pull request #441 from nfagerlund/ticket/2.7.x/12356_hasstatus_exit_codes
    
    Ticket/2.7.x/12356 hasstatus exit codes

commit 8782e33e84e39a7c4e14cc521cbe63185def134d
Merge: 7485aa6 a6c196f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 1 17:28:54 2012 -0800

    Merge pull request #435 from mmrobins/ticket/2.7.x/12349-module_list_dependencies
    
    Ticket/2.7.x/12349 module list dependencies

commit 984997f0d17ca76895b9b0e1e1d51f9d1193e4f4
Author: Jeff Weiss <jeff.a.weiss@gmail.com>
Date:   Wed Feb 1 16:52:34 2012 -0800

    (#12372) Remove duplicate methods from certificate_request
    
    Commit 711cbf0af4 introduced duplicate copies of
    request_extension and subject_alt_names in
    lib/puppet/ssl/certificate_request.rb.  This commit removes
    the redundant code.

commit a7bd5698ab9bc8c11885737da2e7ec380275f24b
Author: Pieter van de Bruggen <pvande@gmail.com>
Date:   Tue Jan 31 10:08:35 2012 -0800

    (#12339) Adding basic search output formatting.
    
    This aims to ensure that the most relevant data is always available in your
    search results.  The module name and author are always available, the most
    relevant keywords are presented, and as much of the short description as
    possible is shown.

commit 057873790365e8f5cf5be7d3791cda146a6bbd2e
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 1 15:19:07 2012 -0800

    (#12356) Mention the expected exit codes in the hasstatus parameter doc
    
    We mentioned the expected exit codes in the status parameter, but not in hasstatus.
    This commit ensures the information is in both.

commit 9b07962749da44cb94985b2d0ecc1cbb3d94389f
Merge: d88bdd2 bcdb426
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 1 15:07:35 2012 -0800

    Merge pull request #440 from pcarlisle/ticket/master/5521-enable-pluginsync-by-default
    
    (#5521) Enable pluginsync by default

commit bcdb4263357aed136a1d5162047b2f752656649c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 1 14:40:45 2012 -0800

    (#5521) Enable pluginsync by default
    
    This turns on pluginsync in the default configuration.

commit d88bdd2312097c0073ac611780ac31146a492110
Merge: 084886a ac46168
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 1 14:54:35 2012 -0800

    Merge pull request #434 from tbielawa/master
    
    Fix redhat specfile

commit 084886a293d5b599e9938ed8ea23424f2ee53f7c
Merge: f6f7625 fce4044
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 1 14:48:11 2012 -0800

    Merge pull request #437 from cwarden/whether-typos
    
    Fix spelling of "whether"

commit f6f762500bf0217e8e8826870e651899ed50e7ac
Merge: 5f22554 8a2e6b7
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 1 14:36:28 2012 -0800

    Merge pull request #439 from pcarlisle/ticket/master/2244-plugin-mount-works-with-empty-directory
    
    Ticket/master/2244 plugin mount works with empty directory

commit 8a2e6b7ed73361805499239c0f702814f1f3cbed
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 1 11:34:44 2012 -0800

    (#2244) Remove nil results from remote file recursion
    
    This fixes an exception that occurs when a file source returns nil. It still
    fails if all sources return nil, as it should.
    
    The error message that this fixes was:
    Failed to generate additional resources using 'eval_generate: undefined method `relative_path' for nil:NilClass

commit c183f2fc8d33795f8ea90265d3e56fffc6f64840
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Feb 1 12:34:46 2012 -0800

    (#2244) Plugin mount return a directory if modulepath is valid but has no plugins
    
    Prior to this if there were no plugins in the modulepath then the plugin mount
    (used for pluginsync) would return nil. If the modulepath is valid then the
    correct behavior would be to appear as an empty directory, just as a normal
    file source would. We can hack this by returning the modulepath and turning
    off recursion so it appears empty.
    
    The error message one would see previous is:
    Could not evaluate: Could not retrieve information from environment production source(s) puppet://host/plugins

commit 7485aa6e808121c876b5c9df477cc97183d4e535
Merge: bd45d79 8fd54b1
Author: lifton <lifton@puppetlabs.com>
Date:   Wed Feb 1 14:12:18 2012 -0800

    Merge pull request #420 from daniel-pittman/feature/2.7.x/2927-symbolic-file-mode-redux
    
    #2927 symbolic file mode redux

commit bd45d79998c91691ce22a39f65da882550cb6e6f
Merge: b7e1c32 51fa666
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Feb 1 12:56:58 2012 -0800

    Merge pull request #438 from joshcooper/ticket/2.7.x/12363-use-tempfile
    
    (#12363) Use Tempfile

commit 8fd54b122c14611af5705935de6b09444722cd3c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jan 30 10:10:15 2012 -0800

    Restore compatible `insync?` behaviour for matching arrays.
    
    Prior to the start of these cleanups, when matching the entire array rather
    than part of it, we accepted the situation where the `is` array - what the
    provider returned - matched one of two arrays:
    
    One, if it matched as-is the `should` array, which is what the resource is
    configured to be delivering.
    
    Two, if it matched the `should` array after every value in it was transformed
    via `to_s`, into a string.
    
    Preserving this does mean that the `property_matches?` method is no longer
    used for comparison when `array_matching :all` is in force - because it
    internally handles the value comparisons, we can't expose the logic that
    refuses to match anything but the entire array to it.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 55207268779ee36cb2ff7c32324bae0892f1d5f6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 16:35:00 2012 -0800

    Fix bugs around the finer-grained insync? protocol.
    
    Due to the lack of effective testing around `insync?`, when I refactored it I
    missed one of the inequality cases.  This restores the correct behaviour, in a
    separate commit to call out the actual change in structure better.
    
    It includes some specific tests around the new `property_matches?` method, to
    ensure that it preserves the current - if odd - behaviour.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7c9f8613f6ad15ee7ba7254b29331b4091bc725f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Nov 11 16:09:29 2011 -0800

    Finer-grained protocol for property `insync?`.
    
    Previously the protocol for a property was that it should override the entire
    `insync?` method when it wanted to do custom matching.  This worked, but meant
    that a number of bits of logic had to be replicated in each property
    individually.
    
    This changes that by introducing `property_match?(current, desired)` to the
    protocol, which is used to compare an individual current and desired propriety
    value pair.
    
    The default implementation mirrors the previous behaviour of this code, but
    now individual property implementations can override only the direct
    comparison operation and get the right behaviour more easily.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c0e28b0d68344162d0b83cd340a891ba9019fc4b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 15:56:23 2012 -0800

    Add unit tests for the `insysc?` method of a property.
    
    Previously this core, vital method was covered by a bunch of other random
    stuff, including acceptance tests, but it didn't actually have tests that
    belonged to just it.
    
    This was revealed to be a problem in the last refactor of the code, which blew
    up in nasty ways when an edge case wasn't found.
    
    These tests do, in fact, show up that problem and everything.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7f84c496e8368eae950760bf44c7a8ddce428b9e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 15:09:11 2012 -0800

    Property Spec cleanup: eliminate stubbing of resource and provider.
    
    Now that the state and scope of all our resources and providers is clear, it
    becomes much easier to replace the stubs and mocks with real instances.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d66bb00c5d2b42e04659452e8c969dc6fff02872
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 15:06:37 2012 -0800

    Property Spec cleanup: last let method extraction.
    
    This helps eliminate member variables in tests, making it easier to see where
    state is or isn't shared between tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2775dd768a6e153399c013d072df04a6120dee3b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 15:03:18 2012 -0800

    Property Spec cleanup: extract more let methods.
    
    This helps eliminate member variables in tests, making it easier to see where
    state is or isn't shared between tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit cd536ab3431cc9b19d4b32acb9876d974d551b49
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 14:59:12 2012 -0800

    Property Spec cleanup: remove unused instance variable.
    
    Nobody actually used the object that was set up at the start of this context,
    so we can just eliminate it.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a5d7bd650661e8828d806668b1f27fdc68875775
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 14:56:45 2012 -0800

    Property Spec cleanup: remove some pointless extra stubs.
    
    One test context had a duplicate version of the outer instance management
    code, probably because it was in a different class so couldn't see the member.
    
    Replacing the outer version with let methods means that we also see the
    helpers down in our nested contexts, so we can ditch the extra code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f17dbf7898244d099c558a2d5d205d94f765520e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 14:49:57 2012 -0800

    Property Spec cleanup: extract property instance to a let method.
    
    This helps eliminate member variables in tests, making it easier to see where
    state is or isn't shared between tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4157102cd00c65b0d2d65de048e189c426710f85
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 14:48:35 2012 -0800

    Property Spec cleanup: extract mock resource to let method.
    
    This helps eliminate member variables in tests, making it easier to see where
    state is or isn't shared between tests.  This only tackles the top level stub
    object, rather than the embedded versions that overwrote it in other tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8f9214eae4ee246692d40d868c7c5bbff7e080a1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 14:46:58 2012 -0800

    Property Spec cleanup: extract mock provider to let method.
    
    This helps eliminate member variables in tests, making it easier to see where
    state is or isn't shared between tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 47510b0878c38d03b36007a0053d526929921e2b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 14:45:48 2012 -0800

    Property Spec cleanup: extract new subclass to let method.
    
    We need a shiny, new subclass of Puppet::Property every test, because we
    modify class level things - and so we would pollute the tests if we touched
    the same class object.
    
    This extracts the logic around that to a let method, making the lifecycle
    easier to follow by eliminating a member variable.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 03e37564daf0167bf5f5bc9bc21dd6e290376d5e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 13:56:58 2012 -0800

    (#2927) Acceptance test for symbolic file modes.
    
    This adds an acceptance test that validates that symbolic file modes are
    functional on all our platforms, as expected.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 51fa66659b61667021b0fad9f10b94f8eca35cca
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Feb 1 12:39:19 2012 -0800

    (#12363) Use Tempfile to generate temp files
    
    Previously, puppet used ENV['TMP'], ENV['TEMP'], /tmp, etc as it's
    temp directory search path, using the first one that existed. It then
    used constant file names within the temp directory to re-write the
    files in ruby's bin directory, and bat wrappers on Windows.
    
    First, it leads to predictable temp file names, which is bad. Second,
    when installing puppet via a non-interactive ssh shell, e.g.
    
      ssh <host> ruby install.rb
    
    which is what the acceptance test harness does, the TMP and TEMP
    environment variables are usually not defined. So puppet was always
    defaulting to /tmp, which doesn't work when installing puppet on
    Windows agents during acceptance tests.
    
    This commit just changes the install script to use ruby's Tempfile to
    generate secure temp files that works in non-interactive shells.

commit fce4044cc4274c05d15e7789a6633688543cafd8
Author: Christian G. Warden <cwarden@xerus.org>
Date:   Wed Feb 1 12:32:07 2012 -0800

    Fix spelling of "whether"

commit b7e1c32a06fcfafbb706fd3d53faa5032708c390
Merge: 48dd82e f8d4be6
Author: Deepak Giridharagopal <deepak@brownman.org>
Date:   Wed Feb 1 11:00:56 2012 -0800

    Merge pull request #425 from daniel-pittman/bug/2.7.x/12269-multiple-cycles-in-graph-fail-on-sort
    
    (#12269) multiple cycles in graph fail on sort

commit 48dd82ea2e9faf055e758df4adeb2a8d0688f077
Merge: ec3bba5 7da2c58
Author: R.I.Pienaar <rip@devco.net>
Date:   Wed Feb 1 10:12:47 2012 -0800

    Merge pull request #436 from daniel-pittman/maint/2.7.4/stub-upstart-spec-test-in-a-portable-way
    
    Maint/2.7.4/stub upstart spec test in a portable way

commit 7da2c58545f508ada17a7f772cd0477bdfa32a41
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Feb 1 10:07:22 2012 -0800

    Alternate, and portable, stubbing of execution for upstart spec.
    
    Previously this spec used to execute an external command in order to set the
    Ruby `$?` global to a `Process::Status` object with a successful exit.  This
    was fine, but not portable to Windows, and not exactly efficient.
    
    Instead, we now stub the exitcode on the $? object, whatever it is, to report
    successful exit, and carry on.  That works, stubbing the instance, to make
    this both fairly robust and entirely portable.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ac461684d3a6e6ef795a9e2ff5ec81ae51066828
Author: Tim Bielawa <tbielawa@redhat.com>
Date:   Wed Feb 1 11:01:10 2012 -0500

    Fix specfile to account for removal of XMLRPC code in commit 81c73fd0.

commit a6c196f63be9164fbf515b37d382369be26a9a4b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Jan 11 14:45:59 2012 -0800

    (#12349) Add module dependency errors to module list output
    
    There was already a validate_dependencies method on the Puppet::Module
    class, but it didn't do anything since it never actually read the
    dependency info from the module metadata.
    
    This commit adds a method to replace that, but it doesn't raise if
    dependencies are unsatisfied.  This allows us to output the dependency
    problems when `puppet module list` is called.
    
    This also adds basic acceptance tests for the list command.

commit ec3bba5705378b92102adf4ce000ecfd42acf2f8
Merge: d799770 17d3e31
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 31 16:31:01 2012 -0800

    Merge pull request #433 from pcarlisle/ticket/2.7.x/12268-upstart
    
    (#12268) Fix upstart test to work with String#each_line
    
    This is the correct fix, since the stub was returning data in a format different from the actual method.

commit 17d3e31bf8bb124d99c15d242568891dea4d8782
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jan 31 16:05:10 2012 -0800

    (#12268) Fix upstart test to work with String#each_line

commit 5f22554b12fd379aa76c41f8137ea8fdbc794be9
Merge: 3f679da 2d96b90
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 31 15:48:51 2012 -0800

    Merge pull request #387 from ahpook/tickets-4426-regexp
    
    Tickets 4426 ext/regexp_nodes improvements

commit 3f679da461939b4573d2058f98cc3e5839654254
Merge: a8ffa9a 2169295
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 31 15:37:11 2012 -0800

    Merge pull request #184 from seanmil/schedule/feature/10328-weekday
    
    (#10328) Add 'weekday' parameter to schedule type

commit a8ffa9ae21c6846d56546d111c20e0ec5af1b7f2
Merge: 5ec1c74 edd6e65
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 31 15:19:02 2012 -0800

    Merge pull request #313 from piavlo/yumrepo-fix-for-1.9.2
    
    (#11281) Correct Fix of undefined method `file?' for Puppet::Type::File:Class with ruby 1.9.2

commit d799770f4b0b08aed0f501ecf22489b392d8dbdc
Merge: b869665 b26e03a
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 31 15:13:21 2012 -0800

    Merge pull request #310 from nicklewis/fix-inherited-stages
    
    Fix stage inheritance between multiple included classes

commit b8696655f18bb7879f8d3c60dbc3963bec387512
Merge: 62d4f78 4f295f3
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 31 15:04:57 2012 -0800

    Merge pull request #300 from nfagerlund/ticket/2.7.x/11451_duplicate_definition_error
    
    (#11451) Fix improper use of "defined" in the duplicate declaration error

commit 5ec1c74b8e82c2cec9ef7deb80f354abc2498a0f
Merge: 4ddaa96 c675726
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 31 14:01:17 2012 -0800

    Merge pull request #273 from bleonsfl/shinken
    
    Add poller_tag, business_impact, realm attributes to nagios_types that s...

commit 62d4f78b445a5fc494fb9120bbb72b8319e27c43
Merge: 5050b71 a8a0f5f
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Tue Jan 31 22:04:49 2012 +0100

    Merge pull request #426 from daniel-pittman/bug/2.7.x/12268-1.9.3-compatibility-fix
    
    * 'bug/2.7.x/12268-1.9.3-compatibility-fix' of git://github.com/daniel-pittman/puppet:
      (#12268) String#each is not available in Ruby 1.9

commit 4ddaa9644935565ef8229725c50979dc4df501f3
Merge: 952df60 3fadcdd
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 31 11:59:22 2012 -0800

    Merge pull request #429 from jeffweiss/ticket/master/11593_remove_support_for_os_x_10.4
    
    (#11593) Remove support for OS X 10.4 and earlier

commit 952df6021cbd51669b34f328542b902f23d55fa2
Merge: ffedf22 cb72ae1
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 31 11:44:26 2012 -0800

    Merge pull request #179 from mkincaid/metricfu_config
    
    Configure rcov and flay tests for metric_fu.

commit cb72ae102d845a72633bb09527b8566b8da64dd8
Author: Michael Kincaid <michael@puppetlabs.com>
Date:   Tue Dec 13 11:19:10 2011 -0800

    Put the output in the user's TMPDIR, rather than the source tree.

commit c2f6949d6fc8cd3be09dd9f64992c9c3acb3dbaa
Author: Michael Kincaid <michael@puppetlabs.com>
Date:   Tue Oct 25 13:30:11 2011 -0700

    Configure rcov and flay tests for metric_fu.
    
    Currently if you run rake metrics:all on puppet, you get no results
    from flay (because it needs to be told the directory to look in),
    and incomplete results from rcov (because it needs to be pointed to rspec).
    This patch adds the necessary configuration to the rake task.
    The metric_fu gem will need to be installed for the metrics:all task to exist.

commit ffedf22758bb0a517a4e6b6386de369f7ebc8ec5
Merge: 704b4a7 a023c6c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 31 11:28:36 2012 -0800

    Merge pull request #427 from pcarlisle/ticket/master/12127-pluginsync-apply
    
    (#12127) Implement local pluginsync from modulepath for puppet apply

commit 5050b71ece126a52aca50ce540d72bd7448d4534
Merge: 29a7728 2303a81
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 31 10:42:00 2012 -0800

    Merge pull request #432 from jeffmccune/ticket/2.7.x/12066_back_out_windows_build_tasks
    
    Ticket/2.7.x/12066 back out windows build tasks

commit a023c6c621531aafb344f2295578fd4b83f3a484
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jan 30 12:59:17 2012 -0800

    (#12127) Add acceptance test for pluginsync on puppet apply

commit 9f95341801db03a6a25cdbe63745c66c78a3f210
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jan 24 12:29:37 2012 -0800

    (#12127) Implement local pluginsync from modulepath for puppet apply
    
    This makes pluginsync work when running puppet apply. The local modulepath is
    used as a source. Pluginsync is still not enabled by default.

commit 29a77284e4a1f39af0d59ff9c5de28f510610694
Merge: 309c09c a116726
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 31 10:11:45 2012 -0800

    Merge pull request #431 from mmrobins/ticket/2.7.x/12329-faces_rendering_takes_args_and_options
    
    Ticket/2.7.x/12329 faces rendering takes args and options

commit 2303a815f86c42d621a29e287fb7def7ab87f764
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 31 10:11:31 2012 -0800

    Revert "Merge pull request #396 from jeffmccune/feature/2.7.x/12088_windows_build_tasks"
    
    This reverts commit dd6bef5446a3ce892b503ac19830f810791560ad, reversing
    changes made to 586074aca8dd49843ebfb9f160b408b7907cf886.
    
    We've decided to back this out because the windows build system packages
    Ruby and Facter in addition to Puppet.  Therefore, the windows build
    system should be in a separate repository.
    
    Please see http://projects.puppetlabs.com/issues/11205 for the location
    of the new repository.

commit a11672690ed15a594a3b25f61a8bec6c8bf6cf1c
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jan 30 10:43:36 2012 -0800

    (#12329) Allow faces when_rendering blocks to take options
    
    When rendering for face actions was implemented it was assumed that all
    the options that an action took would go toward determining the data
    that the when_invoked block returned, and the rendering would make
    decisions based on that data's structure.  However, there are times when
    the data returned may be the same even with different options, and the
    option will determine how it's rendered.
    
    For example, the `module list` action has a --tree option that will
    display the installed modules in a tree view based on dependencies. The
    `module search` action will be able to highlight the word that was
    searched for in the results.
    
    This commit allows the when_rendering blocks to optionally add options
    and arguments along with the invoked result.  I made the options and
    arguments optional since most when_rendering blocks won't need the
    them, and having them show up in the block declaration when not used
    is confusing.  This also means that all faces previously written don't
    need changes and this change is backward compatible.

commit 3fadcddbf4e401ac5c6b1e9b3d62a82835e53612
Author: Jeff Weiss <jeff.a.weiss@gmail.com>
Date:   Tue Jan 31 09:25:28 2012 -0800

    (#11593) Remove support for OS X 10.4 and earlier
    
    Remove unneeded CGI require

commit 68af20a704a6eec4704840746479d18f61bcf14e
Author: Jeff Weiss <jeff.a.weiss@gmail.com>
Date:   Tue Jan 31 09:11:39 2012 -0800

    (#11593) Remove support for OS X 10.4 and earlier
    
    Remove stale code for parsing dscl url output

commit 93030eb6a156e5bbcd16a49e59fe625c1a851a10
Author: Jeff Weiss <jeff.a.weiss@gmail.com>
Date:   Tue Jan 31 00:48:28 2012 -0800

    (#11593) Remove support for OS X 10.4 and earlier
    
    Change directory service facts to require 10.5+

commit 70881a89cc8630ac9640ec67e89a8334b9e8f662
Author: Jeff Weiss <jeff.a.weiss@gmail.com>
Date:   Tue Jan 31 00:41:06 2012 -0800

    (#11593) Remove support for OS X 10.4 and earlier
    
    Change tests to reflect bump of minimum version from 10.4 to 10.5
    Change directory service provider to use only plist version
    Change launchd to require 10.5+
    Change rake task to make DMG target 10.5+

commit 704b4a710e03d5efe1a60b28b1919463a7e30259
Merge: e4fca7c 447796d
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 30 20:54:12 2012 -0800

    Merge pull request #416 from kelseyhightower/ticket/master/8701_waitforcert_param_configurable_for_puppet_agent
    
    (#8701) waitforcert param configurable for puppet agent

commit e4fca7ccaa99316069ae210a9e05841f0efb513b
Merge: 2e75327 1a1a26c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 30 20:51:15 2012 -0800

    Merge pull request #265 from jamtur01/tickets/master/10219
    
    Fixed #10219 - uninitialized class variable Schedule type

commit 1a1a26c7eec8503e2d9c7b62c679b8efac62b2d9
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Dec 9 14:28:34 2011 -0800

    Fixed #10219 - uninitialized class variable Schedule type
    
    When run with Ruby 1.9.x we receive the error:
    
    uninitialized class variable @@scale in
    Puppet::Type::Schedule::ParameterPeriod
    
    This is as a result of the two class variables:
    
    @@scale
    @@method
    
    This patch replaces these with the appropriate non-class variables.

commit 2e75327ca0a38db9f14b8f4d59ca57bf99f44ece
Merge: 14670c5 4bea1ef
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 30 19:45:51 2012 -0800

    Merge pull request #272 from deanwilson/issues-7476
    
    Display the correct option when raising the error - issue #7476

commit 14670c5850462472f5efcfc6ea11d2b4cab708a7
Merge: 7f09df4 e44a8ab
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 30 14:15:11 2012 -0800

    Merge pull request #418 from cprice-puppet/bug/master/5224-user-env-vars-during-Exec
    
    (#5224) Unset USER-related env vars during execs

commit 309c09c44fb747e922917a9306909cc6f35e10f6
Merge: 2c216c7 25a0a69
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 30 14:07:58 2012 -0800

    Merge pull request #419 from nicklewis/ticket/2.7.x/10064
    
    Ticket/2.7.x/10064 Add environment to reports

commit a8a0f5fc5d626ab920c4c4178dcd3f1737605ffb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jan 30 11:59:01 2012 -0800

    (#12268) String#each is not available in Ruby 1.9
    
    In earlier versions of Ruby, String#each and String#each_line were identical.
    In the 1.9 series the former was dropped; this audits the code for places that
    should by using `each_line` instead.
    
    This includes some fixes for tests that had very specific stubs around reading
    file content, where the expectation - but not the test - was broken by
    changing the method we invoke.
    
    It also fixes a stub over `execpipe` that had a different return type to the
    actual method, but which happened to work because `each` was defined on both
    Array and String in earlier versions.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2c216c76e59dafc0f04081e57299434e3c0f3317
Merge: 5f23429 20e03a9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 30 11:31:40 2012 -0800

    Merge branch 'bug/2.7.x/11423-better-collector-error-message' into 2.7.x
    
    * bug/2.7.x/11423-better-collector-error-message:
      (#11423) Better error when imported resources overlap.

commit 20e03a926acde2daa69e0fbb3b11e2bc44e48b9c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Dec 15 12:06:27 2011 -0800

    (#11423) Better error when imported resources overlap.
    
    When multiple nodes export a resource with a duplicate type and title, and you
    import both, the error message misleadingly tells you that this was a *local*
    duplication.
    
    This improves the error message to cover all the bases, which is suboptimal -
    it should tell you where the duplicate comes from - but at least doesn't lead
    to a wild goose hunt for the *local* duplicate that doesn't exist.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7f09df4c320c1a2a959ae73e4a74648942f0fc52
Merge: 7630671 5f23429
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 19:23:10 2012 -0800

    Merge remote-tracking branch 'origin/2.7.x'
    
    Conflicts:
    	spec/unit/daemon_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f8d4be615a2eef5a70a27dd9dc8f360ab0641d06
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 16:58:44 2012 -0800

    (#12296) Acceptance test for cycle detection in graphs.
    
    This adds a simple acceptance test that validates we detect and report cycles
    in a catalog as we compile and try to execute it.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d89423fe9a487262e9faead60dc00b640aeb0b52
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 16:32:58 2012 -0800

    Use natural ordering of Puppet::Provider.
    
    The module tool used to generate and sort by a proxy key for providers, when
    detailing their content.  Instead, this can use the natural ordering of
    providers previously introduced.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 83ca48d7aff1450bd34cada5d4180e5e5a4633e3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 16:30:48 2012 -0800

    Make `Puppet::Provider` ordered.
    
    Like types, our providers have a natural internal order.  Exposing that allows
    us to eliminate proxy sorting everywhere that it is done, and have more
    uniform treatment of our types.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3f88882ad6425f83dd910226d1659eafed74e9a7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 16:09:02 2012 -0800

    (#12296) Now that `Puppet::Type` is ordered, use that.
    
    This eliminates the proxy sorting in the graph library, which was working
    around the fact that Puppet::Type was not able to be ordered out of the box.
    
    That makes the whole process significantly more robust.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 316de588c8701abf64e45694850bab4be3a79ec6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 15:34:30 2012 -0800

    (#12296) Make `Puppet::Type` ordered.
    
    Type instances have a reasonable natural order, which allows us to make them
    Comparable.  This, in turn, makes any interaction where ordering is of
    interest easier to deal with.
    
    This implementation uses the string form of the resource as the basis for
    comparison, which is a reasonable starting point from existing definitions of
    ordering over resource instances.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 37a3e823acec37dbcd1c719390eab5c1066c84ea
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Jan 29 14:40:30 2012 -0800

    (#12296) Test cycle detection on real Puppet::Type instances.
    
    We have found a couple of places where the behaviour of the items tested, and
    the behaviour of the real system, differ - because the tests were run over
    simpler objects than the real Puppet::Type instances we work on in the field.
    
    This moves from testing on fake things to testing on the real deal, which
    gives us a much more solid basis to trust the tests.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8ac17977f0f178a9ccd344ff2504bcb92c12fb13
Author: Jeff Weiss <jeff.a.weiss@gmail.com>
Date:   Sun Jan 29 00:10:53 2012 -0800

    (#7762) In DSL allow UNLESS as replacement for IF NOT
    
    Add support to DSL for UNLESS.
    Add support for two cases of UNLESS:
      unless <condition> { <statements> }
      unless <condition> { }
    
    Proxy UNLESS in AST to IF, wrapping condition an (additional) NOT
    
    Add tests to ensure that AST::Not gets added tree in "unless false {
    $var = 1 }"
    Add tests to ensure that no exception raised for "unless false { }"

commit 5f23429c7b81d0cdb7166904649a8bcd8df350ae
Merge: 6f394cb 289dddc
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sat Jan 28 09:58:21 2012 -0800

    Merge pull request #421 from daniel-pittman/bug/2.7.x/12188-pid-handling-warning-cleanup
    
    Bug/2.7.x/12188 pid handling warning cleanup

commit 289dddcaec5c50ded1f79c978c95c2fdac4e1f09
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 27 18:03:12 2012 -0800

    (#12188) Handle Win32 as well as Unix in pidfile tests.
    
    When I changed the testing for the PID file system I neglected to check that
    Win32 would work; this makes sure the path used is absolute for the platform
    the specs run on, fixing that problem.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 25a0a694fd7eedfb1e716308ba355151b035a0ae
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 14 12:08:34 2011 +1100

    (#10064) Add the Puppet environment to reports
    
    Previously the Puppet environment was not included in
    the report output. Using the model of how configuration_version
    was added to the reports the environment will now also be reported.
    
    Puppet::Transaction::Report now takes three arguments:
    
    * Kind of report
    * Configuration version
    * Environment
    
    Tests for this have been added and existing tests updated.

commit 6f394cb38d8c5602cce3e1224e4a0f74e19370fd
Merge: 21eb863 3310470
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Jan 27 15:29:20 2012 -0800

    Merge branch 'bug/2.7.x/12188-pid-handling-warning-cleanup' into 2.7.x
    
    * bug/2.7.x/12188-pid-handling-warning-cleanup:
      (#12188) Better handling of PID file cleanup warnings.

commit e44a8abd7dc7b2cac4c05eb7a50b53bdd71a1cbc
Author: Chris Price <chris@puppetlabs.com>
Date:   Fri Jan 27 10:27:14 2012 -0800

    (#5224) Unset USER-related env vars during execs
    
    This bug report was related to the fact that you may end up with very different values for environment variables such as "HOME", "USER", "LOGNAME" depending on how you start puppet (at boot time, via "service", via /etc/init.d, etc.).  These variations can have an effect on the behavior of programs / services that are launched by puppet, particularly those that are triggered via Exec resources.  Change the behavior such that these environment variables are simply unset by puppet prior to executing commands.

commit 447796d8ac4432a3487dfddeb4a87750fbcfe622
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Fri Sep 2 21:11:28 2011 -0400

    (#8701) waitforcert param configurable for puppet agent
    
    Allow configuring the default value (120 seconds) for the `waitforcert`
    parameter through configuration.

commit 7630671ec38d754464898ba3ad68caab144dc89b
Merge: 8411ab3 c58d95d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jan 26 22:13:12 2012 -0800

    Merge branch 'bug/master/11860-LANG-environment-var'
    
    * bug/master/11860-LANG-environment-var:
      (#11860) Fix specs that fail on windows

commit c58d95dca2e1ce523db5c318f304061df51a54d0
Author: Chris Price <chris@puppetlabs.com>
Date:   Thu Jan 26 15:23:10 2012 -0800

    (#11860) Fix specs that fail on windows
    
    Previously, the daemon and execute_posix spec tests were failing on
    Windows, but this functionality is not supported on Windows, and so
    the tests are skipped on Windows.

commit 3310470edfe327f5d3a5bfbacc5ba7c14cf5d7f2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jan 26 17:24:36 2012 -0800

    (#12188) Better handling of PID file cleanup warnings.
    
    Previously everyone who invoked the `unlock` method of our pid file code would
    duplicate all the internal logic to issue a warning, but only if we tried and
    failed to delete the PID file.
    
    This seems redundant compared to just pushing that down to the code that
    actually fails, which this commit does.
    
    Along the way it helps ensure that we don't warn unnecessarily about PID file
    deletion, and adds tests to validate that.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 21eb8638d519406716820ba70564f7731dc556e3
Merge: 6ba92c9 4911faf
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Fri Jan 27 00:59:50 2012 +0100

    Merge branch 'tickets/2.7.x/12195-Puppet_outputs_Ruby_warnings_on_RHEL_directives' of git://github.com/barn/puppet into 2.7.x
    
    * 'tickets/2.7.x/12195-Puppet_outputs_Ruby_warnings_on_RHEL_directives' of git://github.com/barn/puppet:
      (#12195) Fix future ruby warning messaves in process_name

commit 6ba92c95c10389497add44a5bdb00a0e6c4152e5
Merge: 31a3acb 744dfa4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Jan 26 15:51:28 2012 -0800

    Merge pull request #413 from stschulte/ticket/2.7.x/12197
    
    Fix insync? method for array_matching => all

commit 744dfa46bcb008821c6269e477ddff7fe097733b
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu Jan 26 21:40:55 2012 +0100

    Revert "Finer-grained protocol for property `insync?`."
    
    This reverts commit 48726b662d2fb5cc3532fca12eb6aa5a3c1622cd.
    
    Revert the commit to use the old insync? method. Revert the commit
    due to the following different reasons:
    
    * the code does only work on ruby 1.9 as described in #12197
    * the insync? method does not work for array comparisons if
      the should array has more items than the is array
      because smallarray.zip(bigarray) truncates bigarray
    * it is currently not possible to overwrite just the property_match?
      method because the insync method will then raise an exception
      Could not evaluate: old and new mismatch!
    
    While I guess there were good reasons behind the refactor of the
    insync? method it is currently quicker to just revert the commit than
    fixing the errors (and writing tests for it)

commit 8411ab3c8a6b2a03581b5dc2f912e718601df729
Merge: 7d890ae 1dfd869
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Jan 26 12:03:41 2012 -0800

    Merge pull request #408 from cprice-puppet/bug/master/11860-LANG-environment-var
    
    Bug/master/11860 lang environment var

commit 4911fafc114239a68375740a0e239d905f3e948c
Author: Ben Hughes <ben@puppetlabs.com>
Date:   Thu Jan 26 11:53:52 2012 -0800

    (#12195) Fix future ruby warning messaves in process_name
    
    Ruby 1.8.7 on RHEL platforms complains about the lack of parenthesis on a
    function with an eye to the future. This puts in said parenthesis.

commit 7d890ae0b8c5e3fb6a4bf6bdf73ba4266070b15b
Merge: a6affa1 a09c3f0
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Jan 26 11:05:05 2012 -0800

    Merge pull request #410 from nicholashubbard/patch-1
    
    [12191] Unable to remotely sign a SSL certificate via certificate face

commit a09c3f05199ecbc05121e93b34e9f7174009de2b
Author: Nicholas Hubbard <nick@42pineapples.com>
Date:   Thu Jan 26 10:56:02 2012 -0600

    options[:ca_location] is a string not a symbol. Safer to pull Puppet::SSL::Host.ca_location since it is already set correctly.

commit 1dfd869c9ffc5a3aded77aca141165eacf972022
Author: Chris Price <chris@puppetlabs.com>
Date:   Wed Jan 25 17:58:16 2012 -0800

    (#11860) Minor cleanup as per pull request comments
    (#11860) Minor cleanup as per pull request comments
    (#11860) Minor cleanup as per pull request comments
    (#11860) Minor cleanup as per pull request comments
    (#11860) Minor cleanup as per pull request comments
    (#11860) Minor cleanup as per pull request comments
    (#11860) Minor cleanup as per pull request comments
    (#11860) Minor cleanup as per pull request comments
    (#11860) Minor cleanup as per pull request comments

commit 31a3acb865e9520cf11c39137f7b0aa245631bfb
Merge: fd11b3f f11201e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Jan 25 17:05:00 2012 -0800

    Merge pull request #409 from MosesMendoza/ticket/12169_correct_redhat_spec_changelog_chronology
    
    Ticket/12169 correct redhat spec changelog chronology

commit f11201e3168fef485d7d16d7f1198d3d283a1742
Author: Moses Mendoza <moses@puppetlabs.com>
Date:   Wed Jan 25 16:56:36 2012 -0800

    (#12169) Correct redhat spec changelog chronology issue
    
    Without this patch, two entries in the %changelog section of the
    puppet.spec file in conf/redhat are out of chronological order,
    due to merge-ups from 2.6.x. This causes the rpm to not build
    cleanly. This patch removes the two entries that are out of order
    (placing them in correct date chronology would have resulted
    in the version numbers being out of order, hence the removal).
    
    Signed-off-by: Moses Mendoza <moses@puppetlabs.com>

commit fd11b3ff98c02a4454ea243c7f3db852258a2a50
Merge: 7724900 0f19cbe
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Jan 25 16:35:58 2012 -0800

    Merge pull request #380 from masterzen/tickets/2.7.x/11990
    
    Fix #11990 - Allow puppet doc rdoc to use README.rdoc for module main page

commit 77249008f390b60a67bf175c76140e1d9e25833a
Merge: dbeaa16 5c97173
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Jan 25 16:15:18 2012 -0800

    Merge pull request #407 from daniel-pittman/feature/2.7.x/8855-follow-http-redirects-in-mac-pkg-providers
    
    Feature/2.7.x/8855 follow http redirects in mac pkg providers

commit 5c971738c723657d58d24f1a0500444535f986d1
Author: Ossi Herrala <>
Date:   Wed Jan 25 16:13:25 2012 -0800

    (#8855) Follow HTTP redirects is {app,pkg}dmg providers.
    
    The Mac appdmg and pkgdmg providers previously didn't follow HTTP redirects
    when fetching down the content; this extends the system to support them.

commit 1ff5ca8597c4838478f40d2f9352cc1f0354770f
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Jan 24 14:52:07 2012 -0800

    (#11860) Add a (pending) acceptance test to check LANG during user "exec"s
    
    Add an acceptance test that validates that when a manifest contains an "exec", it will be executed using the default system / user locale rather than forcing the locale to 'C'.
    
    Note that this test is in "pending" for two reasons:
    
    1) It requires the spanish locale package(s) to be installed on the agent node(s).  (e.g., apt-get install  language-pack-es-base ).
    2) It depends on some new functionality in the puppet-acceptance framework, so the test shouldn't be made active until after the following pull request has been merged:
    
    https://github.com/puppetlabs/puppet-acceptance/pull/123

commit dd50ca427b5ac412a518d19d28c6ec6f8e3bfb27
Author: Chris Price <chris@puppetlabs.com>
Date:   Tue Jan 24 11:57:01 2012 -0800

    (#11860) Fix unit test broken by previous commit
    
    Passing ":squelch => true" to Puppet::Util.execute used to have the side-effect of setting :failonfail to "false"; you must pass :failonfail explicitly now if you want it to override the default behavior of :failonfail => true.

commit 2ea85ef38212ca9ebb79a6e1d57b54a759fbb76e
Author: Chris Price <chris@puppetlabs.com>
Date:   Mon Jan 23 19:46:23 2012 -0800

    (#11860) Add parameter to control locale override
    
    Puppet::Util.execute_posix contained some code that would override some locale-related environment variables in order to force the command being executed to produce well-known, consistent, predictably formatted output so that it could be parsed.  However, there are some cases (such as a user-defined "exec" block) where we need to respect the system/user locale settings.  Add a boolean parameter to the Puppet::Util.execute method that allows toggling this locale override behavior.
    
    The "exec" provider now passes "false" for this value, meaning that we no longer override the locale for user-defined "exec" resources.  Users may choose to override the locale themselves by specifying the appropriate locale-related vars in the "environment" section of their resource.
    
    All of this is ignored on windows at the moment, but the parameter is passed in to "execute", which is responsible for calling "execute_windows" on windows systems.  We could decide to do something with this parameter on windows at some point in the future.

commit dbeaa165220a81b1e1c943bf37515ad2ea75c85f
Merge: 4af5afb b0c8d2c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 25 15:47:04 2012 -0800

    Merge branch 'ticket/2.7.x/12114-file-face-help' into 2.7.x
    
    * ticket/2.7.x/12114-file-face-help:
      (#12114) Qualify usages of `::File` to avoid conflict with file face

commit 602cc6764baed11a02576fcc34fa19a4c0f244a9
Merge: 06e70f3 eb800e4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Jan 25 15:13:51 2012 -0800

    Merge pull request #18 from nanliu/ticket/12037
    
    (#12037) hiera-puppet should support hash values.

commit 4af5afbc9f164eb93c9c3a3efa742b2725f9f903
Merge: 36c807c 9312a31
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Jan 25 14:52:09 2012 -0800

    Merge branch '2.7rc' into 2.7.x

commit 36c807c01b9d8e9d51bce9c72e27f3967081a117
Merge: b935339 e81de1e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 25 14:44:01 2012 -0800

    Merge branch 'bug/2.7.x/6771-always-close-activerecord-connections-in-tests' into 2.7.x
    
    * bug/2.7.x/6771-always-close-activerecord-connections-in-tests:
      (#6771) Check for ActiveRecord::Base instead of Puppet.features.rails?
      (#6771) Stop other AR connection handling.
      (#6771) Stop stubbing some feature tests.
      (#6771) Disconnect any ActiveRecord connection after every test.
      Document why we disable GC during the test runs.

commit e81de1e0740077b15efcaf8ed8729c949b878bd6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 25 14:40:11 2012 -0800

    (#6771) Check for ActiveRecord::Base instead of Puppet.features.rails?
    
    Without this patch there are false positive failures in situations where
    a test case stubs `Puppet.features.rails?`.  This is the case in
    `spec/integration/defaults_spec.rb`.
    
    This patch fixes the problem by only calling the remove_connection
    method if ActiveRecord::Base is defined.
    
    Reviewed-by: Daniel Pittman

commit 9312a3188635d3380ce2e92200009810fe02e96b
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Jan 25 14:38:03 2012 -0800

    Updated CHANGELOG for 2.7.10

commit 3892875a5e97180a0d71278faed51d85912456b5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jan 25 13:05:49 2012 -0800

    (#6771) Stop other AR connection handling.
    
    Now that we disconnect from ActiveRecord globally, individual tests don't need
    to go ahead and do the same work.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 80ecd88e43294fd6c75aa4428f39fa3dde81c07c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jan 25 12:59:49 2012 -0800

    (#6771) Stop stubbing some feature tests.
    
    Now that the spec_helper uses the Puppet feature system after each test, the
    over-zealous stubbing in this spec test causes problems.
    
    It is, though, ultimately unnecessary - we can just define a feature with the
    behaviour we want to test, and avoid all the pretend code entirely.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ed24b8029428867958203c881b9a16368483c66c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jan 25 12:58:41 2012 -0800

    (#6771) Disconnect any ActiveRecord connection after every test.
    
    Some of our tests can trigger an actual ActiveRecord connection being made.
    This could leak between tests, potentially causing odd problems, or otherwise
    share state between them.
    
    We should, when we have the feature available, ensure we disconnect between
    every test, so that we don't share state.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit dd0e405655d51ccb5ed33d249e97162c568b0e25
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jan 25 12:38:19 2012 -0800

    Document why we disable GC during the test runs.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b9353392eb9b94db80cf329daddfb5fb49f4a9ea
Merge: 9d361ee afe93b7
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Jan 25 11:46:48 2012 -0800

    Merge pull request #404 from nicklewis/parser-resources-for-storeconfigs
    
    Allow storeconfigs collector to accept parser resources

commit 9d361ee9db4c8941a2dfa5eb84c3d06030cb685b
Merge: dd6bef5 8ec0b6c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 24 17:07:44 2012 -0800

    Merge pull request #401 from pcarlisle/backout-12101
    
    Revert #12101.
    
    This has implications on the minimum version of rspec used, and we either need to bump that or approach this another way.  We are still working out which to do, so this can back out until then.

commit afe93b7850dbfdd5c778659c8614e5fdf1f0b7c4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Sep 16 14:47:00 2011 -0700

    Allow storeconfigs collector to accept parser resources
    
    Previously, the collector would call the storeconfigs backend and assume it was
    going to receive an object which responded to a #to_resource method to convert
    it into Puppet::Parser::Resource. This required any storeconfigs backend to
    provide an intermediate class simply to call #to_resource on, even if it wasn't
    necessary. Now, the collector will only call that method if it receives
    something that isn't already a Puppet::Parser::Resource. This allows
    storeconfigs backends to opt to simply construct the resources themselves,
    rather than define an intermediate class.
    
    Additionally, because Puppet::Parser::Resource instances require a scope when
    initializing, the collector will now provide the scope to the storeconfigs
    backend as an option to search. This provides the backend with the information
    necessary to actually create the Puppet::Parser::Resource objects.

commit b0c8d2c22345a34cd637640c7f50e46ad1dc1c6d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 24 12:08:46 2012 -0800

    (#12114) Qualify usages of `::File` to avoid conflict with file face
    
    Previously, if the `file` face had been loaded, then subsequent calls
    to `Puppet::Application.find` would attempt to call
    `Puppet::Application::File.join`, and fail since it should be calling
    `::File.join`.
    
    In addition, if `spec/unit/application_spec.rb` is tested first, then
    several other order-dependent failures occurred, for the same reason
    as above.
    
    This commit uses the '::' scope resolution operator to refer to ruby's
    File class and adds a spec test.
    
    In general, if you add an application to `lib/puppet/application/`,
    then you should fully qualify uses of `::File`, otherwise, if the file
    face is loaded first, your application may fail.

commit dd6bef5446a3ce892b503ac19830f810791560ad
Merge: 586074a 1c9e68c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 24 14:20:40 2012 -0800

    Merge pull request #396 from jeffmccune/feature/2.7.x/12088_windows_build_tasks
    
    Feature/2.7.x/12088 windows build tasks

commit 8ec0b6c86cb081b4d82b9badf51e3cf8acdca4b8
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jan 24 14:10:42 2012 -0800

    Revert "(#12101) Add shared context for specs to imitate windows or posix"
    
    This reverts commit edc544d73bc8f9f7de07de4b30e344d1f4db3178.
    
    This doesn't work with rspec < 2.6.0 and it's breaking continuous integration.

commit 33420a679460418063bf49f334bdd093b67c8c68
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Jan 24 14:10:37 2012 -0800

    Revert "(#12101) Make Puppet::Util::absolute_path? usable in autoloader"
    
    This reverts commit b82752070f8875768eb2a37a37adc11d9918bf3c.

commit 586074aca8dd49843ebfb9f160b408b7907cf886
Merge: 03af9c6 85e8cea
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 24 12:47:30 2012 -0800

    Merge pull request #400 from pcarlisle/ticket/2.7.x/12101-autoload-path
    
    (#12101) Make Puppet::Util::absolute_path? usable in autoloader

commit 03af9c6093a7638ffbe04e9e4843b0460b22b60b
Merge: ce44321 60c6150
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 24 12:45:39 2012 -0800

    Merge pull request #399 from kelseyhightower/ticket/2.7.x/11804_enhance_search_action_output
    
    Ticket/2.7.x/11804 enhance search action output

commit 85e8ceaeb8b4a29846892f36a2b84cc294d2a894
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jan 23 12:50:41 2012 -0800

    (#12101) Make Puppet::Util::absolute_path? usable in autoloader
    
    This makes Puppet::Util::absolute_path? check File::ALT_SEPARATOR to determine
    path behavior of the local system instead of Puppet.features, which required
    having an Autoload instance already. File::ALT_SEPARATOR is only defined on
    systems with Windows path behavior, and the Ruby standard library uses this
    frequently to distinguish systems.

commit edc544d73bc8f9f7de07de4b30e344d1f4db3178
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Jan 23 16:11:07 2012 -0800

    (#12101) Add shared context for specs to imitate windows or posix
    
    Add "windows" and "posix" shared contexts to rspec. If you give :as_platform
    => :posix or :as_platform => :windows as argument to a describe block, it will
    automatically stub the relevant facts and path behavior to imitate windows or
    posix.

commit ce443216b90f9488ab16449682a8b843fd94cbe7
Merge: 8f95e03 d28768a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 24 10:46:39 2012 -0800

    Merge remote-tracking branch 'joshcooper/ticket/2.7.x/10417-no-diff-on-windows' into 2.7.x
    
    * joshcooper/ticket/2.7.x/10417-no-diff-on-windows:
      (#10417) Disable `diff` on Windows by default

commit 8f95e03074be46dd9488a4ad8565327f9a32a03f
Merge: d4cf751 f56a09a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 24 09:53:38 2012 -0800

    Merge branch 'ticket/2.7.x/11955-binread' into 2.7.x
    
    * ticket/2.7.x/11955-binread:
      (#11955) Refactor to use IO.binread
      (#11955) Monkey patch IO.binread and IO.binwrite
    
    Reviewed-by: Jeff McCune <jeff@puppetlabs.com>

commit e31369aaf5a129487c1149ff0fa3d1e0d5f046e1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 23 14:09:54 2012 -0800

    (#6541) Use the same filebucket for backup and restore
    
    The acceptance test for #6541 was using `puppet filebucket backup -l
    /dev/null` to cause a 0-length file to be created in the agent's
    filebucket, and then attempting to retrieve the file using:
    
        file { ...:
          content => '{md5}d41d8cd98f00b204e9800998ecf8427e'
    
    However, this was failing because the former was writing to
    `${vardir}/bucket`, while the latter was trying to read from
    `${vardir}/clientbucket`, and failing to find the 0-length file.
    
    This test reported a false positive earlier, because the test was
    reusing the clientbucket from a previous test. Now that the acceptance
    tests clean the agent vardir, it uncovered this problem.
    
    This commit changes the test to create a 0-length file, then
    overwrites it, causing the old file to be backed up into the
    clientbucket.

commit 60c6150a4813d96e6877eb6a79ff293a354ebc18
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Jan 24 12:03:10 2012 -0500

    (#11804) Enhance PMT search action output
    
    Before this patch the search action does not output to console in the
    correct format:
    
        $ puppet module search apache
        notice: Searching http://forge.puppetlabs.com
        notice: 18 found.
        puppetlabs/apache (0.0.3)
        puppetlabs/passenger (0.0.2)
        DavidSchmitt/apache (1.0.0)
        jamtur01/httpauth (0.0.1)
        jamtur01/apachemodules (0.0.1)
        adobe/hadoop (0.0.1)
    
    This patch resolves this issue by changing the formatting of what we
    output to the console to look like this:
    
        $ puppet module search apache
        NAME     DESCRIPTION       AUTHOR        KEYWORDS
        apache   Desc ...          @puppetlabs   apache webserver

commit d4cf751bc5b28361c744b12a44f80b5fa77907b2
Merge: ae54436 e415daa
Author: lifton <lifton@puppetlabs.com>
Date:   Mon Jan 23 23:23:59 2012 -0800

    Merge pull request #397 from mmrobins/ticket/2.7.x/2279-gem_reinstalls
    
    (#2279) Handle providers with multiple installed versions - ruby gems

commit e415daa44d80c15035bbe837f02134e8776b46bc
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Nov 16 15:57:55 2011 -0800

    (#2279) Handle providers with multiple installed versions - ruby gems
    
    Ruby gems can have multiple versions installed, and the current
    implementation of the gem provider only reads the very latest installed
    version when self.instances is called.  This leads to Puppet potentially
    reinstalling the gem on every run if the Puppet manifest specifies a gem
    that *is* installed, but is not the latest version installed.
    
    This does require a change to how the package type checks if ensure is
    insync? to handle multiple versions for the 'is' ensure value, but the
    change is backward compatible with the providers that specify single
    versions.

commit e56dd9af85704fe5d663843a32dc7f9b2c77d10f
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jan 23 17:41:27 2012 -0800

    (#2279) Convert package specs to not use mocks
    
    In the next commit I want to extend the specs, and I'm not confident
    that the mocked resource does a good job of testing the changes I'm
    about to make.

commit d28768aa67e4caf89dcfc84b6c35cf8c31c65fc8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Sat Jan 21 14:26:58 2012 -0800

    (#10417) Disable `diff` on Windows by default
    
    Previously, anyone running `puppet apply` or `puppet agent` with
    either the `--test`, `--noop`, or `--show_diffs` option, would see a
    `CreateProcess` exception while trying to execute the `diff`
    command. This was made worse by the recent change that causes puppet
    to diff its last run summary file.
    
    On Windows, diff is not present, by default. There is fc.exe (file
    compare), but it is rather brain-dead, especially if you diff a binary
    file.
    
    This commit makes `Puppet::Util::Diff.diff` return '' by default on
    Windows. However, if a diff command has been specified in puppet.conf,
    then puppet will use it, as before.

commit a6affa1b70513d9173678ba0d00a042feefc98c6
Merge: 6d4cf14 ae54436
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jan 23 17:56:40 2012 -0800

    Merge branch '2.7.x'
    
    Conflicts:
    	acceptance/tests/ticket_3360_allow_duplicate_csr_with_option_set.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ae544365086360cf63b8cd4995052ebb92ba3e66
Merge: 48cf180 b16bf84
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jan 23 17:51:37 2012 -0800

    Merge branch '2.7rc' into 2.7.x
    
    Conflicts:
    	acceptance/tests/ticket_3360_allow_duplicate_csr_with_option_set.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 1c9e68c084929e859107b204d7ce14dae05c24f0
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jan 23 15:19:09 2012 -0800

    (#12088) Add windows:build task to build MSI package
    
    Without this patch, we're not actually building anything yet.  This
    patch fixes that problem by exercising the full process of downloading
    Ruby, unpacking it into a staging area, then building an MSI suitable to
    install Ruby into C:\puppetlabs\sys\ruby\bin\ruby.exe
    
    Running `rake windows:build` will produce puppet.msi.  Puppet is not actually
    included in the installation package, but Ruby is and subsequent patches
    will add the functionality to include puppet and facter.
    
    This patch is a migration of (#11890) into the puppet project itself.  The goal
    is to be able to use Puppet's 2.7.x branch to build packages for arbitrary
    integrations of Puppet, Facter, and other repositories going into the Windows
    MSI package.

commit 1cb8462e89737c4e42a7c041bfeb7755ea996e66
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jan 23 15:10:29 2012 -0800

    (#12088) Add rake download and unpack handlers
    
    Without this patch it is difficult to get large archives in place on a
    windows system.  This patch makes it easy to get large archives in place
    by adding the download and unzip related tasks from the Bundlr and the
    RubyInstaller.org projects.

commit 48cf180f0421c3c2bf1831ccd5539aa8bec010d6
Merge: a0b5386 311848a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 23 16:53:39 2012 -0800

    Merge branch '2.6.x' into 2.7.x
    
    * 2.6.x:
      (#6541) Use the same filebucket for backup and restore

commit 311848a4c74b0348aaa96ea725cb9291bdd19d6e
Merge: 765036c d937ae3
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 23 15:18:58 2012 -0800

    Merge pull request #395 from joshcooper/ticket/2.6.x/6541-use-the-same-filebucket
    
    (#6541) Use the same filebucket for backup and restore

commit a0b53861f27830426346c2c289ad94575d78837b
Merge: c78ea44 e4f6bc9
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 23 15:11:47 2012 -0800

    Merge pull request #394 from mmrobins/ticket/2.7.x/11600_put_module_face_back
    
    Ticket/2.7.x/11600 put module face back

commit d937ae3a506ff3f7d8c4baaa0d74fe25a5b7a866
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 23 14:09:54 2012 -0800

    (#6541) Use the same filebucket for backup and restore
    
    The acceptance test for #6541 was using `puppet filebucket backup -l
    /dev/null` to cause a 0-length file to be created in the agent's
    filebucket, and then attempting to retrieve the file using:
    
        file { ...:
          content => '{md5}d41d8cd98f00b204e9800998ecf8427e'
    
    However, this was failing because the former was writing to
    `${vardir}/bucket`, while the latter was trying to read from
    `${vardir}/clientbucket`, and failing to find the 0-length file.
    
    This test reported a false positive earlier, because the test was
    reusing the clientbucket from a previous test. Now that the acceptance
    tests clean the agent vardir, it uncovered this problem.
    
    This commit changes the test to create a 0-length file, then
    overwrites it, causing the old file to be backed up into the
    clientbucket.

commit c78ea44304d3e3de0be6ac8886a3881744067550
Merge: 651db09 3abfa67
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Jan 23 21:30:13 2012 +0100

    Merge branch 'schedule/bug/10296-test_cleanup_2.7.x' of git://github.com/seanmil/puppet into 2.7.x
    
    * 'schedule/bug/10296-test_cleanup_2.7.x' of git://github.com/seanmil/puppet:
      (#10296) Switch schedule tests from should to must

commit e4f6bc953132e0d25b80b8cb4c9ddbcdda2c0dd0
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jan 23 11:53:23 2012 -0800

    Revert "(#11600) Remove module face"
    
    This reverts commit d6d6e60fc04aa2baa678b5b36c00c5878696018f.
    
    Now that 2.7.10rc has been cut, we will continue work on the module face
    to make it releaseable for the next 2.7.x release.  To do that, we need
    the core face and application for `puppet module` put back into the
    codebase.

commit 651db09b83ac58f996f3b63becc1bfbde2d90c5c
Merge: 7c8c421 72a2fe0
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 23 11:15:53 2012 -0800

    Merge pull request #384 from glarizza/bug/2.7.x/5445_create_varlib
    
    (#5445) Create /var/lib/puppet in OS X Package

commit 7c8c421b5c852f6ddc6b4f56fe0a2aa9a906b9f1
Merge: 0a4d48f a6255d2
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 23 11:14:53 2012 -0800

    Merge pull request #376 from lak/tickets/2.7.x/6404-filebucket_fails_when_no_file_specified
    
    Tickets/2.7.x/6404 filebucket fails when no file specified

commit 6d4cf14c03b8f36dae8c7bada127abce586257ff
Merge: 44c4d71 ea115a0
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 23 11:14:14 2012 -0800

    Merge pull request #375 from carlasouza/master
    
    Overzealous warnings when querying services on Debian and Ubuntu

commit f56a09addd08550b470f4818c24fbe32b9d50b50
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 23 09:30:03 2012 -0800

    (#11955) Refactor to use IO.binread
    
    Previously, I had created a utility method `Puppet::Util.binread`,
    since `IO.binread` was added in ruby 1.9. This commit monkey patches
    the method, if it's not defined, to make the transition to ruby 1.9
    seamless. And while I was at it, I add the corresponding `IO.binwrite`
    method.
    
    The motivation for these methods is that, in general, we should always
    be using binary mode when performing file I/O. However, text mode is
    the default on Windows, and using text mode can corrupt binary data,
    e.g. executables. So use binary mode, unless you know what text mode
    is and why you need to use it.
    
    Conflicts:
    
    	spec/unit/file_serving/content_spec.rb

commit d3cc7d6a24fedc6678fe7e5d7387cb5fa9a65586
Author: Tim Bishop <tim@bishnet.net>
Date:   Mon Jan 23 17:32:41 2012 +0000

    (#12081) ensure user deletes respect managehome
    
    When deleting a user with managehome set the documentation says the
    provider should remove the user's home directory. This fixes the
    pw provider to do that by adding the -r flag to the command.

commit 8202729ede076ad17b5bde1ec1fe134ace1657df
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jan 20 21:54:44 2012 -0800

    (#11955) Monkey patch IO.binread and IO.binwrite
    
    binread and binwrite are only available in ruby 1.9, so adding these
    for older ruby versions.

commit 3abfa67732f763a6ca3b3c7a0a3dc7b0424ed71f
Author: Sean Millichamp <sean@bruenor.org>
Date:   Sun Jan 22 11:49:12 2012 -0500

    (#10296) Switch schedule tests from should to must
    
    Per Patrick's explanation in #10296, all of the
    "should" forms of the rspec tests have been converted
    to "must" forms to that the tests will function properly.
    As part of this cleanup, one test was found that was "should"
    and converted to "must_not" as the original logic seemed
    inconsistent with the test.

commit ed7384546fd2f5b1dbbc61a2847c64227729041a
Author: codec <codec@fnord.cx>
Date:   Mon Jan 23 09:41:03 2012 +0100

    (#10354) added delete command to fix missing userdel flag in useradd provider

commit 2d96b903fc6d2f9f664a38a1523e0dfe0bc6d59d
Author: Eric Sorenson <eric@explosive.net>
Date:   Sun Jan 22 22:51:16 2012 -0800

    Mised a Fixme: Add link to redmine ticket describing ENC/env interaction

commit b120a0dcb32eb8a6cfd3dd92710d163aff85c734
Author: Eric Sorenson <eric@explosive.net>
Date:   Sun Jan 22 22:44:23 2012 -0800

    Adds support for setting environment via regexp files
    
    - regexp_nodes now emits a top level 'environment: production'
      setting for a client, unless a more-specific environment is
      set in the environment/ subdirectory.
    
    - added better documentation text including a caveats section on
      some perhaps-not-obvious implications of multiple matches for parameters
      and environment.
    
    - cleaned up code smell stuff to remove comments at block 'end'
      statements that described what block that was. i need to either get
      a better ide or refactor so it's obvious...

commit 6beb538ef1733cb983cc663f636c35d26dad88ae
Author: Eric Sorenson <eric@explosive.net>
Date:   Sun Jan 22 17:41:41 2012 -0800

    Merged updates to regexp_nodes from our production fork
    
    - Cleaned up examples to reflect reality and be less snarky
    - Renamed example parameter to 'service' so it doesn't overlap
      with reserved word 'environment'
    - Figure out where we live using Pathname.realpath
    - Change logging to use syslog instead of hardcoded log file
    - Handle comments and whitespace in pattern files gracefully
    - Skip over dotfiles in pattern directories

commit 72a2fe0f4e849787d7d9ed5b6353a9c0312f8ae8
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Sat Jan 21 21:20:14 2012 -0500

    (#5445) Create /var/lib/puppet in OS X Package
    
    Previously, the $vardir (/var/lib/puppet) didn't exist on OS X, and our
    package creation script didn't create it. This commit adds that
    directory to the package BOM so that it's ensured as created.

commit 44c4d7135fca92784db9af94c9babe0039ebe2fe
Merge: fa4a1d9 ab2345b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Jan 21 17:27:13 2012 -0800

    Merge branch 'codec-ticket/10907-logoutput-on-failure'

commit ab2345bbee54f3dc91c4c2cfec78e7b957dfb017
Author: codec <codec@fnord.cx>
Date:   Sat Jan 21 22:26:56 2012 +0100

    (#10907) default for exec provider log output is on_failure
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0a4d48fd26bf0aadb533a53fcff9d55ae9883f5f
Merge: 646a574 9345497
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Jan 21 17:14:13 2012 -0800

    Merge pull request #373 from lak/tickets/2.7.x/2056-launchd_supporting_stop_commands
    
    Tickets/2.7.x/2056 launchd supporting stop commands

commit 646a5744d5f3629485f51165de03d9761008d813
Merge: 238088f 17ac2c1
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Jan 21 16:48:41 2012 -0800

    Merge pull request #372 from domcleal/tickets/2.7.x/11826
    
    (#11826) Fix error when no certs were printed to console from ca face

commit 238088fee162e2898a99aab037d0ce60b71f0f96
Merge: 4472b06 5f5e103
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Jan 21 16:35:25 2012 -0800

    Merge pull request #364 from domcleal/tickets/2.7.x/11961
    
    (#11961) Apply and catch a timeout when contacting PyPI over XMLRPC

commit 4472b06fb1c4a1672874f01dffb947ecd56d1f87
Merge: 8804e1d f2c407a
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Jan 21 16:28:29 2012 -0800

    Merge pull request #362 from domcleal/tickets/2.7.x/12051
    
    (#12051) Send exec onlyif/unless command output to debug log

commit fa4a1d9e932db5e28c2654dadbf8402357271150
Merge: 5e98876 6812ee9
Author: Deepak Giridharagopal <deepak@brownman.org>
Date:   Sat Jan 21 16:11:19 2012 -0800

    Merge pull request #382 from masterzen/tickets/master/11044
    
    #11044 - agent should do catalog run in a child process

commit 8804e1dc0c06741f1fb50a9b39def48501d56ae8
Merge: a02d4c3 9e6a01f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Jan 21 15:54:01 2012 -0800

    Merge pull request #361 from stschulte/ticket/2.7.x/12070
    
    #12070 Fix crontab value munging

commit a02d4c3d7b353a1938944f49265fe070ee4e2e7b
Merge: f9a6337 0f2bb27
Author: Deepak Giridharagopal <deepak@brownman.org>
Date:   Sat Jan 21 15:40:44 2012 -0800

    Merge pull request #383 from daniel-pittman/bug/2.7.x/6710-fixed-1.9.2-test-failures
    
    Bug/2.7.x/6710 fixed 1.9.2 test failures

commit 0f2bb2769781cfb71101799bc90c0a7c733e3af0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Jan 21 15:36:26 2012 -0800

    (#6710) Fix Ruby 1.9.2 failures due to Array#to_s changes.
    
    The behaviour of Array#to_s is different between 1.8.7 and 1.9.2, and this
    code actually depended on the older behaviour.
    
    Since this is part of a stable series, the smallest set of changes possible to
    make things work have been applied - and a ticket filed to do the deep
    analysis of data flow required to fix this properly in a release where we have
    more stomach for risk.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6812ee9fc51f327f3a74fc6a6c0eefd9758d0134
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Dec 17 17:21:24 2011 +0100

    Run the agent in a child process during catalog application
    
    The idea is that during catalog application the puppet heap
    might grow quite large. And unfortunately in MRI the heap never
    decreases, so you're stuck with a large process doing nothing and
    not using the memory it allocated until the next run.
    
    The solution is to fork and do the puppet run in a child process.
    At the end of the catalog run, the process exits freeing memory to
    the OS until the next run.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f5d8f30679ad0a619033edaf66469691f3147adb
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Dec 17 16:54:37 2011 +0100

    Refactor: configurer now returns report.exit_status
    
    None of the configurer client was directly using the returned
    report, but only its exit_status.
    Since now the configurer might run in a child process, we can't return
    the report, only a status code.
    This commit changes the configurer and call site so that only the report
    exit code is returned.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 0f19cbeb440cbff1a9353bf73d1d4026a2bf52e4
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jan 21 23:25:53 2012 +0100

    (#11990) Puppetdoc rdoc should also parse README.rdoc
    
    And even prefer README.rdoc over a sole README.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit a6255d2cec8dc151a79d36c2ee43689e9c6a8172
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sat Jan 21 14:10:34 2012 -0800

    (6404) Failing when no file is specified to backup
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 5e98876f5c91e7019ef9ea0842e30bdcfe8098b2
Merge: 71ef29d fb12c29
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Jan 21 13:56:29 2012 -0800

    Merge pull request #370 from fpletz/fix-9160
    
    (#9160) Change logging facility to debug for not supported provider features

commit f9a6337c23319bb2f30b90866034358bc6118aba
Merge: a508347 d60a88e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Jan 21 13:51:33 2012 -0800

    Merge pull request #360 from joshcooper/ticket/2.7.x/11930-forward-slashes
    
    (#11930) Fix more places where Puppet::Util.absolute_path? wasn't being used

commit a508347f7deb5861f723806bc1424cafd4c3df2a
Merge: 691267c ad83422
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Jan 21 13:43:02 2012 -0800

    Merge pull request #371 from nanliu/ticket/2.7.x/5353
    
    Ticket/2.7.x/5353

commit ea115a0ee0dbd5ff64dde0a9de16cd5139cdf6a3
Author: Carla Souza <crlnh.a@gmail.com>
Date:   Sat Jan 21 18:35:17 2012 -0300

    Bug #7140 fix

commit 691267c934b00ea27884ccc6097f5e0fed4fec13
Merge: 470a664 132dca4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Jan 21 13:33:13 2012 -0800

    Merge pull request #271 from nicklewis/ticket/2.7.x/6710
    
    Ticket/2.7.x/6710 Support relationships between resources specified by more constructs

commit 93454974d10e4d1bba545faadceaf2baf7bc4880
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sat Jan 21 13:16:56 2012 -0800

    (2056) Launchd now supports overriding stop/start
    
    I just added some control structures to the methods to
    call out to these methods.
    
    We still don't support overriding 'restart' and 'status'.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 11dc062f80ead339523ef101ef2ecbb9a85f779d
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sat Jan 21 13:08:55 2012 -0800

    Removing resource stubbing from launchd tests
    
    This commit adds real resources everywhere in the
    launchd tests, to make further tests easier.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 17ac2c17a963fa89bbdac52ec5b198bef0a94cde
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Jan 21 20:31:23 2012 +0000

    (#11826) Fix error when no certs were printed to console from ca face
    
    When no hosts needed to be printed from the 'ca' face to console, an error was
    hit when trying to add an integer to nil.

commit ad834226dd9683385a5d4303dad669be53656300
Author: Nan Liu <nan@puppetlabs.com>
Date:   Sat Jan 21 12:10:13 2012 -0800

    (#5353) Change agent default to graph=true
    
    On Puppet Enterprise the default setting it graph==true for puppet agent
    and the patch updates puppet so it reflects this default.

commit fb12c29274e8eeccafbf91d0bac10c0624fbc6d5
Author: Franz Pletz <fpletz@fnordicwalking.de>
Date:   Sat Jan 21 20:49:28 2012 +0100

    (#9160) Change logging facility to debug for not supported provider features

commit 71ef29ddcfe1317f12aaf4ba41792f2b00375929
Merge: ed73922 8f4d0eb
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Jan 21 11:16:15 2012 -0800

    Merge pull request #367 from fpletz/fix-9443
    
    (#9443) Allow digits in face names

commit 8f4d0eb85cfd8156da19a8abe33e87d8e9c45943
Author: Franz Pletz <fpletz@fnordicwalking.de>
Date:   Sat Jan 21 19:44:02 2012 +0100

    (#9443) Allow digits in face names
    
    This patch allows digits to be used in face names. The first character,
    however, is not allowed to be a digit. This fixes #9443.

commit 5f5e103d4aa88a2e9f2b95328155db82ff780779
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Jan 21 18:04:48 2012 +0000

    (#11961) Apply and catch a timeout when contacting PyPI over XMLRPC
    
    Apply a 10 second timeout to XMLRPC calls to PyPI and catch them, reporting an
    error gracefully.

commit 21692952df2ceabb21155964c715b5566ab4f812
Author: Sean Millichamp <sean@bruenor.org>
Date:   Sat Jan 21 11:25:02 2012 -0500

    (#10328) Convert class variable to instance variable
    
    Per jhelwig's suggestion, converting the weekday class variable
    to an instance variable. There is no need for it to be a class
    variable.

commit f2c407a406f2abb2e2905a4e88294ff0b99f4b35
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Jan 21 15:57:56 2012 +0000

    (#12051) Send exec onlyif/unless command output to debug log
    
    When an onlyif or unless exec clause is run, the output is now always sent to
    the debug log irrespective of the loglevel output, which controls the logging
    level of the command itself.

commit 9e6a01fb9c5ff8f4f46271a3af061ab0a066cf9d
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Jan 21 15:12:08 2012 +0100

    (#12070) Fix crontab value munging
    
    If the specified value does include characters that have a special
    meaning inside a regex puppet raised errors like
    
        target of repeat operator is not specified: /*\/a/i
    
    Change if clause to do a real substring tests instead of using a regex.
    
    All spec tests do now pass

commit b1eda3608c572f59874caf40ec17ede727553c68
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Jan 21 14:55:21 2012 +0100

    maint: Add expected error messages to cron spec
    
    Two tests will now fail because the error message does not match the
    expected behaviour.
    
      1) Puppet::Type::Cron when validating attribute weekday should not
      support invalid steps
    
      2) Puppet::Type::Cron when validating attribute month should not
      support invalid steps

commit c86c97d6a403c46ec7c4dfd367de82b639fbf706
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Jan 21 14:32:52 2012 +0100

    maint: Use a real provider class in cron spec
    
    Instead of using a mock object it is simpler to just create a real
    provider class.  We now also have a @provider_class.new method and
    there is no need for a fake provider instance.

commit 01e7200872b1ba4431a14c15f7d064172ee01a9f
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Jan 21 14:30:05 2012 +0100

    maint: Remove unused vars in cron spec
    
    rspec already gives us a described_class method so why not using
    it.

commit 38f386fa389383fb06ff4dfcf16b3fe6f34c9627
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Jan 21 14:25:28 2012 +0100

    maint: Fix indention in cron spec

commit d60a88ecd458702c9ac8ade5086025aefd589b28
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jan 20 17:33:02 2012 -0800

    (#11930) Add validation of Windows paths in the generate function
    
    The generate function did not handle Windows style paths when
    validating that it was fully qualified or that it only contained
    alphanumerics, file separators, or dashes, as Windows paths can also
    contain '\', as well as ':', but only when it is part of the drive
    specifier.

commit aa4896586a14fa5a97ae52c6a3ab28eac3cc3efb
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jan 20 17:30:36 2012 -0800

    (#11930) Use Puppet::Util.absolute_path? to validate paths
    
    Previously, there were still some places where we were using a
    POSIX-specific regex to validate fully-qualified paths, which fails
    with Windows paths.
    
    This commit just changes them to use `Puppet::Util.absolute_path?`,
    which handles both POSIX and Windows paths, based on the platform
    we're currently running on.

commit 1ffbeb1b8ff3478f9966e4df582c76ae87b9d4c2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 17 09:27:38 2012 -0800

    (#11930) Use FileUtils.mkdir_p to recursively create directories
    
    Previously, `Puppet::Util::Log::DestFile` was using `Puppet.recmkdir`
    to recursively create parent directories. However, the latter method
    assumed POSIX-style paths and did not work on Windows.
    
    Also, if the `Puppet.recmkdir` method failed to create any of the
    parent directories, it would rescue the exception and return
    false. However, `Puppet::Util::Log::DestFile` did not check the return
    code, and would fail later when trying to create/open the file.
    
    This commit removes the `Puppet.recmkdir` method and changes
    `Puppet::Util::Log::DestFile` to use `FileUtils.mkdir_p` instead,
    which works with both POSIX and Windows paths. This commit also
    preserves the behavior of creating each parent directory with mode
    `0755` (but not changing the mode for existing parents).
    
    If one of the parent directories cannot be created, e.g. EACCES, the
    `FileUtils.mkdir_p` method will raise an exception, similar to how
    `File.open` would raise previously if one of its parent directories
    could not be created.

commit eee351103bd26e5b6b720e85c68f4d17e923b946
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 17 09:07:19 2012 -0800

    (Maint) Remove dead code
    
    Removing dead code.

commit ed73922ed27fc2a87df344a7fc66cd4d2059d82c
Merge: 4c52c39 1a404dc
Author: Dominic  Maraglia <dmaraglia@gmail.com>
Date:   Fri Jan 20 18:29:59 2012 -0800

    Merge pull request #359 from djm68/pending_test_ticket_11727
    
    (#11727)  Move test for 11727 to pending

commit 1a404dc6bf97a75b03276ead31157db59e974765
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Fri Jan 20 18:27:17 2012 -0800

    (#11727)  Move test for 11727 to pending
    
    Test for 11727 rquires allocation of a pty, this in-turn
    requires additional harness code that is not trivial.
    Dpittman and I will fox the pty issue next week, until then
    this test remains in pending.

commit 4c52c3939ec09134ef48f5018e52ead986d0f8ae
Merge: a70a32b 8099d7f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Jan 20 16:21:04 2012 -0800

    Merge pull request #358 from pcarlisle/revert-11858
    
    Revert "(#11858) Don't load plugins during sync."

commit 8099d7f5dc69cf65f010eec206f77cc62e336ee6
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jan 20 16:18:59 2012 -0800

    Revert "(#11858) Don't load plugins during sync."
    
    This reverts commit ddb1b3fb219727880161d3844f1981ea8b8d98c8. It requires the
    autoloader to be extended to reload changed plugins.

commit a70a32b67a183f109cd890f5d03a7eca6c0b35cc
Merge: 0fd7c48 ddb1b3f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Jan 20 16:06:41 2012 -0800

    Merge pull request #357 from pcarlisle/ticket/master/11858-consistent-plugin-paths
    
    (#11858) Don't load plugins during sync.

commit 0fd7c48c204166d58a0ab132060e0d0779163fb7
Merge: 8c58f23 283fc54
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Jan 20 15:55:52 2012 -0800

    Merge pull request #355 from pcarlisle/ticket/master/12060-remove-factsync
    
    (#12060) Remove factsync

commit b16bf84f3be962a68d98730df0ffc182cbf170f3
Merge: e1828ba 0d8a22a
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Jan 20 15:48:13 2012 -0800

    Merge pull request #356 from joshcooper/ticket/2.7rc/11767-remove-ssldir-cleaning
    
    (#11767) No longer necessary to delete ssl directory in test cases

commit ddb1b3fb219727880161d3844f1981ea8b8d98c8
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jan 20 15:31:44 2012 -0800

    (#11858) Don't load plugins during sync.
    
    Previous, any ruby file downloaded during pluginsync would be loaded. This
    causes inconsistent behavior, because this only happened on runs when the
    files needed to be updated (e.g. they weren't present on the agent before).
    Removing this means only files that are autoloaded by some other part of the
    code get loaded, which was the only case that worked consistently.

commit 0d8a22a1f05c159746f19b6f8d24d975e9d64c92
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jan 20 15:22:04 2012 -0800

    (#11767) No longer necessary to delete ssl directory in each test
    
    Previously, each TestCase that used `with_master_running_on` had to
    remember to delete the ssl directories from every host. Otherwise, if
    either the master or any of its agents used a certificate from a
    previous run, the test would fail.
    
    Also, previously, TestCases were not consistent in how they referenced
    the ssl directory: /etc/puppet/ssl, #{host['puppetpath']}/ssl,
    on the configuration file being used.
    
    Deletion of the ssl directories now happens within the
    `with_master_running_on method` itself, so that individual TestCases
    don't need to.

commit 283fc5404d489c9481cd68e47d2ec6ee9f1f4ff7
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Fri Jan 20 12:01:26 2012 -0800

    (#12060) Remove factsync
    
    Fact syncing is now done through pluginsync. The separate factsync option has
    been deprecated since 0.25 (ticket #2277).

commit 470a6646b4faa34874ab853355730dc0471b1246
Merge: 69f957e 64446ac
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Jan 20 13:38:16 2012 -0800

    Merge pull request #354 from djm68/fix_test_3360_allow_duplicate_csr_with_option
    
    Fix test 3360 allow duplicate csr with option

commit 64446acc1852c60235b1d0b559781ac346878583
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Fri Jan 20 13:31:58 2012 -0800

    (maint) Fix test 3360 to use per host cfg data
    
    Test harness formerly used a global config hash to store config data;
    this breaks with the intoduction on non-posix hosts (windows).  Now
    using a per host config hash.  Updating this test to use the new
    style.  This will need to be merged into 2.7rc as well; already
    applied to Master.

commit 8c58f2365cf0656517880760c814ea91a54dcff4
Merge: 180ebc9 7c2fca2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Jan 20 13:29:50 2012 -0800

    Merge pull request #353 from daniel-pittman/bug/master/11727-allocate-pty-in-the-acceptance-test
    
    (#11727) Allocate a PTY when running the acceptance test.

commit 7c2fca220d5330d6604d1dec8d969914bb389f6d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 20 13:08:25 2012 -0800

    (#11727) Allocate a PTY when running the acceptance test.
    
    When submitted this acceptance test didn't actually pass - which, ultimately,
    turns out to be that the puppet command was run without a TTY attached by
    default in the acceptance test harness.
    
    Once https://github.com/puppetlabs/puppet-acceptance/pull/115 is merged, which
    adds the feature to the core of the suite to support PTY allocation through
    SSH, this turns that feature on, and the test can finally pass.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 180ebc964d824f5622bbb532b47d7994f43675c9
Merge: 9906852 85a7f4f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jan 19 19:38:35 2012 -0800

    Merge branch 'final_fix_11727_support_stdin_parsing_in_puppet_parser_validate'
    
    * final_fix_11727_support_stdin_parsing_in_puppet_parser_validate:
      (#11727) Another fix to 11727

commit 85a7f4f6f9874c75e75ec1cc207aab47005db522
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Thu Jan 19 18:02:09 2012 -0800

    (#11727) Another fix to 11727
    
    Incorrecty string quoting resulted in remote commands running
    together: "puppetparservalidate"

commit 9906852c67c298f9a27ffeac492cd9073dc6d109
Merge: fbe8f28 bf267c0
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Thu Jan 19 17:41:31 2012 -0800

    Merge pull request #350 from djm68/fix_11727_support_stdin_parsing_in_puppet_parser_validate
    
    (#11727) Fix support stdin test

commit bf267c0de7fb79004b3e9677eb6dcbe482c9dfe1
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Thu Jan 19 17:35:46 2012 -0800

    (#11727) Fix support stdin test
    
    Stdin test had a few typos that required fixing.
    ticket_3360 uses the only global config hash -- changed this
    to support the per host based configuration data.

commit eb800e40ee11145aa77191c3c67b38f6515f6682
Author: Nan Liu <nan@puppetlabs.com>
Date:   Thu Jan 19 16:17:25 2012 -0800

    (#12037) hiera-puppet should support hash values.
    
    Puppet support hashes, so hiera-puppet backend should also support hash
    values.

commit fbe8f2846dfb03717024c10befce078691a362ab
Merge: aee5123 c78b07d
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Jan 19 14:02:42 2012 -0800

    Merge pull request #329 from daniel-pittman/feature/2.7.x/11727-support-stdin-parsing-in-puppet-parser-validate
    
    feature/2.7.x/11727 support stdin parsing in puppet parser validate

commit aee5123e203c7d96f2b4584d6a7743a7c1ca8759
Merge: 1449706 e59134f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Jan 18 14:53:01 2012 -0800

    Merge pull request #345 from wu-lee/master
    
    puppet apply manual - correct inconsistent example of using config params as options

commit 69f957e961b92973dd51949f8e25cfa26c214892
Merge: e1828ba e78dc4c
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Jan 18 14:34:37 2012 -0800

    Merge branch '2.7.x' of github.com:puppetlabs/puppet into 2.7.x

commit 1449706809215d6a8e2c067a05341f95fca61bc9
Merge: c17cc7a 2c57541
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Jan 18 14:33:21 2012 -0800

    Merge pull request #347 from daniel-pittman/bug/master/11888-better-provider-confines-for-rhel-family
    
    Fixed #11888 - Changed providers to use osfamily fact.

commit 2c575418ba17ed459ac4e61c23d6eeb84fb4d528
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 11 08:14:19 2012 -0800

    Fixed #11888 - Changed providers to use osfamily fact.
    
    Previously the up2date, redhat and systemd providers used the
    operatingsystem fact to select defaults and constraints. This often
    meant that new operating systems using the same providers had to be
    manually added to the list of supported operating systems
    
    This commit replaces the use of operatingsystem with osfamily meaning
    addition of new operating systems is now centralised in one place in
    Facter rather than requiring multiple updates.
    
    Tests supporting this have been added to prevent regressions.

commit e78dc4cfa7c3eeaba9c1c5115c51c8738ac6d46b
Merge: 9fc0a83 5d1b7fe
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 18 14:22:50 2012 -0800

    Merge branch 'bug/2.7.x/11057-debug-output-enhancement' into 2.7.x
    
    * bug/2.7.x/11057-debug-output-enhancement:
      (#11057) Add spec, should notify why a run is skipped
      (#11057) Note why a scheduled run was skipped in Puppet.

commit 5d1b7fe824d676c0bfc9ff35fcb42f6b3522a0d5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 18 13:50:13 2012 -0800

    (#11057) Add spec, should notify why a run is skipped
    
    Without this patch, there isn't any spec test coverage for this
    particular bug and the behavior change introduced in this change set.
    
    This patch fixes the problem by adding a spec test covering our
    expectation that Puppet informs the user why a run is skipped.
    
    The test makes the fundamental assumption this information is contained
    within Puppet::Application.run_status which we're mocking.  The test
    validates the information contained in
    Puppet::Application.run_status is in fact shown to the user.

commit 9e7ce1640a2e935385053598b4d8bab38f10c08d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Nov 28 12:56:00 2011 -0800

    (#11057) Note why a scheduled run was skipped in Puppet.
    
    This adds the reason for skipping a run to the message about doing so, which
    makes it easier to understand why it happened post-hoc.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e1828ba69b50237e70b6fa2f8c424f68ce3bb4fd
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Jan 18 14:15:38 2012 -0800

    Updated CHANGELOG for 2.7.10rc1

commit c17cc7a78a44140017027a2a004c2afd470381fa
Merge: 9283cd6 9fc0a83
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jan 18 14:09:33 2012 -0800

    Merge branch '2.7.x'

commit 9fc0a83de109bad716e5a600ebdf37345f4c05b1
Merge: d57c573 765036c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jan 18 14:09:23 2012 -0800

    Merge branch '2.6.x' into 2.7.x

commit 765036c707a29077107674ad5c6277df6e637b28
Merge: 2a99004 a758066
Author: lifton <lifton@puppetlabs.com>
Date:   Wed Jan 18 14:04:57 2012 -0800

    Merge pull request #342 from daniel-pittman/refactor/2.6.x/11996-spec-failures-after-ruby-187-p357
    
    (#11996) Fix test failures due to hash processing order changes.

commit d57c5730a94838a82792decf325378c237ba24f3
Merge: 71062fb 8da947f
Author: lifton <lifton@puppetlabs.com>
Date:   Wed Jan 18 14:01:27 2012 -0800

    Merge pull request #344 from daniel-pittman/refactor/2.7.x/11996-spec-failures-after-ruby-187-p357
    
    Refactor/2.7.x/11996 spec failures after ruby 187 p357

commit 8da947fd757dbc363eae3a106fda363ed325720b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jan 17 21:46:44 2012 -0800

    (#11996) Fix file content test after hash changes.
    
    CVE-2011-4815 changed the order that hashes returned their content; that, in
    turn, changed the order that directory entries were returned to something much
    more likely to be random.
    
    This broke the test that assumed the order of '.' and 'file.rb' would be
    consistent; this fixes that by finding the right entry in the result instead
    of assuming it is always in the same slot.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 884fe754e59902c1a14ffd1c0d6ed4897cb1c941
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jan 17 21:35:53 2012 -0800

    (#11996) Fix file server recursion test after hash changes.
    
    CVE-2011-4815 changed the order of hash processing, and one of our file server
    recursion tests is broken by it.  Specifically, it terminates early because
    the order of sources is unpredictable; fixed by making that predictable.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3fb0938827b50f70d83636a5a592952a76fe0956
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jan 17 21:21:06 2012 -0800

    (#11996) Fix graph cycle reporting order after hash changes.
    
    CVE-2011-4815 changed the order of hash processing, and our simple graph class
    is heavily based on them.  This revealed that the content of cycle reporting
    is dependent on the processing order of a hash - and, so, is no longer
    consistent.
    
    This updates the code to spend the extra cycle sorting inside and outside the
    cycle report - which, since we are in a failure state anyway, seems like a
    reasonable use of CPU cycles in return for consistent results.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3a57b0736690bc6a83b63b292a46f4f1e69c7618
Merge: cb82327 a758066
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jan 18 13:49:36 2012 -0800

    Merge branch 'refactor/2.6.x/11996-spec-failures-after-ruby-187-p357' into refactor/2.7.x/11996-spec-failures-after-ruby-187-p357
    
    Conflicts:
    	spec/unit/util/zaml_spec.rb
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a758066dd37495bb359364891b918b9d6afa649b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jan 17 20:45:41 2012 -0800

    (#11996) Fix test failures due to hash processing order changes.
    
    As part of fixing CVE-2011-4815, Ruby has made the order that hash tables are
    keyed unpredictable - where they were formerly fixed in stone.  This, in turn,
    means that all the tests that depended on that order started to fail randomly
    on the most recent patch release of Ruby 1.8.7, and will fail in recent Ruby
    1.9.* releases.
    
    This makes those tests insensitive to ordering of the content, at the cost of
    being a little less strict in places.  This seems less harmful, overall, than
    alternative approaches like sorting the hash in the code, or enumerating all
    possible combinations of order and testing on all of them.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 71062fb5b26e42cb91d1a79f7384023d45497974
Merge: b25c974 d6d6e60
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Jan 18 12:30:53 2012 -0800

    Merge pull request #346 from mmrobins/ticket/2.7.x/11600_remove_module_face
    
    (#11600) remove module face changes, temporarily
    
    These changes were not complete, and would result in a non-functional PMT in 2.7.10.  Given today is RC day, we are backing this out.

commit d6d6e60fc04aa2baa678b5b36c00c5878696018f
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Jan 18 11:37:27 2012 -0800

    (#11600) Remove module face
    
    This commit removes the face related code and tests since it was
    determined they didn't meet design specifications well enough for the
    upcoming release. This leaves the module_tool related code in, but it's
    not accessible through any supported interface. This will make it easy
    for us to get this removed code back in after the release and continue
    development for the next release.

commit b25c97413ff991c7856ab3a1a448882d20463818
Merge: c8f5cd6 7fdd8a1
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Jan 18 10:34:08 2012 -0800

    Merge pull request #340 from jeffmccune/ticket/2.7.x/11888_revert_for_27
    
    (#11888) revert confine changes for the 2.7 series
    
    These would cause a compatibility break - the minimum version of facter would be increased, which is not something we support inside a stable series.

commit c8f5cd6d1a43f07cabeba29940bb487c1c273953
Merge: a0f865b 1847228
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 18 10:01:28 2012 -0800

    Merge branch 'bug/2.7.x/11499-better-ip-address-validation-for-host-type' into 2.7.x
    
    * bug/2.7.x/11499-better-ip-address-validation-for-host-type:
      (#11499) Better validation for IPv4 and IPv6 address in host type.
    
    Closes: GH-296
    
    I cleaned up trailing whitespace by amending the original commit.

commit 18472282b6656fb9e08b26df73af41a259c679ec
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Dec 30 14:51:51 2011 -0800

    (#11499) Better validation for IPv4 and IPv6 address in host type.
    
    The previous code was fairly lax in validation, and would allow a bunch of
    invalid addresses through - as well as rejecting some legal, but uncommon,
    IPv6 address types.
    
    This adds substantial testing, especially around IPv6 addressing, and replaces
    the older validation with new, fancy stuff that works for all the cases.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    
    Trailing whitespace fixup by Jeff McCune <jeff@puppetlabs.com>

commit e59134f81d8e094339f0f0528c8dc84c504f5a46
Author: Nick Stokoe <github.wu-lee@noodlefactory.co.uk>
Date:   Wed Jan 18 12:07:04 2012 +0000

    puppet apply manual - correct inconsistent example of using config params as options

commit a0f865b69ee4345dada11ce2c9da6b21dabdcb7d
Merge: cb82327 a406a2e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 17 21:11:08 2012 -0800

    Merge branch 'ticket/2.7.x/11802-fix_path_separator_windows_test_failures' of https://github.com/mmrobins/puppet into 2.7.x
    
    * 'ticket/2.7.x/11802-fix_path_separator_windows_test_failures' of https://github.com/mmrobins/puppet:
      (#11802) Fix module list specs on Windows

commit a406a2eb0825bc5be84b31a1c103d2f7bbe3f227
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jan 17 20:48:40 2012 -0800

    (#11802) Fix module list specs on Windows
    
    The module path separator in the specs was hard coded to ':' and caused
    tests to fail on windows.

commit cb823279bd7c6e277327e82e687bf123cf79c485
Merge: 96e7983 13238af
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 17 20:13:48 2012 -0800

    Merge branch 'bug/2.7.x/11803-broken-test-for-module-uninstall' into 2.7.x
    
    * bug/2.7.x/11803-broken-test-for-module-uninstall:
      (#11803) Fix broken tests for uninstall action on module face

commit 13238af4240f0c79ac5615e99974d0ad8cba0760
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jan 17 20:03:40 2012 -0800

    (#11803) Fix broken tests for uninstall action on module face
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7fdd8a154e401134e63c049778394d50f891b0b3
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 17 19:34:43 2012 -0800

    (#11888) Revert 483a1d9 for 2.7.x only
    
    This reverts commit 483a1d93a5e5c78f8f41f905d7aae896081c98f1, reversing
    changes made to c6667c50d3b49195685311575b46de1978c4dfd9.
    
    This revert is necessary because the change set includes API breaking
    changes in a patch version release of the product.
    
    The API breaking changes are that Puppet 2.7.x > 2.7.9 would require a
    different version of Facter than 2.7.x <= 2.7.9 if this change set were
    to be released.
    
    This commit should be reverted after 2.7.x merges up into master.  That
    is to say, the revert itself should be reverted.

commit 9283cd6ed47301d94c10b2fd654f41281e33ce4a
Merge: 04bc1f9 94808b8
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 17 19:35:48 2012 -0800

    Merge pull request #298 from zsprackett/gitignore
    
    Add gitignore to default puppet module

commit 04bc1f9d11f91b8eef48aee04fa26c744023604d
Merge: 9381cc5 0ca15fd
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 17 19:24:23 2012 -0800

    Merge branch 'feature/master/merge-2.7.x-branch'
    
    * feature/master/merge-2.7.x-branch: (21 commits)
      (#5246) Fix spec test expectations in 2.7.x branch
      (#11929) Always serve files in binary mode
      (#2927) Support symbolic file modes.
      Finer-grained protocol for property `insync?`.
      Whitespace damage cleanup on property.rb
      (#8341) Only load facts once per puppet run
      (#3419) Fix OS X Ruby supplementary group handling
      (#11888) Switch up2date,systemd,redhat providers to osfamily fact
      (#5246) Puppetd does not remove it's pidfile when it exits
      (#4855) Fix group resource in OS X
      Build a Rake task for building Apple Packages
      (#2773) Use launchctl load -w in launchd provider
      (#11714) Use `%~dp0` to resolve bat file's install directory
      Clean up launchd spec tests
      (#11714) Add envpuppet batch file to run Puppet from source on Windows
      (#11847) Don't hard code ruby install paths in Windows batch files
      (#11641) Properly track blockers when generating additional resources
      (#10807) Use SMF's svcadm -s option to wait for errors
      (#8341) Remove duplicate loading of facter files.
      Fix tests for #1886 with ActiveRecord 3.x
      ...
    
    Closes: GH-335
    
    Reviewed-by: Jeff McCune

commit 96e79835e3724edf582b1081b01df2f5a6798303
Merge: 75d7cad 97fffa8
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 17 19:06:24 2012 -0800

    Merge pull request #332 from kelseyhightower/ticket/2.7.x/11803_PMT_should_have_an_uninstall_command
    
    (#11803) pmt should have an uninstall command

commit 97fffa8a6b7a4c6330c97cc7032e86990a18354e
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Wed Jan 11 10:13:29 2012 -0500

    (#11803) Add uninstall action for the module face
    
    Without this patch, the module face does not have an action for
    uninstalling Puppet modules.
    
    This patch adds an uninstall action to the module face, with initial
    support for uninstalling Puppet modules from the default module paths or
    specific directories.
    
    This patch also includes the related spec tests.
    
    Example Usage:
    Running the following commands will uninstall a module from all
    module paths or a specific directory
    
        $ puppet module uninstall apache
        Removed /etc/puppet/modules/apache
    
        $ puppet module uninstall --target-directory /usr/share/puppet/modules apache
        Removed /usr/share/puppet/modules/apache
    
    Running the Tests:
    The uninstall spec tests can be run with the following commands:
    
        $ rspec spec/unit/face/module/uninstall_spec.rb
        $ rspec spec/unit/module_tool/uninstaller_spec.rb

commit 75d7cad19be95760bc08e2ce4a67208aec5c6af7
Merge: 8b3e440 032043e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 17 17:25:43 2012 -0800

    Merge pull request #338 from pcarlisle/ticket/2.7.x/freebsd-user-passwords
    
    (#11046) improve freebsd user and group providers

commit 8b3e440d5e9fcd23ace0789f33327d1c6a68b333
Merge: 89013a4 cd56926
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 17 17:11:43 2012 -0800

    Merge pull request #333 from mmrobins/ticket/2.7.x/11802-puppet_module_list
    
    Ticket/2.7.x/11802 puppet module list

commit 89013a4517fe0441aeeddd684489fd3467531d80
Merge: 9348fe2 2d4af0e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 17 14:00:27 2012 -0800

    Merge pull request #337 from kelseyhightower/ticket/2.7.x/11958_pip_provider_better_error_messages
    
    (#11958) pip provider better error messages

commit 2d4af0e649d4731b42ab446ec30056c9f7913782
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Jan 17 10:07:30 2012 -0500

    (#11958) Improve error msg for missing pip command
    
    Without this patch the pip package provider does not produce a user
    friendly error message when the pip command is not available. The
    current error message looks like this:
    
        err: /Stage[main]/Dummy/Package[virtualenv]/ensure: change from
        absent to present failed: Could not set 'present on ensure:
        undefined method `pip' for
        #<Puppet::Type::Package::ProviderPip:0xb6cf6cd0> at
        /etc/puppet/modules/dummy/manifests/init.pp:5
    
    This patch improves the error message by passing a string argument, 'Could not locate
    the pip command.', when raising the `NoMethodError`. The new error
    message looks like this:
    
        err: /Stage[main]/Dummy/Package[virtualenv]/ensure: change from
        absent to present failed: Could not set 'present on ensure: Could
        not locate the pip command. at
        /etc/puppet/modules/dummy/manifests/init.pp:5
    
    This patch also includes updated spec tests validating this change. No
    other behavior changes are being introduced.

commit 032043e325c750e70fa33d7aea09e8e076135e96
Author: Tim Bishop <tim@bishnet.net>
Date:   Sat Nov 19 02:18:22 2011 +0000

    (#11046) Add support for user expiry in pw user provider
    
    Add support for setting an expiry date for a user in the pw user
    provider. FreeBSD uses the format DD-MM-YYYY rather than Puppet's
    YYYY-MM-DD. Tests added to confirm the value is correctly swapped
    around.
    
    Also added custom accessor method to take the unix timestamp given
    by the operating system to a Puppet-style YYYY-MM-DD. This stops
    Puppet from repeatedly trying to set the expiry date if it's already
    correct.

commit 9b8829d2b6d4e23a4959935c796f4d7dcab96001
Author: Tim Bishop <tim@bishnet.net>
Date:   Sat Nov 19 01:11:44 2011 +0000

    (#11046) Improve pw group provider on FreeBSD
    
    Make the pw group provider on FreeBSD support managing group members.
    Also readd the allowdupe feature since in testing on FreeBSD 7, 8
    and 9 the -o flag to pw works as documented.
    
    Add tests for the provider.
    
    Reviewed-by: Patrick Carlisle <patrick@puppetlabs.com>

commit fb111ef79829e35318b3fe1c6b769359e265396e
Author: Tim Bishop <tim@bishnet.net>
Date:   Sat Nov 19 00:26:54 2011 +0000

    (#10962) Make sure managehome is respected on FreeBSD
    
    When modifying the home directory of a user and managehome is set
    the -m flag should be used with pw. This ensures that the new home
    directory is created if it doesn't exist.
    
    Also add test to verify this behaviour.

commit 884381f7d6bd7ed3fb3ad9028932f45861aff99a
Author: Tim Bishop <tim@bishnet.net>
Date:   Fri Nov 18 00:45:53 2011 +0000

    (#11318) Add password management on FreeBSD
    
    This adds the manages_passwords feature to the pw user provider. It is based
    on the patch by Andrew Hust that was integrated into FreeBSD puppet port. It
    adds tests covering the create, delete and modify processes of the provider.
    
    This integrates a fix for #7500 that was introduced by the original patch.
    The existing code takes the first character of each property and uses it as a
    flag. However, with pw, the -p flag is for setting the password expiration.
    The result is that the password isn't set at create time and that the password
    is set to expire. The next run of puppet correctly sets the password but the
    expiry is still set. The new code avoids using -p for passwords, and also sets
    the password correctly when an account is created.
    
    Reviewed-by: Patrick Carlisle <patrick@puppetlabs.com>

commit c78b07d1a0226b5b66c433bc88d1873f148b5576
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jan 12 14:17:31 2012 -0800

    (#11727) Support STDIN for `puppet parser validate`
    
    This adds an acceptance test for the STDIN validation feature of the `puppet
    parser validate` action.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9348fe206289a871b08a831220279d51ddbf9964
Merge: b79be3b acd2f91
Author: lifton <lifton@puppetlabs.com>
Date:   Sun Jan 15 18:40:33 2012 -0800

    Merge pull request #336 from joshcooper/maint/2.7.x/cert-ttl-build-errors
    
    (maint) Fix time-dependent certificate factory spec tests

commit acd2f917cb050066a71c78a4f839d2f1bbbe8388
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Sun Jan 15 16:04:49 2012 -0800

    (Maint) Fix time-dependent certificate factory test failures
    
    Some of the certificate factory spec tests were trying to ensure that
    the certificate factory's ttl was being applied when signing a
    certificate's `not_after` time. However, the tests did not take into
    account the amount of time it takes to sign the certificate, which can
    be non-negligible.
    
    As a result, the absolute difference between `not_after` and `Time.now +
    ttl` was somtimes greater than or equal to 1 second, causing sporadic
    test failures.
    
    This commit changes the tests to be less time dependent by ensuring the
    difference is within 30 seconds (for both `not_before` and `not_after)

commit 0ca15fd4a80a8519b98a50ce6a71836812ac76ca
Merge: 9381cc5 b79be3b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 13 15:52:10 2012 -0800

    Merge branch '2.7.x' into feature/master/merge-2.7.x-branch

commit b79be3bc80a4e6a0d110df70e454066b1aeaf9df
Merge: f4f4158 69dfb34
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Jan 13 15:50:53 2012 -0800

    Merge pull request #334 from daniel-pittman/feature/2.7.x/merge-2.6.x-branch
    
    2.7.x - merge 2.6.x branch up

commit 69dfb34ede9d4c21a230b937ed3f1f7f062190ae
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 13 13:42:12 2012 -0800

    (#5246) Fix spec test expectations in 2.7.x branch
    
    The 2.6 spec tests didn't catch the SystemExit exception thrown by the call to
    Kernel#exit in the one-time agent, while the 2.7 branch demands that.  This
    adds the extra expectation to ensure that the specs pass.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3aed4960c336a2662bcfe37a25d480cddd268c69
Merge: f4f4158 2a99004
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 13 13:35:02 2012 -0800

    Merge branch '2.6.x' into 2.7.x

commit f4f4158f673b911fb95d5dbb1a6f0eff8387bdbc
Merge: 2ac94f9 e1f2f37
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Jan 13 12:26:03 2012 -0800

    Merge pull request #331 from joshcooper/ticket/2.7.x/11929-serve-files-in-binary-mode
    
    (#11929) serve files in binary mode

commit cd56926d4c36448668fd22ccefa400bc8c3d541a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jan 9 16:09:18 2012 -0800

    (#11802) Add module list action
    
    This action will allow users to get more information about their
    installed modules, making managing them easier.
    
    For now this just lists the modules split out by path, with the paths
    able to be specified with modulepath or environment options and
    defaulting to Puppet's modulepath.

commit fecf5d693dde7b9101d6f51eddf2a343afcbbcef
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jan 9 14:58:57 2012 -0800

    (#11803) Add modules_by_path method to environments
    
    There's already a modules method on environments that returns your
    modules, but only the first one in the module path.  For example, if you
    have a modulepath with multiple directories, and a module is in both
    directories, you only ever info back about the module in the first
    directory in the modulepath.  For the `module list` command we need to
    show details about all the modules split up by path.

commit dad8697ced0e47a0ea49a6269e943ac4f25cac92
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Jan 11 14:45:42 2012 -0800

    (#11802) Make Puppet::Module able to find module in specific path
    
    For the `module list` command we want to be able to tell about all the
    modules in multiple directories of an environment's modulepath.
    Currently, if we have a module with the same name in two different
    directories of the modulepath it's impossible to get information on it
    since Puppet::Module.new takes a name and environment will always
    assume the path for the module is in the first directory of the
    environment's modulepath.
    
    This change allows the module's path to be passed in so that you can
    instantiate a Puppet::Module for any module location.

commit 520ac07c7bba71785a8d72c2122c8cda6efc03a1
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jan 9 18:12:10 2012 -0800

    maint: Cleanup environment_spec
    
    A test environment was being setup repeatedly so I just moved it into a
    let block.  I also used real modulepaths on the environments instead of
    stubbing the value since it's shorter and easier to read.

commit b27f3cc0e5f043c1a1877b0872ccb428fd16316b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jan 9 18:18:44 2012 -0800

    maint: Fix Puppet::Node::Environment::Helper specs
    
    These specs were creating environments when they didn't need to, and not
    testing what the description said.  The test to show that a string was
    accepted passed an environment object.

commit dfa539ae4919fea201d38816e0fb6d28ab4284b6
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jan 9 14:08:45 2012 -0800

    maint: Remove unused method requires
    
    It looks like this was meant as a way to manage the list of module
    dependencies, but it wasn't being called and the dependencies weren't
    getting loaded from the metadata.
    
    Something like this will be added back when we get dependency info
    working.

commit b967da2fe1f13748c8b96f48c4272e55ab349c68
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jan 9 13:41:40 2012 -0800

    maint: Remove Module.modulepath
    
    This was only being used in one place, and the method itself is fairly
    useless since it's passed an environment, and then just uses the
    environment to find the modulepath.  It's better to just use the
    environment in the place the Module.modulepath was being called.

commit 927de1fa6c34cc422abed9654d25b2c5fdb6f0f0
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Jan 13 08:48:47 2012 -0800

    Add test coverage for hiera_hash()
    
    The previous commit raised a ParseError if hiera was called without a
    default parameter argument. This commit adds test coverage for this
    feature and updates the existing spec files to use the spec_helper
    library.

commit 894a7a4d6dc495c8a7488d8a9bbb539e1b68030a
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Thu Jan 12 17:20:38 2012 -0800

    Fail if a lookup key isn't passed
    
    Hiera should raise a parse error if a lookup key isn't passed.

commit e1f2f373e11982af3c73b867aacece5b28d1b8a9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jan 12 15:46:19 2012 -0800

    (#11929) Always serve files in binary mode
    
    Previously, Windows agents were reading files in text mode when serving
    them locally, such as when serving files from a local module, corrupting
    binary files in the process.
    
    This commit reads files in binary mode, which is a noop on Unix.
    
    Serving files from remote puppet masters was fixed in #9983.

commit 2ac94f94b9af6d8025ee0e771c4c7141ca9705c6
Merge: 1eddaeb 24f2a65
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jan 12 18:48:16 2012 -0800

    Merge pull request #230 from daniel-pittman/feature/2.7.x/symbolic-modes-for-the-file-type
    
    Feature/2.7.x/symbolic modes for the file type

commit 24f2a65d9be15c6042923140df9f0419b09233a8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Nov 9 18:48:46 2011 -0800

    (#2927) Support symbolic file modes.
    
    This adds a new feature, support for symbolic file modes, to Puppet.  In
    addition to being able to specify the octal mode, you can now use the same
    symbolic mode style that chmod supports:
    
        file { "/example": mode => "u=rw,go=r" }
    
    This also supports relative file modes:
    
        file { "/relative": mode = "u+w,go-wx" }
    
    Support is based on the common GNU and BSD symbolic modes of operation; you
    specify a comma separated list of actions to take in each you can sit:
    
    The user (u), group (g), other (o), or all (a) of the permission map.
    
    You can modify the ability to read (r), write (w), execute / search (x) on a
    file or directory.
    
    You can also modify the sticky bit (t), or the setuid and setgid bits (s).
    
    Finally, you can set conditional execute permissions (X), which will result in
    the file having the execute bit if the target is a directory, or if the target
    had *any* execute bit set.  (eg: g+X will set x if the original was u=x,g=.)
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 48726b662d2fb5cc3532fca12eb6aa5a3c1622cd
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Nov 11 16:09:29 2011 -0800

    Finer-grained protocol for property `insync?`.
    
    Previously the protocol for a property was that it should override the entire
    `insync?` method when it wanted to do custom matching.  This worked, but meant
    that a number of bits of logic had to be replicated in each property
    individually.
    
    This changes that by introducing `property_match?(current, desired)` to the
    protocol, which is used to compare an individual current and desired propriety
    value pair.
    
    The default implementation mirrors the previous behaviour of this code, but
    now individual property implementations can override only the direct
    comparison operation and get the right behaviour more easily.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d3a33af4afc847db28b60ded2a6beef7cc9fb68f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Nov 11 14:36:57 2011 -0800

    Whitespace damage cleanup on property.rb
    
    There was some whitespace damage - a function call with odd indentation and
    extraneous blank links - cleaned up; no functional changes.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9381cc5d8477dc261250f1970e8a86d7cd2c8138
Merge: b52f600 6a00f79
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Jan 12 17:15:32 2012 -0800

    Merge pull request #222 from grimradical/tickets/master/7660_puppetqueue_init_script
    
    (#7660) Add init script for puppet queue

commit 1eddaeb206f9463dbf11ade4b6c61e1aca9e2472
Merge: e081c81 4f1f7e4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Jan 12 17:12:56 2012 -0800

    Merge pull request #217 from domcleal/tickets/2.7.x/10807
    
    tickets/2.7.x/10807: Use SMF's svcadm -s option to wait for errors

commit e081c81001a44159ee7d93c0288dcc584e26be4f
Merge: 4033a58 ca73283
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Jan 12 15:45:53 2012 -0800

    Merge pull request #297 from nicklewis/ticket/2.7.x/11641
    
    Ticket/2.7.x/11641 Properly track blockers when generating additional resources

commit 4033a587d5ccee2b5bdd0eec86e836bea579f1f0
Merge: 134e826 c58bfbc
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Jan 12 15:38:42 2012 -0800

    Merge pull request #330 from pcarlisle/8341_facts_load_once
    
    8341 facts load once

commit c58bfbc64f9f22009cd57c5cc8a924ae21fe3a97
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Jan 12 14:04:12 2012 -0800

    (#8341) Only load facts once per puppet run
    
    Make the facter terminus the only place that loads facts (with the notable
    exception of pluginsync which loads any ruby code it syncs).
    
    This should satisfy several requirements:
        * daemonized puppet agent can get fresh facts on each run
        * puppet master can load facts
        * facts are not loaded more than once by the puppet agent fact handler

commit 134e826084aa0eec0d065d070288e984a077d21b
Merge: ab02425 7edaed5
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Jan 12 13:59:32 2012 -0800

    Merge pull request #320 from joshcooper/ticket/2.7.x/11847-relocatable-puppet-bat
    
    (#11847) Don't hard code ruby install paths in Windows batch files

commit 06e70f3768a7cfd0ceaa9135d7e0054f3f0a34fa
Merge: 5abdb9e 97e6c3b
Author: R.I.Pienaar <rip@devco.net>
Date:   Thu Jan 12 13:50:09 2012 -0800

    Merge pull request #16 from stahnma/release
    
    Ready repository for release process

commit 97e6c3bb33aacb79c7f29e3bc38ad2ac378c32a4
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Thu Jan 12 13:36:36 2012 -0800

    Ready repository for release process
    
    This commit modifies the behavior of the Rake task to use the tagged
    version as the version of the repository/gem.  This will allow for
    autobuilding in the future.  This is extremely similar to the heira
    Rakefile and tasks.
    
    Also got rid of a package_task warning in the Rakefile.
    
    I also tagged the original commit at v0.0.0 to ensure this process would
    work.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit ab0242505c632b5c975cfacdbafe1b5031d3d77d
Merge: 276d590 2b0d3b8
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Jan 12 13:15:26 2012 -0800

    Merge pull request #328 from glarizza/bug/2.7.x/3419_osx_groups
    
    (#3419) Fix OS X Ruby supplementary group handling

commit 2b0d3b8ad98a5f6cde187f54bb092d1eb367b5c9
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Wed Jan 11 13:35:30 2012 -0800

    (#3419) Fix OS X Ruby supplementary group handling
    
    Catch Errno::EINVAL as some operating systems (OS X in particular) can
    cause troubles when using Process#groups= to change the user/process
    list of supplementary groups membership.
    
    Test coverage has been added to check for regressions.
    
    Add a test for the expected failure

commit 2a99004fb94529b16b209498a72be2b57559ed03
Merge: 5b90ade e0e31d5
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Jan 11 13:37:34 2012 -0800

    Merge pull request #327 from ripienaar/bug/2.6.x/5246
    
    (#5246) Puppetd does not remove it's pidfile when it exits

commit 276d590b9b98953c2c5eb98a9df3d687f0f1e16b
Merge: 483a1d9 90bdef6
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 11 12:11:25 2012 -0800

    Merge pull request #325 from glarizza/bug/2.7.x/4855_osx_group_failure
    
    (#4855) Fix group provider in OS X

commit 483a1d93a5e5c78f8f41f905d7aae896081c98f1
Merge: c6667c5 2ca9f9d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jan 11 11:11:34 2012 -0800

    Merge branch 'tickets/2.7.x/11888' into 2.7.x
    
    * tickets/2.7.x/11888:
      (#11888) Switch up2date,systemd,redhat providers to osfamily fact
    
    Closes: #326

commit 2ca9f9da9baa11e21c58c66820e8ba59e955e7e1
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 11 08:14:19 2012 -0800

    (#11888) Switch up2date,systemd,redhat providers to osfamily fact
    
    Previously the up2date, redhat and systemd providers used the
    operatingsystem fact to select defaults and constraints. This often
    meant that new operating systems using the same providers had to be
    manually added to the list of supported operating systems.
    
    This commit replaces the use of operatingsystem with osfamily meaning
    addition of new operating systems is now centralised in one place in
    Facter rather than requiring multiple updates.
    
    Tests supporting this have been added to prevent regressions.

commit e0e31d571f38a3f0436e43ea6662f6d6c1e525c5
Author: R.I.Pienaar <rip@devco.net>
Date:   Wed Jan 11 17:17:43 2012 +0000

    (#5246) Puppetd does not remove it's pidfile when it exits
    
    The Puppet::Daemon instance sets up the pid file when it starts
    but it's up to the user of that object to arrange for stop to be
    called
    
    There are signal handlers setup to call stop but in a onetime run
    those are never called
    
    This change arrange for the stop method to be called after a onetime
    run is done but do not hand the task of exiting the application over
    to that so that the agent application can handle the report status
    based exit codes

commit 90bdef6893d532fc70102d688dd48f5149e949cf
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Tue Jan 10 20:31:44 2012 -0800

    (#4855) Fix group resource in OS X
    
    The group provider on OS X uses “dseditgroup” to manage group
    membership. Due to Apple bug 8481241 (“dseditgroup can’t remove unknown
    users from groups”), however, if the puppet group provider needs to
    remove a non-existant user from a group it manages, it will fail.
    
    To remedy this, in the meantime, the provider will call dscl to delete
    the non-existant member from the group. If that fails then the error
    is rescued and feedback is provided.

commit b52f600b05d118f969b553809bcef438f52ca454
Merge: 14ff7d6 272826c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 10 17:51:51 2012 -0800

    Merge branch 'ticket/master/acceptance-test-breakage'
    
    * ticket/master/acceptance-test-breakage:
      Maint: Actually test that a file can be sourced from remote master
      Maint: Don't use cached catalogs

commit 272826ccb73b0f80eea7d34b84a3d98d8ccec1a1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 10 17:50:21 2012 -0800

    Maint: Actually test that a file can be sourced from remote master
    
    Previously, the test was redirecting the manifest to the wrong file,
    so the master was serving an empty catalog to agents. This change was
    made in 803e92f, however, it did not actually cause an acceptance test
    failure because of bug #11764 in the acceptance test framework
    itself. The framework was fixed in commit b8cda1d, merged into master
    1/5/12, and the next run of the acceptance tests in the morning of
    1/6/12 is when the failure started.
    
    This commit changes the test to write the manifest to the right
    file. Also the commit requires puppet agent to return exit code 2,
    because we expect the agent to make changes and we are using
    `--detailed-exit-codes` (which is automatically set when using
    `--test`).
    
    Paired-with: Jeff McCune <jeff@puppetlabs.com>

commit 1b903f2f1938d0c47c5eb409e9ee3c5256db42d7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 10 17:24:10 2012 -0800

    Maint: Don't use cached catalogs
    
    Previously, the agent would attempt to connect to the master, and fail
    due to the SSL 'hostname did not match' error, but then it could use
    an empty cached catalog from a different test and return exit code 0,
    as nothing had changed.
    
    This commit ensures we don't use a cached catalog, and therefore will
    exit with a non-zero status as expected.
    
    Paired-With: Jeff McCune <jeff@puppetlabs.com>

commit c6667c50d3b49195685311575b46de1978c4dfd9
Merge: bc6c642 d5bef5e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 10 14:51:16 2012 -0800

    Merge pull request #324 from glarizza/bug/2.7.x/2273_launchd_dashw
    
    (#2773) Fix launchd provider bug

commit bc6c6428c7aeb41676463e3ad9b0f1344790b4bf
Merge: 5ec5657 6c14a28
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Tue Jan 10 14:38:08 2012 -0800

    Merge pull request #318 from glarizza/bug/2.7.x/11202_apple_rake
    
    Build a Rake task for building Apple Packages

commit 6c14a28e933c7112903113f3fd4aa5a6292147a5
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Mon Jan 9 15:17:32 2012 -0800

    Build a Rake task for building Apple Packages
    
    The goal is to have our release managers build all Puppet packages
    within Rake, and so this commit adds a rake task (apple_package) that
    will build a DMG-encapsulated package for OS X and put it into the
    pkg/apple directory off of the Puppet Root.
    
    To accomplish this goal, a folder structure is created in
    /tmp/puppet/puppet-#{version} that mirrors the structure needed for
    Apple's Packagemaker CLI tool to build a package for OS X. Next, the
    necessary files are copied from the Puppet source into the structure in
    /tmp/puppet/puppet-#{version} and then packagemaker is run
    (targeting that folder structure) to build an initial package. Hdiutil
    then encapsulates that package into a DMG, and the file is finally
    copied into the pkg/apple directory.
    
    In order to support 10.4 (which will be dropped in 2.8.x), we must
    install puppet into /usr/lib/ruby/site_ruby/1.8 as opposed to
    /Library/Ruby/Site/1.8. The prototype.plist file we bundle with the
    package we create sets the IFPkgFlagFollowLinks key to true, so as long
    as the symlink exists the package we build will respect it.
    
    There IS a bug in OS X
    (http://openradar.appspot.com/9202152) where the symlink in
    /usr/lib/ruby/site_ruby is incorrect PRIOR to the first time the OS is
    booted, but the symlink gets fixed at first boot. Users who build a
    previously-unbooted-pristine-image of OS X and who also intend to
    install Puppet on that image BEFORE it is booted may need to modify
    their package to target /Library/Ruby/Site/1.8, however we cannot do
    this at this time as OS X 10.4 DOES NOT have a /Library/Ruby/Site/1.8
    folder.
    
    Provide feedback about where package was created.
    
    Packagemaker outputs a line that says "created: ..." and lists where the
    package was created. The rake task moves the package to pkg/apple, so we
    should provide feedback that this is happening.

commit 5ec5657a1e825bf26886ec9078966c79ae288581
Merge: 450da6a 747ffd2
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 10 13:58:17 2012 -0800

    Merge pull request #127 from adrienthebo/ticket/2.7.x/8341-prevent_duplicate_loading_of_facts
    
    Ticket/2.7.x/8341 prevent duplicate loading of facts

commit 450da6afb2468810ac2de64cc97fb9ed67963a91
Merge: 1cb2b6a c88d22b
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 10 13:46:13 2012 -0800

    Merge pull request #92 from duritong/tickets/2.7.x/1886
    
    Fix storedconfig tests for 1886 and reenable them

commit d5bef5ea4514bc12ab74d6a11482ecd75f100527
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Tue Jan 10 13:11:07 2012 -0800

    (#2773) Use launchctl load -w in launchd provider
    
    There was an issue where a service on OS X would be enabled but also
    stopped and the launchd service provider couldn't start it. In this
    case, the launchd service provider needed to execute `launchctl load -w
    <job_path>` to successfully start the service, but it wasn't programmed
    to do so.
    
    To remedy this, the launchd service provider's start method now checks
    if the job is disabled OR if the job is currently stopped.
    
    A spec test was added to catch for this unique situation.

commit 1cb2b6a5a361ce71fb3a979597878f69185c8a2c
Merge: fe79537 5accc69
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 10 13:02:26 2012 -0800

    Merge branch 'ticket/2.7.x/11714-envpuppet' into 2.7.x
    
    * ticket/2.7.x/11714-envpuppet:
      (#11714) Use `%~dp0` to resolve bat file's install directory
      (#11714) Add envpuppet batch file to run Puppet from source on Windows

commit 5accc69fb145435d44979641d006fcb12794e85c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jan 10 12:54:39 2012 -0800

    (#11714) Use `%~dp0` to resolve bat file's install directory
    
    This commit uses the `%~dp0` batch script modifier to resolve the
    drive and path of the directory containing the envpuppet.bat
    file. This eliminates the need for hard coded paths within the script
    itselfIt also uses `%VAR:\=/%` to substitute each backslash for a
    forward slash in the RUBYLIB environment
    
    Also added a section about running the spec tests on Windows.
    
    Reviewed-By: Jeff McCune <jeff@puppetlabs.com>

commit fe795377f5472b6bd162719ac8a9950e795d6b7c
Merge: f755dcb c865a80
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jan 10 13:00:03 2012 -0800

    Merge pull request #323 from glarizza/bug/2.7.x/fix_launchd_spec
    
    Clean up launchd service provider spec tests

commit c865a80899c9e0186962cf9e934ed07897e242bb
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Tue Jan 10 11:18:21 2012 -0800

    Clean up launchd spec tests
    
    The launchd service provider spec tests WORKED, but largely used stubs
    instead of establishing expectations. As such, they were fairly loose
    and tolerant to changes that could break the provider. There were also
    redundant stubs that didn't contribute directly to the test at hand.
    
    In both cases, the tests have been improved.

commit 24af732ef95f05617abf10afbc5164f6692ada4c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jan 9 17:55:01 2012 -0800

    (#11714) Add envpuppet batch file to run Puppet from source on Windows
    
    Running Puppet on windows from source is non-trivial since the
    environment variables behave quite differently.  In addition, it's not
    clear windows paths expect / rather than \ path separators.
    
    This patch provides an envpuppet batch file to run Puppet from source on
    Windows platforms.

commit 7edaed5f04aa2b541f2f5513e6053ef5248d5280
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 9 22:03:01 2012 -0800

    (#11847) Don't hard code ruby install paths in Windows batch files
    
    Previously, the {filebucket,pi,puppet,puppetdoc,ralsh}.bat files hard
    coded the path to the ruby installation, making it impossible to move
    the ruby install directory.
    
    This commit changes the script to use the `%~dp0` batch file modifier,
    which resolves to the drive letter and path of the directory of the
    batch file being executed.
    
    Windows XP and later all support the `%*` modifier, so this commit
    removes the Win 9x code paths that are not supported.

commit 14ff7d61801cc471f0546a31e2ef8875c3c2d68e
Merge: 7aa3110 f755dcb
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 9 17:18:11 2012 -0800

    Merge branch '2.7.x'
    
    * 2.7.x:
      Match old slightly different version of "hostname was not match"
      Fixed #11844 - Typo in exec documentation

commit f755dcb5e3ca62210328fca07729b52e33a4f1f5
Merge: 9751f90 1978f52
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 9 16:57:51 2012 -0800

    Merge remote-tracking branch 'pcarlisle/hostname-not-match' into 2.7.x
    
    * pcarlisle/hostname-not-match:
      Match old slightly different version of "hostname was not match"

commit 1978f5233c2b26ecbf00ca43c0884ddb6fdf68a7
Author: Patrick <patrick@puppetlabs.com>
Date:   Mon Jan 9 15:38:26 2012 -0800

    Match old slightly different version of "hostname was not match"

commit 9751f900507bae936f16f0184fa13d2016aea7a3
Merge: a7a10f6 ed9da67
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Jan 9 16:08:47 2012 -0800

    Merge pull request #317 from jamtur01/tickets/2.7.x/11844
    
    Fixed #11844 - Typo in exec documentation
    Signed-off-by: Daniel Pittman

commit ed9da671810e007fe8cf701c0a59a6a24ea6c2d7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 9 12:01:44 2012 -0800

    Fixed #11844 - Typo in exec documentation

commit 7aa31101f86905324028f3e49a168cd7370da639
Merge: 9d05a86 a7a10f6
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 9 10:29:15 2012 -0800

    Merge branch '2.7.x'
    
    * 2.7.x:
      (#11764) Fix failing cron test
      Fixup two space merge conflict from 2.7.x => master
      Retry inventory ActiveRecord transaction failure
      (#11717) Set password before creating user on Windows
      (#11293) Add password get/set behavior for 10.7
      (#11764) Fix cron jobs for passing block to method
      (#11740) Disable failing test on Windows
      Revert "Access user password hash in OS X 10.7"
      Access user password hash in OS X 10.7
      (#11741) Use dns_alt_names instead of certdnsnames in acceptance tests

commit a7a10f6c23512e4364ad53bb6f4c41ec7214dad5
Merge: 0f0aa1e 5b90ade
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 9 10:13:32 2012 -0800

    Merge branch '2.6.x' into 2.7.x
    
    * 2.6.x:
      (#11764) Fix failing cron test
      (#11764) Fix cron jobs for passing block to method

commit 5b90ade7a83569c80cd96ca76cd937f5d61d8704
Merge: 9fe75c1 0ab4597
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jan 9 09:40:17 2012 -0800

    Merge branch '11764_fix_cron_tests_x2' of https://github.com/djm68/puppet into 2.6.x
    
    * '11764_fix_cron_tests_x2' of https://github.com/djm68/puppet:
      (#11764) Fix failing cron test

commit 0ab45978be51bf74f07f14f482772823218e2ff6
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Mon Jan 9 09:15:51 2012 -0800

    (#11764) Fix failing cron test
    
    Small logic error is one cron tests -- assert in wrong
    step.  Fixed and tested.

commit edd6e65e48a0001d803aed2bde24c34efd5c9d14
Author: Piavlo <lolitushka@gmail.com>
Date:   Sun Jan 8 17:46:44 2012 +0200

    (Bug #11281) Correct Fix of undefined method `file?' for Puppet::Type::File:Class with ruby 1.9.2

commit b26e03ad89c4c7fcc70ebac827bb41f666a868c5
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jan 6 15:26:38 2012 -0800

    Fix stage inheritance between multiple included classes
    
    Commit 656eff8 introduced a regression whereby stages would only
    propagate from a class to its direct descendants, and no further. This
    means if a class A includes B which includes C, the stage specified for
    class A would only be used for A and B, and would omit C.
    
    This was due to a logic error around the recursive nature of class
    evaluation. We would evaluate the outermost class, and while doing so,
    would evaluate its children, and etc. The step after evaluate was to set
    up the stage relationship, which would then happen in reverse order
    (C and then B and then A) as the stack was unwound. This meant that C
    would try to set its stage, see that it had no specified stage, and try
    to use its parent's stage (B). B also had no specified stage,
    so C fell back to main. The next step in the stack, however, was to set
    B's stage, which would then be inherited from A.
    
    The purpose for the breaking change was to move stage setup after
    parameters were set, so that defaults could be used to set stage. So now
    we move stage setup back a bit in processing, between parameter setup and
    actual evaluation of the contained code (which is the step which will
    eventually evaluate the children). This achieves the desired effect of
    setting stages after parameters, but also correctly sets stages in
    top-down order, allowing them to cascade naturally.
    
    Included in this is a small change during compiler setup to add the
    Settings class to the catalog *before* evaluate_code is called. This is
    because evaluate_code will now add the class to the main stage, which
    requires the resource know about its catalog. Since Settings is never
    really executed on the agent in a meaningful way, adding it to stage
    main has no practical effect, so this is a safe change.

commit 0f0aa1ef2b74f98006d9f78384549415cf11ca0e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Jan 6 15:06:36 2012 -0800

    Fixup two space merge conflict from 2.7.x => master
    
    I accidentally merged Carl's #302 topic branch into master instead of
    2.7.x because of the name of the topic branch.  This is actually OK
    because Matt recently merged up 2.7.x into master.
    
    The problem was I amended Carl's original commit to fix a trailing
    whitespace issue.
    
    We then went and cherry picked his original commit (with the trailing
    whitespace still present) into a topic branch based on 2.7.x and merged
    into 2.7.x.
    
    This caused 2.7.x and master to diverge and conflict the next time 2.7.x
    is merged up into master.
    
    This commit fixes the merge conflict automatically for the next person
    merging up.
    
    Conflicts:
    
    	spec/unit/util/retryaction_spec.rb

commit 9b62a87f4bbd6af6ca3ec400bd1eec2bf3270ccf
Merge: 9ba85db d092860
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Jan 6 14:49:49 2012 -0800

    Merge branch 'bug/2.7.x/10837_retry_inventory_save_on_failure' into 2.7.x
    
    * bug/2.7.x/10837_retry_inventory_save_on_failure:
      Retry inventory ActiveRecord transaction failure
    
    Closes: #302 (Accidentally merged into master before 2.7.x)

commit d092860b562f4ad38407515445f5e636f1f84456
Author: Carl Caum <carl@carlcaum.com>
Date:   Tue Jan 3 17:12:13 2012 -0800

    Retry inventory ActiveRecord transaction failure
    
    Previous to this commit, if the ActiveRecord transaction for saving
    facts failed do to MySQL deadlock, for example, the transaction would
    fail printing a message to the user.  This primarily occurred during a
    PE agent installation if multiple agent's were being creating
    simultaneously.
    
    This commit adds the ability to retry if a
    ActiveRecord::StatementInvalid exception is thrown.  To accomplish this,
    this commit ports Cloud Provisioner's
    Puppet::CloudPack::Utils#retry_action method to Puppet core under
    Puppet::Util::RetryAction#retry_action.

commit 9d05a867656505f5c2d72abc06b8b4049285c7a1
Merge: 0473534 00ace23
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Jan 6 14:39:01 2012 -0800

    Merge branch 'bug/master/10837_retry_inventory_save_on_failure'
    
    * bug/master/10837_retry_inventory_save_on_failure:
      Retry inventory ActiveRecord transaction failure
    
    Closes: 302 (I amended a trailing whitespace fix)

commit 00ace23a1c30b0ec7522338a87d964749f569b1f
Author: Carl Caum <carl@carlcaum.com>
Date:   Tue Jan 3 17:12:13 2012 -0800

    Retry inventory ActiveRecord transaction failure
    
    Previous to this commit, if the ActiveRecord transaction for saving
    facts failed do to MySQL deadlock, for example, the transaction would
    fail printing a message to the user.  This primarily occurred during a
    PE agent installation if multiple agent's were being creating
    simultaneously.
    
    This commit adds the ability to retry if a
    ActiveRecord::StatementInvalid exception is thrown.  To accomplish this,
    this commit ports Cloud Provisioner's
    Puppet::CloudPack::Utils#retry_action method to Puppet core under
    Puppet::Util::RetryAction#retry_action.

commit 9ba85db04b1712e620a4acb410d23d52c109d4de
Merge: 63e3123 a966eb3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jan 6 14:12:42 2012 -0800

    Merge branch 'ticket/2.7.x/11717-fix-adsi-user-create' into 2.7.x
    
    * ticket/2.7.x/11717-fix-adsi-user-create:
      (#11717) Set password before creating user on Windows

commit a966eb393f63d398b55f96206601721065d85f5a
Author: Paul Tinsley <paul.tinsley@gmail.com>
Date:   Wed Jan 4 09:07:48 2012 -0600

    (#11717) Set password before creating user on Windows
    
    Previously, puppet could not create a user with no password when a
    local password complexity policy was set. This commit sets the
    password on the user prior to creating it, and updates the spec tests
    accordingly.
    
    Spec test update provided by Carl Caum <carl@puppetlabs.com>

commit 63e31232c192d6d5ad86f2ea829d4605e069ec4e
Merge: 07da208 018f36d
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Jan 6 13:23:27 2012 -0800

    Merge branch 'bug/2.7.x/11293' into 2.7.x
    
    * bug/2.7.x/11293:
      (#11293) Add password get/set behavior for 10.7

commit 9fe75c18118d68233d3ce9f189429266e3823725
Merge: fc3f8b9 073ca03
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Jan 6 11:57:34 2012 -0800

    Merge pull request #307 from djm68/11764_fix_cron_tests
    
    (#11764) Fix cron jobs for passing block to method

commit 07da208a3e580337ad0bc94019b90e0fb8270a0e
Merge: c3aa97a 1e4bc59
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Jan 6 11:57:25 2012 -0800

    Merge pull request #305 from pcarlisle/ticket/2.7.x/11741-certdnsnames-acceptance-tests
    
    (#11741) Use dns_alt_names instead of certdnsnames in acceptance tests

commit 018f36d57c14a0cf1bf8b2b922feb7dfcc5a7a78
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Jan 6 09:12:53 2012 -0800

    (#11293) Add password get/set behavior for 10.7
    
    Puppet did not have the ability to get/set passwords in OS X version
    10.7.  This commit implements this behavior. Users in 10.7 have a
    binary plist file in /var/db/dslocal/nodes/Default/users that contains
    a 'ShadowHashData' key. The value for this key is actually a binary
    encrypted plist which contains a 'SALTED-SHA512' key containing
    a base64 encoded string. This string is actually the salted-SHA512
    password hash with a 4 byte salt prepending the hash. Puppet expects
    this 4 byte salt + salted-SHA512 password hash in order to set the
    user's password. Since this value is drastically different from
    previous versions of OS X, Puppet will fail if you try and pass
    a SHA1 password hash that was used in previous versions of OS X.
    
    Spec tests were added to ensure that Puppet fails with an incorrect
    password, and that the get/set behavior works properly with OS X
    version 10.7.

commit 073ca035f3613412899cc6c79fa75678fc7b2b36
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Fri Jan 6 11:26:47 2012 -0800

    (#11764) Fix cron jobs for passing block to method
    
    Fixing the run_x_on methods to accept a passed block causes the
    cron resrouce tests to fail.  Minor fixes to regex and asserts
    fix the issue.
    
    This affect all versions of puppet and should be merged up.

commit c3aa97a44d61f92413126b5438395dac00e56af0
Merge: c751e01 4807c6d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jan 6 09:30:56 2012 -0800

    Merge branch 'ticket/2.7.x/11740-fails_on_windows_handle' into 2.7.x
    
    * ticket/2.7.x/11740-fails_on_windows_handle:
      (#11740) Disable failing test on Windows

commit 4807c6dab8513f2f8ed368a225b0b1ade57623fb
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jan 5 17:03:00 2012 -0800

    (#11740) Disable failing test on Windows
    
    Jenkins uncovered a race condition on Windows when a parent process
    tries to get the exit code of its child process. If the child exits
    before the parent calls OpenProcessToken, then the parent cannot get
    the child's exit code.
    
    This issue has been present for a long time, and isn't trival to fix,
    because the spec tests assume waitpid2 behaves consistently on POSIX
    and Windows.
    
    I'm disabling the test on Windows for now, and will revert this change
    when I have a real fix for #11740.
    
    Reviewed-By: Jeff McCune <jeff@puppetlabs.com>

commit c751e01802d6eb7eea3dbe600bee0784943b0a30
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jan 5 17:25:25 2012 -0800

    Revert "Access user password hash in OS X 10.7"
    
    This reverts commit 11b8c5ad3fb99263c8484fecc767b69cd80d3156.
    
    This needs to be reverted because I missed the use of backticks (``),
    effectively %x{}, in the original pull request and this is causing a big
    problem for the CI tests on non Mac OS X systems that don't have plutil.
    
    Gary and I are going to re factor the pull request to make the command
    calls easier to mock out on non Mac OS X platforms.  We can't do this
    quickly tonight though.
    
    Updated information will be in ticket #11293

commit f79bd374ce9c1132b60d06e9eddd1002c595800d
Merge: ac8b408 11b8c5a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Jan 5 16:22:22 2012 -0800

    Merge pull request #306 from glarizza/bug/2.7.x/11293_users_osx
    
    (11293) Set/get passwords from OS X 10.7

commit 11b8c5ad3fb99263c8484fecc767b69cd80d3156
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Dec 9 14:22:18 2011 -0800

    Access user password hash in OS X 10.7
    
    A first attempt at accessing the user's password hash in 10.7 by
    inspecting the user's plist in
    /var/db/dslocal/nodes/Default/users/test.plist. This method requires
    saving a binary plist to /tmp/username.plist in order to use plutil
    -convert xml1 to convert it to xml (as Plist::parse_xml can only read
    XML plists).
    
    Use Puppet::Util::Package.versioncmp()
    
    Because we're comparing OS X versions that are ultimately strings,
    we need a method to catch the scenario where '10.10' < '10.7'.
    Puppet::Util::Package.versioncmp() does this well, so we will use
    it in favor of simple string comparison.

commit 0473534f2b762fc836db4c41e2c490392f9dbc2e
Merge: 7084767 0014d1e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jan 5 11:55:44 2012 -0800

    Merge branch 'ticket/master/11552-fix_puppetral_resource_parameters'
    
    * ticket/master/11552-fix_puppetral_resource_parameters:
      (#11552) Fix `puppet resource` ability to display parameters

commit 0014d1ebf4231611ca753afcea8a259937c2d330
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jan 3 11:43:13 2012 -0800

    (#11552) Fix `puppet resource` ability to display parameters
    
    The original commit for #11552 removing TransObject and TransBucket
    removed the code that manually added parameters when converting from a
    Puppet::Type::Resource to a Resource.  No tests in Puppet caught this
    problem, but a test of the puppetral MCollective provider caught that
    Puppet::Resource could no longer give back paramger information.
    
    This restores the ability to retrieve parameters and adds tests to
    Puppet.  Long term the logic for adding parameters really shouldn't live
    in a method that converts between resource representations, but for now
    I'm fixing the regression to work the same way it used to.

commit 1e4bc59abd14e258d65c4e6ef64461837535c1d9
Author: Patrick <patrick@puppetlabs.com>
Date:   Wed Jan 4 16:08:25 2012 -0800

    (#11741) Use dns_alt_names instead of certdnsnames in acceptance tests
    
    The certdnsnames argument is now ignored, and dns_alt_names is the new
    version. This previously caused failures in
    helpful_error_message_when_hostname_not_match_server_certificate.

commit 4f295f3b57c73303ac7f863f1493899154413c22
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jan 3 14:48:32 2012 -0800

    (#11451) Fix improper use of "defined" in the duplicate declaration error
    
    Duplicate resource declarations (including classes with the resource-like
    class {'name':} syntax) were provoking the following error:
    
    Duplicate definition: Class[Test] is already defined in file /tmp/test.pp at
    line 9; cannot redefine at /tmp/test.pp:10 on node example.com
    
    This is incorrect -- the problem is a duplicate declaration, not a duplicate
    definition. I believe this is a holdover from our formerly sloppy use of the two
    terms.
    
    This commit fixes the error message, and renames several variables and methods
    to match our current understanding of the terms "define" and "declare." Tests
    are fixed as well.

commit 70847674f17063825ba27d2b5ce3422d0b713da5
Merge: 5d3369e c1d7634
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jan 3 12:03:39 2012 -0800

    Merge pull request #299 from mmrobins/ticket/master/maint-fix_augeas_spec_merge
    
    Fix augeas_spec branch merging mistake

commit c1d7634e6f75e1f866dce38f1bef80110f03f28d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jan 3 11:47:31 2012 -0800

    Fix augeas_spec branch merging mistake
    
    spec/unit/provider/augeas/augeas_spec.rb had merge conflicts when I
    merged 2.7.x into master.  I resolved them incorrectly at first, then
    forgot to add the fixed resolution to the merge commit before pushing,
    so all the tests passed on my local machine.  This corrects that merge
    resolution so that tests all pass.

commit 5d3369ebb4f1af53a9a6395317f1f8af8b589630
Merge: 3a1fe37 ac8b408
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jan 3 10:44:12 2012 -0800

    Merge branch '2.7.x'
    
    * 2.7.x: (21 commits)
      (#7296) Make the Debian service provider handle services that don't conform to the debain policy manual.
      (#4836) - Agent --disable should allow to put a message
      (#3757) - Refactor enable/disable to its own module
      (#3757) - Move enable/disable to its own lock
      Fix failing tests with ruby 1.9.2 in the instrumentation framework
      Use all lower-case file name for Puppet::Util::Instrumentation::Instrumentable
      Maint: Fix typo in usage example for create_resources function
      Set of faces to manage instrumentation listeners, data and probes
      Example probes for the indirector
      Add probe indirection for probe management
      Process name instrumentation listener
      Add the 'performance' instrumentation listener
      Add the example 'log' listener
      Add a way to add probe to puppet code
      Add indirection (REST usable) to manipulate instrumentation
      Instrumentation foundation layer
      (#8119) Write reports to a temporary file and move them into place
      (#11414) Test Augeas versions correctly with versioncmp
      (#11414) Save/execute changes on versions of Augeas < 0.3.6
      Updated CHANGELOG for 2.6.13
      ...
    
    Conflicts:
    	spec/unit/application/agent_spec.rb
    	spec/unit/provider/augeas/augeas_spec.rb

commit ac8b408e18390ebf1bc31a3bab7df9d269b2629e
Merge: 86a806f fc3f8b9
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jan 3 10:22:43 2012 -0800

    Merge branch '2.6.x' into 2.7.x
    
    * 2.6.x:
      Updated CHANGELOG for 2.6.13
      Updating CHANGELOG for 2.6.13rc1
    
    Version number related Conflicts:
    	CHANGELOG
    	conf/redhat/puppet.spec
    	lib/puppet.rb

commit 94808b89eb27d13c5910ac5c6704e056d6cd46d5
Author: S. Zachariah Sprackett <zac@sprackett.com>
Date:   Mon Jan 2 21:35:23 2012 -0500

    Add gitignore to default puppet module
    
    This patch was merged into the seperate puppet-modlue-tool repo but I've
    been asked to submit it here as well.  See:
    
    https://github.com/puppetlabs/puppet-module-tool/pull/17

commit ca7328323ab9de76191601aef373d3d8486c023f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Dec 30 14:34:02 2011 -0800

    (#11641) Properly track blockers when generating additional resources
    
    Previously, we would enqueue any unblocked resources as we added them to the
    graph. These were our initial resources, with no dependencies, and served as a
    starting place for traversal. However, we would
    add_dynamically_generated_resources before traversing, which could add
    additional resources and dependencies. We never accounted for these, causing
    our measure of blockedness to become incorrect (a resource could have more
    dependencies than we counted).
    
    This is similar to the case of eval_generate adding additional resources. In
    that case, we clear the blockers list and allow it to be recalculated on
    demand. Unfortunately, that approach doesn't work for the case where we add
    resources before traversing (as in add_dynamically_generated_resources),
    because we wouldn't have a reliable list of resources to begin traversal with.
    Now we no longer enqueue resources when adding them, and instead wait until
    after we have called add_dynamically_generated_resources (which happens only
    once). This allows us to add our root resources with the assurance they won't
    change before we start evaluating them.

commit 86a806f595f8b7bb280c8c445eef51dfd71bf39d
Merge: ac81771 0ffe1ac
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Dec 30 14:07:00 2011 -0500

    Merge remote-tracking branch 'masterzen/tickets/2.7.x/3757' into 2.7.x
    
    * masterzen/tickets/2.7.x/3757:
      (#4836) - Agent --disable should allow to put a message
      (#3757) - Refactor enable/disable to its own module
      (#3757) - Move enable/disable to its own lock

commit 3a1fe3720788e6b616ed29902b9f281a5073b65c
Merge: 26093a8 474a077
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Dec 30 10:58:47 2011 -0800

    Merge remote-tracking branch 'pcarlisle/ticket/master/8296-xmlrpc_deletion'
    
    * pcarlisle/ticket/master/8296-xmlrpc_deletion:
      (#8296) Remove logic around XMLRPC vs REST protocols
      (#8296) Remove XMLRPC code

commit ac81771a9cc70b5fb58f86439ebb0585ce92d4e8
Merge: 399e923 735acad
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Dec 30 10:28:16 2011 -0800

    Merge branch 'tickets/2.7.x/11414' of https://github.com/domcleal/puppet into 2.7.x
    
    * 'tickets/2.7.x/11414' of https://github.com/domcleal/puppet:
      (#11414) Test Augeas versions correctly with versioncmp
      (#11414) Save/execute changes on versions of Augeas < 0.3.6

commit 474a077aba21720c7918eedf520c5dcf3c907b6e
Author: Patrick <patrick@puppetlabs.com>
Date:   Wed Dec 28 15:59:39 2011 -0800

    (#8296) Remove logic around XMLRPC vs REST protocols
    
    Now that REST is the only network protocol (and protocol was a bad term
    anyway), we can remove all the logic around the xmlrpc vs rest
    protocol.
    
    Most of the places that did protocol argument checking never even used
    the protocol information and didn't support XMLRPC anyway.
    
    Paired-with: Matt Robinson <matt@puppetlabs.com>

commit 81c73fd0d0d0a9ad4a7f2cb5386d5956739a89aa
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Dec 27 23:25:25 2011 -0800

    (#8296) Remove XMLRPC code
    
    The XMLRPC code was left in place to ensure backward compatibility with
    Puppet 0.24.x clients, but 0.24.x clients haven't been able to talk to
    masters since 0.25.6 due to other bugs and incompatibilities.
    Therefore, the XMLRPC code has been dead code for a long time and
    removing it makes the codebase a lot easier to navigate.
    
    Paired with Patrick Carlisle <patrick@puppetlabs.com>

commit 399e923f790baec15dc3cd5a99713ee01287949c
Merge: 5e7da64 31eef75
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Dec 29 15:31:32 2011 -0800

    Merge pull request #170 from xaque208/7296
    
    (#7296) Make the Debian service provider handle services that don't

commit 31eef75155147e5e9e8476ec3b1398e723fb5b80
Author: Zach Leslie <zach@puppetlabs.com>
Date:   Tue Oct 11 11:48:46 2011 -0700

    (#7296) Make the Debian service provider handle services that don't conform to the debain policy manual.
    
    This change is to support initscripts that do not support the --query
    method of invoke-rc.d used by the Debian provider to determine if
    service is enabled.
    
    The fix checks that the link count in /etc/rc?.d is equal to 4, which is
    the number of links that should be present when using the Debian service
    provider, which is done by `update-rc.d #{service} defaults`.

commit 26093a8f8de214a2db982e1c70a987eb67496652
Merge: ee7866f 40b4cc6
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 28 16:59:01 2011 -0800

    Merge remote-tracking branch 'matt/ticket/master/11595-delete_storeconfigs_activerecord_find'
    
    * matt/ticket/master/11595-delete_storeconfigs_activerecord_find:
      (#11595) Delete unused activerecord catalog find

commit ee7866f8bb80184842de396c868f7c6602731f10
Merge: d2b4c85 318411c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 28 16:51:37 2011 -0800

    Merge remote-tracking branch 'pcarlisle/ticket/master/11552-remove-transobject-and-bucket'
    
    * pcarlisle/ticket/master/11552-remove-transobject-and-bucket:
      (#11552) Remove TransObject and TransBucket

commit 40b4cc648db00dcecad009c645a5e30a0676f22d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Dec 28 13:41:14 2011 -0800

    (#11595) Delete unused activerecord catalog find
    
    The find method on lib/puppet/indirector/catalog/active_record.rb was
    written in such a way that it could never be used.
    
    First, you had to pass cache_integration_hack as an option to get it to
    return anything except nil, and this wasn't used in the code.
    
    Second, if you ever did get past the hack option,
    resource.to_transportable was called even though that method was never
    defined anywhere.
    
    We noticed this when looking for code that had been orphaned by #11552
    to delete TransObjects and TransBuckets.  There was a to_trans method
    that was deleted, but never was there a to_transportable.
    
    Paired-with: Patrick Carlisle <patrick@puppetlabs.com>

commit 318411c1dc669270046bfe265e4476ca70cf5738
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 22 11:47:12 2011 -0800

    (#11552) Remove TransObject and TransBucket
    
    TransObject and TransBucket were no longer used except as an intermediate form
    when converting between Puppet::Resource and Puppet::Type::Resource. This
    removes TransBucket and TransObject entirely and rewrites the conversion
    (to_resource) so the intermediate to_trans call is unneeded. There was custom
    logic in Puppet::Type::File#to_trans that was moved to a to_resource method.
    
    Backward compatibility with 0.24.x has been broken for some time (0.25.5 is
    the last release I've seen that works running a master with 0.24.x agents),
    but we removed Network::Handler::Master which depended on TransObject. This is
    the beginning of removing XMLRPC code (ticket #8296), which is what in theory
    provided the 0.24.x backward compatibility.
    
    Paired with Patrick Carlisle <patrick@puppetlabs.com>

commit 0ffe1acc9221aaf5fb0d47b04a8c0a72cdbe0ba1
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Dec 22 19:22:43 2011 +0100

    (#4836) - Agent --disable should allow to put a message
    
    This way it is possible to let other users know why a puppet agent
    has been disabled.
    
    Usage:
    puppet agent --disable "because working on backup"
    
    When later on, the puppet agent run would abort with:
    "Run of Puppet configuration client is administratively
    disabled because working on backup; skipping"
    
    It's also possible to not set a message, in which case a default
    message is provided.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 7777d91da0e7e7dffeb27db272ea9c37f4b8e4d9
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Nov 13 16:07:47 2011 +0100

    (#3757) - Refactor enable/disable to its own module
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b434e3b9c31de63365e1a0f53d152be7e6e988ec
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Dec 22 19:17:31 2011 +0100

    (#3757) - Move enable/disable to its own lock
    
    This change also contains a refactor split of Pidlock into its
    anonymous counterpart.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 5e7da648b770b925997118bba0f2a652620bc904
Merge: 0e4acaf f7c2ea4
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Dec 27 12:59:15 2011 -0500

    Merge remote-tracking branch 'masterzen/wip/instrumentation-1.9.2-fixes' into 2.7.x
    
    * masterzen/wip/instrumentation-1.9.2-fixes:
      Fix failing tests with ruby 1.9.2 in the instrumentation framework

commit f7c2ea47d6264e4434ec412ad9e30faf4017f5e5
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Dec 27 18:48:34 2011 +0100

    Fix failing tests with ruby 1.9.2 in the instrumentation framework
    
    Hash ordering changed in ruby 1.9.2, and thus a test which was
    assuming a particular ordering was failing.
    
    Another test was failing because of an implied call to #to_a for
    a multiple_yields mocha expectation.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 0e4acaf486377cb7741e8cb0cdf96227c449a800
Merge: d4c8094 b2411b6
Author: Deepak Giridharagopal <deepak@brownman.org>
Date:   Tue Dec 27 08:49:03 2011 -0800

    Merge pull request #291 from jhelwig/fix-instrumentation-file-case
    
    Use all lower-case file name for Puppet::Util::Instrumentation::Instrumentable

commit b2411b68d2e92e90ec1380af543d2929427ff871
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Dec 23 23:02:19 2011 -0500

    Use all lower-case file name for Puppet::Util::Instrumentation::Instrumentable
    
    Ruby convention is to use all lower-case when naming files &
    directories of files, and to require them using the lower-case name.
    
    While the file lib/puppet/util/instrumentation/Instrumentable.rb could
    be required using the lower-case convention on a case-preserving but
    -insensitive file system, the file could not be found if the same
    require was used on a file system that was both case-preserving and
    case-sensitive.

commit d4c80943c017c3d0ea5118f35b2ca32c9c26e800
Merge: f842d0b 751ef88
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Dec 23 13:01:10 2011 -0500

    Merge remote-tracking branch 'masterzen/feature/instrumentation' into 2.7.x
    
    * masterzen/feature/instrumentation:
      Set of faces to manage instrumentation listeners, data and probes
      Example probes for the indirector
      Add probe indirection for probe management
      Process name instrumentation listener
      Add the 'performance' instrumentation listener
      Add the example 'log' listener
      Add a way to add probe to puppet code
      Add indirection (REST usable) to manipulate instrumentation
      Instrumentation foundation layer

commit f842d0bd884182bbd75e6d3e061193da3f3f1d2d
Merge: 2fd94d2 c560f71
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Dec 22 15:44:47 2011 -0800

    Merge pull request #289 from nfagerlund/maint/2.7.x/typo_in_create_resources
    
    Maint/2.7.x/typo in create resources

commit c560f7150972a507ad5b2a4dc6412be8b83e94a9
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Dec 22 11:47:39 2011 -0800

    Maint: Fix typo in usage example for create_resources function
    
    The create_resources function had an example that referred to it as the
    create_resource function. This commit fixes the missing plural.

commit 751ef883c7b8e1c0716846844cb5f10609f55a76
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Sep 18 13:16:29 2011 +0200

    Set of faces to manage instrumentation listeners, data and probes
    
    Here are 3 faces to manipulate more easily the various instrumentation
    indirections:
    
    * instrumentation_listener
    This allows to enable/disable and list the registered listeners
    
    * instrumentation_data
    This allows to retrieve a given listener accumulated data
    
    * instrumentation_probe
    This allows to list the various probes of a given system, and
    enable or disable them.
    
    Note: for the probe face to work, one need the fix for
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 493a1b762d13955ab976b431e211739ce3de4d70
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Feb 27 17:21:39 2011 +0100

    Example probes for the indirector
    
    This commit adds some instrumentation probes for the various verbs
    of the indirector.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit fc4369442c9d292a4034e0b033cf644dd94314aa
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Dec 21 20:10:18 2011 +0100

    Add probe indirection for probe management
    
    This allows to enable/disable and list probes either internally or through
    REST.
    
    * GET /instrumentation_probe_search/all
    Will return the list of currently defined probes in the running instance
    
    * PUT /instrumentation_probe_search/unused
    Will enable all probes
    
    * DELETE /instrumentation_probe_search/unused
    Will disable all probes
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 2bf6105047c0cc85b2f6aed9be745c5335a84d3c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Feb 27 11:34:54 2011 +0100

    Process name instrumentation listener
    
    This listener changes the current process name in function of what
    instrumented code is running. If the name is too long, the process
    name is automatically scrolled to show all the activity.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 6c138d7e2672a873884643bcae981c920d8ce3c3
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Feb 27 11:33:38 2011 +0100

    Add the 'performance' instrumentation listener
    
    This instrumentation listeners accumulates some statistics on the duration
    and number of calls of a given instrumented code.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 782f341b2346355dac66c494d4cd0d640052ae78
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Feb 27 11:32:19 2011 +0100

    Add the example 'log' listener
    
    This listener stores the last 20 event durations for a given label.
    It is not terribly useful except giving an idea of the api.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ff36debe66a957e04c6d24e2f9d529ad976e8f8c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Dec 21 20:05:05 2011 +0100

    Add a way to add probe to puppet code
    
    This patch contains a module (Instrumentable) that can be mixed in
    various puppet classes to help define probes.
    
    To add a probe for a given method, it is just a matter of using
    the Instrumentable probe method:
    
    class MyClass
      extend Instrumentable
    
      probe :thismethod
      def thismethod(arg)
      ...
      end
    end
    
    Used with no options the probe is created with a default label of
    the instrumented method name and an empty dataset.
    
    It is possible to set a given label, or use a proc as the label, in which
    case the label will be the result of the evaluation of the said proc.
    
    For instance:
    
    class MyClass
      extend Instrumentable
    
      probe :thismethod, :label => Proc.new { |parent,args| args[0] }
    
      def thismethod(arg1, arg2)
      end
    end
    In this last example, the label will be the value of "arg1".
    The parent argument of the :label block will contain the "self"
    value of the instrumented method
    
    When the thismethod will be called, it will in turn call the instrumentation
    layer with the given label and data.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 6b7fcf620f5cfc4f521ba5561fd4a2e09967164e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Dec 17 13:28:15 2011 +0100

    Add indirection (REST usable) to manipulate instrumentation
    
    This adds two REST API:
    * /instrumentation_listener(_search)/<instrumentation_name>
    
    GET /instrumentation_listener/<instrumentation_name>
    Gives details about a given instrumentation listener
    
    GET /instrumentation_listener_search/unused
    Lists all instrumentation listeners loaded in the system
    
    PUT /instrumentation_listener/name
    Allows to enable or disable a given instrumentation listener (supports
    only pson). The body should be {"name":"instrumentation_name","pattern":<pattern>,"enabled":true}
    
    DELETE /instrumentation_listener/<instrumentation_name>
    This fully unsubscribe a listener
    
    * /instrumentation_data/<instrumentation_name>
    Only GET is supported. This returns the accumulated data of the given
    instrumentation name if the listener supports data aggregation.
    This is the only way so far to get access to the instrumentation data.
    The data format is specific to the given listener.
    
    Note: actual default auth.conf doesn't allow to interact with these
    two indirections.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b743b4d84e8a63bf4fc439406d96c73a179784d7
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Dec 21 20:11:57 2011 +0100

    Instrumentation foundation layer
    
    This is the base of the instrumentation layer.
    The idea is to allow instrumentation of code blocks.
    Each time this code is executed an event is fired to some event
    listeners that in turn can do whatever is needed to perform the instrumentation.
    
    This patch adds:
     * code instrumentation calls
     * the listener system
    
    Listeners are added by adding a file to puppet/util/instrumentation/listeners
    containing:
    
    Puppet::Util::Instrumentation.new_listener(:my_instrumentation, pattern) do
    
      def notify(label, event, data)
        ... do something for data...
      end
    end
    
    It is possible to use a "pattern". The listener will be notified only
    if the pattern match the label of the event.
    The pattern can be a symbol, a string or a regex.
    If no pattern is provided, then the listener will be notified for every
    event.
    
    The notify method will be called before and after the insturmented code
    is executed, with respectively an event of :start and then :stop.
    
    This class is thread-safe.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 2fd94d2e912a1b0dcc08ff510658948644a7fc1c
Merge: 45f0855 b1af29b
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 19 16:11:48 2011 -0800

    Merge branch 'tickets/2.7.x/8119' into 2.7.x
    
    * tickets/2.7.x/8119:
      (#8119) Write reports to a temporary file and move them into place

commit b1af29be82b4d6fcdc0dd9a27f925000ce6bc4f4
Author: Ricky Zhou <ricky@fedoraproject.org>
Date:   Tue Jun 28 11:01:35 2011 -0400

    (#8119) Write reports to a temporary file and move them into place
    
    When writing reports, there is a window in between opening and writing to the
    report file when the report file exists as an empty file. This makes writing
    report processors a little annoying as they have to deal with this case. This
    writes the report into a temporary file then renames it to the report file.
    
    Signed-off-by: Patrick Carlisle <patrick@puppetlabs.com>

commit d2b4c858d52dd69eccd2f1f913cd096f53bd32bc
Merge: 0e6d9eb b010511
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Dec 19 15:47:18 2011 -0500

    Merge branch 'pacman-provider-updates'
    
    * pacman-provider-updates:
      Use actual package instance instead of stub
      Sync database before installing from source
      Use a sequence instead of a state machine in testing packman provider
      Make the URL part of pacman_spec DRY
      Accept URL as pacman package source
      Use pacman -U to install from source
      Be specific when stubbing @resource[:name]

commit b010511242ad59b7708c2e1af6c98f430f299c97
Author: Whyme.Lyu <5longluna@gmail.com>
Date:   Sun Dec 18 10:28:30 2011 +0800

    Use actual package instance instead of stub

commit 6d5c0f91dd28a5dde81dc859138c2f30b63b4a54
Author: Whyme.Lyu <5longluna@gmail.com>
Date:   Mon Sep 12 20:31:12 2011 +0800

    Sync database before installing from source

commit 38b64cff90456dfbe54da10146045001595d1c27
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Dec 19 14:25:09 2011 -0500

    Use a sequence instead of a state machine in testing packman provider
    
    Sate machines are handy for testing complex behavior, however we are
    concerned with whether or not a particular set of methods are called
    in a specific order.  Since we are concerned primarily with the
    ordering of the method calls, use a sequence instead.
    
    Signed-off-by: Whyme.Lyu <5longluna@gmail.com>
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>

commit 0e6d9eb661d5ef1b77d76c60b348c8cdaed4c79c
Merge: 1826e05 2917d24
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 19 11:49:27 2011 -0800

    Merge branch 'tickets/master/10950'
    
    * tickets/master/10950:
      (#10950) Make config print default to printing all options

commit 2917d2411672b6720df8124210fcc7fb6c820c7f
Author: Dean Wilson <dean.wilson@gmail.com>
Date:   Tue Dec 13 18:22:34 2011 +0000

    (#10950) Make config print default to printing all options
    
    When given no argument make 'puppet config print' print full configuration.
    Before this it returned nothing.
    
    Signed-off-by: Patrick Carlisle <patrick@puppetlabs.com>

commit ebd9a7fc101380d2719e4aa0d10d0283e6c447ad
Author: Whyme.Lyu <5longluna@gmail.com>
Date:   Mon Sep 12 19:01:24 2011 +0800

    Make the URL part of pacman_spec DRY

commit 5a3b1d9464ca73ade0032ed41da82a9137714b58
Author: Whyme.Lyu <5longluna@gmail.com>
Date:   Mon Sep 12 18:50:33 2011 +0800

    Accept URL as pacman package source

commit 53dd20f1536c3084d9426b8409f6364de1c353f0
Author: Whyme.Lyu <5longluna@gmail.com>
Date:   Mon Sep 12 18:09:35 2011 +0800

    Use pacman -U to install from source

commit 0740e9507dd0a54734b29ca8d16641aea44b94e5
Author: Whyme.Lyu <5longluna@gmail.com>
Date:   Mon Sep 12 18:01:12 2011 +0800

    Be specific when stubbing @resource[:name]

commit 1826e0508d11d1a9f8dd6ab652eec99b80d63241
Merge: 9d08fed 42783d5
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Dec 19 09:57:09 2011 -0800

    Merge pull request #285 from jhelwig/disable-srv-lookup-by-default-in-tests
    
    Disable SRV lookups of hosts by default when testing

commit 42783d55602bf9d616f4f25927dc86d10993885f
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Dec 19 12:47:54 2011 -0500

    Disable SRV lookups of hosts by default when testing
    
    The old behavior of leaving SRV lookups turned on by default in tests
    was causing problems if the machine running the tests reported itself
    as having a domain name that has SRV records setup for Puppet.  This
    would cause extra calls to Puppet.warning due to the failed connection
    attempts, which could cause a problem if the test was looking
    for specific warnings (which
    spec/unit/indirector/facts/inventory_service_spec.rb does).

commit 9d08fed3602aaa53015f2acbdb87c9c546987bb1
Merge: 9b7c73a 45f0855
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Dec 16 15:49:26 2011 -0800

    Merge branch '2.7.x'

commit 45f0855bd6be36a66acd0a28a8ed83e2d63af239
Merge: 788d936 84fdf6f
Author: lifton <lifton@puppetlabs.com>
Date:   Fri Dec 16 15:25:20 2011 -0800

    Merge pull request #284 from MaxMartin/ticket/2.7.x/10109-composite-namevars
    
    Ticket/2.7.x/10109 composite namevars

commit 735acad5ff07f3efa77097aa75d83d92b695fa9e
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Dec 16 20:32:27 2011 +0000

    (#11414) Test Augeas versions correctly with versioncmp
    
    The release of Augeas 0.10.0 broke simplistic version comparisons with the >=
    operator, so now use versioncmp.

commit 788d9368cb33a14a9b27a61da2af57dbe38b1ac2
Merge: e404391 8ec6086
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Dec 16 12:24:05 2011 -0800

    Merge pull request #282 from jhelwig/last-run-summary-permissions-on-windows
    
    Last run summary permissions on windows

commit 3239ab3f7776ba9c58fd6c87ed33ad31d3eb42b7
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Dec 16 20:22:54 2011 +0000

    (#11414) Save/execute changes on versions of Augeas < 0.3.6
    
    Versions of Augeas prior to 0.3.6 didn't report their version number, so a
    fallback of executing changes once in need_to_run? and again in execute_changes
    is performed.  Otherwise a save is done in need_to_run? and this is re-used in
    execute_changes.
    
    The /augeas/events/saved node is used to tell whether the latter optimisation
    happened, but the return value of #match wasn't tested correctly (it's an empty
    array).

commit 8ec608644d8b39816503acab4b1bbfc21dfea306
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Dec 16 14:25:32 2011 -0500

    Account for Windows file mode translation for lastrunfile
    
    Windows file modes do not directly translate to POSIX file modes, so
    we can't use the same file mode on Windows to check that setting the
    mode worked correctly.

commit e40439196af14f90d8a321999b782f24a3fa59f6
Merge: 4cc1142 b28cac8
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Dec 16 13:50:17 2011 -0500

    Merge branch 'tickets/2.7.x/7106-last-run-summary-permissions' into 2.7.x
    
    * tickets/2.7.x/7106-last-run-summary-permissions:
      (#7106) Obey specified owner, group, and permissions for last run summary file

commit b28cac8bea0eef58791c9e7e0749e5762f6e59d1
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 12 17:38:46 2011 +0100

    (#7106) Obey specified owner, group, and permissions for last run summary file
    
    When writing the last run summary (puppet settings lastrunfile), we
    now enforce any specified mode.  The default permissions have also
    been changed to 0644.  This can be changed in puppet.conf:
    
      [agent]
      ...
      lastrunfile = /tmp/lastrun.yml { mode=0664 }
      ...
    
    While the owner and group can be specified, the only choices that work
    at this time are root, and the service user/group.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>

commit 4cc1142da35ecc3b052c67e550bba5d39c2b78f4
Merge: a08370d d4d3cb3
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Dec 16 09:20:50 2011 -0800

    Merge pull request #280 from joshcooper/ticket/2.7.x/10586-file-sourcing-from-master
    
    (#10586) Don't copy owner and group on Windows when sourcing from master

commit a08370db73c2a9f8de4531d22565f94a3910ecfd
Merge: 9338445 b8c5ee2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Dec 15 17:36:43 2011 -0800

    Merge pull request #281 from joshcooper/ticket/2.7.x/11408-fact-plugin-sync
    
    (#11408) Fix fact and plugin sync on Windows

commit b8c5ee2172e53fd2a9398787f00752baadb02823
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Dec 15 15:11:22 2011 -0800

    (#11408) Fix fact and plugin sync on Windows
    
    Previously, fact and pluginsync were broken on Windows, because it was
    defaulting the owner and group to Process.uid/gid, and then failing to
    translate them into Windows SIDs.
    
    This commit changes the default file owner to the current user name,
    and the default file group to Nobody, which is the group that Windows
    typically applies to newly created files.

commit d4d3cb363eaeb29087498ae249dfe21d28d18201
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Dec 15 14:20:00 2011 -0800

    (#10586) Don't copy owner and group when sourcing files from master
    
    Previously, puppet on Windows was not able to source files from the
    master, because it was attempting to translate the uid/gid from
    the Unix master into a Windows account, and obviously failing.
    
    This commit skips the owner and group properties when copying them
    from non-local sources, i.e. sources whose URIs have a 'puppet'
    scheme.
    
    If the source comes from a local source, then puppet behaves the same
    as it did previously, it copies the owner and group if the source
    volume supports Windows ACLs, e.g. C:/, samba mapped drives, or uses
    default values if the volume does not, e.g. VMware shared drives.

commit 933844567fbe4078cb76f2c089ced1cb6c4170b7
Merge: 2717c55 1519d30
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Dec 15 16:24:53 2011 -0800

    Merge pull request #279 from pcarlisle/tickets/2.7.x/7428-cert-ruby-1.9.2-issues
    
    (#7428) Fix option parsing for ruby 1.9 in cert application

commit 1519d30b1f1e9058ec4be090afae9c03e2f4fbc5
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Dec 15 15:36:54 2011 -0800

    (#7428) Fix option parsing for ruby 1.9 in cert application
    
    In Ruby 1.9 block arity is strictly enforced. This changes options created
    using blocks to all take one argument. The OptionParser library handles this
    correctly even if an option doesn't take arguments (giving an argument of true
    if the block takes an argument).

commit 2717c55076ea42cd38ea8b549ee7add31d6bb722
Merge: 213cecc ff396bf
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Dec 15 13:20:43 2011 -0800

    Merge pull request #278 from nfagerlund/ticket/2.7.x/11404-type-reference-indentation
    
    Ticket/2.7.x/11404 type reference indentation

commit 213cecc80a2ffed3a6a19005a028aeebe2f74ccf
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Dec 15 11:53:08 2011 -0800

    Revert "(#11423) Clearer error message about duplicate imported resources."
    
    This reverts commit e8e1f577ba091203b05b4a8279aadd8c55a65fe7.
    
    This was committed directly rather than as a pull request because I misread
    the GitHub "online code editor" button, and it didn't behave the way I
    expected.
    
    I intended a pull request, rather than a commit, and will reissue this the
    right way.  Sorry. :(

commit e8e1f577ba091203b05b4a8279aadd8c55a65fe7
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Dec 15 11:49:10 2011 -0800

    (#11423) Clearer error message about duplicate imported resources.
    
    When multiple nodes export a resource with a duplicate type and title, and you import both, the error message misleadingly tells you that this was a *local* duplication.
    
    This improves the error message to cover all the bases, which is suboptimal - it should tell you where the duplicate comes from - but at least doesn't lead to a wild goose hunt for the *local* duplicate that doesn't exist.

commit ff396bfe35aeee9bd9194688a38e85f045cf95db
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Dec 14 17:42:41 2011 -0800

    Maint: Fix redhatfedorasusecentosslesoelovm in type reference
    
    Many providers are the default for an array of operatingsystem values.
    Although the dochook(:defaults) method was handling multiple defaults already,
    it wasn't handling multiple values for a single default very well, so we would
    say a provider was default for operatingsystem == redhatfedorasusecentosslesoelovm.
    
    This commit refactors that to render arrays of values for a single default as
    a comma-separated list, without breaking the way we handle string values for a
    single default.

commit 6682fe7f11c24b5c576eca42fe46ab5c1bf1bab6
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Dec 14 17:37:59 2011 -0800

    Maint: Padding should be added when dochook strings are consumed, not hardcoded into them
    
    Previously, the return values of the dochook_ methods in provider.rb had a
    leading two-space padding hardcoded into them. This was mostly fine, but had
    the potential to interact badly with semantic Markdown indentation. This
    commit moves the padding into the method where we compose those strings into
    their final position, which gets us some better separation of content and
    formatting.
    
    This commit also changes our display of extra info by giving it its own
    paragraph. Previous behavior was undefined and depended on whether the doc string
    ended with more than one newline; it usually appended the extra info to the
    final paragraph of the documentation.

commit b569c7e9720e0dfbe7519632dad594afdf8ae9f2
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Dec 14 17:29:16 2011 -0800

    (#11404) Fix broken and unreliable indentation in provider lists in type reference
    
    Previously, portions of a provider's documentation string could be wildly
    outdented relative to their surroundings, due to the interaction of some
    inaccurate assumptions; see http://projects.puppetlabs.com/issues/11404 for
    more details.
    
    This commit fixes these formatting glitches by normalizing the indentation of
    the various fragments we assemble into the provider parameter's doc string. We
    normalize the parameter's @doc explicitly with scrub(), and then we render the
    list of providers as a definition list, which implicitly normalizes indentation.

commit c15d997379a8b90793b90857301a5796bbadec3e
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Dec 14 16:22:07 2011 -0800

    Maint: Make indentation for markdown definition lists more readable and reliable
    
    Previously, we indented subsequent lines of definition lists with a four-space
    hanging indent. This ensured that multi-paragraph DD elements would work, but
    was unsightly. This commit changes the hanging indent for definitions to 2
    spaces, which also works but is much more legible before being processed into HTML.
    
    This commit also adds sanitization (via the scrub method) for definition text.
    Since scrub() is idempotent, and since the consequences of text with
    unreliable indentation making it into a DD element are so annoying, it makes
    sense to hedge our bets when creating the element.
    
    Test update included.

commit 77bf5f21054bcd66700282a13204d2aa1d544e2c
Author: S. Zachariah Sprackett <zac@sprackett.com>
Date:   Wed Dec 14 23:51:51 2011 -0500

    Add stdin parsing to puppet parser validate

commit e80ca2d8e7812b2d78a8e6494c6c7b1b7e1d0835
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Dec 14 16:18:45 2011 -0800

    (#11404) Move markdown_header and markdown_definitionlist to Puppet::Util::Docs
    
    The markdown_header and markdown_definitionlist methods are needed in places
    other than the Puppet::Util::Reference class. In particular, they may become
    necessary when assembling fragments of documentation from other fragments,
    much as we need to do for the :provider parameter.
    
    This commit puts them in the Puppet::Util::Docs module, which leaves them
    available when generating the references but also exposes them in many other
    places.

commit 7da15bfbcfd654a2e5104e838446ce1fabf05e42
Merge: 04b027b 471fb58
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Dec 14 14:41:23 2011 -0800

    Merge branch 'tickets/2.7.x/11333-fix-ensurable' into 2.7.x
    
    * tickets/2.7.x/11333-fix-ensurable:
      (#11333) Make Puppet::Type.ensurable? false when exists? is undefined

commit 471fb589a42cccfb2afa66abd60a9139ab8ec3c1
Author: Ilya Sher <ilya.sher@coding-knight.com>
Date:   Mon Dec 12 07:34:28 2011 +0200

    (#11333) Make Puppet::Type.ensurable? false when exists? is undefined
    
    Puppet::Type.ensurable? incorrectly returned true even when
    public_method_defined?(:exists?) was false because the check never
    actually happened. This make sure all the necessary methods are checked
    and adds tests.
    
    Signed-off-by: Patrick Carlisle <patrick@puppetlabs.com>

commit 04b027b8d4a4e13b4b9f2ee7cd4c01715ffd68e8
Merge: 40313fa 31cef94
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Dec 14 14:12:44 2011 -0800

    Merge branch 'tickets/2.7.x/10676' into 2.7.x
    
    * tickets/2.7.x/10676:
      Add config and puppet version to the last run summary file
      (#10676) Include all resource statuses in reports regardless of count

commit 31cef941a7d3048b6f5b22cc607b16715599a2cd
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 12 17:17:05 2011 +0100

    Add config and puppet version to the last run summary file
    
    I figured that it would be interesting to have those information
    in the last run summary.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f71af6f690a4630243d4c31ad568669cc624f7fb
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 12 17:16:21 2011 +0100

    (#10676) Include all resource statuses in reports regardless of count
    
    Before, we would only include resource status states, and
    failure/success counts if there were resources that were in these
    various states.  We now initialize the hashes used to gather the
    counts of these metrics so that they will include all known states,
    even if the count of resources that were in that state is zero.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>

commit 9b7c73a74d5d03ea157e1e4d5ae7a6eba99fd24e
Merge: 464a279 a584e4f
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Dec 14 13:40:51 2011 -0800

    Merge branch 'add-pkgin-provider'
    
    * add-pkgin-provider:
      Add pkgin package provider

commit a584e4f4c27937140a5602f314800d33189aabcf
Author: Paul Mucur <mudge@mudge.name>
Date:   Tue Nov 8 22:44:51 2011 +0000

    Add pkgin package provider
    
    pkgin is a binary package manager for pkgsrc as used by Joyent on
    their SmartMachines. This is a package provider for pkgin with the
    standard installable and uninstallable features.

commit c675726fcdabe84973e98b7bb20c8f91c108809f
Author: Bruno Léon <bruno.leon@savoirfairelinux.com>
Date:   Wed Dec 14 00:01:38 2011 -0500

    Add poller_tag, business_impact, realm attributes to nagios_types that supports them

commit 4bea1ef5dca1189d69d166aa9ee7018c57e55862
Author: Dean Wilson <dean.wilson@gmail.com>
Date:   Wed Dec 14 02:48:44 2011 +0000

    Display the correct option when rasing the error - issue #7476

commit 132dca4c894a5126f0f31aca741ed1e57992f71d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Dec 13 14:29:18 2011 -0800

    (#6710) Support relationships for resources defined by other constructs
    
    This adds support for using a variable, resource ref-like string, case
    statement, selector, or array/hash access for either side of a
    relationship. For example, it is now legal (if unwise) to write the
    following:
    
      notify { [a,b,c]: }
      $var = Notify[a]
      $var -> case 'x' {
        'x': {
          notify { d: }
        }
      } ~>
      'x' ? {
        'x' => Notify[b]
      } <- "Notify[c]"

commit 982564ece58be241a4e515c3d10860d70a58f6f7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Dec 13 11:33:32 2011 -0800

    (#6710) Support relationship arrows between resource refs with title arrays
    
    Previously, a relationship such as
    
      Notify[a,b] -> Notify[c,d]
    
    would fail, because relationship objects didn't handle arrays of
    resources, and tried to look them up as though the title array were a
    single resource name. Now, relationships will be established for each
    resource specified by the ref.

commit 0e6d0a4c46cc0897a3d7f79a9f2ab5ed438399de
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Dec 13 14:23:19 2011 -0800

    maint: Unify 'type' and 'classref' non-terminals in the grammar
    
    These both wrapped the CLASSREF token, except 'type' created an
    AST::Type object, whereas 'classref' just extracted the string value.
    This change removes the 'classref' non-terminal, replacing its uses with
    'type' and explicitly extracting the string value from the AST::Type
    instance.
    
    Ideally, this should probably either retain the AST::Type object and
    evaluate it where it's used, or remove the AST::Type leaf entirely, as
    it has no actual behavior of its own.
    
    Also removed some dead warnings (they were warning on a lower-case type,
    which can't happen).

commit 40313fa143ed97d9b4f83f150ba2d5c8811d40e3
Merge: 2eff2fa 2be44d4
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Dec 13 12:19:36 2011 -0800

    Merge remote-tracking branch 'jhelwig/tickets/2.7.x/8062-yum-epoch' into 2.7.x
    
    * jhelwig/tickets/2.7.x/8062-yum-epoch:
      (#8062) Consider package epoch version when comparing yum package versions

commit 2eff2fab91aa060aa53bbd202d88fb6ffd1871eb
Merge: 8ae917a 4d9e0c0
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Dec 13 10:48:53 2011 -0800

    Merge branch 'apache2-conf-fix' of git://github.com/eklein/puppet into 2.7.x
    
    * 'apache2-conf-fix' of git://github.com/eklein/puppet:
      Added missing RequestHeader entries to ext/rack/files/apache2.conf

commit 2be44d40dbccbb54d5ac730cf852d6e067b8c523
Author: Jude Nagurney <jude@pwan.org>
Date:   Thu Jun 23 10:20:28 2011 -0700

    (#8062) Consider package epoch version when comparing yum package versions
    
    By including the epoch version in the version returned as the "latest"
    available, we can now properly consider package updates where only the
    epoch version has changed.
    
    Signed-off-by: Jude Nagurney <jude@pwan.org>
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>

commit 8ae917aaeabc47fe950e0d580adde2d28f373de7
Merge: b9dcf4b e9a5116
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Dec 12 16:46:52 2011 -0800

    Merge branch 'tickets/2.7.x/6412' into 2.7.x
    
    * tickets/2.7.x/6412:
      (#6412) Return :undef when accessing non-existing hash/array elements

commit e9a5116f945adae5d3572d405c50f5450bb2b76d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 12 16:08:36 2011 +0100

    (#6412) Return :undef when accessing non-existing hash/array elements
    
    The truethiness test done in P::P::Scope.true? doesn't handle nil
    values, because it is not valid as result of a puppet expression.
    Unfortunately ruby hash['invalid'] or array[inexistant_index] returns
    nil which then was considered as true in an if expression.
    This patch makes sure :undef is returned in those cases.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b9dcf4b33aeb6b0b8bb3948138d657039c88e382
Merge: f4bf4f4 65086c4
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Dec 12 15:13:08 2011 -0800

    Merge remote-tracking branch 'stschulte/ticket/2.7.x/9544' into 2.7.x
    
    * stschulte/ticket/2.7.x/9544:
      (#9544) Stub command in package spec that needs root priviledges

commit fc3f8b93fa278b55c7899a247194a9e2ecd143f1
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Dec 12 14:50:46 2011 -0800

    Updated CHANGELOG for 2.6.13

commit f4bf4f46f0215ac54528687e04a32d6f64de2b3f
Merge: e465598 cbd78da
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 12 14:37:38 2011 -0800

    Merge branch '4865-notify-start-of-evaluation' into 2.7.x
    
    * 4865-notify-start-of-evaluation:
      (#4865) Log when we start evaluating resources at the info level

commit cbd78da1b8e1fa7d6d8f965abd701014b0c147b9
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 12 14:34:12 2011 -0800

    (#4865) Log when we start evaluating resources at the info level
    
    Since we log the final time at info it makes sense to log the start at info as
    well.

commit e465598ab1b7dc8481e7fa461d0c5d38fc2cdfd5
Merge: 56fbe01 a6996ba
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 12 13:26:29 2011 -0800

    Merge remote-tracking branch 'daniel-pittman/feature/2.7.x/4865-notify-start-of-evaluation-not-just-end' into 2.7.x
    
    * daniel-pittman/feature/2.7.x/4865-notify-start-of-evaluation-not-just-end:
      (#4865) Debug logging when we start evaluating resources.

commit 56fbe018bb7e317c8b5b19f69e95f4ee6acde2b9
Merge: bfcb508 e8f1407
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Dec 12 13:05:18 2011 -0800

    Merge pull request #267 from mmrobins/maint/2.7.x/add_tap
    
    Maint/2.7.x/add tap
    
    Thanks, Matt - awesome addition.

commit e8f140788c3b5d85e18d218b87e623b35e5aa91d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Dec 12 11:12:36 2011 -0800

    maint: Add tap to fix Ruby 1.8.5 failures
    
    The module tool used to rely on facets to get tap in Ruby 1.8.5, but it
    lost that behavior when ported over.  This monkey patches Kernel to have
    tap in case it doesn't already.

commit bfcb5084d85238ec120a921b4ecd8a90a59bc94a
Merge: 0be9f5c ddde61e
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 12 11:21:00 2011 -0800

    Merge branch '10321-rangearray' into 2.7.x
    
    * 10321-rangearray:
      (#10321) Fix array support in schedule's range parameter

commit ddde61ec3f02e09ef84893809b1e1ed09196bf93
Author: Sean Millichamp <sean@bruenor.org>
Date:   Thu Oct 27 10:53:27 2011 -0400

    (#10321) Fix array support in schedule's range parameter
    
    Change the schedule type's range parameter to properly evaluate
    all elements of a supplied array for validity instead of only
    checking the first member of the array. Add documentation to
    clarify that range does accept an array.
    
    Fix the associated tests to use must instead of should (Puppet::Type#should
    shadows the rspec should).
    
    Signed-off-by: Patrick Carlisle <patrick@puppetlabs.com>

commit 0be9f5c9e9afea23fddbcd556609bdc38d52ce1c
Merge: 0022f47 87f6f05
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Dec 9 18:49:11 2011 -0800

    Merge branch '2.7rc' into 2.7.x

commit 87f6f0546f25faf4fa3d370357c4e5bf70d49fde
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Dec 9 18:42:42 2011 -0800

    Update CHANGELOG for 2.7.9 release

commit 234afdf23ad94e66797bd9d4354139370f3f8548
Merge: 3265b2c da11dc7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Dec 9 15:54:54 2011 -0800

    Merge branch 'fix-1.8.5-incompatibilities' into 2.7rc

commit da11dc71b0fc5db4ae2df2c6d5836b0a48586bf4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Dec 9 15:26:08 2011 -0800

    Fix Ruby 1.8.5-incompatible code in FileBucket::Dipper spec
    
    The Digest::MD5.file method doesn't exist in 1.8.5, so we need to read
    the file and digest its contents ourselves.
    
    Reviewed-By: Josh Cooper <josh@puppetlabs.com>

commit 737c2f66476b2379f2546150856ea1cd7fdde08a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Dec 9 15:22:20 2011 -0800

    Fix Ruby 1.8.5-incompatible code in Transaction#eval_generate
    
    This was previously creating a Hash from an array of pairs.
    Unfortunately, Ruby 1.8.5 only supports an argument list of pairs rather
    than an array, so this code didn't work with that version.
    
    Reviewed-By: Josh Cooper <josh@puppetlabs.com>

commit 042925dfca3bcd19b3dd349629cd545c56fe31df
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Dec 9 15:24:36 2011 -0800

    Fix Ruby 1.8.5-incompatible code in spec setup
    
    The Range#step method in Ruby 1.8.5 expects to be passed a block, to
    which it will yield each stepped element. In 1.8.7, it will simply
    return an Enumerator (which we then enumerate) if no block is provided,
    but in 1.8.5, it will try to yield anyway and fail because there
    is no block.
    
    Reviewed-By: Josh Cooper <josh@puppetlabs.com>

commit 464a279c7425643188024ba7f98392b9057d6e35
Merge: 6036e5b 7145531
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Dec 9 10:36:03 2011 -0800

    Merge remote-tracking branch 'nicklewis/master'
    
    * nicklewis/master:
      Fix failing acceptance test in resource/file/source_attribute.rb

commit 71455315a7798d631e21cd905f797327dbed9e1c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Dec 9 10:28:34 2011 -0800

    Fix failing acceptance test in resource/file/source_attribute.rb
    
    This test was failing in some environments because the cert used by the
    master didn't explicitly set dns alt names, so it was possible it
    wouldn't have the name that the agent was trying to use to connect to
    it.

commit 0022f4712748907f9cbac8ed6e0082b41014628a
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Dec 8 17:06:20 2011 -0800

    Revert "Build a Rake task for building Apple Packages"
    
    This reverts commit 8cca3770ee0868201c81e15611753c224f902305.
    
    This new rake task was always trying to gather information needed only
    when generating the package for OS X, which was causing build failures
    in the CI system.

commit 4af4e79c3b2b86566ada589112f53515a47676f7
Merge: 2ae312f 3265b2c
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Thu Dec 8 15:46:15 2011 -0800

    Merge branch '2.7rc' into 2.7.x

commit 2ae312f09bbb64a439b24afcf0b2e952026ce038
Merge: 8cca377 8d83c4e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Dec 8 15:39:56 2011 -0800

    Merge pull request #261 from jeffmccune/minor/2.7.x/11246_fix_grammar_feedback_from_brice
    
    Minor/2.7.x/11246 fix grammar feedback from brice

commit 3265b2c2c2805af100fc1f0c8d5eb27afd4c76b0
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Thu Dec 8 15:37:54 2011 -0800

    Updating CHANGELOG for 2.7.8 release

commit 8d83c4e218be92a7253c2a8021d2cf1769cde7ca
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu Dec 8 15:37:24 2011 -0800

    (maint) Fix grammar mistakes in README_DEVELOPER
    
    This is a documentation only patch that fixes some minor mistakes
    @masterzen kindly pointed out in pull request #250.

commit 8cca3770ee0868201c81e15611753c224f902305
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Mon Dec 5 14:27:23 2011 -0800

    Build a Rake task for building Apple Packages
    
    The goal is to have our release managers build all Puppet packages
    within Rake, and so this commit adds a rake task (apple_package) that
    will build a DMG-encapsulated package for OS X and put it into the
    pkg/apple directory off of the Puppet Root.
    
    To accomplish this goal, a folder structure is created in
    /tmp/puppet/puppet-#{version} that mirrors the structure needed for
    Apple's Packagemaker CLI tool to build a package for OS X. Next, the
    necessary files are copied from the Puppet source into the structure in
    /tmp/puppet/puppet-#{version} and then packagemaker is run
    (targeting that folder structure) to build an initial package. Hdiutil
    then encapsulates that package into a DMG, and the file is finally
    copied into the pkg/apple directory.
    
    Namespace package:apple rake task
    
    To align with the current rake workflow, the action to build an Apple
    package should be namespaced under the package action. This commit does
    that. Checks have also been added to ensure that the package:apple task
    is run as root (which is necessary for OS X) and that the packagemaker
    binary is installed (as its necessary for the task). If neither is true,
    the task will fail sanely (as opposed to a stack trace).
    
    Use git describe to get Puppet version
    
    Using `git describe` over Puppet::PUPPETVERSION to get the current
    Puppet version allows us to pull in the 'RCx' tag which can be used to
    build the package. `git describe` is split on the hyphen ( - ) to remove
    all the additional cruft at the end. Finally, the package minor version
    splits on 'rc' since prototype.plist can only contain integers and not
    string data.
    
    Install into /usr/lib/ruby/site_ruby
    
    In order to support 10.4 (which will be dropped in 2.8.x), we must
    install puppet into /usr/lib/ruby/site_ruby/1.8 as opposed to
    /Library/Ruby/Site/1.8. The prototype.plist file we bundle with the
    package we create sets the IFPkgFlagFollowLinks key to true, so as long
    as the symlink exists the package we build will respect it.
    
    There IS a bug in OS X
    (http://openradar.appspot.com/9202152) where the symlink in
    /usr/lib/ruby/site_ruby is incorrect PRIOR to the first time the OS is
    booted, but the symlink gets fixed at first boot. Users who build a
    previously-unbooted-pristine-image of OS X and who also intend to
    install Puppet on that image BEFORE it is booted may need to modify
    their package to target /Library/Ruby/Site/1.8, however we cannot do
    this at this time as OS X 10.4 DOES NOT have a /Library/Ruby/Site/1.8
    folder.

commit 6036e5bc057544643b8760587bc1f2e88cdb6c08
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Dec 8 14:31:35 2011 -0800

    Fix tests for MacPorts provider when MacPorts is not installed

commit a52eb6ecaa8dca06639c60f05f3204eefdb4d482
Merge: 10c1c16 3d16094
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Dec 8 14:09:20 2011 -0800

    Merge branch 'fix-macports'
    
    * fix-macports:
      (#8374) Make MacPorts provider ignore warnings from port command
      (#8319) Fix macports provider when ensure is latest but the package is not present
      (#8314) Ignore variants in installed macports packages
      (#6830) Fix macports provider under ruby 1.9.2

commit 3d1609489265ae466baa3a062c3219f8d9bd45f5
Author: Matthias Pigulla <mp@webfactory.de>
Date:   Thu Aug 25 00:06:43 2011 +0200

    (#8374) Make MacPorts provider ignore warnings from port command
    
    Call port using combine => false to ignore errors.
    
    Signed-off-by: Patrick Carlisle <patrick@puppetlabs.com>

commit c730aaeadbeec6aed78760402b60a4c35e97c151
Author: Matthias Pigulla <mp@webfactory.de>
Date:   Thu Aug 25 00:04:24 2011 +0200

    (#8319) Fix macports provider when ensure is latest but the package is not present
    
    The query method is expected to return an array but could return nil if a
    package was not present. Make sure it just returns an empty array in that
    case.
    
    Signed-off-by: Patrick Carlisle <patrick@puppetlabs.com>

commit 40b4a41fe287334b0dad55a496a07c442d34b50b
Author: Matthias Pigulla <mp@webfactory.de>
Date:   Thu Aug 25 00:02:38 2011 +0200

    (#8314) Ignore variants in installed macports packages
    
    We don't support specifying variants through puppet, so we want to ignore them
    when listing local packages so that versions compare correctly.
    
    Signed-off-by: Patrick Carlisle <patrick@puppetlabs.com>

commit 72edd9d75c9c8249606524b772ef93629907e8de
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Thu Dec 8 11:18:19 2011 -0800

    (#6830) Fix macports provider under ruby 1.9.2
    
    Change a String#each to String#each_line since each was removed in 1.9.

commit 4275fd498528254f48ea4e0246f465cc9c6eb436
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Dec 8 11:28:38 2011 -0800

    (#11291) Update description of show_diff setting to match behavior as of 2.7.8
    
    Issue #2744 changed the behavior of diff printing so that diffs pass through
    Puppet's reporting/logging system, which changes both the situations where it
    is useful to print diffs, and the security considerations of printing diffs. This
    commit updates the setting's description accordingly.
    (cherry picked from commit 901a6b26c06dbfd8fa52be9c5a7f24bcaae4144a)

commit 66c3662baec3b0ca69a58c4cd11484d5ed209dad
Merge: eae2c9d 901a6b2
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Dec 8 11:42:09 2011 -0800

    Merge remote-tracking branch 'nfagerlund/ticket/2.7.x/11291_show_diffs_description' into 2.7.x
    
    * nfagerlund/ticket/2.7.x/11291_show_diffs_description:
      (#11291) Update description of show_diff setting to match behavior as of 2.7.8

commit 901a6b26c06dbfd8fa52be9c5a7f24bcaae4144a
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Dec 8 11:28:38 2011 -0800

    (#11291) Update description of show_diff setting to match behavior as of 2.7.8
    
    Issue #2744 changed the behavior of diff printing so that diffs pass through
    Puppet's reporting/logging system, which changes both the situations where it
    is useful to print diffs, and the security considerations of printing diffs. This
    commit updates the setting's description accordingly.

commit 10c1c16f1d76fe044ca2d14aa900233c57364547
Merge: 94bdc38 803e92f
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Dec 8 11:28:04 2011 -0800

    Merge remote-tracking branch 'nicklewis/fix-read_body-called-twice'
    
    * nicklewis/fix-read_body-called-twice:
      Don't try to read the body of a file content response twice

commit 803e92f38aa9317ac1dd617a892da5449c2d8638
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Dec 7 12:08:48 2011 -0800

    Don't try to read the body of a file content response twice
    
    Previously, get_file_from_source was calling Net::HTTP#request_get to
    request file content, and yielding the response to
    chunk_file_from_source, which would read the body. However, when called
    without a block, request_get will read the body itself before returning
    the response. This caused an error when chunk_file_from_source then
    tried to read (and inflate if necessary) the body.
    
    Now, get_file_from_source will pass its block along to request_get,
    which will yield the unread response, rather than yielding the result of
    request_get, which is a read response. This prevents a double read
    error, and also allows us to properly inflate the body.

commit 84fdf6f0f9f46b12bfca5f75f0e4bb47e91c9899
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Dec 8 11:11:02 2011 -0800

    (#10109) Make resourcefile work with composite namevars
    
    The code for creating the resourcefile was directly calling
    resource.name_var, which was causing problems with resources that have
    composite namevars (since, for these, Type#name_var will return false).
    This patch sanitizes the process by first checking whether there is a
    single namevar, and simply calling resource.ref if there is not one.
    
    Reviewed-by: Matt Robinson

commit eae2c9df6f956f36ee3419997c12710e20b440ff
Merge: 7d38216 05b3cac
Author: Carl Caum <carl@carlcaum.com>
Date:   Thu Dec 8 11:02:36 2011 -0800

    Merge pull request #231 from kelseyhightower/ticket/2.7.x/10940_deprecate_apply_for_catalog
    
    Ticket/2.7.x/10940 deprecate apply for catalog
    
    Reviewed by Carl Caum <carl@puppetlabs.com>

commit 7d38216238203d2cf7273af228a0b86b872c69da
Merge: 5da4875 15f7a1c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Dec 8 10:48:14 2011 -0800

    Merge pull request #250 from jeffmccune/ticket/2.7.x/11246_fix_utf8_string_to_yaml_bug
    
    (#11246) Fix UTF-8 String#to_yaml bug

commit 5da4875a50cf29079ea8c3c8bcb3ce50ad7f02f2
Merge: 64a3e14 3ab4d63
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Dec 8 10:42:28 2011 -0800

    Merge remote-tracking branch 'masterzen/tickets/2.7.x/10066' into 2.7.x
    
    * masterzen/tickets/2.7.x/10066:
      Fix #10066 - when fingerprinting, agent should not daemonize

commit 64a3e145b3dfb6992e159a9729dfd2d05f9fdcdf
Merge: 5585afc 599a146
Author: Kelsey Hightower <kelsey.hightower@puppetlabs.com>
Date:   Thu Dec 8 10:34:59 2011 -0800

    Merge pull request #256 from ody/ticket/2.7.x/11273_init.pp_template_for_module_face_should_be_more_thorough
    
    Ticket/2.7.x/11273 init.pp template for module face should be more thorough

commit 15f7a1c7ed5bbf635633c3ff0588550ab852716b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Dec 7 19:21:24 2011 -0800

    (#11246) Add README_DEVELOPER describing UTF-8 in Puppet
    
    Without this patch, developers of Puppet don't have a clear place to get
    a high level understanding of the way other Puppet developers are
    working with UTF-8 and the differences in character encodings between
    Ruby 1.8 and 1.9.
    
    This patch addresses this problem by adding a new document,
    README_DEVELOPER.md where developers and contributors can look to for
    high level information.

commit 5585afc591c10058dd0baa8cbb2f4a7564c945d9
Merge: 0f56154 1e8e34b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 7 17:20:38 2011 -0800

    Merge remote-tracking branch 'matt/ticket/2.7.x/11276_module_tool_tar_on_windows' into 2.7.x
    
    * matt/ticket/2.7.x/11276_module_tool_tar_on_windows:
      (#11276) Fix module install specs that fail on windows
      (#11276) Mark module tool tests as failing on Windows

commit 1e8e34bfba3a8344da87932a6ac4936010c26ff9
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Dec 7 16:40:45 2011 -0800

    (#11276) Fix module install specs that fail on windows
    
    expand_path is our friend for cross platform testing.  Also, need to
    require module_tool in order to run the install_spec.rb on its own.

commit 0f56154d3cdcb49106dd1a17687dd69492f02be4
Merge: 999355f c78d17e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Dec 7 17:09:20 2011 -0800

    Merge pull request #258 from lifton/ticket/2.7.x/7110_better_ssl_error
    
    Ticket/2.7.x/7110 better ssl error

commit c78d17e365d21fa443ada615844dbc8e5fad425e
Author: Joshua Harlan Lifton <lifton@puppetlabs.com>
Date:   Wed Dec 7 11:13:42 2011 -0800

    (#7110) Better SSL error message certificate doesn't match key
    
    Previously, any error with the certificate retrieved from the master
    matching the agent's private key would give the same static error
    message, which wasn't particularly helpful. This commit differentiates
    three different error cases: missing certificate, missing private key,
    and certificate doesn't match private key. In the last case, the error
    message includes the fingerprint of the certificate in question and
    explicit command line instructions on how to fix the problem.
    
    In addition to all tests passing, I tested the error messaging and
    included instructions in a virtual machine setup running PE 2.0.0.

commit 00c76f6d36ccffb17bbbf3da056cbe01bf2f8211
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Dec 7 16:23:47 2011 -0800

    (#11276) Mark module tool tests as failing on Windows
    
    Until we can deal with the module tool's reliance on tar, either by
    recommending a tar installation for windows or not needing to, the
    module tool won't work on windows and I'm marking the specs accordingly.
    `puppet module search` currently works on windows, but it's one of the
    few actions that doesn't deal with tar files.

commit 94bdc38086e757f53573a88ce9ebec5d667ed9a4
Merge: 051cb74 b466c18
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Dec 7 16:22:00 2011 -0800

    Merge pull request #249 from lifton/master
    
    (#7110) Better SSL error message when certificate doesn't match key

commit b466c1801844606031580d06ea2a98bf7b8667c6
Author: Joshua Harlan Lifton <lifton@puppetlabs.com>
Date:   Wed Dec 7 11:13:42 2011 -0800

    (#7110) Better SSL error message certificate doesn't match key
    
    Previously, any error with the certificate retrieved from the master
    matching the agent's private key would give the same static error
    message, which wasn't particularly helpful. This commit differentiates
    three different error cases: missing certificate, missing private key,
    and certificate doesn't match private key. In the last case, the error
    message includes the fingerprint of the certificate in question and
    explicit command line instructions on how to fix the problem.
    
    In addition to all tests passing, I tested the error messaging and
    included instructions in a virtual machine setup running PE 2.0.0.

commit 051cb74fc71fef086cf345fefe1718fbeeb79f55
Merge: 3406081 5d426ac
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Dec 7 15:43:53 2011 -0800

    Merge branch 'tickets/master/10032-fix-acceptance-path-issues-on-solaris'
    
    * tickets/master/10032-fix-acceptance-path-issues-on-solaris:
      (#10032) Update test to run on solaris

commit 5d426ac95da9be311c8ac1b84e2ac9c7044cb71f
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Wed Oct 12 11:17:45 2011 -0700

    (#10032) Update test to run on solaris
    
    Update test to use the new "puppet" method vs. calling
    puppet via "on"; using "puppet" results in correct setting
    of RUBYLIB and PATH.

commit 599a146386965f56b015530da59f3dd7cfc12415
Author: Cody Herriges <cody@puppetlabs.com>
Date:   Wed Dec 7 15:16:59 2011 -0800

    (#11273) Updates init.pp.erb for style guide.
    
      This patch introduces a more thorough init.pp template that outlines
      what parameters and variables are, a spot for Author, and Copyright;
      to be used when a new module skeleton is generated using the puppet
      module face.  Content is based on recommended puppet doc format, suggested by
      the official style guide.  Plus a few fix ups in syntax.  In testing this
      template I found errors in our style guide and will be pushing a branch to fix
      that recommendation too.

commit 999355facb493509e3648845286d6fefe6f598fd
Merge: cb753cd cd2d2f1
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Dec 7 15:05:31 2011 -0800

    Merge remote-tracking branch 'daniel-pittman/bug/2.6.x/9158-support-multiple-versions-of-stomp-gem' into 2.7.x
    
    * daniel-pittman/bug/2.6.x/9158-support-multiple-versions-of-stomp-gem:
      (#9158) Support old and new versions of STOMP gem.

commit cb753cdc562b078c2339ca00232038a66581c167
Merge: f7f4ac2 80e5d03
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Dec 7 14:47:05 2011 -0800

    Merge pull request #254 from kelseyhightower/ticket/2.7.x/11198_generated_module_templates_should_have_a_default_license
    
    Ticket/2.7.x/11198 generated module templates should have a default license

commit 80e5d03fd24f085a9cef6ff8838787c17f139aec
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Wed Dec 7 17:26:21 2011 -0500

    (#11198) Modulefiles should have a default license
    
    Before this patch, the module generate action generates Modulefiles
    with the license set to UNKNOWN, which is not a valid license.
    
    This patch fixes this issue by setting the default value of the
    `Puppet::Module::Tool::Metadata#license` attribute to 'Apache License,
    Version 2.0' by default. This patch also adds a new unit test verifying
    this this change.

commit eec749523cf0de97b426cf84e63e78fd8f2f634a
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Dec 6 22:05:00 2011 -0800

    (#11246) Fix UTF-8 String#to_yaml exception
    
    Without this patch, String instances with an encoding of UTF-8 cannot be
    serialized to YAML.  The method that coverts non-ascii 8bit printable
    bytes to escape sequences uses regular expressions to match specific
    bytes in the string.  This works fine in Ruby 1.8, but Ruby 1.8 adds
    encodings to Regexp and String instances.  This is a problem because
    regular expressions of one encoding may not work with Strings of another
    encoding.
    
    This patch fixes the problem by ensuring Regexp's clearly assuming a
    byte sequence rather than a character sequence used in the YAML
    serialization process are given an ASCII-8BIT encoded string.
    
    A new helper method String#to_ascii8bit is added by this patch to make
    Ruby 1.8 support easier.  None of this matters with Ruby 1.8 so the
    helper method simply returns the string itself.  If the String does have
    an encoding, but it's already ASCII-8BIT the helper also returns the
    string itself.
    
    In the case the String has an encoding and it's not a byte sequence with
    ASCII-8BIT encoding, we make a duplicate of the string so we can force
    the encoding.  The duplicate is necessary so we don't change the
    encoding of the original string.  For extremely large strings this may
    be an issue and other strategies may be necessary.

commit f7f4ac206bfc231700ded1c4d528da755b32225b
Merge: 379fdaf b2cfe28
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Dec 7 11:32:38 2011 -0800

    Merge pull request #244 from kelseyhightower/ticket/2.7.x/7656_module_tool_should_be_a_face
    
    Ticket/2.7.x/7656 module tool should be a face

commit 3406081b3d91bb796f8fa666d22a05054fda42f4
Merge: 814323e ca5749c
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Dec 7 11:19:18 2011 -0800

    Merge branch 'tickets/master/10064'
    
    * tickets/master/10064:
      (#10064) Add the Puppet environment to reports

commit ca5749c6d47073d53e9e27a5242e2a6e07b70db2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 14 12:08:34 2011 +1100

    (#10064) Add the Puppet environment to reports
    
    Previously the Puppet environment was not included in
    the report output. Using the model of how configuration_version
    was added to the reports the environment will now also be reported.
    
    Puppet::Transaction::Report now takes three arguments:
    
    * Kind of report
    * Configuration version
    * Environment
    
    Tests for this have been added and existing tests updated.

commit a01aab2ce758f6b38f3a52c36842834cd08e3644
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Dec 7 10:45:24 2011 -0800

    (#11246) Add UTF-8 String#to_yaml spec tests
    
    This patch adds a specification test to validate that Puppet can
    properly serialize a UTF-8 encoded string to YAML.  Without this patch
    we don't have a test that covers this desired behavior.
    
    This patch provides an automated way to reproduce the bug reported in
    ticket #11246.
    
    The specific test for #11246 that will fail with Ruby 1.9 but not with 1.8 are
    these two.  The tests encode and catch our expectation that UTF-8 encoded
    strings properly serialize and de-serialize to and from YAML.
    
      1) UTF-8 String YAML Handling (Bug #11246) UTF-8 String Literal should serialize to YAML
         Failure/Error: subject.to_yaml
         Encoding::CompatibilityError:
           incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)
         # ./lib/puppet/util/zaml.rb:241:in `block in to_zaml'
         # ./lib/puppet/util/zaml.rb:90:in `first_time_only'
         # ./lib/puppet/util/zaml.rb:227:in `to_zaml'
         # ./lib/puppet/util/zaml.rb:22:in `dump'
         # ./lib/puppet/util/monkey_patches.rb:32:in `to_yaml'
         # ./spec/unit/util/zaml_spec.rb:83:in `block (3 levels) in <top (required)>'
    
      2) UTF-8 String YAML Handling (Bug #11246) UTF-8 String Literal should serialize and deserialize to the same thing
         Failure/Error: YAML.load(subject.to_yaml).should == subject
         Encoding::CompatibilityError:
           incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)
         # ./lib/puppet/util/zaml.rb:241:in `block in to_zaml'
         # ./lib/puppet/util/zaml.rb:90:in `first_time_only'
         # ./lib/puppet/util/zaml.rb:227:in `to_zaml'
         # ./lib/puppet/util/zaml.rb:22:in `dump'
         # ./lib/puppet/util/monkey_patches.rb:32:in `to_yaml'
         # ./spec/unit/util/zaml_spec.rb:86:in `block (3 levels) in <top (required)>'

commit 379fdafdcc1cc07582a9a9ebca1200a417aab4c8
Merge: 5e46f6a a89fe49
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Wed Dec 7 09:57:48 2011 -0800

    Merge branch '9768_default_resources' into 2.7.x
    
    * 9768_default_resources:
      (#9768) Add a defaults argument to create_resources
      (#6830) Fix create_resources spec for ruby 1.9

commit a89fe49ede14e54ea511e644bd281795b23efca5
Author: Matthias Pigulla <mp@webfactory.de>
Date:   Tue Dec 6 16:44:02 2011 -0800

    (#9768) Add a defaults argument to create_resources
    
    Make it possible to supply defaults when calling create_resources using an
    optional hash argument.
    
    Signed-off-by: Andre Nathan <andre@digirati.com.br>
    Signed-off-by: Patrick Carlisle <patrick@puppetlabs.com>

commit 814323ec3175e48f0c3eae7d0ea1414006b43731
Merge: 752b04d 53062c9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Dec 7 09:55:27 2011 -0800

    Merge remote-tracking branch 'daniel-pittman/feature/master/9508-auth-any-rather-than-auth-no'
    
    * daniel-pittman/feature/master/9508-auth-any-rather-than-auth-no:
      (#9508) Unify `auth no` and `auth any` in the system.

commit 752b04de857de0ae72822ed3031ac067bd820efe
Merge: 21be6e7 8c0d3ea
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Dec 6 21:41:41 2011 -0800

    Merge branch 'ticket/master/7592-augeas'
    
    * ticket/master/7592-augeas:
      (#7592) Remove redundant call to String#to_s

commit 8c0d3ea6d45b47c1a3a6b5310df8861a8bfbc108
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Dec 6 21:18:40 2011 -0800

    (#7592) Remove redundant call to String#to_s
    
    Previously, the augeas provider made calls like the following:
    
     @aug.get(key).to_s
    
    Since the Augeas#get method returns a String not an array, the to_s
    call is redundant. (Note the #match method does return an array.)
    
    The augeas tests were stubbing the #get method to return an array in
    some places (and a string in others). Prior to 1.9.2, ruby will
    automatically convert ["foo"].to_s to "foo", so everything worked as
    expected. However, under 1.9.2, ["foo"].to_s becomes "[\"foo\"]".
    
    These failures weren't noticed earlier, because our 1.9.2@allFeatures
    jenkins nodes do not have ruby-augeas installed. In other words, tests
    that require Puppet.features.augeas? were never running in
    Jenkins. The recent change to improve augeas testing, removed the
    dependency on this feature being installed, so these tests started
    failing.
    
    This commit just removes the redundant call to String#to_s, and
    updates the spec tests to match what the Augeas#get method really
    returns.

commit 21be6e7e9127123fbb9825bdf68502f7423db139
Merge: eb0db02 b958855
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Dec 6 20:10:58 2011 -0800

    Merge remote-tracking branch 'domcleal/tickets/master/7592'
    
    * domcleal/tickets/master/7592:
      (#7592) Replace all Augeas resource stubs with real resources

commit eb7be189fec630a4ba5c7fe549ad14c469d97f27
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Dec 6 16:41:51 2011 -0800

    (#6830) Fix create_resources spec for ruby 1.9
    
    These tests broke because of changed behavior in Array#to_s, which exposed a
    bug if add_class is passed an array instead of *args.

commit 5e46f6ae171ad975b36c638c69cd72be5d8fafa4
Merge: 7328d80 1912c19
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Dec 6 14:58:17 2011 -0800

    Merge remote-tracking branch 'nanliu/ticket/2.7.x/8547' into 2.7.x
    
    * nanliu/ticket/2.7.x/8547:
      (#8547) Update storeconfigclean script to read puppet.conf

commit b2cfe284365221c32a750ea3879a1db6acddf8dc
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 17:14:54 2011 -0500

    (#7656) Rename module_tool face to module
    
    Before this patch the module face was named module_tool, this is not a
    very attractive name. Look at it, you have to type an underscore just to
    use it.
    
    This patch fixes this issue by simply renaming the face from module_tool
    to module. The patch does not change the name of the module tool library
    files, doing so would cause a conflict on the existing
    `lib/puppet/module.rb` module.

commit 7328d8079a4e76988c26e294149bf680f0de7ebd
Merge: 61d894e 0366789
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Tue Dec 6 14:10:25 2011 -0800

    Merge remote-tracking branch 'stschulte/feature/2.7.x/9997' into 2.7.x
    
    * stschulte/feature/2.7.x/9997:
      (#9997) Add mysql2 gem support

commit c658e723083e17c844e8be0bd339c40737cc69ad
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 15:07:46 2011 -0500

    (#7656) Add details about module testing to templates
    
    Before this patch, the `init.pp.erb` test template does not contain any
    information on how a user is supposed to use the tests, there is nothing
    guiding the user on what their next step should be.
    
    This patch solves this problem by adding a brief summary on how module
    testing works, and how to use them. A link to the online documentation
    is also provided as a convenience to the user.

commit 61d894eacfecf2cbe9c1ff0fd37eb81aed136615
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Aug 25 13:24:53 2011 -0700

    Merge pull request #61 from jblaine/patch-1
    
    Removed spurious "exec" from a debug string

commit 62f89c4b3896d914608ddb0ff09f5c55e62c38da
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 14:42:24 2011 -0500

    (#7656) Use core Puppet semver.rb lib
    
    Before this patch, the module face uses it's own Regex for testing
    if version strings meet Semantic Versioning Specification (SemVer)
    requirements. The code base also has an mis-named semver_spec.rb test,
    while it does test semver, it is more specific to the application base
    class for the module application.
    
    This patch fixes these issues by renaming the
    `spec/unit/module_tool/semver_spec.rb` file to
    `spec/unit/module_tool/application_spec.rb` and using the semver module
    in code Puppet.
    
    This patch also adds a custom setter method for the version
    attribute in the `Puppet::Module::Tool::Metadata` class, which validates
    version strings meet semver requirements before setting the version
    attribute.

commit e2a9ab90bbfbcca63c91888480c4b81cbd9d4cdd
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 13:31:54 2011 -0500

    (#7656) Replace SystemExit with better exceptions
    
    Before this patch, the module_tool application uses SystemExit when
    when raising certain errors. SystemExit is the wrong exception to raise
    as ArgumentError or RuntimeError would be more appropriate.
    
    This patch fixes this issue by replacing all occurrences of SystemExit
    with the more appropriate ArgumentError or RuntimeError exception.

commit 5bc5c50d34a5b41f4d563f4fb161a18ff7316673
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 11:49:57 2011 -0500

    (#7656) Remove redundant uri module
    
    Before this patch, the module_tool uri utility module provides redundant
    url checking and parsing.
    
    This patch fixes this problem by moving the checking and parsing in-line
    with the code processing the URL.

commit 22ac5b6b5c39588d349c3e253339da0bdb0cf4d0
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 10:54:04 2011 -0500

    (#7656) Encourage documenting license, and contact
    
    Before this patch, the README generated by the generate action creates a
    bare README file that does not encourage end-users to document
    licensing, and developer contact details.
    
    This patch fixes the issue by adding some stub content to the README
    template.

commit e9538af845d06c543b55bf3ff329a22e58d06259
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 10:38:10 2011 -0500

    (#7656) Cleanup repository_spec tests
    
    Before this patch, the repository_spec test does not use unique names
    for the stubs in the `#authenticate` examples. This makes it hard to
    identify what blew up in stack traces.
    
    This patch fixes this issue by using unique names for the stubs in the
    `#authenticate` examples.

commit c79f157fc6b7f8be996f20673573f459eac6ee5c
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 09:55:49 2011 -0500

    (#7656) Update comment string in the metadata module
    
    Before this patch, the metadata module has a comment which asks the
    question "Shouldn't this be it's own class?", when referring to the how
    the type metadata is managed.
    
    This has been discussed during a recent code review, and it has been
    decided that the answer to this question is no. Simple types(eg: Hash)
    are OK in this context. This patch removes this question as it is no
    longer valid.

commit 7a45cc78abcce994422969412128a7de1241c4b3
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 09:46:19 2011 -0500

    (#7656) Rename `Modulefile` to `ModulefileReader`
    
    Before this patch, the modulefile module uses a class name of
    `Modulefile` to refer to a class which reads modulefiles. The use of
    `Modulefile` in this case is a bit misleading and causes a readability
    issue.
    
    This patch fixes this issue by renaming `Modulefile` to
    `ModulefileReader`, which better describes the behavior of the class.

commit f463d90581f2a31dcb82a3c75a39f61cbb12afc7
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 09:06:31 2011 -0500

    (#7656) Rename full_name to full_module_name
    
    Before this patch, the module application uses the term full_name when
    referring to a "full" module name (username-modulename). The use of
    full_name causes a readability issue, as the name does not represent
    what it's describing.
    
    This patch fixes this issue by renaming full_name to full_module_name

commit 0843c9e5daa9b8789fb8c76102ed7f4a071666de
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 07:48:35 2011 -0500

    (#7656) Removed spec.opts template
    
    Before this patch, the generator action generated a rspec spec.opts
    template. This file is no longer required, as the rspec templates have
    been updated to use rspec 2.x.
    
    This patch fixes this issue by removing the spec.opts template.

commit 47e7b60f18d0ba7995fed9212533b711d5d8b7d6
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 07:39:27 2011 -0500

    (#7656) Use rspec 2.x in generator templates
    
    Before this patch, the generator action generated rspec templates setup
    to be run with rspec 1.x, and assumed the usage of rubygems. Rspec 2.x
    is now the preferred version and should be used instead.
    
    This patch fixes this issue by updating the rspec templates to use rspec
    2.x and removed the assumption of rubygems. With the moved to rspec 2.x,
    the `spec.opts` template is no longer required, and is being removed.

commit 5a8dc51e36bf8d6c70140d93331d960dd437be5a
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 07:23:02 2011 -0500

    (#7656) Rename contact to make_http_request
    
    Before this patch, the repository module used method names such as
    `contact` to refer the action of making an http request, and
    `read_contact` to refer to the action of reading an http response. This
    caused readability issues.
    
    This patch fixes these issues by renaming the following methods:
    
     * contact -> make_http_request
     * read_contact -> read_response
    
    This patch also updates the related unit tests to reflect the new names
    of these methods.

commit 90b1fcda2593b7e823876181262b034fb761a110
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 07:06:55 2011 -0500

    (#7656) Use a Puppet setting for default module repo
    
    Before this patch, the `Puppet::Module::Tool::Repository` class did not
    provide the ability for end-users to change the default module
    repository URL.
    
    This patch fixes this issue by using the `Puppet[:module_repository]`
    setting as the default module repository URL. This change allows
    end-users to change the default module repository via configuration.

commit a44aef9a0f668d3aa98aa01d734256874f666141
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Tue Dec 6 00:12:34 2011 -0500

    (#7656) Use Metadata fully qualified module name
    
    Before this patch, the application module did not use the fully
    qualified module name when referencing the Metadata class, which causes
    a readability issue.
    
    This patch fixes the issue by using the qualified module name when
    referencing the Metadata class.

commit 27d26ae7a78578163896be6c643ea42d8b48356c
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 23:29:00 2011 -0500

    (#7656) Show the default install-dir in help output
    
    Before this patch, the documentation for the install action did not show
    where the default install-dir was. It only made a reference that it
    would be used.
    
    This patch fixes this issue by using string interpolation in the
    description heredoc, which dynamically references the actual default
    install-dir.

commit 24557b98b15438ff00a50ac0ee2929568342f0d1
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 23:18:40 2011 -0500

    (#7656) Code cleanup for the generate action
    
    Before this patch, Daniel was not happy with the way I was iterating
    over the array of Pathname objects in the `when_rendering` method.
    
    This patch fixes this issue by using a more compact form of the same
    thing.

commit bad0112d45bf8d5e5a26c050c48abef123a267e4
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 22:48:00 2011 -0500

    (#7656) Show the format of the status hash for build
    
    Before this patch, the face documentation did not show the format of the
    status hash returned by the module build action.
    
    This patch fixes this issue by adding an example of the status hash to
    the build action face documentation.

commit 6d0e88aa14eed630501629edad26096c80810e59
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 22:39:42 2011 -0500

    (#7656) Add output to action examples
    
    Before this patch, the action examples did not provide example output.
    
    The patches fixes this issue by updating all module_tool actions with
    example out.

commit 5220af5b53945929bb269962272ebb01454815a3
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 22:07:17 2011 -0500

    (#7656) Fix inaccurate comment in the build action
    
    Before this patch, the comment in the build action `when_rendering`
    method inaccurately states that a return value is "printed" to the
    console.
    
    This patch fixes this issue by removing any references that the return
    value is "printed"; the `when_rendering` method only returns a string.

commit f33c2e42bda8033f810e89a0ae1b037193ca00a2
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 21:52:37 2011 -0500

    (#7656) Refactor the module face build action
    
    Before this patch, the build action attempted to located the root path
    of the module being built before calling the
    `Puppet::Module::Tool::Applications::Builder#run` method.
    
    This patch moves the logic of locating the module root path to the
    `Puppet::Module::Tool::Applications::Builder` class, as the root path of
    the module would never be changed directly in the faces code.

commit 62b59c16af498b049b48dac085525daf9ffb1b97
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 21:45:15 2011 -0500

    (#7656) Bump module face to version 1.0.0
    
    This patch bumps the module face version to 1.0.0. This patch does not
    introduce any changes in behavior.

commit feeecc4f2809d5e0bf88ccbdb0cfb64ece6d8151
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 21:33:22 2011 -0500

    (#7656) Remove unnecessary require of puppet/face
    
    This patch removes the unnecessary `require 'puppet/face'` line, which
    is no longer required in face applications.

commit 593b23e01cffdcb9f6775ed500ef36ba1d2f991f
Merge: d5a9db7 e45f5a7
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Dec 5 17:03:48 2011 -0800

    Merge remote-tracking branch 'patrick/fix_autorequire_tests' into 2.7.x
    
    * patrick/fix_autorequire_tests:
      Fix the targets in autorequire tests to use expand_path

commit e45f5a7938eb1e933967058b3f4e63e4c84da08d
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 5 17:00:21 2011 -0800

    Fix the targets in autorequire tests to use expand_path
    
    Since the source is expanded the target must also be expanded so they're
    evaluated as equal.

commit d5a9db768dc4e2fc4b082c8954520833910dd740
Merge: 02cdbaf b22df54
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Dec 5 16:45:43 2011 -0800

    Merge remote-tracking branch 'patrick/fix_autorequire_tests' into 2.7.x
    
    * patrick/fix_autorequire_tests:
      Fix tests for autorequiring links to work on windows

commit b22df540b508fb4e443bd82721cd3968fd06d2c0
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 5 16:33:12 2011 -0800

    Fix tests for autorequiring links to work on windows
    
    Use File.expand_path to ensure that "/foo" is an absolute path on all systems.

commit 02cdbaffa55fe016a257ba61f2778037d19b48cf
Merge: 4ca51f8 0200629
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Dec 5 16:20:20 2011 -0800

    Merge pull request #246 from pcarlisle/fix_validate_args
    
    Fix validate args

commit 4ca51f8a4ff0969251d5f224e52d3d126e12fa95
Merge: 5e9cf13 db962a5
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 5 16:00:12 2011 -0800

    Merge branch '5421' into 2.7.x
    
    * 5421:
      (#5421) Link should autorequire target

commit 0200629650e5513ee0bc8b90f9af210012f42779
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 5 15:53:05 2011 -0800

    Fix arity of blocks to validate for file properties
    
    In Ruby 1.9 define_method respects arity of blocks, so blocks given to
    validate must take one arg.

commit 5e9cf138aaf8a1686889495aceab02c1aaf280b9
Merge: bb5386c 94e9863
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 5 14:41:30 2011 -0800

    Merge branch '7004-plural-e' into 2.7.x
    
    * 7004-plural-e:
      (#7004) Correctly form singular for indirections ending in 'es'

commit 94e98633665512bf949a19aab4c13f51722a33d3
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Sep 18 13:30:05 2011 +0200

    (#7004) Correctly form singular for indirections ending in 'es'
    
    This got broken when the status indirection was added around
    d1f1858ea52d3089fd2088994e80d6f49d7e0347.
    
    The problem is that the regex matching is greedy so any indirection
    ending in e (and pluralized in 'es') will lose its trailing 'e'.
    
    Since all this was done for the status indirection, my fix is to
    treat differently this indirection only, instead of trying to fix
    the general case (and breaking it).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 664193834a8279b52f4a212db3153fd193702c22
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Mon Dec 5 14:16:29 2011 -0800

    Updating CHANGELOG for 2.6.13rc1

commit db962a592d5f346a68287f154b8da16211ff97aa
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Dec 1 18:36:12 2010 +0100

    (#5421) Link should autorequire target
    
    When we manage a local link to a directory and the target directory is
    managed by puppet as well, establish an autorequire. So if we have
    something like
    
      file { '/foo': ensure => directory }
      file { '/link_to_foo': ensure => '/foo' }
      file { '/link_to_foo/bar': ensure => file }
    
    we can ensure that puppet does not create dead links and does not try to
    create '/link_to_foo/bar' before /foo is created.

commit eb0db02f463df166fd7a8d14d126ab98364f3c66
Merge: 2d52b19 72736ef
Author: Patrick Carlisle <patrick@puppetlabs.com>
Date:   Mon Dec 5 11:44:31 2011 -0800

    Merge branch '9357-macports-install'
    
    * 9357-macports-install:
      (#9357) Delegate to install when upgrading MacPorts packages

commit 72736ef326ba133e02665ccf1557be32d719ee1f
Author: Matthias Pigulla <mp@webfactory.de>
Date:   Wed Sep 7 14:09:48 2011 +0200

    (#9357) Delegate to install when upgrading MacPorts packages
    
    When upgrading a package using MacPorts, use install instead of upgrade.
    Upgrade doesn't ensure that the most recent installed version is activated.
    
    Signed-off-by: Patrick Carlisle <patrick@puppetlabs.com>

commit bdeb3b77525bb3932ada6b5fa0c09289df7d8f48
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 12:07:02 2011 -0500

    (#7656) Add search action to module_tool face
    
    Before this patch, the module_tool face did not have the ability to
    search a repository for a module, and there was no test coverage for the
    module_tool search action.
    
    This patch adds support for searching a repository for a module to the
    module_tool face.
    
    Example usage:
    
        $ puppet module_tool search modulename
    
    This patch includes unit tests for the module_tool search action.

commit 41d10344f952e3be81ed40d50468651e44995bd9
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 12:06:14 2011 -0500

    (#7656) Add install action to module_tool face
    
    Before this patch, the module_tool face did not have the ability to
    install a module from a repository or release archive, and there was no
    test coverage for the module_tool install action.
    
    This patch adds support for installing a module from a repository or
    release archive to the module_tool face.
    
    Example usage:
    
        # Install a module from the default repository:
        $ puppet module_tool install username-modulename
    
        # Install a specific module version from a repository:
        $ puppet module_tool install username-modulename --version=0.0.1
    
        # Install a module into a specific directory:
        $ puppet module_tool install username-modulename --install-dir=path
    
        # Install a module from a release archive:
        $ puppet module_tool install username-modulename-0.0.1.tar.gz
    
    This patch includes unit tests for the module_tool install action.

commit 6d2fc99f0f8f30a3cfe59dfbbeb431d446eefca2
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 11:52:06 2011 -0500

    (#7656) Add generate action to module_tool face
    
    Before this patch, the module_tool face did not have the ability to
    generate boilerplate for a new module, and there was no test coverage
    for the module_tool generate action.
    
    This patch adds support for generating boilerplate for a new module to
    the module_tool face.
    
    Example usage:
    
        $ puppet module_tool generate username-modulename
    
    This patch includes unit tests for the module_tool generate action.

commit 626d876fa5907522123b52623b97def8cc570e86
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 11:49:17 2011 -0500

    (#7656) Add clean action to module_tool face
    
    Before this patch, the module_tool face did not have the ability to
    clean the module download cache, and there was no test coverage for the
    module_tool clean action.
    
    This patch adds support for cleaning the module download cache to the
    module_tool face.
    
    Example usage:
    
        $ puppet module_tool clean
    
    This patch includes unit tests for the module_tool clean action.

commit 5e77157895601598b1650b6e15bd6565da694afb
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 11:47:21 2011 -0500

    (#7656) Add changes action to module_tool face
    
    Before this patch, the module_tool face did not have the ability to
    show modified files of an installed module, and there was no test
    coverage for the module_tool changes action.
    
    This patch adds support for showing modified files of an installed
    module to the module_tool face.
    
    Example usage:
    
        $ puppet module_tool changes /path/to/module
    
    This patch includes unit tests for the module_tool changes action.

commit da4a2361c65f5b48558384927d8e65a50914bda0
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 11:45:29 2011 -0500

    (#7656) Add build action to module_tool face
    
    Before this patch, the module_tool face did not have the ability to
    build module release archives, and there was no test coverage for the
    module_tool build action.
    
    This patch adds support for building module release archives to the
    module_tool face.
    
    Example usage:
    
        $ puppet module_tool build /path/to/module
    
    This patch includes unit tests for the module_tool build action.

commit 7df5303b9f3613193cb4c092c57b4e8a5177e647
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 11:21:39 2011 -0500

    (#7656) Port PMT to faces, bundle in Puppet core
    
    Before this patch, Puppet did not have the ability to interact with the
    Puppet Module Forge (PMF).
    
    This patch is one of many patches that add a new module_tool face to
    core Puppet. This patch provides the foundation bits which setup the
    ground work for adding additional actions and features.

commit bf9e847d2bc1169993566cab441fcf6cad627f54
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 10:48:56 2011 -0500

    (#7656) Port PMT integration test into Puppet core
    
    Before this patch, the Puppet Module Tool (PMT) integration tests lived
    in the PMT codebase -- in a separate project.
    
    This patch ports the PMT integration tests into core Puppet with the
    following major changes and refactorings.
    
    All temp file and directory management logic is being removed in favor
    of using the existing helper methods in `PuppetSpec::Files`. This change
    has the added benefit of not leaving around temp files or directories
    after tests are run.
    
    The following helper methods are being merged into `module_tool_spec.rb`
    
     * `stub_repository_read`
     * `stub_installer_read`
     * `stub_cache_read`
     * `testdir`
     * `mktestdircd`
     * `rmtestdir`
    
    This change is being made because each of the above methods are only
    used by `module_tool_spec.rb`. This also removes the need to add another
    set of "global" helper functions to the code base. As a result of this
    change the `spec/support/output_support.rb`,
    `spec/support/stub_http_support.rb`, and `testdir_support.rb` modules
    are not being ported over.
    
    Tests have been updated to test the new return values of the generate,
    build, search, install, clean, and changes applications. This change is
    being made to reflect the new behavior of those actions, which now
    return either status hashes, Pathname objects, or an array of file
    paths.
    
    The following tests are being removed:
    
     * `repository`
    
    The single test for the `repository` sub-command is being removed
    because it is no longer valid. The `repository` sub-command is not being
    ported over.
    
    All tests are being updated to use the full name of the application
    under test, for example:
    
    `Puppet::Module::Tool::Applications::Generator.run`
    
    This change is being made to reflect the fact that the
    `lib/puppet/module/tool/cli.rb` module is not being ported over, so the
    abstraction provided by `Puppet::Module::Tool::CLI.new` is no longer
    available.
    
    This patch also renames the integration test from `cli_spec.rb` to
    `module_tool_spec.rb` in order to match the module name under test.

commit bce8e43298744be8cced7d995931524b636ed57f
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 10:31:02 2011 -0500

    (#7656) Port PMT unit test into Puppet core
    
    Before this patch, the Puppet Module Tool (PMT) unit tests lived in the
    PMT codebase -- in a separate project.
    
    This patch ports the PMT unit tests into core Puppet with the following
    major changes and refactorings.
    
    All spec tests are being updated to require modules located in their new
    location in the core Puppet codebase: `lib/puppet/module_tool`.
    
    The following tests are being removed:
    
     * `spec/unit/application_spec.rb`
    
    `application_spec.rb` is being removed because the tests are no longer
    valid, all examples are related to custom settings code that is not
    being ported over.
    
    The following tests are being renamed:
    
     * `spec/unit/tool_spec.rb`
    
     `tool_spec.rb` is being renamed to `module_tool_spec.rb`. This change
     is being made in order to match the new name of the module
     under test: `module_tool.rb`
    
    The following tests are being relocated:
    
     * `spec/unit/repository_spec.rb`
     * `spec/unit/semver_spec.rb`
    
    Both `repository_spec.rb` and `semver_spec.rb` are being relocated under
    the `spec/unit/module_tool` directory in core Puppet. This change is
    being made to match the new locations of the modules under test.

commit ee4dbf4d15207f84107ae5b0fb287b5425b3ebd9
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 10:14:38 2011 -0500

    (#7656) Port PMT test fixtures into Puppet core
    
    Before this patch, the Puppet Module Tool (PMT) test fixtures lived in
    the PMT codebase -- in a separate project.
    
    This patch ports the PMT test fixtures into core Puppet. There are no
    major changes or refactorings. This patch places the PMT test fixtures
    under the `spec/fixtures` directory; the same relative location of the
    previous codebase.

commit eb617e5d9093834588732e78f42e865c814b982b
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 09:57:57 2011 -0500

    (#7656) Add new PMT settings to core Puppet
    
    Before this patch, Puppet core did not support any settings for the
    Puppet Module Tool (PMT).
    
    This patch adds two (2) new settings to core Puppet:
    
     * module_repository
     * module_working_dir
    
    The module_repository setting is used to specify the remote module
    repository used for searching and installing modules; module_repository
    has a default value of 'http://forge.puppetlabs.com'.
    
    The module_working_dir setting is used to specify the directory into
    which module tool data is stored; module_working_dir has a default value
    of: '$vardir/puppet-module'.

commit ce218efd5b8261ad174abbd33e52049ed964ba0b
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 09:54:07 2011 -0500

    (#7656) Port PMT generator templates into core
    
    Before this patch, the Puppet Module Tool (PMT) generator templates
    lived in the PMT codebase -- in a separate project.
    
    This patch ports the Puppet Module Tool (PMT) generator templates into
    core Puppet with the following major changes and refactorings:
    
    The PMT generator templates now live under the
    `lib/puppet/module_tool/skeleton/templates` directory. This is a
    change from the previous location as the `template` directory lived at
    the root of the PMT project. This change is being made to remain
    consistent with the current core Puppet codebase and project layout.
    
    The ported version of `lib/puppet/module_tool/skeleton.rb` has been
    updated to reference generator templates in the
    `lib/puppet/module_tool/skeleton/templates/` directory.

commit 0c611869ef9442060128f7695de1103feebff757
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Mon Dec 5 09:31:39 2011 -0500

    (#7656) Port PMT codebase into Puppet core
    
    Before this patch, the Puppet Module Tool (PMT) codebase lived in it's
    own project.
    
    This patch ports the PMT codebase, mainly everything under the former
    `lib/puppet/module` directory, into core Puppet with the following major
    changes and refactorings:
    
    The PMT codebase lives under `lib/puppet/` and `lib/puppet/module_tool`
    in Puppet core.
    
    The following files are being renamed:
    
     * `lib/puppet/module/tool/tool.rb`
    
    `tool.rb` is being renamed to `module_tool.rb`
    
    The following files are not being ported over:
    
     * `lib/puppet/module/tool/utils/settings.rb`
     * `lib/puppet/module/tool/cli.rb`
     * `lib/puppet/module/tool/applications/freezer.rb`
     * `lib/puppet/module/tool/applications/registrar.rb`
     * `lib/puppet/module/tool/applications/releaser.rb`
     * `lib/puppet/module/tool/applications/unreleaser.rb`
    
    `settings.rb` is not being ported over in favor of using core Puppet
    settings logic.
    
    `cli.rb` is not being ported over in favor of using the Puppet faces
    API.
    
    `freezer.rb`, `registrar.rb`, `releaser.rb` , and `unreleaser.rb` are
    not being ported over as the features they support are not implemented.
    
    The following PMT sub-commands are being removed:
    
     * `version`
     * `repository`
     * `usage`
     * `changelog`
    
    The `version`, `repository`, `usage`, and `changelog` PMT sub-commands
    are being removed in favor of using core Puppet settings logic,
    versioning scheme, and help commands.
    
    All ported applications: builder, checksummer, cleaner, generator,
    installer, searcher, and unpacker, now return either status hashes,
    Pathname objects, or an array of file paths. This change is to support
    the faces API, each face action should return a value that can be used
    in Ruby code, or printed to the console.
    
    PMT tests and generator templates will be ported into core Puppet in
    separate commits.

commit b9588555181e9552280a255cc935e50db642cbd5
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Dec 3 08:38:24 2011 +0000

    (#7592) Replace all Augeas resource stubs with real resources
    
    Cleanup of existing unit tests to use instances of resources rather than
    stubbed objects, which were very much tied to how the provider worked.

commit 2d52b1941c648443bd4d82473c374ca4e80e247e
Merge: 17459b5 7f536f9
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Dec 2 10:37:13 2011 -0800

    Merge remote-tracking branch 'domcleal/tickets/master/7285c'
    
    * domcleal/tickets/master/7285c:
      (#7285) Use Augeas NO_LOAD/incl to optimise loading based on context
      (#7285) Add spec for Augeas initialisation and file loading

commit 7f536f9a40160b9631d02b808e1ab5f1f2aacbf0
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Dec 2 10:36:12 2011 +0000

    (#7285) Use Augeas NO_LOAD/incl to optimise loading based on context
    
    When the context property is given, use the NO_LOAD flag to stop Augeas loading
    all files for all lenses.  Removes all /augeas/load//incl nodes where the glob
    doesn't match the context given before loading.
    
    This speeds up loading when the context is provided, as Augeas only reads and
    parses relevant files, instead of every known file for each resource.
    
    Requires Augeas 0.8.2 with the glob() path function call.

commit 17459b538bf8cdb1ed1839e403f1763664f175f6
Merge: 38d9bfb f2a12f7
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Dec 1 13:52:01 2011 -0800

    Merge remote-tracking branch 'kelsey/ticket/master/11115_puppet_spec_test_do_not_run_under_rspec_2.7.x'
    
    * kelsey/ticket/master/11115_puppet_spec_test_do_not_run_under_rspec_2.7.x:
      (#11115) Support spec tests under rspec 2.7.x

commit f2a12f7c6aa81d32d2875ce4a1c72aec04715d44
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Thu Dec 1 11:57:56 2011 -0500

    (#11115) Support spec tests under rspec 2.7.x
    
    Without this patch, the puppet spec tests do not run under rspec 2.7.x.
    
    This patch fixes this issue by using a proper require expression to
    include the `spec_helper` module in `spec/unit/network/resolver_spec.rb`
    
    This patch changes a single line in `spec/unit/network/resolver_spec.rb`
    as the other tests already require the `spec_helper` the *right* way.

commit bb5386c5fb21b25c88e523ce14941614d8c73daa
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Nov 30 17:55:07 2011 -0800

    Updated CHANGELOG for 2.7.8rc1

commit 3eff60a4047a16762003b75c978ca329a1ab26a0
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Nov 30 17:53:57 2011 -0800

    Readying for 2.7.8rc release

commit a83e675db71b64c3fdad9ef6757eb8688e882a8c
Merge: af6636a ef1e700
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Nov 30 17:48:07 2011 -0800

    Merge branch '2.6.x' into 2.7rc

commit af6636a71b79468578ac0903c3c24957faa7f340
Merge: 47c786e eab8b7b
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Nov 30 17:45:10 2011 -0800

    Merge branch '2.7.x' into 2.7rc

commit 54571ede667de2fe7101b56a60c13082f33bca58
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Wed Nov 30 23:03:19 2011 +0000

    (#7285) Add spec for Augeas initialisation and file loading
    
    Simple initialisaton tests with combinations of lens include paths, explicit
    file/lens loading against a few example files.

commit eab8b7bb2ea64f7cfa824ec49ae27f2bd5309864
Merge: d295fd9 2dedee6
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Nov 30 10:14:22 2011 -0800

    Merge remote-tracking branch 'nicklewis/ticket/2.7.x/2744' into 2.7.x
    
    * nicklewis/ticket/2.7.x/2744:
      (#2744) Don't automatically enable show_diff in noop mode

commit 38d9bfbe2040fba1da9423e157fb3e5c879d29d8
Merge: 26ce9c7 d295fd9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 29 16:22:50 2011 -0800

    Merge branch '2.7.x'
    
    * 2.7.x:
      (#10739) Provide default subjectAltNames while bootstrapping master
      Give variables more descriptive names
      maint: Rename xgenerate to add_dynamically_generated_resources
      (#6907) Prefetch unsuitable providers
      (#6907) Allow providers to be selected in the run they become suitable
      maint: Fix incorrect whitespace
      Fix description in service provider test for FreeBSD
      (#6697) Set service provider default path to /etc/rc.d on Archlinux
      (#6335) Allow optional trailing comma in argument lists.
      (#8255) Always use string modes when creating resources from FileSetting settings
      (#7274) Output 4-digit file modes in File type
      (#10799) Regexp escaping too much

commit d295fd9f590427530479f8493ef18ad9ad03f035
Merge: 39bf8cb e4ee794
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 29 15:49:15 2011 -0800

    Merge branch '2.6.x' into 2.7.x
    
    * 2.6.x:
      (#10739) Provide default subjectAltNames while bootstrapping master

commit ef1e700b76a2495c18568467f098410219f09da1
Merge: e29b5df e4ee794
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Nov 29 15:37:00 2011 -0800

    Merge pull request #238 from joshcooper/2.6.x
    
    (#10739) Provide default subjectAltNames while bootstrapping master

commit e4ee7947fd58e4fc49c5bce484cce7b5f60470ae
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Nov 28 23:47:48 2011 -0800

    (#10739) Provide default subjectAltNames while bootstrapping master
    
    Prior to #2848 (CVE-2011-3872), if Puppet[:certdnsnames] was not set,
    puppet would add default subjectAltNames to any non-CA cert it signed,
    including agent certs. The subjectAltNames were of the form:
    
      DNS:puppet, DNS:<fqdn>, DNS:puppet.<domain>
    
    The fix for #2848, prevented subjectAltNames from ever being
    implicitly added at signing time. But during this change, the default
    subjectAltNames behavior was accidentally removed.
    
    This commit restores the 'defaulting' behavior that existed
    previously, but only when bootstrapping the initial master.
    Additionally, default subjectAltNames are only ever added when
    generating the master's certificate signing request, not at signing
    time. This is important, because it ensures all subjectAltNames
    originate from the CSR and are subject to our internal signing policy.
    
    The code now requires that all of the following be true in order to
    add default subjectAltNames to the CSR:
    
     1. We are a CA and master
     2. We're signing the master's cert, not self-signing the CA
     3. The CSR is for the current host
     4. No subjectAltNames have been specified, e.g. Puppet[:dns_alt_names]
     5. The master can resolve its fqdn
    
    These should only ever be true when bootstrapping the initial
    master. In particular, it should never be true for the CA's
    self-signed cert, for remote agents, or for servers that are either
    masters or CAs, but not both.
    
    The fqdn requirement existed previously, and so the same behavior has
    been restored.
    
    Note if Puppet[:dns_alt_names] are specified when bootstrapping the
    master, then we do not merge the default options -- it's either one of
    the other, but not both.

commit 2dedee62ba9bc20452934e200854d8d74154ec72
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Nov 29 10:32:53 2011 -0800

    (#2744) Don't automatically enable show_diff in noop mode
    
    As of 845825a, file diffs are now logged, rather than printed to
    console. Because log messages may be stored and more broadly readable,
    we no longer implicitly set show_diff in noop mode.

commit 39bf8cb4015ad40b387855cd352e26f8f5e909c5
Merge: 809ea0a ef78358
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 28 17:53:04 2011 -0800

    Merge pull request #223 from nicklewis/ticket/2.7.x/6907
    
    Ticket/2.7.x/6907 use providers in the run they are installed

commit ef78358664a69aa9e2739768166b2475b532f31e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 28 22:57:19 2011 +0000

    Give variables more descriptive names
    
    I hate reading code with single letter variable names if it's more than
    a few lines long.

commit cd3d4eaed36d864ebb3af46a2b6146a5fe4f0632
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 28 22:14:13 2011 +0000

    maint: Rename xgenerate to add_dynamically_generated_resources
    
    Now we don't need comments everywhere it's used and defined to explain
    what it does.

commit 000a2d811c740f4179a0cd4ced38e886858cf01f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Nov 16 10:29:26 2011 -0800

    (#6907) Prefetch unsuitable providers
    
    Previously, if we chose to use an unsuitable provider, we would not
    prefetch it because it wasn't suitable at the beginning of the run. Now,
    we lazily prefetch, waiting until the first resource of a particular provider is evaluated.
    
    If the provider we are prefetching is also the default provider for its type,
    we also find resources of that type with no specified provider, and assign them
    the default provider. This allows us to avoid prefetching the same provider
    twice (once for resources explicitly using it, and once for resources
    implicitly using it because it's the default).

commit 70114e97238e2e890373a0a04c92e1b1f7dea737
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Nov 16 10:29:22 2011 -0800

    (#6907) Allow providers to be selected in the run they become suitable
    
    Previously, if a resource did not specify its provider, it would be assigned
    the most appropriate suitable provider (typically the default).  If no provider
    was suitable, the run would fail before it even began.  This meant that a
    provider which was going to have its requirements delivered during the run
    could not be used in that run.
    
    In the case that an unsuitable provider was explicitly specified, this would
    only work in certain conditions. Suitability was lazily checked, which meant
    the resources installing the provider had to come before the resources using
    it. If this weren't true (because the dependencies weren't specified), those
    resources would still fail.
    
    Now, we will instead *wait* for the provider to become suitable. Similarly, if
    no provider is specified, we wait for a suitable provider to become available.
    
    We accomplish this by deferring unsuitable resources when they are encountered.
    Once we are out of suitable resources, we re-enqueue our previously-unsuitable
    resources and check them again. If some are now suitable, we evaluate them as
    normally, deferring the rest. If all our deferred resources are still deferred,
    they all fail, and we continue on with their dependents (which will all be
    marked as skipped due to failed dependencies).
    
    This allows providers to be used in the same run as resources using them,
    without needing to specify any dependencies between resources using the
    provider and resources installing the provider. Naturally, if the resources
    installing the provider depend on resources using the provider, the run cannot
    succeed.

commit a0ee5c70c900b023470b0fd9968a8ddc29c03cad
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Nov 16 10:27:30 2011 -0800

    maint: Fix incorrect whitespace

commit 809ea0af9df5624a2d20c4a0402813707760b2af
Merge: e2aec63 4e8a73c
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Nov 23 14:03:01 2011 -0800

    Merge branch 'tickets/2.7.x/6697-default-service-provider-path-for-archlinux' into 2.7.x
    
    * tickets/2.7.x/6697-default-service-provider-path-for-archlinux:
      Fix description in service provider test for FreeBSD
      (#6697) Set service provider default path to /etc/rc.d on Archlinux

commit 4e8a73c224212e26526b8b8a7d99aa6943da19d0
Author: Koen Wilde <koen@chillheid.nl>
Date:   Fri Aug 26 21:10:35 2011 +0200

    Fix description in service provider test for FreeBSD

commit a2eab4fa328ba409d921d5b4b8a0b8f1beb7996a
Author: Koen Wilde <koen@chillheid.nl>
Date:   Fri Aug 26 20:59:08 2011 +0200

    (#6697) Set service provider default path to /etc/rc.d on Archlinux

commit e2aec6375fe0d25e31bade0e35f39ec25423e844
Merge: 440ffac da75795
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Nov 22 16:14:02 2011 -0800

    Merge branch 'tickets/2.7.x/6335-allow-trailing-comma-in-parameterized-classes' into 2.7.x
    
    * tickets/2.7.x/6335-allow-trailing-comma-in-parameterized-classes:
      (#6335) Allow optional trailing comma in argument lists.

commit da75795e7b1a9629fab454b620c579c648e78726
Author: Nan Liu <nan@puppetlabs.com>
Date:   Tue Feb 15 16:49:23 2011 -0800

    (#6335) Allow optional trailing comma in argument lists.
    
    Support optional comma at the end arguments lists for parameterized
    class and user defined resources. This makes it behave similar to
    resource attributes.

commit 05b3cacd2ebc8f7c19a86d543262a5bee3fb0604
Author: Kelsey Hightower <kelsey@puppetlabs.com>
Date:   Fri Nov 18 14:49:25 2011 -0500

    (#10940) Deprecate `--apply` in favor of `--catalog`
    
    Without this patch, the `puppet apply` command uses the `--apply` option
    to reference a Puppet catalog. This can cause a bit of confusion as both
    the subcommand and option have the same name.
    
    This patch improves the usability of the `puppet apply` command by
    adding a new `--catalog` option. This patch also adds a deprecation
    warning whenever the `--apply` option is used, which advises end-users
    to use the `--catalog` option instead.
    
    This patch updates the in-line help documentation by adding help output
    for the new `--catalog` option, and adding a deprecation warning for the
    `--apply` option.
    
    The plan is to deprecate the `--apply` option in the next 2.7.x release,
    and removal in the future. External documentation should be updated to
    reflect the new preference towards using the `--catalog` option in-place
    of `--apply`.
    
    Preferred method of applying a Puppet catalog using `puppet apply`:
    
        $ puppet apply --catalog <catalog>
    
    This patch also includes the spec tests covering the changes in
    behavior.

commit 440ffac9a905672766c46c48c29704b8f85bfdd1
Merge: aef93ce c804346
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 22 13:15:16 2011 -0800

    Merge branch 'tickets/2.7.x/7274-always-output-4-digit-modes' into 2.7.x
    
    * tickets/2.7.x/7274-always-output-4-digit-modes:
      (#7274) Output 4-digit file modes in File type

commit aef93cee8ae2133f9b2c571b23c490ef3405e3fe
Merge: bbf36c4 8030428
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 22 11:52:25 2011 -0800

    Merge branch 'tickets/2.7.x/8255-use-string-mode-creating-file-setting-resources' of https://github.com/jhelwig/puppet into 2.7.x
    
    * 'tickets/2.7.x/8255-use-string-mode-creating-file-setting-resources' of https://github.com/jhelwig/puppet:
      (#8255) Always use string modes when creating resources from FileSetting settings

commit 47c786e3ff820ecda0a0de36526d9707f07f25ec
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Mon Nov 21 15:01:29 2011 -0800

    Update CHANGELOG and packaging for 2.7.7 final

commit 26ce9c79672d578e9aa03d8341d8c315fcf30c8b
Merge: 19cef39 e7ec176
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Nov 21 13:58:39 2011 -0800

    Merge branch 'ticket/master/3669-make-puppet-honor-DNS-SRV-records'
    
    * ticket/master/3669-make-puppet-honor-DNS-SRV-records:
      (#3669) Find servers via DNS SRV records
      Reset saved indirection state to an empty hash instead of nil after restoring
      Realign test/lib/puppettest.rb after the Great Indentation Change

commit e7ec176ba8af6d23b6e37ef395893f451f5fbf82
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jun 21 07:22:39 2011 -0700

    (#3669) Find servers via DNS SRV records
    
    This adds two new configuration variables:
    
      * use_srv_records: Will attempt to lookup SRV records for hostname
                         found in srv_record (default: true)
    
      * srv_domain: The domain that will be queried for SRV records,
                    (default: $domain)
    
    If use_srv_records is set to true, then Puppet will attempt to find
    the list of servers to use from SRV records on the domain specified
    via srv_domain.  The CA, report, and file servers can all be specified
    via independent SRV records from the SRV records to use for looking up
    the catalog server.
    
    The SRV records must be for hosts in the form:
    
      _x-puppet._tcp.$srv_domain
      _x-puppet-ca._tcp.$srv_domain
      _x-puppet-report._tcp.$srv_domain
      _x-puppet-fileserver._tcp.$srv_domain
    
    If no records are found for the _x-puppet-ca, _x-puppet-report, or
    _x-puppet-fileserver services, then the SRV records for the _x-puppet
    service will be used.  However, if records exist for any of the more
    specific services, Puppet will not attempt to use the _x-puppet
    service to find an applicable server, even if none of the servers for
    the more specific service can be contacted.
    
    If Puppet is unable to connect to any of the servers specified in the
    SRV records, then it will attempt to connect to the "normal" servers
    settable via puppet.conf.
    
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    Signed-off-by: Andrew Forgue <andrew.forgue@gmail.com>

commit 80304281b2b9510f495c4496ecb0fec631ead8a0
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Nov 3 14:32:57 2011 -0700

    (#8255) Always use string modes when creating resources from FileSetting settings
    
    Since we're setting the 'is', rather than the 'should' on the
    resource, the property's munge method is not automatically called for
    us and we need to make sure we're always passing the stringified
    version of the mode to the resource.
    
    By doing this, we fix the problem where 'puppet --genmanifest' would
    output the (base 10) integer version of the mode in the generated
    manifest for settings where the mode was not specified as a string.
    
    It would have been nice to re-use the munge from the mode property
    directly, but there doesn't appear to be a good/clean way to do this
    (especially without reaching into the internals of other objects).
    
    Another alternative would have been to modify []= to call munge for
    us, but this isn't really a change to be made in a point release,
    especially not without very careful thought about the implications of
    such a change.

commit c804346e74bc93fe8f18a9d6a80880cd6a4a16d3
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Nov 17 15:13:58 2011 -0800

    (#7274) Output 4-digit file modes in File type
    
    When updating file mode, output 4 digit file mode instead of omitting
    the leading 0, i.e. 0755 instead of 755.  This fully represents the
    file mode, and lessens the likelihood of someone incorrectly setting
    the mode on a file by copy/pasting the incomplete mode specification.
    
    Signed-off-by: Nan Liu <nan@puppetlabs.com>
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>

commit bbf36c490360ec197f686be75b47211efe50c7c7
Merge: 67e4e39 220f2ba
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Nov 17 11:58:37 2011 -0800

    Merge remote-tracking branch 'josh/ticket/2.7.x/10799-malformed-puppet-bat' into 2.7.x
    
    * josh/ticket/2.7.x/10799-malformed-puppet-bat:
      (#10799) Regexp escaping too much

commit 19cef39011b986578f1e6983fcb155b9b08a8b7e
Merge: 4b6ae7d 67e4e39
Author: Joshua Harlan Lifton <lifton@puppetlabs.com>
Date:   Wed Nov 16 15:54:05 2011 -0800

    Merge branch '2.7.x'

commit 67e4e399480df0021e4c6f83ca77dba144745bb9
Merge: 4462eb5 e29b5df
Author: Joshua Harlan Lifton <lifton@puppetlabs.com>
Date:   Wed Nov 16 15:51:04 2011 -0800

    Merge branch '2.6.x' into 2.7.x
    
    Conflicts:
    	lib/puppet/application/queue.rb
    	lib/puppet/defaults.rb

commit 6a00f790e38a9540c524549052fc53416e6553e5
Author: Jason A. Smith <smithj4@bnl.gov>
Date:   Thu Oct 6 13:49:28 2011 -0400

    (#7660) Add init script for puppet queue
    
    Copied and modified from the RedHat client init script.

commit 220f2bad2692c0f802c2742911bee8b9bca8df62
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 15 11:15:20 2011 -0800

    (#10799) Regexp escaping too much
    
    Previously, we were substituting occurrences of <ruby> and <command>
    in the Windows batch wrapper scripts with the corresponding
    paths. However, the call to Regexp.gsub was escaping potential
    backreferences in the replacement string, e.g. foo\1bar, but in doing
    so, was also escaping valid path characters that don't need to be
    escaped, e.g. ruby-1.8.7, causing the batch file to refer to
    non-existent paths, e.g. ruby\-1\.8\.7.
    
    This commit eliminates the need for gsub and regexp escaping.
    
    It also writes the bat file in 'text' mode so that the resulting file
    has '\r\n' line endings.

commit 4b6ae7d6b8e0a94557880979d8678205fee95d7e
Merge: d3791a4 4462eb5
Author: Joshua Harlan Lifton <lifton@puppetlabs.com>
Date:   Tue Nov 15 09:26:00 2011 -0800

    Merge remote-tracking branch 'lifton/2.7.x'

commit 4462eb5b4aa4b4983c790892349c83e02bc31d93
Author: Joshua Harlan Lifton <lifton@puppetlabs.com>
Date:   Tue Nov 15 09:21:45 2011 -0800

    Merged 2.6.x into 2.7x
    
    Manually resolved conflicts:
    	lib/puppet/application/queue.rb
    	lib/puppet/defaults.rb

commit 67e048b9845f60ab167d625ad784af2e132bd79b
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Mon Nov 14 16:42:58 2011 -0800

    Updated CHANGELOG for 2.7.7rc2

commit a1f03777a91eed6a7596dbc15bebecb10920b9b6
Merge: 323a197 7f0756d
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Nov 14 12:54:31 2011 -0800

    Merge remote-tracking branch 'josh/ticket/2.7.x/10727-undefined-method-pathname' into 2.7rc
    
    * josh/ticket/2.7.x/10727-undefined-method-pathname:
      (#10727) Don't rely on Kernel#Pathname
      (#2744) Display file diffs through the Puppet log system.
      (#9508) Be explicit is setting `auth any` for default ACLs.
      (#9508) Default ACL of `auth any` makes sense where we had `auth no`

commit 5bb0fb7b484ee48e65e09eb49181dcfb583464ca
Merge: 93aca5a 7f0756d
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Nov 14 12:47:14 2011 -0800

    Merge remote-tracking branch 'josh/ticket/2.7.x/10727-undefined-method-pathname' into 2.7.x
    
    * josh/ticket/2.7.x/10727-undefined-method-pathname:
      (#10727) Don't rely on Kernel#Pathname

commit 93aca5ad40eb96b5e72999112cc6013ff51eb451
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Nov 14 11:19:25 2011 -0800

    maint: Fix failing specs for Windows exec provider
    
    These specs were trying to stub the microsoft_windows feature to enable
    the Windows exec provider for the test. However, the Windows provider
    was changed in ad98d47 to use the operatingsystem fact for its confine,
    rather than the feature, so these failed. This changes them to also stub
    the operatingsystem fact.
    
    Reviewed-by: Josh Cooper <josh@puppetlabs.com>

commit 4f1f7e4a9d334b4e553f97af69547080dc611fef
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Mon Nov 14 16:10:36 2011 +0000

    (#10807) Use SMF's svcadm -s option to wait for errors
    
    By default running `svcadm enable example` will start the service in the
    background and won't return errors if it fails.  Using the -s option will cause
    svcadm to wait and return errors back to the provider if the service cannot
    start for some reason.

commit 3ab4d6325efe08f2bdd514b1e0d316b4c7dd93e3
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Nov 13 11:45:19 2011 +0100

    Fix #10066 - when fingerprinting, agent should not daemonize
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ad16096f97a546b8a12ed1f5230d2f78de6a0064
Merge: 8c307e8 7f3a1bb
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Nov 11 14:59:32 2011 -0800

    Merge remote-tracking branch 'nicklewis/ticket/2.7rc/9671' into 2.7.x
    
    * nicklewis/ticket/2.7rc/9671:
      (#9617) Use an RbTreeMap to store ready resources
      (#9671) Implement RbTreeMap#each recursively, and #first/#last explicitly
      (#9671) Return nodes from internal RbTreeMap recursion
      (#9671) Stop tracking size and height of nodes in RbTreeMap
      (#9617) Add a red-black tree map
      (#9617) Keep track of blockers for resources when traversing
      (#9671) Generated resources should not depend on the completed_ whit
      (#9671) Exit early from #eval_generate if nothing is created
      (#9617) Be smarter about finding parents when eval_generating
      maint: Don't File#expand_path when unmunging file paths
      (#9671) Use Array#concat rather than +=
      maint: Correct the spelling of sentinel
      (#10614) Detect when trying to managing ACLs on a non-ACL volume
      (#10614) Provide default metadata values for Windows ACLs
      (#10614) Add method for detecting Windows volumes that support ACLs
      (#10614) Fix setting and clearing read-only attribute on Windows
      (#10614) Fix error checking for Windows BOOL return values

commit 323a1979be6273e2ff2c1ba7c844ce83f83953a4
Merge: 22b8722 7f3a1bb
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Nov 11 14:51:03 2011 -0800

    Merge remote-tracking branch 'nicklewis/ticket/2.7rc/9671' into 2.7rc
    
    * nicklewis/ticket/2.7rc/9671:
      (#9617) Use an RbTreeMap to store ready resources
      (#9671) Implement RbTreeMap#each recursively, and #first/#last explicitly
      (#9671) Return nodes from internal RbTreeMap recursion
      (#9671) Stop tracking size and height of nodes in RbTreeMap
      (#9617) Add a red-black tree map
      (#9617) Keep track of blockers for resources when traversing
      (#9671) Generated resources should not depend on the completed_ whit
      (#9671) Exit early from #eval_generate if nothing is created
      (#9617) Be smarter about finding parents when eval_generating
      maint: Don't File#expand_path when unmunging file paths
      (#9671) Use Array#concat rather than +=
      maint: Correct the spelling of sentinel

commit 7f3a1bb56acc80dc469c8192adc84c320544d5fd
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Nov 4 11:40:34 2011 -0700

    (#9617) Use an RbTreeMap to store ready resources
    
    The operations we need to perform on the ready list (insertion in sorted
    order, random deletion, and deletion of the first element) are best
    implemented with a sorted set. Because the core Ruby SortedSet class
    depends on the C rbtree gem, we use an RbTreeMap instead.
    
    Previously, we would sort the entire ready list each time we needed to
    retrieve the next resource. With a large number of non-interdependent
    resources, this is quite costly. Now, we keep the list in sorted order,
    and simply pull off the next element, resulting in significant
    performance gains.
    
    Because we are now indexing resources by their
    unguessable_deterministic_key, rather than simply sorting them, we need
    to ensure these keys are unique. So we use the resource ref, rather than
    the title, when generating the key.
    
    Paired-With: Josh Cooper <josh@puppetlabs.com>

commit 9eff0f4d19f1d22cac3f30b9a467459c1641bec9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Nov 9 13:07:26 2011 -0800

    (#9671) Implement RbTreeMap#each recursively, and #first/#last explicitly
    
    This code was using a complex iterative approach, when a simpler
    recursive one would suffice. Because the tree is balanced and the height
    is tightly bounded, there is no risk of a stack overflow until the size
    of the tree grows to around 10^1310 nodes.
    
    Additionally, #first and #last are extremely important operations when
    using the tree as a queue. The current implementation of #first, granted
    by Enumerable, is quite slow. We already have a method (#min_recursive)
    which retrieves the first node, so implementing #first is trivial.
    Similarly, #last is not provided by Enumerable, so we implement that as
    well.
    
    Paired-With: Josh Cooper <josh@puppetlabs.com>

commit 5f7f467e96fb0d3a31ebaaaf173ff40754d312ec
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Nov 9 13:05:51 2011 -0800

    (#9671) Return nodes from internal RbTreeMap recursion
    
    These methods were previously returning either keys or values, depending
    on the particular method they were helping to implement. This was
    inflexible and could result in multiple traversals to get information
    which should be available from one. Now they return nodes, so their
    callers can ask for the information they care about.
    
    Concretely, this fixes a bug where #has_key? called with a key whose
    value was nil would return false. This was because #has_key? simply
    called #get, and could not distinguish whether it returned nil because
    it was the value, or because there was no value.
    
    Paired-With: Josh Cooper <josh@puppetlabs.com>

commit 1dc9c72bf739d5df53e39901009e6682b4cc88a8
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Nov 9 13:04:10 2011 -0800

    (#9671) Stop tracking size and height of nodes in RbTreeMap
    
    Profiling revealed RbTreeMap#update_size to be one of the most expensive methods
    in a Puppet run. The only function of this method is to track the size
    and height of every node, which in turn is used to provide the size and
    height of the tree.
    
    Individual nodes aren't accessible, so there is no need to keep track of
    their size and height. While height of the tree is theoretically
    interesting, we currently don't use it anywhere, and are unlikely to in
    the future.
    
    So we simplified the size tracking to simply update the size of the tree
    on insertion and deletion.
    
    Paired-With: Josh Cooper <josh@puppetlabs.com>

commit f180f9be105adac8f600f8b63a7f91866390bc13
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Nov 4 15:20:38 2011 -0700

    (#9617) Add a red-black tree map
    
    This class is from Kanwei Li's algorithms gem, found at:
    
    https://github.com/kanwei/algorithms
    
    The only modifications are:
      * renamed the class and nested it under the Puppet module
      * removed a usage of Stack (from the algorithms gem) and replaced it
        with an Array
      * added a check for has_key? before deleting
      * added a #to_hash method, to aid in testing
    
    Paired-With: Josh Cooper <josh@puppetlabs.com>

commit c62e949cf7016a0e015a80a42c6ec6d64e8bae3a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Nov 4 11:55:32 2011 -0700

    (#9617) Keep track of blockers for resources when traversing
    
    Upon application of a resource previously, we would iterate its
    dependents and check if each of their dependencies were done, to
    determine which dependent resources were now ready to run.
    
    This is extremely slow in certain cases, such as when some resource X
    depends on a recursive file resource with thousands of generated
    children. In that case, each time any of the thousands of children was
    applied, we would check the thousands of dependencies of X.
    
    Now, we take advantage of the fact that the dependency graph only
    changes when resources are eval_generated. Thus, we can compute and
    store the number of unfinished dependencies for each resource. Then,
    when a resource completes, we need only visit each dependent and
    decrement its blocker count. When that count is 0, the resource is ready
    to run.
    
    While it would theoretically be possible to also track changes to
    dependencies by eval_generate, doing so would add significantly more
    complexity to an already complex method. For now, we are opting to
    simply clear the blocker counts and recalculate them when needed, if
    eval_generate adds resources. If this proves to be a significant
    performance benefit in future, we can revisit it.
    
    Paired-With: Josh Cooper <josh@puppetlabs.com>

commit 2cb6d72c67b1e2decea9d4e907a8c8204ceb90d4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Nov 10 15:57:06 2011 -0800

    (#9671) Generated resources should not depend on the completed_ whit
    
    In #eval_generate, we rewire anything which depends on the resource to instead
    depend on its completed_ whit, which signifies the completion of the "whole"
    resource (the resource + its children). This ensures anyting depending on the
    resource doesn't run until the resource and its children have all run. In some
    cases (such as when generated resources autorequired the generating resource)
    we would also rewire the child resources to depend on the completed_ whit.
    
    This is incorrect, because we consider child resources to be "part" of the
    resource; that is, the completed_ whit should not be 'done' until the children
    are done. Now, when rewiring these dependencies, we skip generated resources.

commit a5845b7ea0bb2a3ccea8ce9d122babf19017711f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Nov 10 15:52:47 2011 -0800

    (#9671) Exit early from #eval_generate if nothing is created
    
    We now exit early if #eval_generate does not produce any resources.
    This has the impact of not adding a completed_ whit for the resource,
    which is not necessary without any children.
    
    We also now return true if #eval_generate created resources, and false
    if it did not. This allows callers to reason about whether the graph
    actually changed.

commit 7002eff7e369d71b1c1bc4bf9b60ac2045dd1efc
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Nov 4 11:36:31 2011 -0700

    (#9617) Be smarter about finding parents when eval_generating
    
    This method generates children and nests them into a hierarchical structure,
    effectively representing "the resource" as the sum of itself and its children.
    
    To be properly hierarchical, we cause generated resources to depend on their
    *nearest* ancestor, not necessarily the resource that generated them.
    
    The previous method for finding the nearest ancestor used linear search of all
    the generated resources, which had O(n^2) performance in the number of
    generated resources. Additionally, it used substring comparison to find the
    parent, which was not always correct (/tmp/foo1 would depend on /tmp/foo).
    
    Now, we ask the generated resource for its potential ancestors, and look for
    the nearest one that we generated. If none is found, we fall back to the
    resource that generated the child. This is much faster and more correct.
    
    Paired-With: Josh Cooper <josh@puppetlabs.com>

commit 11fda78b0f9d19439566ad255b8c3ba164aeeba0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Nov 4 11:33:35 2011 -0700

    maint: Don't File#expand_path when unmunging file paths
    
    We call expand_path when munging the path, so it's redundant (and
    surprisingly expensive) to expand_path again when unmunging. It suffices
    to merely join the pieces.
    
    Paired-With: Josh Cooper <josh@puppetlabs.com>

commit ad4316ad4122b64b9d14fa9e17bf331aa8969b1e
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Nov 4 11:09:32 2011 -0700

    (#9671) Use Array#concat rather than +=
    
    += reassigns the variable it's used on, which means it creates a new
    copy of the array each time, which is slow and wasteful. Array#concat,
    on the other hand, modifies the object to which the variable refers,
    requiring no copy and leaving no orphaned array, and so is much, much
    faster.
    
    Paired-With: Josh Cooper <josh@puppetlabs.com>

commit 20260f3fb17544c794e41510ef942599e99df0b0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Nov 4 11:07:21 2011 -0700

    maint: Correct the spelling of sentinel
    
    Paired-With: Josh Cooper <josh@puppetlabs.com>

commit 4d9e0c0ef2251a87a47800e3fdb91812fde21e87
Author: Eli Klein <eklein@rallydev.com>
Date:   Fri Nov 11 15:00:20 2011 -0700

    Added missing RequestHeader entries to ext/rack/files/apache2.conf

commit 22b8722a25a61a4daea9e2aa174a87d8e07acc8c
Merge: 50c9394 4f03384
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Nov 11 12:24:41 2011 -0800

    Merge branch 'ticket/2.7rc/10614-handle-non-ntfs' into 2.7rc
    
    * ticket/2.7rc/10614-handle-non-ntfs:
      (#10614) Detect when trying to managing ACLs on a non-ACL volume
      (#10614) Provide default metadata values for Windows ACLs
      (#10614) Add method for detecting Windows volumes that support ACLs
      (#10614) Fix setting and clearing read-only attribute on Windows
      (#10614) Fix error checking for Windows BOOL return values

commit 4f03384dc04fdf82f21660c349fb042ebaa05d07
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Nov 9 22:31:10 2011 -0800

    (#10614) Detect when trying to managing ACLs on a non-ACL volume
    
    Previously, when managing owner, group, and/or mode on a file whose
    volume does not support ACLs, Puppet would raise an error when trying
    to get/set the ACL.
    
    This commit allows a file provider to optionally perform validation of
    the resource. On Windows, the provider ensures that if owner, group,
    and/or mode are being managed, but the underlying volume does not
    support ACLs, then we fail early with an appropriate error message.
    
    This is a noop for the POSIX file provider as no validation is
    required.
    
    File.expand_path uses the current working directory to generate
    absolute paths. This was causing failures when running the specs from
    a mapped network drive, e.g. HGFS, since the volume does not support
    ACLs. This commit changes these tests to use make_absolute method
    instead, and changes that method to always use the local 'C:\' volume.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 37b9f0f1c9ce56884f94d0ea2597a7727f39b09b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Nov 9 21:08:05 2011 -0800

    (#10614) Provide default metadata values for Windows ACLs
    
    Previously, when sourcing file content from a volume that doesn't
    support Windows ACLs, e.g. VMware shared drive, puppet would raise an
    error.
    
    This commit defaults the owner (Administrators), group (Nobody), and
    mode (0644), so that content can be sourced without requiring the
    owner, group, and mode to be specified in the manifest.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 1cb37c9d67faf5c811d9d2e22bbe0514e1921445
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 8 11:46:47 2011 -0800

    (#10614) Add method for detecting Windows volumes that support ACLs
    
    Added a method to detect whether the root of a given path is on a
    volume that supports persistent Windows ACLs. Note it is not enough to
    check that the volume type is 'NTFS' as some filesystems claim to be
    NTFS, but do not support ACLs, e.g. NetApp. Other filesystems like FAT
    and CIFS do not support ACLs either.
    
    This commit does not add any new windows gem dependencies, as the
    Windows::Volume module is part of the windows-pr gem.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit c9ee5a0df55c3c1a911d249a444b0fe8d60d3661
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 8 10:15:41 2011 -0800

    (#10614) Fix setting and clearing read-only attribute on Windows
    
    Previously, we were incorrectly checking the return value of
    SetFileAttributes. In cases where we didn't own the file, the call to
    set/clear the readonly attribute would fail, but we were not raising
    an error.
    
    In fixing this, I uncovered ordering issues whereby we needed to set
    the file attributes before setting the owner, both in the tests and
    the Puppet::Util::Windows::Security module. I also modified the code
    to only call SetFileAttributes if it would actually result in a
    change, such as when changing the mode, but not the owner or group.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit ed27a90c0919ebd8d4ec265b1e11c2240ec2e24d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 8 09:59:10 2011 -0800

    (#10614) Fix error checking for Windows BOOL return values
    
    Previously, the agent could segfault when attempting to manage a DACL
    on a non-NTFS filesystem. The problem was that we were incorrectly
    checking the return value from several of the Windows APIs due to the
    windows gems automatically converting BOOL values into ruby true/false
    values.
    
    For example, this call returns a ruby true/false value:
    
      API.new('IsValidAcl', 'P', 'B', 'advapi32')
    
    But this one will return an integer value:
    
      API.new('GetSecurityInfo', 'LLLPPPPP', 'L', 'advapi32')
    
    The crash is now fixed because we correctly raise an exception when
    IsValidAcl returns false.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 8c307e8801277e35a5d3a29bfb6df4c4faad80b0
Merge: e8b9f64 23379d0
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Nov 11 12:15:56 2011 -0800

    Merge remote-tracking branch 'josh/ticket/2.7.x/10614-handle-non-ntfs' into 2.7.x
    
    * josh/ticket/2.7.x/10614-handle-non-ntfs:
      (#10614) Detect when trying to managing ACLs on a non-ACL volume
      (#10614) Provide default metadata values for Windows ACLs
      (#10614) Add method for detecting Windows volumes that support ACLs
      (#10614) Fix setting and clearing read-only attribute on Windows
      (#10614) Fix error checking for Windows BOOL return values

commit 7f0756d74111c18f81e5eeeb6b5d551c06f9baa9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Nov 11 10:22:36 2011 -0800

    (#10727) Don't rely on Kernel#Pathname
    
    A recent change to Puppet::Type::File made use of Kernel#Pathname
    which is only available in ruby 1.8.5 and later. Since the change
    introduced more incompatibility with pre-1.8.5 for no good reason, and
    is trivial to fix, I'm fixing it to use Pathname.new instead.

commit 23379d0461a6859a0921ce9d706e229722bc1eec
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Nov 9 22:31:10 2011 -0800

    (#10614) Detect when trying to managing ACLs on a non-ACL volume
    
    Previously, when managing owner, group, and/or mode on a file whose
    volume does not support ACLs, Puppet would raise an error when trying
    to get/set the ACL.
    
    This commit allows a file provider to optionally perform validation of
    the resource. On Windows, the provider ensures that if owner, group,
    and/or mode are being managed, but the underlying volume does not
    support ACLs, then we fail early with an appropriate error message.
    
    This is a noop for the POSIX file provider as no validation is
    required.
    
    File.expand_path uses the current working directory to generate
    absolute paths. This was causing failures when running the specs from
    a mapped network drive, e.g. HGFS, since the volume does not support
    ACLs. This commit changes these tests to use make_absolute method
    instead, and changes that method to always use the local 'C:\' volume.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 374fee5cd4a5b1fa7ee36a05a6fc9e7027b3fd87
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Nov 9 21:08:05 2011 -0800

    (#10614) Provide default metadata values for Windows ACLs
    
    Previously, when sourcing file content from a volume that doesn't
    support Windows ACLs, e.g. VMware shared drive, puppet would raise an
    error.
    
    This commit defaults the owner (Administrators), group (Nobody), and
    mode (0644), so that content can be sourced without requiring the
    owner, group, and mode to be specified in the manifest.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit f60e8893a906ba71a914d730b070b605ce262c39
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 8 11:46:47 2011 -0800

    (#10614) Add method for detecting Windows volumes that support ACLs
    
    Added a method to detect whether the root of a given path is on a
    volume that supports persistent Windows ACLs. Note it is not enough to
    check that the volume type is 'NTFS' as some filesystems claim to be
    NTFS, but do not support ACLs, e.g. NetApp. Other filesystems like FAT
    and CIFS do not support ACLs either.
    
    This commit does not add any new windows gem dependencies, as the
    Windows::Volume module is part of the windows-pr gem.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 1371dbd81dc2518cf244079405459d6d7e06f63a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 8 10:15:41 2011 -0800

    (#10614) Fix setting and clearing read-only attribute on Windows
    
    Previously, we were incorrectly checking the return value of
    SetFileAttributes. In cases where we didn't own the file, the call to
    set/clear the readonly attribute would fail, but we were not raising
    an error.
    
    In fixing this, I uncovered ordering issues whereby we needed to set
    the file attributes before setting the owner, both in the tests and
    the Puppet::Util::Windows::Security module. I also modified the code
    to only call SetFileAttributes if it would actually result in a
    change, such as when changing the mode, but not the owner or group.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit a6996ba27ca32231d60d3a1baf33ad48ad43f1c5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Nov 9 12:20:48 2011 -0800

    (#4865) Debug logging when we start evaluating resources.
    
    The `evaltrace` option allowed individual resource evaluation time to be
    tracked, which made it easier to post-hoc identify which resources took long
    periods of time to process.
    
    It is also helpful, when doing live debugging, to know where the hang happens;
    to support that we now log a debug message about starting the evaluation of
    the resource before we go into the process.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 50c9394caaa1827b6e4432de9986f9004e0dc895
Merge: f140eca 78670ed
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Nov 9 11:29:08 2011 -0800

    Merge remote-tracking branch 'josh/ticket/2.7.x/9983-binary-mode-windows' into 2.7rc
    
    * josh/ticket/2.7.x/9983-binary-mode-windows:
      (#9983) Checksum file in binary mode when storing to filebucket
      (#9983) Serve file content in binary mode
      (#9983) Read file content from disk using binary mode
      (#9983) Use binary mode when reading and writing FileBucketFiles
      (#9983) Read file content in binary mode when backing up
      (#9983) Restore files in binary mode
      (#9983) Checksum files in binary mode
      (#9983) Add method for reading binary files

commit e8b9f64644eb3bbd6753e06c52258d07b63328b2
Merge: 6137861 78670ed
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Nov 9 10:56:43 2011 -0800

    Merge remote-tracking branch 'josh/ticket/2.7.x/9983-binary-mode-windows' into 2.7.x
    
    * josh/ticket/2.7.x/9983-binary-mode-windows:
      (#9983) Checksum file in binary mode when storing to filebucket
      (#9983) Serve file content in binary mode
      (#9983) Read file content from disk using binary mode
      (#9983) Use binary mode when reading and writing FileBucketFiles
      (#9983) Read file content in binary mode when backing up
      (#9983) Restore files in binary mode
      (#9983) Checksum files in binary mode
      (#9983) Add method for reading binary files

commit 6137861d81a9cbb22e750393af03b7037d6675d4
Merge: 845825a 0c28238
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Nov 8 16:06:58 2011 -0800

    Merge remote-tracking branch 'daniel-pittman/feature/2.7.x/9508-auth-any-rather-than-auth-no' into 2.7.x

commit 7eb0197f33bc12cd4a18c157bd384bdf8b6d717f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 8 09:59:10 2011 -0800

    (#10614) Fix error checking for Windows BOOL return values
    
    Previously, the agent could segfault when attempting to manage a DACL
    on a non-NTFS filesystem. The problem was that we were incorrectly
    checking the return value from several of the Windows APIs due to the
    windows gems automatically converting BOOL values into ruby true/false
    values.
    
    For example, this call returns a ruby true/false value:
    
      API.new('IsValidAcl', 'P', 'B', 'advapi32')
    
    But this one will return an integer value:
    
      API.new('GetSecurityInfo', 'LLLPPPPP', 'L', 'advapi32')
    
    The crash is now fixed because we correctly raise an exception when
    IsValidAcl returns false.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit cd2d2f10355842e00b61ee65a1bb495a9c6e6d93
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Oct 4 12:16:33 2011 -0700

    (#9158) Support old and new versions of STOMP gem.
    
    The STOMP gem, up to release 1.1.4, used `send` to push messages to the
    queue.  From 1.1.5 onward this is replaced by `publish`, and `send` issues a
    deprecation warning, but still works.
    
    This commit dynamically adapts to the best available method: if `publish` is
    present we use that, otherwise we fall back to `send`, and fail cleanly if we
    drift further.
    
    This should behave correctly with all known versions of the STOMP gem, avoid
    deprecation warnings, and still end up with the right results.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e29b5df49e2da47abb7132189c5ec3d8b8c67486
Merge: 85dceff 9dfd011
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Nov 7 17:07:32 2011 -0800

    Merge pull request #198 from ody/feature/2.6.x/5617
    
    Feature/2.6.x/5617

commit 9dfd011e43cd084cc0b6ea82412acfa415211726
Author: Cody Herriges <cody@puppetlabs.com>
Date:   Sat Jun 4 12:34:18 2011 +1000

    (#5617)  Puppet queue logging
    
      Simple patch that copies the code from agent.rb to queue.rb so that
      syslog logging is possible in the puppet queue applicaton.

commit 845825a535e9d6bc76af0491a0734cdebd509d56
Merge: c95aafe 0a34697
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Nov 7 16:45:55 2011 -0800

    Merge branch 'ticket/2.7.x/2744' into 2.7.x

commit 0a3469752d1cd7d5b4835732204a48850214fb9d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Sep 9 14:06:19 2011 -0700

    (#2744) Display file diffs through the Puppet log system.
    
    When Puppet generated a diff between the file on disk, it previously just
    printed it directly.  This means that the user can view it, but it is lost in
    the rest of the system - monitoring, logs, and reports have no visibility of
    this.
    
    Better, then, to send it through our regular logging system, so that the
    content is visible in all the places that it might be viewed by the user or
    monitored by machines.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0c28238a36a45276ea3132f4ae6e4e2550a8259b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Nov 7 11:39:31 2011 -0800

    (#9508) Be explicit is setting `auth any` for default ACLs.
    
    The previous change didn't actually work: while it ran through and claimed to
    be doing the right thing, it actually skipped setting `auth any` into the
    default ACL.
    
    By being explicit that it is any we can force the code to do the right thing;
    along the way simplify the notice about the default ACL to show more useful
    information more cleanly.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c95aafe78b904cc65541e19964a2ba7bf2763e6d
Merge: f140eca 057cda6
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Nov 1 16:57:52 2011 -0700

    Merge pull request #193 from daniel-pittman/feature/2.7.x/9508-auth-any-rather-than-auth-no
    
    Feature/2.7.x/9508 auth any rather than auth no

commit f140ecafdab2c88e38238f78dcccc42000298317
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Tue Nov 1 15:53:13 2011 -0700

    Updated CHANGELOG for 2.7.7rc1

commit 53062c9555eb6e63c81b304db543a9a32be6c69b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Nov 1 14:28:30 2011 -0700

    (#9508) Unify `auth no` and `auth any` in the system.
    
    In `auth.conf`, a setting of `auth no` means that only unauthenticated
    requests are allowed.  If you actually have a certificate you can't use the
    service.  (Yes, anonymous users have *more* access than authenticated ones.)
    
    This is about as strange as you can get, so instead we unify those: you now
    have the choices `auth yes` and `auth any`; `auth no` is an alias for the
    later.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 057cda625600016f1cbfe25563b64dddea9e5fe7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Nov 1 14:10:56 2011 -0700

    (#9508) Default ACL of `auth any` makes sense where we had `auth no`
    
    In `auth.conf`, a setting of `auth no` means that only unauthenticated
    requests are allowed.  If you actually have a certificate you can't use the
    service.  (Yes, anonymous users have *more* access than authenticated ones.)
    
    This alters the default to `auth any` instead, which allows you to access
    these endpoints even where you already have a certificate.
    
    This better supports the distributed model of certificate management anyhow,
    now that we have things like the cloud provisioner trying to manage
    certificates for other nodes over the network.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 78670edf53228ebf8f6d9dbff15b482d7d906192
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Nov 1 13:05:02 2011 -0700

    (#9983) Checksum file in binary mode when storing to filebucket
    
    Previously, the 'store' action for the 'file' face read content in
    text mode, resulting in incorrect checksums and corrupt binaries on
    Windows.
    
    This commit changes it to use binary mode, which is a noop on Unix.

commit da11a78f544793cf60f983d88aa1c2ddef99d0e1
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 21 15:08:54 2011 -0700

    (#9983) Serve file content in binary mode
    
    Previously, Puppet::FileServing::Content opened files in text
    mode. Changed to binary mode.

commit 13f1054e921e16e5df8989f16ffcfb284a48c783
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 21 14:42:23 2011 -0700

    (#9983) Read file content from disk using binary mode
    
    Previously, the file content property chunked local files in text
    mode, which could corrupt binary files on Windows.
    
    This commit changes it to open the file in binary mode.

commit 4b4bb8b0e1d91ffb2ef8ee187349b38544de524b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 20 16:21:49 2011 -0700

    (#9983) Use binary mode when reading and writing FileBucketFiles
    
    Previously, the Puppet::FileBucketFile terminus used text mode in its
    save and find methods. It also used text mode when validating that a
    file that it was asked to save matched what was already in the file
    bucket.
    
    This commit changes these methods to use binary mode, which is a noop
    on Unix.

commit 899833b2fcd0c3286b49bcd8ee5e83e1c1014047
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 20 13:44:34 2011 -0700

    (#9983) Read file content in binary mode when backing up
    
    Previously, Puppet::FileBucket::Dipper#backup would read a file's
    content in text mode, which on Windows causes '\r\n' to be translated
    to '\n'. As a result, the backup method was calculating the wrong
    checksum for the to-be-backed-up file.
    
    This commit changes the backup method to open the file in binary mode,
    which is a noop on Unix.

commit dc8bcf85f0e19ba02ff4a6629ef7771c374849ba
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 20 13:36:16 2011 -0700

    (#9983) Restore files in binary mode
    
    Previously we were restoring files in text mode, which causes Windows
    to translate '\n' characters into '\r\n', thereby corrupting the file.
    
    It also incorrectly computed the checksum for the to-be-restored file
    for the same reason.
    
    This commit sets the binary mode flag in both cases, which is a noop
    on Unix.

commit 489a679cd4bebdb12981ec337ac43c2fb26898e8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 20 09:13:21 2011 -0700

    (#9983) Checksum files in binary mode
    
    Previously, we were opening files in text mode when calculating file
    checksums. On Windows, '\r\n' characters are automatically translated
    to '\n', which corrupts the resulting checksum.
    
    This commit ensures we open files in binary mode, similar to what
    Digest::MD5.file(path).hexdigest does. Binary mode is a noop on Unix.
    
    Similarly, Puppet::Type::File#write was writing the file content in
    text mode, which was later validated using the checksum code, now
    reading in binary mode. So Puppet::Type::File was changed to use
    binary mode as well.
    
    Also, some of the tests were writing files in text mode, but
    checksumming them in binary mode, and obviously failing. Changed the
    spec tests to write in binary mode also.

commit f7bfa05d1dfa4b85526acb488ef4d3d5354f8b7f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Oct 20 13:32:09 2011 -0700

    (#9983) Add method for reading binary files
    
    The method IO#binread is not available prior to ruby 1.9, so this
    commit adds a method Puppet::Util.binread that does just that.

commit a45279a17209630c25c3ea6be7a9a680acef4b0a
Merge: 4e1e755 674068a
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Oct 31 16:15:12 2011 -0700

    Merge remote-tracking branch 'josh/ticket/2.7.x/10269-build-break' into 2.7.x
    
    * josh/ticket/2.7.x/10269-build-break:
      (#10269) Make directories executable so they can be cleaned up

commit d3791a4f3a92e77c5d293b3cfcb1cfb6e46e62f8
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Oct 31 15:29:38 2011 -0700

    Revert "Merge branch 'ticket/10081' of git://github.com/jgrocho/puppet"
    
    This reverts commit cd36fce381ab17db99469d6afacc2b8d420abea3, reversing
    changes made to 94c5cd31148aef4c7b9cce1aab36bdeb39c5b508.
    
    This was causing problems running rake, since Rubygems would end up
    with a version along the lines of '2.7.6-265-gcd36fce', which it did
    not like at all.c

commit 674068ad5406bac557195631098c80b4af15e3bb
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 31 15:25:19 2011 -0700

    (#10269) Make directories executable so they can be cleaned up
    
    Previously, some of the file integration tests were failing to cleanup
    non-executable directories when using a world-writable TMPDIR.
    
    The issue is that if the parent directory is world-writable, then
    FileUtils.rm_r performs additional steps to ensure it is not
    vulnerable to a TOCTTOU attack, such as ensuring the parent directory
    is sticky and that the directory-to-be-deleted is readable.
    
    This was not noticed earlier, because on Mac and Windows, TMPDIR
    defaults to a user-specific directory, which is not
    world-writable. But the Jenkins nodes are using /tmp, so it caused
    these failures.
    
    This commit changes the tests to explicitly make the directories
    read/write/executable for the current user, so that they can be
    cleaned up.

commit cd36fce381ab17db99469d6afacc2b8d420abea3
Merge: 94c5cd3 a5e50dc
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Oct 31 15:00:57 2011 -0700

    Merge branch 'ticket/10081' of git://github.com/jgrocho/puppet
    
    * 'ticket/10081' of git://github.com/jgrocho/puppet:
      (#10081) Creating RC tarballs should be handled by rake.

commit 4e1e75581ccf82a2244bec026bd4ffbf011704bc
Merge: afd0dac fd747cc
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Oct 31 14:11:50 2011 -0700

    Merge remote-tracking branch 'josh/ticket/2.7.x/10269-search-traverse-bit-not-set' into 2.7.x
    
    * josh/ticket/2.7.x/10269-search-traverse-bit-not-set:
      (#10365) Add pending test when file overwrites an executable directory
      (#10315) Add pending tests when following symlinks
      Maint: Fix test breakage
      (#10269) Search bit not set on newly created directories

commit a5e50dcbcb8215b6141c35de834e3332f9a2d9b9
Author: Jonathan Grochowski <jonathan@puppetlabs.com>
Date:   Mon Oct 24 14:00:39 2011 -0700

    (#10081) Creating RC tarballs should be handled by rake.
    
    Previously generating tarballs for rc's required a lot of manual
    intervention. This fix corrects the versioning scheme so that
    everything is handled automatically via the rake task.

commit fd747cc345fcb9e7f9735ecbc9e13a0646037a04
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 31 11:59:24 2011 -0700

    (#10365) Add pending test when file overwrites an executable directory
    
    While fixing #10269, I discovered an issue that has been broken since
    at least 0.23.0, which is if puppet manages a file resource that
    should not be executable, but an existing executable directory exists,
    it will make the newly created file executable. Fortunately, the next
    time puppet runs it will remove the executable bits from the file.
    
    This commit does not fix this bug, but adds a pending test for it.

commit fe30d8f1591077bf9ead0c4ca15c86e1655d4661
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 31 11:53:04 2011 -0700

    (#10315) Add pending tests when following symlinks
    
    While fixing #10269, I discovered a regression originally filed as
    2.6.8 while fixing #6856 for managed symlinks.
    
    When puppet is syncing a file resource, whose source is a symlink that
    points to a readable directory, it does not set the execute bit on the
    newly created directory.
    
    Conversely, if the symlink points to a directory that is not readable,
    puppet does set the execute bit on the newly created directory, when
    it shouldn't.
    
    Another problem caused by the change for #6856, is when puppet is
    syncing a file resource, whose source is a symlink to a file, puppet
    does not create the file.
    
    This commit does not fix these issues, but adds pending tests for
    them.

commit a22c7aaf96aa62ba156b5df1ed942c0c759459fb
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 31 11:25:34 2011 -0700

    Maint: Fix test breakage
    
    The recent changes to SSL caused an order-dependent test failure. This
    commit just adds the missing dependency.

commit 8576e868be0eeda8acbb28f4a8e69ce9c12552b3
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 31 11:23:20 2011 -0700

    (#10269) Search bit not set on newly created directories
    
    Previously, puppet would not set the user, group, or other
    execute/search bits for newly created directories. This was a
    regression introduced in 2.7.6 in commit
    22bfd9ce83ff52d909a43c370ba71112ed4961a4.
    
    This was caused because the dirmask'ing was occurring when munging the
    mode property, but that was occurring prior to the ensure property
    being synced, which is when the directory is actually created. And
    since the directory did not exist, the executable bits were never
    added.
    
    Similar failures would occur if the path referred to a non-executable
    file or link that we wanted to change to a directory.
    
    This commit reverts the changes to the dirmask and munge methods, and
    moves the call to dirmask back to the retrieve method. This way we can
    be sure that the directory has been created by the time we call
    dirmask.
    
    Ideally, we could know at munge time whether we are going to create a
    directory as opposed to a file or link. But the logic for that depends
    on many other properties, e.g. source, target, etc. The easiest thing
    is to just revert the change.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit afd0dac2dea5d8758c1448a20a465718a1e87855
Merge: 0854771 c343615
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Oct 31 11:28:56 2011 -0700

    Merge remote-tracking branch 'josh/ticket/2.7.x/10161-spurious-ruby-error' into 2.7.x
    
    * josh/ticket/2.7.x/10161-spurious-ruby-error:
      (#10161) Parenthesize method arguments

commit 08547719ab0d45cc3dae7ff1fbd3d3ffc877630b
Merge: f892d2e 7d65796
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Mon Oct 31 11:18:19 2011 -0700

    Merge pull request #182 from jhelwig/tickets/2.7.x/9109-retrieve-facts-from-post-in-mongrel
    
    Tickets/2.7.x/9109 retrieve facts from POST in mongrel

commit 85dceff5691ccdd66c0ebc55e2ec6eaf856e779c
Merge: 8ed8ae1 a91cfa1
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Oct 28 17:40:13 2011 -0700

    Merge remote-tracking branch 'nicklewis/ticket/2.6.x/10289' into 2.6.x
    
    * nicklewis/ticket/2.6.x/10289:
      maint: Fix failing spec on old version of rspec

commit a91cfa14dde59dfb4e9af027563d110c2a04cb72
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Oct 28 17:36:04 2011 -0700

    maint: Fix failing spec on old version of rspec
    
    This spec was failing with older rspecs because not_to was not defined.

commit 8ed8ae1fb5ae02ea14c1353a16f9ab1b1002006c
Merge: 7514d32 aa2a762
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Oct 28 16:52:04 2011 -0700

    Merge remote-tracking branch 'nicklewis/ticket/2.6.x/10289' into 2.6.x
    
    * nicklewis/ticket/2.6.x/10289:
      (#10289) Add an ext script to upload facts to inventory server
      (#10289) Add a safe alternative to REST for inventory service

commit f892d2eaccb6a4bd1b4da3220b93a615dc89433e
Merge: 711cbf0 428e08c
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Oct 28 16:11:16 2011 -0700

    Merge pull request #187 from glarizza/feature/2.7.x/launchd_optimization
    
    Stub File.open to not touch the disk

commit 428e08c066c5c3dd229ac6821128ce6447229017
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Oct 28 16:06:39 2011 -0700

    Stub File.open to not touch the disk
    
    When running the spec tests, a 'com.foo.food' file would be created.
    As this isn't desireable, File.open is now stubbed to return nothing.

commit aa2a762021ed28c1099d23a894102cce3936d561
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Oct 27 14:28:45 2011 -0700

    (#10289) Add an ext script to upload facts to inventory server
    
    This script, ext/upload_facts, will read facts from the master's yaml
    dir and save them to the facts terminus. The intended use of this is
    when the facts terminus is set to inventory_service, to be run
    periodically via cron to ensure facts are uploaded even if the
    inventory_service becomes temporarily unavailable. It supports a
    --minutes option, which will limit the facts uploaded to only those
    added in the last n minutes.

commit 94c5cd31148aef4c7b9cce1aab36bdeb39c5b508
Merge: 0175d11 711cbf0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Oct 28 13:25:06 2011 -0700

    Merge branch '2.7.x'

commit 711cbf0af40681301741f9d6189baabfb9ac0f2c
Merge: 2b7c273 7514d32
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Oct 28 13:12:29 2011 -0700

    Merge branch '2.6.x' into 2.7.x
    
    Conflicts:
    	acceptance/pending/ticket_3360_allow_duplicate_csr_with_option_set.rb
    	lib/puppet/util/command_line/puppetca

commit 2b7c27347b239e0b500f8ef417fdbf068588b1a9
Merge: a34b4e8 a97337f
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Oct 28 11:53:57 2011 -0700

    Merge pull request #186 from nicklewis/ticket/2.7.x/10346
    
    Ticket/2.7.x/10346

commit a97337fc8005eee68dcc0323e3c11083a9608397
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Oct 28 11:50:27 2011 -0700

    (#10346) Fix storeconfigs spec failures when run alone
    
    This spec was failing when run by itself (or with other specs in a
    certain order) because it was trying to use Puppet::Indirector::Memory
    without requiring it first. So add the necessary require line.

commit 5129d3858432c743f02ab9715b3c32b2a2d64c60
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Oct 27 11:42:03 2011 -0700

    (#10289) Add a safe alternative to REST for inventory service
    
    With the default implementation of the inventory service, with a
    terminus REST and cache YAML, a failed upload to the inventory service
    would cause compilation to fail. This means the inventory service was a
    single point of failure for the entire Puppet infrastructure. Now, we
    introduce an inventory_service terminus which can be used in place of
    the REST terminus, and will absorb failures, allowing compilation to
    continue.

commit a34b4e8e95b08dab1e99d202e177833be5143081
Merge: 9d8f256 5a2952c
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Oct 28 10:46:30 2011 -0700

    Merge remote-tracking branch 'nicklewis/fix-windows-ca-specs' into 2.7.x
    
    * nicklewis/fix-windows-ca-specs:
      (maint) Fix CA-related specs failing on Windows

commit 9d8f256d7448b90da9f18a0d1f2687d6db9dc275
Merge: eb5cc9a 5c4daa4
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Oct 28 10:36:14 2011 -0700

    Merge remote-tracking branch 'nfagerlund/ticket/2.7.x/7601-type_reference_definition_lists' into 2.7.x
    
    * nfagerlund/ticket/2.7.x/7601-type_reference_definition_lists:
      (#7601) Use definition lists in indirection references
      (#7601) Use definition lists in type references
      (#7601) Add markdown_definitionlist method to reference.rb
      (#7601) Remove unnecessarily abstracted paramwrap method
      (#7601) Rename "h" method to "markdown_header"
      (#7601) Use << instead of += in references

commit eb5cc9a9c06ee76cdf48209099197576ab4b8379
Merge: db403dd 455c9aa
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Oct 28 10:26:22 2011 -0700

    Merge remote-tracking branch 'nfagerlund/maint/2.7.x/type_reference_revisions' into 2.7.x
    
    * nfagerlund/maint/2.7.x/type_reference_revisions:
      Maint: Revise reference text for most types and providers

commit 5c4daa4cd296e68f41592790d78a188de5c7ad89
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Oct 27 14:16:52 2011 -0700

    (#7601) Use definition lists in indirection references
    
    This commit changes lib/puppet/reference/indirection.rb to render an
    indirection's list of termini as a definition list instead of a series of H3
    elements. This maps more closely to what the terminus list, semantically
    speaking, IS.

commit 7df46a21b735481c3ca39aa56d6f6aeb32f2826e
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Oct 27 14:14:55 2011 -0700

    (#7601) Use definition lists in type references
    
    This commit changes lib/puppet/reference/type.rb to render a type's list of
    parameters as a definition list instead of a series of H5 elements. This maps
    more closely to what the parameter list, semantically speaking, IS.

commit ad97dc9da85ab460637bfaefaaefbaff3691b75f
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Oct 27 14:02:57 2011 -0700

    (#7601) Add markdown_definitionlist method to reference.rb
    
    This commit adds a method for creating a Markdown definition list, which takes
    a term and a definition as arguments. It also adds a test to ensure
    markdown_definitionlist is outputting text in the exact format Kramdown
    expects.

commit 455c9aabb3c58ac0ed3d265e518023b3194bb8b8
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Sep 26 16:19:03 2011 -0700

    Maint: Revise reference text for most types and providers
    
    This documentation-only commit makes edits for wording, clarity, accuracy, and
    formatting to the description strings in 64 type and provider files, with the aim
    of improving the type reference (http://docs.puppetlabs.com/references/latest/type.html).

commit 0f9a82a89f89764621d03008d13a7602c4503bf5
Author: Sean Millichamp <sean@bruenor.org>
Date:   Thu Oct 27 20:32:45 2011 -0400

    (#10328) Add 'weekday' parameter to schedule type
    
    Provide a new 'weekday' parameter to the schedule type to allow
    restricting when schedules are valid to particular days of the week.

commit db403ddc51d83e5e0001a3e62b0989e8e97d9f96
Merge: c5d90bd b2e2175
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Thu Oct 27 17:53:46 2011 -0700

    Merge pull request #139 from glarizza/feature/2.7.x/launchd_optimization
    
    Optimize Launchd Provider

commit ced8e19fb13c7b9c332df3d0ec766aef1138956d
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Oct 27 14:13:11 2011 -0700

    (#7601) Remove unnecessarily abstracted paramwrap method
    
    The "paramwrap" method was only used in two places, and did a different thing
    in each of them. This commit removes it, unwraps the simple markdown_header
    call it made, and moves the conditional namevar text to
    lib/puppet/reference/type.rb (since metaparameters can't ever be namevars).

commit a6957ac87ef9eaf45a814f745e3b38d7743e1499
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Oct 27 13:55:38 2011 -0700

    (#7601) Rename "h" method to "markdown_header"
    
    h() is a terrible name for a method. This commit renames it descriptively.

commit 7a0ade61222fea1ae186a7130fb9409b4b3eb9f0
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Oct 27 13:41:17 2011 -0700

    (#7601) Use << instead of += in references
    
    This commit refactors some reference code to use the "<<" string append
    operator instead of the slower-but-equivalent += operator. (Offending
    instances left in lib/puppet/reference/metaparameter.rb and
    lib/puppet/reference/indirection.rb are slated for deletion in a subsequent
    commit.)

commit 7d657963301ee53d3a8250236cdc28f090d3c226
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Oct 26 14:44:34 2011 -0700

    (#9109) Retrieve request parameters from the request body for POSTs
    
    When using Puppet with Mongrel, the facts were being lost with 2.7.0+
    clients, since they were switched over to using POST requests for fact
    submission.  This was happening because the request parameters were
    only being retrieved from the query parameters of the URL, which will
    not include the POSTed data.
    
    We now merge the body of the post together with the query parameters
    when dealing with POST requests.
    
    We also rewind the request body after reading it, since retrieving the
    request body multiple times would return an empty string after the
    first time.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 5a2952c5adb7c900af7f133d16a41b20a7df1d03
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Oct 26 10:24:08 2011 -0700

    (maint) Fix CA-related specs failing on Windows
    
    These specs were all failing on Windows because they were trying to
    perform actions related to signing certificates (either to test that
    behavior, or as setup), which is not supported on Windows. So we
    disable these tests on Windows.

commit c5d90bdf092e994271a118326663e8625cf89fef
Merge: eab5965 42fb76e
Author: lifton <lifton@puppetlabs.com>
Date:   Tue Oct 25 11:43:03 2011 -0700

    Merge pull request #157 from nfagerlund/maint/2.7.x/document_multiple_tags
    
    Maint/2.7.x/document multiple tags

commit 42fb76e0b768056fb055d8d09e70f277f44ca0a7
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Oct 25 11:27:38 2011 -0700

    Fix typo in report debug message
    
    Recieve -> receive.

commit 65086c4b1e735880834c6c22dfd13cb08d958bb5
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Tue Oct 25 20:12:44 2011 +0200

    (#9544) Stub command in package spec that needs root priviledges
    
    The portage package provider on gentoo uses the helper program eix to
    query packages.  Eix uses a cache and the portage provider calls
    eix-update in case the cache is out of date.  The eix-update needs root
    priviledges (or the user at least has to be in the portage group) that
    may not be the case when running the specs.
    
    Stub the update_eix method to prevent puppet from modifying the current
    system when running the specs.

commit eab5965329cbfe7593c3c6e36bb547f6cdac193a
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sun Oct 23 17:31:53 2011 -0700

    missing includes in network XML-RPC handlers
    
    Signed-off-by: Daniel Pittman <daniel@rimspace.net>

commit 7514d325c01ee105c04e3dda8d248d3023a07b2f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sun Oct 23 17:31:53 2011 -0700

    missing includes in network XML-RPC handlers
    
    Signed-off-by: Daniel Pittman <daniel@rimspace.net>

commit 614526a06eaae5cc8d591152d44a5e8b73293457
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Oct 24 10:13:33 2011 -0700

    (#10244) Restore Mongrel XMLRPC functionality
    
    This code was over-eagerly removed, when it turns out to actually
    still be necessary for backward compatibility with XMLRPC clients.

commit 073520a5354a51b12c8d7a38c26ac6be0d74fcba
Merge: 61a69ee 0d4494c
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Oct 24 13:50:12 2011 -0700

    Merge branch '2.7rc' into 2.7.x
    
    * 2.7rc: (37 commits)
      Updated CHANGELOG for 2.7.6
      Improve the error message when a CSR is rejected
      Allow a master to bootstrap itself with dns_alt_names and autosign
      (maint) Remove ssl dir before starting a master with DNS alt names
      Fix failing CA Interface specs on Ruby 1.9
      Fix some inconsistencies from merging
      Add support for DNS alt names to `puppet ca`
      More 1.8.5 compatibility fixes.
      Better 1.8.5 compatible implementation of `lines`.
      (#2848) Config options require '_', not '-'.
      Add --allow-dns-alt-names option to `puppet certificate sign`
      Add support for dns-alt-names option to `puppet certificate generate`
      Ruby 1.8.5 compatibility changes in tests and code.
      Add `lines` alias for `each_line` in Ruby 1.8.5.
      s/not_to/should_not/ for older versions of RSpec 2.
      (#2848) Eliminate redundant `master_dns_alt_names`.
      (#2848) Remove the legacy SSLCertificates code
      (#2848) Rework the xmlrpc CA handler to use the modern SSL code
      (#2848) Remove unused xmlrpc code
      (#2848) Consistent return values from `subject_alt_names` accessors.
      ...

commit 2d24ef04a74fbdc41c091ddc2128a9a4bfabcfa5
Merge: 8d54c23 397a506
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Oct 24 13:40:07 2011 -0700

    Merge remote-tracking branch 'upstream/2.6rc' into 2.6.x
    
    * upstream/2.6rc:
      (#10244) Restore Mongrel XMLRPC functionality

commit 397a5064892cb1d581594c110907fa3f2b83af36
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Oct 24 10:13:33 2011 -0700

    (#10244) Restore Mongrel XMLRPC functionality
    
    This code was over-eagerly removed, when it turns out to actually
    still be necessary for backward compatibility with XMLRPC clients.

commit 61a69ee7dfe9cf1941b4cf637c3465280686c218
Merge: 2d2d493 6ef1d3a
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Oct 22 21:23:48 2011 +0200

    Merge branch 'tickets/2.7.x/6371-update-lastchg-shadow-field-on-solaris' of https://github.com/jhelwig/puppet into 2.7.x
    
    * 'tickets/2.7.x/6371-update-lastchg-shadow-field-on-solaris' of https://github.com/jhelwig/puppet:
      (#6371) Update lastchg field in shadow file on Solaris.

commit 0d4494c0cecd5c190fd7ee5f9c28ddda524cd80c
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Oct 21 15:22:49 2011 -0700

    Updated CHANGELOG for 2.7.6

commit 20118411498af299d66d1702604956bc3e69c2b5
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Oct 21 20:47:30 2011 -0700

    Improve the error message when a CSR is rejected
    
    The behavior without this patch is that a CSR with wildcards (*'s) is
    rejected without an indication of the CSR name.  In the situation where
    a Master is bootstrapping itself, the user may have specified
    --dns_alt_names=*,*.* and Puppet will generate a CSR with these
    wildcards.  It will then refuse to sign the CSR and exit with an
    exception.  Changing the --dns_alt_names to something acceptable is not
    sufficient to get around the issue because the CSR persists.
    
    This patch updates the error messages in two ways.  First, we print the
    name of the CSR to help the user clean out the bad request.  Second, we
    indicate the user must clean the CSR in order to progress past the
    issue.

commit afff3df2f42e2dd75792d7e092d9d54353d7e351
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Oct 21 19:15:18 2011 -0700

    Allow a master to bootstrap itself with dns_alt_names and autosign
    
    When using autosign, a puppet master which is also a CA will attempt to
    autosign its certificate request via the normal autosign process, rather
    than its typical bootstrap process. Thus, the puppet master would
    inadvertently refuse to sign its own certificate request if the CSR
    contained DNS alt names. This changes the CA to allow DNS alt names in a
    CSR if that CSR is for the certname of the master on which the CA is
    running.

commit 388365e6754da460729e0be97d836381a91c9520
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Fri Oct 21 18:10:23 2011 -0700

    (maint) Remove ssl dir before starting a master with DNS alt names
    
    These tests were experiencing order-dependent failures due to the
    presence of a previously-created master certificate which did not
    contain DNS alt names, when such alt names were necessary.

commit 8d54c23f5ac6886f09e7a457512df8dbfa0492ca
Merge: 3cfd39b fcaf7c5
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Oct 21 23:39:28 2011 -0700

    Merge branch '2.6rc' into 2.6.x

commit fcaf7c5eb10c0907185e2c7b5d97afce9149b908
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Oct 21 15:56:10 2011 -0700

    Updated CHANGELOG for 2.6.12

commit f51d221ee300d439526ec33e6d3bb1063afbb05b
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Fri Oct 21 20:47:30 2011 -0700

    Improve the error message when a CSR is rejected
    
    The behavior without this patch is that a CSR with wildcards (*'s) is
    rejected without an indication of the CSR name.  In the situation where
    a Master is bootstrapping itself, the user may have specified
    --dns_alt_names=*,*.* and Puppet will generate a CSR with these
    wildcards.  It will then refuse to sign the CSR and exit with an
    exception.  Changing the --dns_alt_names to something acceptable is not
    sufficient to get around the issue because the CSR persists.
    
    This patch updates the error messages in two ways.  First, we print the
    name of the CSR to help the user clean out the bad request.  Second, we
    indicate the user must clean the CSR in order to progress past the
    issue.

commit d5517478841655d04153f6124e393a7ec1510d15
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Oct 21 19:15:18 2011 -0700

    Allow a master to bootstrap itself with dns_alt_names and autosign
    
    When using autosign, a puppet master which is also a CA will attempt to
    autosign its certificate request via the normal autosign process, rather
    than its typical bootstrap process. Thus, the puppet master would
    inadvertently refuse to sign its own certificate request if the CSR
    contained DNS alt names. This changes the CA to allow DNS alt names in a
    CSR if that CSR is for the certname of the master on which the CA is
    running.

commit 040519685ca7fdd7cb359032cccfd5817e978597
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Fri Oct 21 18:10:23 2011 -0700

    (maint) Remove ssl dir before starting a master with DNS alt names
    
    These tests were experiencing order-dependent failures due to the
    presence of a previously-created master certificate which did not
    contain DNS alt names, when such alt names were necessary.

commit 3ed6499c6e526b4b45e536dcff84a4ab47cc41e6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Oct 20 16:35:53 2011 -0700

    Backport Enumerable#count to Rubies < 1.8.7
    
    We quite often mistakenly use Array#count, which is only available in
    Rubies >= 1.8.7, when we mean Array#size or Array#length. Because this
    causes so much trouble, it seems valuable to simply backport
    Enumerable#count and provide the method.

commit 5f44c23b0a9d17eb213bc08ddb8da6660264f2c5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 15:45:25 2011 -0700

    More 1.8.5 compatibility fixes.
    
    Use of Array#count is endemic, so aliasing that makes our code more robust.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit ef1b9602fb2a740cd460714cb7551fbb95824986
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 15:26:46 2011 -0700

    Better 1.8.5 compatible implementation of `lines`.
    
    The 1.8.5 version of `each_line` does not work without a block; we can easily
    enough implement the same logic, though, which this change does.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 246e875336ed7dd759a0b9a2df8a79cbad04a7b4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 15:18:19 2011 -0700

    (#2848) Config options require '_', not '-'.
    
    I mistakenly thought that our configuration file options could be used on the
    command line with hyphens where underscores were present in the symbol; sadly,
    this is not the case.
    
    This updates the commits to reflect that, especially when we recommend options
    to people.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3bdeb3a4a666cf145b0d7a1d910094ccbf89e894
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 11:50:23 2011 -0700

    Ruby 1.8.5 compatibility changes in tests and code.
    
    A handful of methods, like Array#count and String#start_with? don't exist in
    older versions of Ruby, and have sufficiently complex semantics that
    rebuilding them seems less than worthwhile.
    
    This rewrites the small points of code to avoid those methods, retaining
    compatibility with 1.8.5 and 1.8.6 across the board.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6866d4b6606f688fbc69be29e5bf6035d024a0ff
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 11:48:52 2011 -0700

    Add `lines` alias for `each_line` in Ruby 1.8.5.
    
    String and IO both have the method `lines`, an alias for `each_line`, added in
    version 1.8.7; this was used in a few places in the code, and because it is a
    simple alias we can easily add it in older versions by hand.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2f9ec3cafb2e73d4d0e7b15ab2e1450de44c9736
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 11:27:02 2011 -0700

    s/not_to/should_not/ for older versions of RSpec 2.
    
    The `not_to` method for RSpec came in later than the version available on some
    of our older test platforms.  This uses a less well worded, but more
    compatible, test to keep everything passing on the older machine.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 56320ea80c2628c850b9c4961a21cbb69511b57b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 10:40:33 2011 -0700

    (#2848) Eliminate redundant `master_dns_alt_names`.
    
    Now that `dns_alt_names` applies to local CSR generation, there is no need
    for a special configuration option only applied to a master certificate.
    
    Eliminating that option allows us to simplify the overall model, and provide
    more uniform access to the `subjectAltName` setting when required.
    
    Documentation about the option is also updated.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit de1986196b5c055dc72390957b2e6f3e5b5204ca
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Oct 18 12:03:23 2011 -0700

    (#2848) Remove the legacy SSLCertificates code
    
    This code is no longer used, and is largely duplicated in Puppet::SSL.
    Thus, rather than fixing SSL issues in two places, one of which is
    unused, we can just remove this code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit cf008a6277dd8feb333314fa6e5f3b1db78ed45f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Oct 18 11:51:42 2011 -0700

    (#2848) Rework the xmlrpc CA handler to use the modern SSL code
    
    In order to remove the legacy SSLCertificates code, we first need to
    rework the one place it's still being used, which is the CA handler.
    Now, this handler essentially just defers to the Puppet::SSL classes.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 32be180cee7806461cd2048fd39eab090268b14f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Oct 18 12:03:09 2011 -0700

    (#2848) Remove unused xmlrpc code
    
    We no longer use the xmlrpc client in 2.6, so this is dead code. Because
    it depends on the legacy SSLCertificates code, which is also going away,
    this code needs to be removed. We leave the server code for backward
    compatibility with older clients.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 5f2a44d78a6433b9a67bf31e0bed80ab49d916b3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Oct 19 11:58:35 2011 -0700

    (#2848) Consistent return values from `subject_alt_names` accessors.
    
    The various implementations of the `subject_alt_names` accessor on SSL objects
    had different return types when the records were not present: nil, or an empty
    array.
    
    This unifies them to consistently return an empty array, which makes it easier
    to iterate across the code.  It also cleans up some logic around handling
    policy on those, to make it cleaner and quicker by not duplicating the same
    "are there any subjectAltName values?" test across every policy check.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 5e507f20fbfa4c0537744d17c1ff8cad458ef1a3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Oct 19 11:50:52 2011 -0700

    (#2848) Consistently use `subject_alt_names` as accessor name.
    
    We had several different names for the same operation on different SSL
    objects; this made little sense.  Now they are unified to use the same,
    standard-based, name for the accessor.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 5ac2417c297ca0550e0c45b4b80ed497bd7ad0f1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Oct 19 11:48:16 2011 -0700

    (#2848) Don't strip the subjectAltName label when listing.
    
    The X.509 `subjectAltName` field contains a set of labeled values; each label
    defines a namespace that the rest of the content fits within.  DNS is one of
    those, and is the only one that Puppet actually uses, but there are plenty of
    others including email addresses, IP, a DN, or a URI.
    
    When we displayed the values we used to strip that label off, which hid
    potentially critical information from the user.  Instead we should preserve,
    and display, that data.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 44cf3a280dd32aa85ad16740763714cff5793967
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Oct 18 17:03:34 2011 -0700

    (#2848) Don't enable `emailProtection` for server keys.
    
    Previously, Puppet enabled the `emailProtection` bit in the extended key usage
    field.  This is unnecessary, and while probably not harmful we are taking the
    view that what is not required should not be allowed, so ... removed.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d66def936f09c6287cd4a5fc1f796c9a85171761
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Oct 18 16:39:07 2011 -0700

    (#2848) Only mark `subjectAltName` critical if `subject` is empty.
    
    From X509v3, the subjectAltName extension should only be marked critical if
    the subject DN is empty:
    
    "If the subject field contains an empty sequence, then the issuing CA MUST
     include a subjectAltName extension that is marked as critical. When including
     the subjectAltName extension in a certificate that has a non-empty subject
     distinguished name, conforming CAs SHOULD mark the subjectAltName extension
     as non-critical."
    
    This applies that rule, by always marking the `subjectAltName` as
    non-critical, because we never have an empty name in our system.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 81740470cb81a67b1b4873586ac744a87c8d77a8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Oct 18 16:24:15 2011 -0700

    (#2848) Migrate `dns-alt-names` back to settings.
    
    Now that all the other changes have been made, the `dns-alt-names` can migrate
    back to the settings where they apply only for generating the CSR for the
    local machine.
    
    The one exception to that rule is the `puppet cert generate` application, in
    which we want to pass any *command line* value of `dns-alt-names` into the CSR
    for a foreign node, but not the value from anywhere but the command line.
    
    Since the settings now track the CLI origin of a setting, we can use that to
    derive the data and pass it around appropriately to make that so.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f18df2bef58dce7310903fc027f7a5f9f7fe452e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Oct 18 14:52:55 2011 -0700

    Wire up the `setbycli` slot in Puppet settings.
    
    There was an existing slot on the setting object that tracked if the value had
    been set on the command line or not, but it was not wired up to the rest of
    the system.
    
    This wires that up, allowing us to use that to determine if the
    `dns-alt-names` setting should apply just to the local node, or to all nodes,
    safely from the `puppet cert` application.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit efa61f2cc5c6160be10a83a52fb459b91f7db456
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Oct 17 14:09:34 2011 -0700

    (#2848) rename subject-alt-name option to dns-alt-names
    
    The name of the option for adding subjectAltName fields to the request didn't
    really indicate what it actually did: we forced the names into the DNS label
    space, and generally imposed a bunch of additional behaviours.
    
    This renames the option to better match the intended use.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f103b2085f47a74e3cbfc5315d9cc427a56ccc92
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Oct 17 13:58:54 2011 -0700

    (#2848) Rename `certdnsnames` to match new behaviour.
    
    As part of the update to SSL the behaviour of the `certdnsnames` options
    changed sufficiently that it would be terribly confusing to retain it.
    
    Instead, modify the setting to warn that it is ignored, and add a new setting
    to set the default subjectAltName value for bootstrapping a master
    certificate.
    
    This retains the one really useful part of the feature, without the risk that
    someone will accidentally use the old name and receive a nasty surprise.
    
    It should also draw more attention to formerly insecure configurations.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 363b47b29a9e7aebaa8071cc39f116629ea3b6bf
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 13 14:50:09 2011 -0700

    (#2848) Use `certdnsnames` when bootstrapping a local master.
    
    We don't have any formal way to determine if a node is a master or not, which
    makes it hard to authoritatively answer the question of "should `certdnsnames`
    apply to this node".
    
    However, we can assume that if you are the CA then you are also a master node.
    You can't be one without the other.
    
    We can also assume that if you are running as master, but are not a CA, you
    intend to continue in that fashion.  This is a weaker heuristic, but should be
    effective enough for folks that start a master at the right time...
    
    This means that the basic bootstrapping case uses that setting as it is
    designed, and since we just generated the CA certificate we can fairly
    confidently trust that we are doing the right thing with the request.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 49334ff2256abffa66a3a3589222252e6ed980e0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Oct 11 12:37:53 2011 -0700

    (#2848) CSR subjectAltNames handling while signing.
    
    The puppet cert application now supports the --allow-subject-alt-names command
    line flag to specify that the certificate to sign should contain a
    subjectAltName extension request.
    
    If the option is not specified, an attempt to sign a certificate with alt
    names will fail. Similarly, if the option is specified, an attempt to sign a
    certificate without alt names will fail.
    
    The latter behavior is deliberate, and is intended to help stop users from
    developing a habit of always supplying the option, and thus accidentally
    signing a dangerous certificate without realizing it when one comes along.
    
    It also adds the `--subject-alt-name` option that will add a `subjectAltName`
    extension request to a CSR when it is generated.  This allows an additional
    service to be bootstrapped with those names.
    
    Generally only one of the two options should be required, as the CSR and the
    signing process are distinct.
    
    Mostly by Nick Lewis, additional code by Daniel Pittman
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 5f2af934ad878b0713d71aa71d5ad6f70f22b12d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Oct 10 10:55:26 2011 -0700

    (#2848) List subject alt names in output of puppet cert --list
    
    Given that it's potentially risky to sign a certificate which has alt
    names, we now surface that information so the user can make an informed
    decision when signing. This also includes some changes to the format of
    the output, grouping certs by status to make it more easily scannable.

commit bb475ec7a68d0b314293e0577451626b678491c6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jun 14 14:42:21 2011 -0700

    (#7224) Add a helper to Puppet::SSL::Certificate to retrieve alternate names
    
    Alternate names, if present, are specified in the subjectAltName extension of
    the certificate. The values are in the form:
    
    "DNS:alternate_name1, DNS:alternate_name2"
    
    This helper will retrieve the value of the subjectAltName extension and extract
    the alternate names, returning and empty list if the extension is absent. This
    will make it easier to access the entire list of possible names for a
    certificate, rather than just the common name; this is helpful for generating
    more detailed SSL error messages.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit bab9310d2800dd3c24e002f9d85c808ee38c9d3c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Oct 11 11:36:08 2011 -0700

    (#2848) Rewrite SSL Certificate Factory, fixing `subjectAltName` leak.
    
    This is a major rewrite of the SSL CertificateFactory, which transforms the
    way that we build the certificate we are about to sign in response to a CSR.
    
    The main body of rework is to clean up the code and make it easier to manage
    and validate, but there are two essential changes:
    
    1. We no longer inject `subjectAltName` from local `certdnsnames`
       configuration option into every certificate we generate.  This fixes
       CVE-2011-3872, and prevents issuing client certificates that can
       impersonate the master.
    
    2. *All* request extensions from the CSR are transported into the final
       certificate.  This includes `basicConstraints`; we rely on other layers of
       the Puppet stack having validated the code to this point.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit fca1ff08e263d89b9ec594d11da2da8bcfe91c27
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Oct 10 12:35:00 2011 -0700

    (#2848) Reject unknown (== all) extensions on the CSR.
    
    If we get a CSR with a request extension that we don't recognize, we used to
    just ignore those.  This can lead to dangerous situations, or at least
    surprising behaviour, since we wouldn't copy those extensions into the final
    certificate.
    
    This changes that, by establishing an internal policy that we will whitelist
    acceptable request extensions, and will hard-reject anything that isn't on
    that.
    
    Once something passes the whitelist we will have further policy, which will
    enforce sanity in the request => certificate path.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 443a7561b63cd638a82672cbe51b0e8e654584d3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Oct 10 11:30:20 2011 -0700

    (#2848) extract the subjectAltName value from the CSR.
    
    When a CSR is submitted, we need to inspect it and determine if there are any
    subjectAltNames present in the request, and if those are legal.
    
    The logic to validate the content of an extension is complex, and decomposing
    the content requires digging into various X509 and ASN.1 related classes.
    
    This commit adds a `subject_alt_names` method that will extract the extensions
    containing subjectAltName values from the CSR, and reformat them into a useful
    set of content suitable for use in Ruby.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 66101f13b7811c673c541292921d41d8b6cc7fa0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Oct 7 14:14:09 2011 -0700

    (#2848) Set `certdnsnames` values into the CSR.
    
    We were incorrectly applying the `certdnsnames` setting when a certificate was
    signed, not when a CSR was generated.  This would misapply the server setting
    to all nodes in the infrastructure, rather than applying the client-supplied
    version.
    
    This commit adds `certdnsnames` to the CSR, allowing the client to pass their
    desired set of names to the CA to be propagated into the final certificate.
    
    It does not alter the behaviour when the certificate is generated.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 77b814f458230b482f5840aec444d90438731a0d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 15:01:38 2011 -0700

    (#6928) Don't blow up when the method is undefined...
    
    Use the same model for testing instance methods as the rest of the code.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 5427f1e93d1508a7622c7bb1b728891c00390f29
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 14:46:36 2011 -0700

    (#6928) backport Symbol#to_proc for Ruby < 1.8.7
    
    We use the &:foo symbol-to-proc syntax in some of our code, so to avoid
    problems on Ruby earlier than 1.8.7 we should backport the support in our
    monkey-patch file.
    
    Backported to 2.6.x to ease working there as part of #2848.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e4c64c75f69d77bb7f16bfda9b323e56f8f9640a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Oct 21 11:31:54 2011 -0700

    Fix failing CA Interface specs on Ruby 1.9
    
    These tests were creating unnecessary stub objects rather than making
    actual Certificate and CertificateRequests. Unsurprisingly, they were
    thus failing to stub a method on Ruby 1.9 which was not needed in 1.8.
    This commit changes them to use actual objects, to both correct this
    problem and improve their robustness for the future.

commit 9ee12151e9c83d2b477ea5b04dd7d52e749a6992
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Oct 21 10:56:14 2011 -0700

    Fix some inconsistencies from merging
    
    Some of these differences between 2.6 and 2.7 were missed when merging
    the CVE-2011-3872 branch into 2.7. This commit fixes up those issues.
    Primarily it is test fixes, but also a method was renamed and missed.

commit 6ef1d3a3c97a2d17334d6264f30079f3aec253b7
Author: Merritt Krakowitzer <merritt@krakowitzer.com>
Date:   Sat Jun 25 17:58:03 2011 +0200

    (#6371) Update lastchg field in shadow file on Solaris.
    
    Previously, the lastchg field was not being updated, which would have
    the effect of the password still being considered as expired even
    after having been changed by Puppet.
    
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>

commit 8144939f528ee2ee546a0b4cb0b443c9c3b8afaf
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Oct 20 15:58:23 2011 -0700

    Add support for DNS alt names to `puppet ca`
    
    These options (--allow-dns-alt-names for sign, --dns-alt-names for
    generate) behave just like the corresponding options to `puppet cert`
    and `puppet certificate`.

commit 2ba56e3609a32c9de432f8d437a01537576a686a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 15:45:25 2011 -0700

    More 1.8.5 compatibility fixes.
    
    Use of Array#count is endemic, so aliasing that makes our code more robust.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6257188852d4c6a76c95f17eb0f3570614f46a82
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 15:26:46 2011 -0700

    Better 1.8.5 compatible implementation of `lines`.
    
    The 1.8.5 version of `each_line` does not work without a block; we can easily
    enough implement the same logic, though, which this change does.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4ba4db7b115f382acb63667cc89ac7eca87dc670
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 15:18:19 2011 -0700

    (#2848) Config options require '_', not '-'.
    
    I mistakenly thought that our configuration file options could be used on the
    command line with hyphens where underscores were present in the symbol; sadly,
    this is not the case.
    
    This updates the commits to reflect that, especially when we recommend options
    to people.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 493f8d1dbd79bf5ebc60af6071006a44d2cd5ca8
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Oct 20 14:10:48 2011 -0700

    Add --allow-dns-alt-names option to `puppet certificate sign`
    
    This behaves similarly to the corresponding option to `puppet cert`. It
    will allow a certificate request containing DNS alt names to be signed,
    and will not fail if DNS alt names are not present. This option is only
    allowed when the ca-location is not remote.

commit 0cc89361299e31838b85ef3c67c59e674d5b520c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Oct 20 11:33:52 2011 -0700

    Add support for dns-alt-names option to `puppet certificate generate`
    
    This option has the same behavior as it does with `puppet cert
    generate`. That is, if the option is set via the CLI, it will always be
    set on the CSR. If it is not set via the CLI, but is supplied in the
    config file, it will only be set on the CSR if the CSR is for the
    current host.

commit c65236dc47a6ca343cf134768b3129b5a34e48d1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 11:50:23 2011 -0700

    Ruby 1.8.5 compatibility changes in tests and code.
    
    A handful of methods, like Array#count and String#start_with? don't exist in
    older versions of Ruby, and have sufficiently complex semantics that
    rebuilding them seems less than worthwhile.
    
    This rewrites the small points of code to avoid those methods, retaining
    compatibility with 1.8.5 and 1.8.6 across the board.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6c376230741085ade046d62aaf2ccc4ea040f8d7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 11:48:52 2011 -0700

    Add `lines` alias for `each_line` in Ruby 1.8.5.
    
    String and IO both have the method `lines`, an alias for `each_line`, added in
    version 1.8.7; this was used in a few places in the code, and because it is a
    simple alias we can easily add it in older versions by hand.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e29eb6aeebc7eff1e803ec2a095dd77a760678f0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 11:27:02 2011 -0700

    s/not_to/should_not/ for older versions of RSpec 2.
    
    The `not_to` method for RSpec came in later than the version available on some
    of our older test platforms.  This uses a less well worded, but more
    compatible, test to keep everything passing on the older machine.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f1f52988b2fe95fcd42fe468106c153ad170991d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 20 10:40:33 2011 -0700

    (#2848) Eliminate redundant `master_dns_alt_names`.
    
    Now that `dns_alt_names` applies to local CSR generation, there is no need
    for a special configuration option only applied to a master certificate.
    
    Eliminating that option allows us to simplify the overall model, and provide
    more uniform access to the `subjectAltName` setting when required.
    
    Documentation about the option is also updated.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3a8b376b11a02643fee8cef15714914c21f08163
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Oct 18 12:03:23 2011 -0700

    (#2848) Remove the legacy SSLCertificates code
    
    This code is no longer used, and is largely duplicated in Puppet::SSL.
    Thus, rather than fixing SSL issues in two places, one of which is
    unused, we can just remove this code.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 28dead0c05f4b01f6c273abfca0891ff0ee63da4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Oct 18 11:51:42 2011 -0700

    (#2848) Rework the xmlrpc CA handler to use the modern SSL code
    
    In order to remove the legacy SSLCertificates code, we first need to
    rework the one place it's still being used, which is the CA handler.
    Now, this handler essentially just defers to the Puppet::SSL classes.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a644514f115d273be3235d97d11771206a093b95
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Oct 18 12:03:09 2011 -0700

    (#2848) Remove unused xmlrpc code
    
    We no longer use the xmlrpc client in 2.6, so this is dead code. Because
    it depends on the legacy SSLCertificates code, which is also going away,
    this code needs to be removed. We leave the server code for backward
    compatibility with older clients.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2b1ad43a99249c9e0bef753cb18c6cab45a4f750
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Oct 19 11:58:35 2011 -0700

    (#2848) Consistent return values from `subject_alt_names` accessors.
    
    The various implementations of the `subject_alt_names` accessor on SSL objects
    had different return types when the records were not present: nil, or an empty
    array.
    
    This unifies them to consistently return an empty array, which makes it easier
    to iterate across the code.  It also cleans up some logic around handling
    policy on those, to make it cleaner and quicker by not duplicating the same
    "are there any subjectAltName values?" test across every policy check.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d8516d947c4fae19e5a478e9401fdeff2ff4725f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Oct 19 11:50:52 2011 -0700

    (#2848) Consistently use `subject_alt_names` as accessor name.
    
    We had several different names for the same operation on different SSL
    objects; this made little sense.  Now they are unified to use the same,
    standard-based, name for the accessor.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0b45f4ceb015d3d058221364d4a662bb2c7d28fa
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Oct 19 11:48:16 2011 -0700

    (#2848) Don't strip the subjectAltName label when listing.
    
    The X.509 `subjectAltName` field contains a set of labeled values; each label
    defines a namespace that the rest of the content fits within.  DNS is one of
    those, and is the only one that Puppet actually uses, but there are plenty of
    others including email addresses, IP, a DN, or a URI.
    
    When we displayed the values we used to strip that label off, which hid
    potentially critical information from the user.  Instead we should preserve,
    and display, that data.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 99488f363a3c53d4b6498d13ee5ca0c69b5e0127
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Oct 18 17:03:34 2011 -0700

    (#2848) Don't enable `emailProtection` for server keys.
    
    Previously, Puppet enabled the `emailProtection` bit in the extended key usage
    field.  This is unnecessary, and while probably not harmful we are taking the
    view that what is not required should not be allowed, so ... removed.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f1285a46eed2cabf2cd1de53c05e2ac2503c9c07
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Oct 18 16:39:07 2011 -0700

    (#2848) Only mark `subjectAltName` critical if `subject` is empty.
    
    From X509v3, the subjectAltName extension should only be marked critical if
    the subject DN is empty:
    
    "If the subject field contains an empty sequence, then the issuing CA MUST
     include a subjectAltName extension that is marked as critical. When including
     the subjectAltName extension in a certificate that has a non-empty subject
     distinguished name, conforming CAs SHOULD mark the subjectAltName extension
     as non-critical."
    
    This applies that rule, by always marking the `subjectAltName` as
    non-critical, because we never have an empty name in our system.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e65a88eadc93275358d7518102f22f99b2e76524
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Oct 18 16:24:15 2011 -0700

    (#2848) Migrate `dns-alt-names` back to settings.
    
    Now that all the other changes have been made, the `dns-alt-names` can migrate
    back to the settings where they apply only for generating the CSR for the
    local machine.
    
    The one exception to that rule is the `puppet cert generate` application, in
    which we want to pass any *command line* value of `dns-alt-names` into the CSR
    for a foreign node, but not the value from anywhere but the command line.
    
    Since the settings now track the CLI origin of a setting, we can use that to
    derive the data and pass it around appropriately to make that so.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b876c39b8e492126fd2e35ae11c5c78c379571ef
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Oct 18 14:52:55 2011 -0700

    Wire up the `setbycli` slot in Puppet settings.
    
    There was an existing slot on the setting object that tracked if the value had
    been set on the command line or not, but it was not wired up to the rest of
    the system.
    
    This wires that up, allowing us to use that to determine if the
    `dns-alt-names` setting should apply just to the local node, or to all nodes,
    safely from the `puppet cert` application.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a53f2f2b81f613fc0fc33c180ab028e97ca0c232
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Oct 17 14:09:34 2011 -0700

    (#2848) rename subject-alt-name option to dns-alt-names
    
    The name of the option for adding subjectAltName fields to the request didn't
    really indicate what it actually did: we forced the names into the DNS label
    space, and generally imposed a bunch of additional behaviours.
    
    This renames the option to better match the intended use.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit bc2267ad8d90a8a86be04cbea6087c40e37478b0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Oct 17 13:58:54 2011 -0700

    (#2848) Rename `certdnsnames` to match new behaviour.
    
    As part of the update to SSL the behaviour of the `certdnsnames` options
    changed sufficiently that it would be terribly confusing to retain it.
    
    Instead, modify the setting to warn that it is ignored, and add a new setting
    to set the default subjectAltName value for bootstrapping a master
    certificate.
    
    This retains the one really useful part of the feature, without the risk that
    someone will accidentally use the old name and receive a nasty surprise.
    
    It should also draw more attention to formerly insecure configurations.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a72049914b76a63104b21090eedca22ff2a15699
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 13 14:50:09 2011 -0700

    (#2848) Use `certdnsnames` when bootstrapping a local master.
    
    We don't have any formal way to determine if a node is a master or not, which
    makes it hard to authoritatively answer the question of "should `certdnsnames`
    apply to this node".
    
    However, we can assume that if you are the CA then you are also a master node.
    You can't be one without the other.
    
    We can also assume that if you are running as master, but are not a CA, you
    intend to continue in that fashion.  This is a weaker heuristic, but should be
    effective enough for folks that start a master at the right time...
    
    This means that the basic bootstrapping case uses that setting as it is
    designed, and since we just generated the CA certificate we can fairly
    confidently trust that we are doing the right thing with the request.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6e3f529c8997105f00234def27b60888ac54b8bb
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Oct 11 12:37:53 2011 -0700

    (#2848) CSR subjectAltNames handling while signing.
    
    The puppet cert application now supports the --allow-subject-alt-names command
    line flag to specify that the certificate to sign should contain a
    subjectAltName extension request.
    
    If the option is not specified, an attempt to sign a certificate with alt
    names will fail. Similarly, if the option is specified, an attempt to sign a
    certificate without alt names will fail.
    
    The latter behavior is deliberate, and is intended to help stop users from
    developing a habit of always supplying the option, and thus accidentally
    signing a dangerous certificate without realizing it when one comes along.
    
    It also adds the `--subject-alt-name` option that will add a `subjectAltName`
    extension request to a CSR when it is generated.  This allows an additional
    service to be bootstrapped with those names.
    
    Generally only one of the two options should be required, as the CSR and the
    signing process are distinct.
    
    Mostly by Nick Lewis, additional code by Daniel Pittman
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 978b65c122a60ce4eb232f1c1c7677e8ace8176d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Oct 10 10:55:26 2011 -0700

    (#2848) List subject alt names in output of puppet cert --list
    
    Given that it's potentially risky to sign a certificate which has alt
    names, we now surface that information so the user can make an informed
    decision when signing. This also includes some changes to the format of
    the output, grouping certs by status to make it more easily scannable.

commit 7460a5e5229bf9275af5e75d121dec32a19b0839
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jun 14 14:42:21 2011 -0700

    (#7224) Add a helper to Puppet::SSL::Certificate to retrieve alternate names
    
    Alternate names, if present, are specified in the subjectAltName extension of
    the certificate. The values are in the form:
    
    "DNS:alternate_name1, DNS:alternate_name2"
    
    This helper will retrieve the value of the subjectAltName extension and extract
    the alternate names, returning and empty list if the extension is absent. This
    will make it easier to access the entire list of possible names for a
    certificate, rather than just the common name; this is helpful for generating
    more detailed SSL error messages.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit 94345ebac6d79a890efc5f49e136c4f76ddda3ef
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Oct 11 11:36:08 2011 -0700

    (#2848) Rewrite SSL Certificate Factory, fixing `subjectAltName` leak.
    
    This is a major rewrite of the SSL CertificateFactory, which transforms the
    way that we build the certificate we are about to sign in response to a CSR.
    
    The main body of rework is to clean up the code and make it easier to manage
    and validate, but there are two essential changes:
    
    1. We no longer inject `subjectAltName` from local `certdnsnames`
       configuration option into every certificate we generate.  This fixes
       CVE-2011-3872, and prevents issuing client certificates that can
       impersonate the master.
    
    2. *All* request extensions from the CSR are transported into the final
       certificate.  This includes `basicConstraints`; we rely on other layers of
       the Puppet stack having validated the code to this point.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit a729d906482d4456a7c09c227831dbfe8374f4a6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Oct 10 12:35:00 2011 -0700

    (#2848) Reject unknown (== all) extensions on the CSR.
    
    If we get a CSR with a request extension that we don't recognize, we used to
    just ignore those.  This can lead to dangerous situations, or at least
    surprising behaviour, since we wouldn't copy those extensions into the final
    certificate.
    
    This changes that, by establishing an internal policy that we will whitelist
    acceptable request extensions, and will hard-reject anything that isn't on
    that.
    
    Once something passes the whitelist we will have further policy, which will
    enforce sanity in the request => certificate path.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f4fc11d4e6c8d70de5f8ddd31505e2899c970ae8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Oct 10 11:30:20 2011 -0700

    (#2848) extract the subjectAltName value from the CSR.
    
    When a CSR is submitted, we need to inspect it and determine if there are any
    subjectAltNames present in the request, and if those are legal.
    
    The logic to validate the content of an extension is complex, and decomposing
    the content requires digging into various X509 and ASN.1 related classes.
    
    This commit adds a `subject_alt_names` method that will extract the extensions
    containing subjectAltName values from the CSR, and reformat them into a useful
    set of content suitable for use in Ruby.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d64b01b1a2dd8b8669348b6adb99ae157beb9eec
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Oct 7 14:14:09 2011 -0700

    (#2848) Set `certdnsnames` values into the CSR.
    
    We were incorrectly applying the `certdnsnames` setting when a certificate was
    signed, not when a CSR was generated.  This would misapply the server setting
    to all nodes in the infrastructure, rather than applying the client-supplied
    version.
    
    This commit adds `certdnsnames` to the CSR, allowing the client to pass their
    desired set of names to the CA to be propagated into the final certificate.
    
    It does not alter the behaviour when the certificate is generated.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 78a01a253e44122dcf0343b016dbb77e1ad09575
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 15:01:38 2011 -0700

    (#6928) Don't blow up when the method is undefined...
    
    Use the same model for testing instance methods as the rest of the code.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 015610143a6a714019fdeccce4d3661a8f45dd0d
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Oct 10 15:08:01 2011 -0700

    Reset saved indirection state to an empty hash instead of nil after restoring
    
    rspec can call the global before and after hooks in a nested fashion
    around each test which will cause problems for the after hook if
    $saved_indirection_State is nil (can't call fetch on nil).

commit 19b71ba88c7d6144005f52d57db430227ab31702
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Jun 20 16:25:11 2011 -0700

    Realign test/lib/puppettest.rb after the Great Indentation Change
    
    The change from four to two space indents left some code blocks
    mis-aligned.  This addresses those mis-alignments found in
    test/lib/puppettest.rb.

commit c343615136768c50eba4f71bfe96bca4ee496b96
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 19 13:35:45 2011 -0700

    (#10161) Parenthesize method arguments
    
    Ruby 1.8.6 issues warnings when arguments to nested methods are not
    parenthesized, e.g.
    
      f.puts(YAML.dump metadata)
    
    results in:
    
      warning: parenthsize arguments(s) for future versions
    
    These warnings were introduced during Windows development, but not
    noticed on that platform due to using ruby 1.8.7, which doesn't issue
    a warning. This commit just wraps the arguments in parenthesis.

commit 1912c193d791e3dc6b0c5e99aea4d70b9854688e
Author: Nan Liu <nan@puppetlabs.com>
Date:   Fri Oct 14 16:10:32 2011 -0700

    (#8547) Update storeconfigclean script to read puppet.conf
    
    The existing storeconfig script is parsing and reading puppet.conf
    specifically from the master section. This change allows the script to
    read from the settings from puppet.conf in the order of master, main,
    and loads the rails default. This should match the puppet application
    behaviour.

commit 0175d1156421f14379a95572ded910e5b9f14629
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Oct 13 16:53:51 2011 -0700

    Revert "Merge branch 'tickets/master/8011' of git://github.com/domcleal/puppet"
    
    This reverts commit 4557e512e8ab6d021481557ecf3b50b606da2929, reversing
    changes made to 25213bfcd0c3bf1b5b59131d91490268b4949374.
    
    The code was relying on calling String#map, which doesn't work in Ruby
    1.9.  The proper thing would be to ensure that resource[:source] is
    always an array at the type level but this would potentially break
    other providers.

commit 4557e512e8ab6d021481557ecf3b50b606da2929
Merge: 25213bf b44fb87
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Oct 13 15:51:58 2011 -0700

    Merge branch 'tickets/master/8011' of git://github.com/domcleal/puppet
    
    * 'tickets/master/8011' of git://github.com/domcleal/puppet:
      (#8011) Support temp repo URLs in pkgutil provider

commit 2d2d493697e331c2c38f87ba0c1bf75bbb693287
Merge: 9fc1203 505d8d6
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Thu Oct 13 13:59:23 2011 -0700

    Merge branch '2.7rc' into 2.7.x

commit 505d8d6fb46be63ba99ed1766bfa18f6e9d955b0
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Thu Oct 13 13:58:01 2011 -0700

    Updating for 2.7.6rc3

commit 43d1e389d83cf7e202c86f73a3c786302dd56a52
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Oct 12 11:34:58 2011 -0700

    (#9996) Restore functionality for multi-line commands in exec resources
    
    Originally we were relying on the behavior that Array.new would call
     #to_a on its argument, which is a no-op if the object is already an
    array.  When #to_a is called on a string, it does not always return
    [original_string].  Because string.to_a is effectively equivalent to
    string.each_line.to_a (at least in Ruby 1.8.7) we were breaking
    commands with embedded newlines.
    
    Manually wrapping the passed in command in an array, and calling
     #flatten is much safer since it will not "helpfully" split up the
    command string for us.

commit 9fc1203c739dd20a22b663ddbd5062d301135b3d
Merge: 90166c0 5721ab9
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Oct 13 10:58:30 2011 -0700

    Merge remote-tracking branch 'josh/ticket/2.7.x/9636-onlyif-unless-windows-exec' into 2.7.x
    
    * josh/ticket/2.7.x/9636-onlyif-unless-windows-exec:
      Maint: Remove duplicate path extension code
      (#9636) Always set $CHILD_STATUS when executing on Windows
      (#9636) Fix PATHEXT resolution for paths other than system32

commit 90166c072662e504305aad32c5673d8125153bda
Merge: 0bc55ed ad98d47
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Thu Oct 13 10:28:40 2011 -0700

    Merge pull request #164 from jhelwig/tickets/2.7.x/9831-standardize-windows-provider-confines
    
    Tickets/2.7.x/9831 standardize windows provider confines

commit 0bc55ed8f1f2b32569227ad5329c998fcb29ef5c
Merge: 5e3962c 424379d
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Wed Oct 12 16:00:39 2011 -0700

    Merge pull request #167 from jhelwig/tickets/2.7.x/9996-exec-resources-with-multiline-commands
    
    Tickets/2.7.x/9996 exec resources with multiline commands

commit 5721ab9d0effb56cfc2d498966712fa8efc42eb8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 12 11:11:29 2011 -0700

    Maint: Remove duplicate path extension code
    
    Previously, the Windows exec provider had incorrect logic for
    resolving an executable using a hard-coded list of extensions,
    e.g. '.cmd' wasn't in the list.
    
    Recently, Puppet::Util.which was modified to perform path resolution
    taking into account the PATHEXT environment variable on Windows. See
    0258096c474d1b2cbf7e403fc990a853ac277231. As a result, the duplicate
    logic in the Windows exec provider has been removed.

commit edc721e73766889d52d2ebdb94c9a7ad52f46646
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Oct 11 21:36:33 2011 -0700

    (#9636) Always set $CHILD_STATUS when executing on Windows
    
    Previously, Puppet::Util.execute did not set $CHILD_STATUS on Windows,
    including the Windows exec provider. This caused problems for the
    'onlyif' and 'unless' exec parameters, among others.
    
    When executing processes, the general approach on Unix, is to map
    stdin, stdout, stderr of the child process to /dev/null or a file
    descriptor, depending on the options specified, e.g. 'squelch',
    'combine'. The use of a file, as opposed to creating a pipe, avoids
    having to create reader threads, and the potential for deadlock that
    can occur.
    
    On Windows, we take the same approach. But this is complicated by the
    lack of 'fork' and that $CHILD_STATUS is read-only. Ideally, we could
    just use Process.spawn (as this allows redirection of stdin, etc), but
    the method is only available in ruby 1.9.
    
    So instead we use the win32/process gem, which uses the native Win32
    API CreateProcess method. And the fix is to create a subprocess that
    simply exits with the desired exit status, thereby setting
    $CHILD_STATUS for us.
    
    Also as part of this commit, the child_status variable was renamed to
    exit_status, since that is what it is really, and to avoid confusion
    with $CHILD_STATUS, which is something else entirely.

commit 448d5dbb675c393e9c206692bba06623e6438e73
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 12 15:00:53 2011 -0700

    (#9636) Fix PATHEXT resolution for paths other than system32
    
    Previously, Puppet::Util.which could only resolve executables that
    were located in the first PATH directory entry, typically
    c:\windows\system32.
    
    This was introduced in 0258096c4 due to the inner loop overwriting the
    'bin' variable that was used in the outer loop. And it wasn't noticed
    during testing, because I was always using executables from
    c:\windows\system32, e.g. cmd.exe.
    
    This commit changes that the inner loop to use a different variable so
    as to not clobber the 'bin' variable. It also updates the spec test.

commit 25213bfcd0c3bf1b5b59131d91490268b4949374
Merge: 941e794 5e3962c
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Oct 12 14:19:20 2011 -0700

    Merge branch '2.7.x'
    
    * 2.7.x: (27 commits)
      Updated CHANGELOG for 2.7.6rc2
      (#9832) General StoreConfigs regression.
      (#9832) General StoreConfigs regression.
      (#9607) Only validate package source when it is set or needed
      (#9461) Resolve executables using PATHEXT on Windows
      (#9938) Allow directory sticky-ness to be set
      Stub method for getting roles from the user provider
      Set vardir so that msi package provider runs on Windows
      Add Windows-specific tests when user parameter specified in exec
      Disable mount provider tests on Windows
      Update test due to lack of 'true' on Windows
      Change tests to not use 'mount' provider
      Added 'touch' method enabling tests to run on Windows
      Change test to not call 'rm -rf'
      Updated CHANGELOG for 2.7.6rc1
      Remove 'fails_on_windows' tag for passing tests
      (#9027) Get rid of spurious info messages in groupadd
      (#8414) Create scheduled_task type for use with Windows scheduled tasks
      (#8414) Require win32-taskscheduler gem on Windows
      Add ability to look up fully qualified local accounts using Puppet::Util::Adsi.sid_for_account
      ...
    
    Manually Resolved Conflicts:
    	spec/unit/resource/catalog_spec.rb

commit 424379dfa85728c26eefbe14605a19f798b76942
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Oct 12 11:34:58 2011 -0700

    (#9996) Restore functionality for multi-line commands in exec resources
    
    Originally we were relying on the behavior that Array.new would call
     #to_a on its argument, which is a no-op if the object is already an
    array.  When #to_a is called on a string, it does not always return
    [original_string].  Because string.to_a is effectively equivalent to
    string.each_line.to_a (at least in Ruby 1.8.7) we were breaking
    commands with embedded newlines.
    
    Manually wrapping the passed in command in an array, and calling
     #flatten is much safer since it will not "helpfully" split up the
    command string for us.

commit ad98d472e9d3c2ac995d7122c07843d7283ae9c2
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Oct 7 17:32:02 2011 -0700

    (#9831) Standardize Windows provider confining
    
    The newly created providers for Windows were using a combination of
    ':operatingsystem => :windows' and ':feature => :microsoft_windows'
    for their confine and defaultfor calls.  This brings them in line to
    all use the ':operatingsystem => :windows' form.
    
    The general reasoning being that :operatingsystem is used for things
    that are platform specific, where :feature is used for things that are
    supported across multiple platforms, but require that external (to
    Puppet or the base platform) support exist on the host.

commit 036678925a540e00262a1b66cba1fd468ba0fcf5
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Oct 9 20:53:46 2011 +0200

    (#9997) Add mysql2 gem support
    
    Besides the mysql gem there is a mysql2 gem that is a "modern, simple
    and very fast Mysql library for Ruby" [1]. It can either be installed as a
    seperate gem (v0.2.x) for ActiveRecord < 3.1 or can be used as part of
    ActiveRecord 3.1
    
    To use mysql2 the dbadapter setting must be set to "mysql2" and this patch
    adds support for this setting.
    
    [1] https://github.com/brianmario/mysql2#readme

commit 5e3962c5b149c1eeaf62db9090b665b45ad8a128
Merge: 5a52ae1 9d504ff
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Oct 7 15:17:00 2011 -0700

    Merge remote-tracking branch 'stschulte/ticket/2.7.x/9796' into 2.7.x
    
    * stschulte/ticket/2.7.x/9796:
      (#9796) ssh_authorized_key supports whitespace again

commit 5a52ae1266233094fb2b788ad478d8941b817c4e
Merge: 11d7857 d78afda
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Oct 7 14:08:51 2011 -0700

    Merge remote-tracking branch 'josh/sticky-bit' into 2.7.x
    
    * josh/sticky-bit:
      (#9938) Allow directory sticky-ness to be set

commit 11d7857e1f861edd90f4cc8545a3cd7dd0005329
Merge: 1b049dc bedf7d2
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Oct 7 14:08:12 2011 -0700

    Merge branch '2.7rc' into 2.7.x

commit bedf7d2f4f567b8fda61364af8d1f96d44321bdb
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Oct 7 14:03:46 2011 -0700

    Updated CHANGELOG for 2.7.6rc2

commit d457763d6b800b6ae46effb530ccb97f183d62eb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 6 16:47:29 2011 -0700

    (#9832) General StoreConfigs regression.
    
    The previous fixes around PostgreSQL were not complete in addressing the
    regression: some StoreConfigs exported and imported resources would not be
    found.
    
    This removes the last bits that were causing regressions, and additional
    testing shows that the generated SQL is now identical between 2.7.3 and the
    current version.
    
    This should resolve all the remaining regressions.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 1b049dcbe4fe35bcff02e9c4a75c22bbf783aa06
Merge: e9f653c cf8fae2
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Oct 7 12:52:39 2011 -0700

    Merge pull request #160 from daniel-pittman/bug/2.7.x/9832-storeconfigs-regressions
    
    Bug/2.7.x/9832 storeconfigs regressions

commit e9f653c40957173a3967e2bc46f081908eec56d2
Merge: baf09b1 0d7c797
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Oct 7 09:26:54 2011 -0700

    Merge remote-tracking branch 'jhelwig/tickets/2.7.x/8414-windows-task-scheduler-type' into 2.7.x
    
    * jhelwig/tickets/2.7.x/8414-windows-task-scheduler-type:
      (#8414) Create scheduled_task type for use with Windows scheduled tasks
      (#8414) Require win32-taskscheduler gem on Windows
      Add ability to look up fully qualified local accounts using Puppet::Util::Adsi.sid_for_account
      Add support for displaying hashes to Puppet::Parameter.format_value_for_display
      Move parameter formatting rules into helper method
      Wrap long lines in Type::Package
      Whitespace cleanup in Type::SshAuthorizedKey
    
    Conflicts:
    	lib/puppet/util/adsi.rb
    	spec/unit/util/adsi_spec.rb
    
    Resolved adsi formatting and duplicate sid_for_account tests

commit baf09b106c4f49fd97f58edcfeb82cfb19e28a89
Merge: 48c6077 1e8a2cd
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Oct 6 17:04:37 2011 -0700

    Merge remote-tracking branch 'josh/puppet-resource-package' into 2.7.x
    
    * josh/puppet-resource-package:
      (#9607) Only validate package source when it is set or needed
      (#9461) Resolve executables using PATHEXT on Windows

commit cf8fae216269912936cf81fcd8b9bb1eaf3b2a26
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Oct 6 16:47:29 2011 -0700

    (#9832) General StoreConfigs regression.
    
    The previous fixes around PostgreSQL were not complete in addressing the
    regression: some StoreConfigs exported and imported resources would not be
    found.
    
    This removes the last bits that were causing regressions, and additional
    testing shows that the generated SQL is now identical between 2.7.3 and the
    current version.
    
    This should resolve all the remaining regressions.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 1e8a2cd86bafb4c73d699cea67e9605e78ac0d0a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Oct 5 15:23:08 2011 -0700

    (#9607) Only validate package source when it is set or needed
    
    Previously, 'puppet resource package' failed on Windows, because the
    resource 'instances' returned by the provider do not have a source
    parameter set on them, causing validation to fail.
    
    This commit moves validation of the source parameter into a
    'validation' block in the 'source' parameter definition, It simply
    delegates to its provider. In the default case, validation is a
    no-op. In the Windows case, we validate that the source is not
    empty. It's already known to not be nil.
    
    It also adds validation to ensure the source parameter is defined when
    it is used (during install and uninstall). It intentionally adds a
    method named 'msi_source' instead of 'source' as the provider's class
    already has a method with that name.

commit 0258096c474d1b2cbf7e403fc990a853ac277231
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Oct 4 12:38:23 2011 -0700

    (#9461) Resolve executables using PATHEXT on Windows
    
    Previously, 'puppet resource package' fails on Windows when attempting
    to invoke the 'gem' executable, because on Windows, 'gem' is a ruby
    script which must be executed by calling the batch wrapper, 'gem.bat'.
    
    This commit modifies Puppet::Util.which such that if a non-absolute
    path is given, then for each directory in PATH, and each extension in
    PATHEXT, it returns the first file that exists and is executable. If
    the PATHEXT environment variable is not defined, then it defaults to
    the same values that cmd.exe uses and are known to work across all
    Windows versions.

commit d78afda39173d43d27ef6b84754490d5072a7ab6
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Sep 15 14:06:23 2011 -0700

    (#9938) Allow directory sticky-ness to be set
    
    The sticky bit (S_ISVTX) on a directory is used to restrict the
    renaming and deletion of its children, typically for world writable
    directories where you don't want users to rename/delete other user's
    files.
    
    Previously, group and other users could delete files in a directory if
    they had write and execute permission on the parent directory.
    
    With this commit, the logic is:
    
    * Securable objects can always be deleted by their owner.
    
    * If the sticky bit is not set, e.g. 00777, then any user/group/other
      with write and execute permission to the parent directory can delete
      its children. (The previous behavior)
    
    * If the sticky bit is set, e.g. 01777, then group and other may not
      delete children for which they are not the owner.
    
    The sticky bit can be set on files, though it doesn't change the
    effective permissions on the object.
    
    The state of the sticky bit is stored "out-of-band" in an access
    control entry for the 'Nobody' group. This way the state of the sticky
    bit can be round-tripped correctly. And as the name implies, no users
    are a member of the 'Nobody' group, so no users can be granted or
    denied access based on the access mask that its access control entry
    contains.

commit 48c6077682bee40ee51a8460db46140323fbecf3
Merge: 78f13c5 b3c0f1d
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Oct 6 14:06:06 2011 -0700

    Merge remote-tracking branch 'josh/maint/2.7.x/reenable-fails-on-windows' into 2.7.x
    
    * josh/maint/2.7.x/reenable-fails-on-windows:
      Stub method for getting roles from the user provider
      Set vardir so that msi package provider runs on Windows
      Add Windows-specific tests when user parameter specified in exec
      Disable mount provider tests on Windows
      Update test due to lack of 'true' on Windows
      Change tests to not use 'mount' provider
      Added 'touch' method enabling tests to run on Windows
      Change test to not call 'rm -rf'
      Remove 'fails_on_windows' tag for passing tests

commit 23b486416139472d07e7c5800bf0f71a17ab6ed7
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Oct 5 15:36:48 2011 -0700

    Maint: Document tag metaparameter's ability to take an array
    
    A question about assigning multiple tags came up in IRC, and the metaparameter
    reference didn't fully answer it. This commit changes the desc string
    of the tag metaparameter to mention that it takes an array.

commit b3c0f1dab3cf92b0fba75edda5e8bfa5ffae41bf
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 3 16:28:44 2011 -0700

    Stub method for getting roles from the user provider
    
    Previously, these tests were failing because the Windows user provider
    does not implements methods for getting the user's roles. These tests
    actually pass on other platforms that don't support
    'manages_solaris_rbac', because the Puppet::Provider::NameService
    autogenerates default methods for providers that don't implement
    getter and setter properties for valid properties.
    
    Since this test is testing the ability for the user to autorequire its
    roles (as opposed to testing roles), this commit stubs the roles
    method on the provider, enabling the test to run on Windows.

commit 006a12830f5d2d996bd0cc125c65f301c4ce3e1e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 3 15:30:40 2011 -0700

    Set vardir so that msi package provider runs on Windows
    
    fails_on_windows tag not removed, because there are still errors
    running gem.bat on Windows

commit 4185b4eb74e5ba23a29a6a1faa397cd824b534f7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 3 15:20:35 2011 -0700

    Add Windows-specific tests when user parameter specified in exec
    
    Previously, the tests were marked as fails_on_windows, because there
    wasn't an exec provider on Windows. Now that we have an exec provider,
    the tests were failing, because we do not support executing processes
    as a different user on Windows (as that requires a password). Since
    the behavior is different on Windows vs POSIX, I added tests for the
    Windows behavior.

commit aab6b40a56f1f14ff00cf8c1248c3904cc0aaf48
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 3 15:01:34 2011 -0700

    Disable mount provider tests on Windows
    
    The mount provider is not supported on Windows, so these tests have
    been disabled.

commit 58f97e36830e21601d058ca347deba2521c8cd21
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 3 14:59:52 2011 -0700

    Update test due to lack of 'true' on Windows
    
    The tests were previously failing because 'true' is not an executable
    on Windows, but a similar effect can be achieved by executing:
    
      cmd.exe /c "exit 0"
    
    Modified the tests and removed the fails_on_windows tag.

commit 1fd90c356a9b20a2087d19cfce5d5b818ddcbe86
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 3 14:39:27 2011 -0700

    Change tests to not use 'mount' provider
    
    Windows does not support a mount provider, which was causing these
    tests to fail. The tests don't actually depend on the type of provider
    used, so I switched it to use the 'host' and 'tidy' providers and
    removed the fails_on_windows tag.

commit 220f5e052e4edef099b67c660ce95e171a5b0e94
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 3 14:11:15 2011 -0700

    Added 'touch' method enabling tests to run on Windows
    
    Previously, these tests were attempting to call touch and
    /usr/bin/touch on Windows and failing. I added methods for touch'ing
    files on Windows, and removed the fails_on_windows tag.

commit ca0bc4f9a175fc445b6fa2804e849f42fdec2c08
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 3 13:39:16 2011 -0700

    Change test to not call 'rm -rf'
    
    Previously the test was failing on Windows because there were problems
    with local file serving on Windows. That part was fixed, so the only
    remaining issue was changing the test to not call 'rm -rf'.
    
    This commit converts the tests to the new style, using tmpfile,
    etc. and removes the fails_on_windows tag.

commit 5abdb9ec923f3b6696e9743728e631c5d380328d
Author: R.I.Pienaar <rip@devco.net>
Date:   Wed Oct 5 09:39:33 2011 +0100

    Add tests to scope for calling_class and calling_module handling

commit 14418a2ac3dcbc8dd672ef1887ee169114688d01
Merge: da9bc7c a735052
Author: R.I.Pienaar <rip@devco.net>
Date:   Wed Oct 5 00:57:06 2011 -0700

    Merge pull request #9 from crayfishx/master
    
    Support for $calling_module and $calling_class

commit a7350529a99e5d1bad8b03749661f3f4c7f00216
Author: Craig Dunn <craig@craigdunn.org>
Date:   Wed Oct 5 08:48:43 2011 +0100

    added volcanes patch to allow calling_module and calling_class to be evaluated in scope

commit 78f13c57b465f9b53da857b4ba08fd8a7a70b2eb
Merge: 8e302f6 27057a6
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Oct 4 14:05:03 2011 -0700

    Merge branch 'maint/2.7.x/provider_parameter_description' of https://github.com/nfagerlund/puppet into 2.7.x
    
    * 'maint/2.7.x/provider_parameter_description' of https://github.com/nfagerlund/puppet:
      Maint: Fix the "provider" parameter documentation
    
    Manually Resolved Conflicts:
    	spec/unit/type_spec.rb

commit 8e302f6f1f92c17c51574713a6de0956c37b1b64
Merge: 245dfb7 122b8c2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Oct 4 10:49:46 2011 -0700

    Merge branch 'ticket/2.7.x/9459-user-group-failures' into 2.7.x
    
    * ticket/2.7.x/9459-user-group-failures:
      (#9459) Fix problems with Windows 'user' and 'group' providers.
    
    Conflicts:
    	spec/unit/provider/user/windows_adsi_spec.rb

commit 245dfb7b335a0a0ad8f277db7249cee3b602f0aa
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Mon Oct 3 22:26:15 2011 -0700

    Updated CHANGELOG for 2.7.6rc1

commit 1883455a16e6a33cb2caf0676f46b711acde8b05
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 13 09:36:13 2011 -0700

    Remove 'fails_on_windows' tag for passing tests
    
    Many tests were previously tagged as 'fails_on_windows' and excluded
    from Jenkins, because we did not have user, group, etc providers
    on Windows. Now that these providers have been implemented, these
    tests have been re-enabled (by removing the rspec exclude filter).

commit 81ff060f514f61ff143025156f47b4025b833165
Merge: 2958b05 9c25af4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Oct 3 15:07:17 2011 -0700

    Merge pull request #151 from joshcooper/ticket/2.7.x/9027-groupadd-aix-warning
    
    Ticket/2.7.x/9027 groupadd aix warning

commit 941e7945925f59e33dab2a09be505ea43ae8b3f2
Merge: 368d4ef 2958b05
Author: Max Martin <max@puppetlabs.com>
Date:   Mon Oct 3 14:10:06 2011 -0700

    Merge branch '2.7.x'
    
    * 2.7.x: (73 commits)
      maint: Deal with [].to_s problem in 1.9.2
      (#8411) Fix change group for POSIX file provider
      Fix problem with set_mode (chmod) behavior on different test environments.
      Undo change to failing test on 1.8.5
      Resist directory traversal attacks through indirections.
      (#9838) Return the tranaction report when doing a ral save
      (#9837) Split parameter pruning from manifest formatting
      (#9837) Move resource formatting method to Puppet::Resource
      (#9837) Move properties in prep to move proc to method
      (#9837) Make a clearer variable name in the specs
      (#9837) Call puppet apply to avoid deprecation warning
      (#9837) Extract methods from the main section of the resource application
      (#9837) Start the cleanup of the puppet resource application
      (#9832) Test failures with some ActiveRecord versions.
      Updates for 2.6.11
      Updating version numbers for 2.7.5
      (#9832) 2.7.4 StoreConfigs regression with PostgreSQL.
      (#9832) 2.7.4 StoreConfigs regression with PostgreSQL.
      (#9458) Require main puppet module
      (#9793) "secure" indirector file backed terminus base class.
      ...

commit 2958b057de831d84b9c49b37ec7dcd3a9c6f3400
Author: Max Martin <max@puppetlabs.com>
Date:   Mon Oct 3 12:01:21 2011 -0700

    maint: Deal with [].to_s problem in 1.9.2
    
    [].to_s evaluates to "[]" in 1.9.2, unlike in previous Rubies where it
    evaluates to "". This caused `puppet resource` to fail to strip some
    empty values. This commit changes the way we check for empty values to
    make it more ruby-version-agnostic.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit f09b2a9f463152ac1dfb61d2d02611c761d84907
Merge: 24d6c51 3cfd39b
Author: Max Martin <max@puppetlabs.com>
Date:   Mon Oct 3 11:42:59 2011 -0700

    Merge branch '2.6.x' into 2.7.x
    
    * 2.6.x:
      Updates for 2.6.11
      (#9793) "secure" indirector file backed terminus base class.
      (#9792) Predictable temporary filename in ralsh.
      Drop privileges before creating and chmodding SSH keys.
      (#9794) k5login can overwrite arbitrary files as root
      (#9794) k5login can overwrite arbitrary files as root
      Updated CHANGELOG for 2.6.10
      Update spec and lib/puppet.rb for 2.6.10 release
      Resist directory traversal attacks through indirections.
      Resist directory traversal attacks through indirections.
      (9547) Minor mods to acceptance tests
    
    Conflicts (resolved manually):
    	CHANGELOG
    	conf/redhat/puppet.spec
    	lib/puppet.rb
    	lib/puppet/application/resource.rb
    	lib/puppet/indirector.rb

commit 24d6c518e167138a64a0d3e789a002c6761a7912
Merge: 214b929 d759f84
Author: Max Martin <max@puppetlabs.com>
Date:   Mon Oct 3 11:06:28 2011 -0700

    Merge branch 'maint/2.7.x/resource_app_cleanup' into 2.7.x
    
    * maint/2.7.x/resource_app_cleanup:
      (#9838) Return the tranaction report when doing a ral save
      (#9837) Split parameter pruning from manifest formatting
      (#9837) Move resource formatting method to Puppet::Resource
      (#9837) Move properties in prep to move proc to method
      (#9837) Make a clearer variable name in the specs
      (#9837) Call puppet apply to avoid deprecation warning
      (#9837) Extract methods from the main section of the resource application
      (#9837) Start the cleanup of the puppet resource application
    
    Conflicts (resolved manually):
    	lib/puppet/application/resource.rb

commit 9c25af46a9b55e1878b80aa2738216622cb8e9ef
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 3 10:55:49 2011 -0700

    (#9027) Get rid of spurious info messages in groupadd
    
    Usage of the groupadd provider was leading to spurious log messages of
    this form:
    
    info: /Group[developer]: Provider groupadd does not support features
    manages_aix_lam; not managing attribute ia_load_module
    
    This was due to the ia_load_module parameter requiring manages_aix_lam
    and additionally having a defaultto value of "compat."
    
    This fix is the same as was done for the useradd provider in commit
    49c5152d64bb2d73a2751e9844bb2b92b14b88eb and issue #7137.

commit 214b92979b1c789fac1c6cc1fa4df9cf8d5f3158
Merge: 6e8ce12 1f25c20
Author: Max Martin <maxwellmartin@gmail.com>
Date:   Mon Oct 3 10:21:15 2011 -0700

    Merge pull request #149 from joshcooper/ticket/2.7.x/8411-change-group-broken
    
    Ticket/2.7.x/8411 change group broken

commit 1f25c2071643646b633908718e18b00b57819773
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Oct 3 10:07:58 2011 -0700

    (#8411) Fix change group for POSIX file provider
    
    During the file type refactor, the POSIX file provider was
    accidentally changed to invoke the File.chgrp and File.lchgrp
    methods. These methods don't actually exist and this was causing
    acceptance test failures.
    
    This commit changes the POSIX file provider to invoke the File.chown
    and File.lchown methods when changing the group. Updated the spec
    tests, and also added integration tests, which simply change the owner
    and group to the current values. While not the best test, it will work
    in non-root contexts and will ensure this doesn't happen again.

commit a62f71105055b5e0ecefcdeed307ec6ae8d32da3
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Oct 3 13:17:09 2011 +0200

    (#8193) Add support for new ssh keytypes in authorized_key provider
    
    The provider now correctly detects lines that describe an
    ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 or ecdsa-sha2-nistp521 key.

commit 0efc65d6084db4f6ac6c909af3b245d3935de0e3
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Oct 3 13:14:25 2011 +0200

    (#8193) Add unit tests for new ssh keytypes
    
    Add unit tests to prove that the ssh_authorized_key provider can parse
    all different keytypes. This currently shows that the provider lacks
    support for ecdsa-sha2-nistp256, ecdsa-sha2-nistp384, and
    ecdsa-sha2-nistp521 keys.

commit 6e8ce12d31272ffd3fc4eb289d91586015eb8be6
Merge: 72c459d 599642d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Sat Oct 1 15:05:19 2011 -0700

    Merge branch 'maint/2.7.x/file-provider-build-break' into 2.7.x
    
    * maint/2.7.x/file-provider-build-break:
      Fix problem with set_mode (chmod) behavior on different test environments.
      Undo change to failing test on 1.8.5

commit 0d7c79727cfb158f7182f791ca3ad6e6248c1c23
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Sep 9 15:21:39 2011 -0700

    (#8414) Create scheduled_task type for use with Windows scheduled tasks
    
    This creates a new type for interacting with scheduled tasks on
    Windows with a provider that uses the Win32::TaskScheduler gem.
    Currently this type is limited to creating & managing time based
    triggers.
    
    The following time based triggers are supported, with any limitations
    mentioned below: One-time, daily, weekly, monthly date-based, monthly
    day-of-week-based.
    
      - 'day_of_week' must be specified as one of 'mon', 'tues', 'wed',
        'thrus', 'fri', 'sat', or 'sun'.  Support for cron-style day of
        week numbers (0 = Sunday, ..., 5 = Friday, etc.) are not supported
        at this time.
    
      - 'months' must be specified as a numeric (1 = January, ..., 12 =
        December).

commit 599642de918d92cb236f0ab56a2e1afda776b794
Author: Cameron Thomas <cameron@puppetlabs.com>
Date:   Fri Sep 30 16:29:11 2011 -0700

    Fix problem with set_mode (chmod) behavior on different test environments.
    
    Issuing a set_mode on a symlink with 0755 on MacOSX produces a link
    with the correct mode. On other Linux's (Ubuntu, specifically) all
    symlinks report 0777 regardless of how it was set. This mod simply
    gets the mode after the symlink is created and uses that in the test
    evaluation.
    
    Reviewed by: josh@puppetlabs.com

commit 72c459da75c646a33b88211937d650c4db58f106
Merge: 11d93fd 54a2565
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Sep 30 17:12:33 2011 -0700

    Merge pull request #147 from daniel-pittman/bug/2.7.x/9832-storeconfigs-postgresql-regression
    
    Bug/2.7.x/9832 storeconfigs postgresql regression
    
    Given the build is still broken, and this passes on the test systems, time to merge.

commit b43765da499ea987064c1b692caa2d5925be1710
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Sep 30 16:28:14 2011 -0700

    Undo change to failing test on 1.8.5
    
    One of the file integration specs was failing because Tempfile does
    not produce random filenames. As a result, a test was attempting to
    create a directory, but failing, because a file already exists from a
    previous test.
    
    This commit changes the test back to the way it was -- it creates a
    directory in which it creates files and directories.

commit 4ddef893700a4a5513e3490bb8dc4b1cffa79cd0
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 30 10:20:46 2011 -0700

    (#8414) Require win32-taskscheduler gem on Windows
    
    The win32-taskscheduler gem provides an interface to creating, and
    managing scheduled tasks on Windows, which will allow us to create a
    new scheduled_task type to manage these via Puppet.

commit 0ecf3ab382a175e6403130b22eef11794c37741c
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Sep 30 16:07:49 2011 -0700

    Add ability to look up fully qualified local accounts using Puppet::Util::Adsi.sid_for_account
    
    In order to more easily verify input, and check whether the account
    information is in sync for the upcoming scheduled_task type, we will
    need to be able to look up the SID for a fully qualified user (which
    is what is returned from Win32::TaskScheduler).

commit 23d5aeb5cbc1f55ba4f40d9def149f22d8be33aa
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Sep 9 13:36:39 2011 -0700

    Add support for displaying hashes to Puppet::Parameter.format_value_for_display
    
    Since we will be using hashes, and arrays of hashes as the value of
    one of the properties in Redmine issue #8414, we will need to be able
    to properly display them, instead of concatenating the keys and values
    of the hash together.

commit f0c3414b370a8d08ec3742b899849d8c1952b6d8
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Sep 9 13:26:59 2011 -0700

    Move parameter formatting rules into helper method
    
    By moving the logic for formatting the values of parameters and
    properties into a class method on Puppet::Parameter, we can re-use
    this logic in more places, without having to duplicate it.  This will
    also allow us to more easily add support for properly displaying hash
    values, which will be necessary as part of Redmine issue #8414.

commit 845e05b60a31e619d2a31f3df6bf48d143ff9b3f
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Sep 9 13:23:33 2011 -0700

    Wrap long lines in Type::Package

commit 18d65ec6033ad91e027a85c89d43de6639ed30d3
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Sep 9 13:22:53 2011 -0700

    Whitespace cleanup in Type::SshAuthorizedKey

commit 11d93fd4044943d7cd4c802bf16caba4cb794d33
Merge: c275a51 4079ab2
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Sep 30 15:45:24 2011 -0700

    Merge branch '2.7rc' into 2.7.x

commit c275a518d10bc9ef87d330c052cdc3d6f4241942
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Sep 24 12:44:20 2011 -0700

    Resist directory traversal attacks through indirections.
    
    In various versions of Puppet it was possible to cause a directory traversal
    attack through the SSLFile indirection base class.  This was variously
    triggered through the user-supplied key, or the Subject of the certificate, in
    the code.
    
    Now, we detect bad patterns down in the base class for our indirections, and
    fail hard on them.  This reduces the attack surface with as little disruption
    to the overall codebase as possible, making it suitable to deploy as part of
    older, stable versions of Puppet.
    
    In the long term we will also address this higher up the stack, to prevent
    these problems from reoccurring, but for now this will suffice.
    
    Huge thanks to Kristian Erik Hermansen <kristian.hermansen@gmail.com> for the
    responsible disclosure, and useful analysis, around this defect.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3cfd39b1907d1ce7065e166df06a5cdd8cd28e47
Merge: e7a6995 2bf8004
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Sep 30 15:30:34 2011 -0700

    Merge branch '2.6rc' into 2.6.x

commit d759f84c30a03206f731f6d406d00f8b5b277d1e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Sep 30 15:00:54 2011 -0700

    (#9838) Return the tranaction report when doing a ral save
    
    When using puppet resource from the command line, using `puppet
    resource` to do a save will log error messages to the console when
    saving using the ral indirection.  However, this doesn't help when using
    that indirection in Ruby like you might from MCollective's puppetral
    agent.
    
    So we now return the transaction report you get from applying the
    catalog.
    
    The only place we could find this indirection being used was in the
    `puppet resource` application, although it's possible that code external
    to puppet uses this indirection and will need to change what it expects
    for the return value of save.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 127f83e80e5b8d579b4349529bad466570c52e45
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Sep 30 13:44:45 2011 -0700

    (#9837) Split parameter pruning from manifest formatting
    
    The code we really want to use in the MCollective puppetral agent is
    just the pruning of parameters, not the formatting of the resource to a
    manifest text.  Therefore, we're splitting that out so pruning and
    manifestification can be called separately.
    
    This also adds tests for the parameter pruning behavior.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 9d5ce00e8b24367d1b85d2bfe6c12f4a080265a0
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Sep 29 00:31:12 2011 -0700

    (#9837) Move resource formatting method to Puppet::Resource
    
    Rather than use a proc in the Resource application, we move the proc to
    be a method on Puppet::Resource so that we can reuse the method in the
    MCollective puppetral agent.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 86230d891dad022c0f7a28f2f553fe6ad4742e7d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Sep 29 00:14:06 2011 -0700

    (#9837) Move properties in prep to move proc to method
    
    This will make the diff easier to read when we move the proc to be an
    actual method.  The proc used to rely on properties retrieved from the
    context in which the proc was defined, which won't be avaiable when the
    proc is moved.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit bf952e1420a62470756ddef17b96ac255b7230d7
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Sep 28 23:32:14 2011 -0700

    (#9837) Make a clearer variable name in the specs
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 6885c365bc5091da7ce11cb29b4db9803ecbed0a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Sep 28 23:04:38 2011 -0700

    (#9837) Call puppet apply to avoid deprecation warning
    
    If you edit the resource it's immediately applied after exiting the
    editor, but it was applied with old syntax that resulted in the deprecation
    warning:
    
        warning: Implicit invocation of 'puppet apply' by passing files (or flags) directly
        to 'puppet' is deprecated, and will be removed in the 2.8 series.  Please
        invoke 'puppet apply' directly in the future.

commit 93f8057d9b32ed0da171917a1ab52dedce56cf17
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Sep 28 22:24:51 2011 -0700

    (#9837) Extract methods from the main section of the resource application
    
    This makes the main method a lot easier to read and figure out what's
    going on.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 5d33214e24f4dadfacd1ccb31857f40fc9b6f4ef
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Sep 28 21:23:23 2011 -0700

    (#9837) Start the cleanup of the puppet resource application
    
    In order to use the same logic for the puppet resource application in
    the puppetral MCollective agent it helps to figure out what logic in the
    resource app is there for what reason.
    
    Specs that declare an object responds to a method are redundant when the
    method is called later to test the output.
    
    Also have tests that assert errors are raised, also assert the messages
    associated with those errors.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit ec587b449e56050afca9838b23df9f0d8ffc7a63
Merge: fd4f9d6 5fea1dc
Author: Cameron Thomas <cameron@puppetlabs.com>
Date:   Fri Sep 30 14:06:40 2011 -0700

    Merge branch 'file-providers' of https://github.com/joshcooper/puppet into 2.7.x
    
    Conflicts:
    	lib/puppet/util/adsi.rb
    	spec/unit/util/adsi_spec.rb

commit 54a25652e220097d3829e34762274c0b9c838fc8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Sep 30 13:50:48 2011 -0700

    (#9832) Test failures with some ActiveRecord versions.
    
    The previous PostgreSQL fix had issues with some versions of ActiveRecord
    causing test failures; this seems to be tied to specific versions of both AR
    and SQLite triggering the failure mode.
    
    The root cause was a badly stubbed record in the database, which is corrected
    by this change, and the problem resolved.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2bf8004b05d725572c796f2a423f911f1583f3f2
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Sep 30 11:32:51 2011 -0700

    Updates for 2.6.11

commit 4079ab2a5df6afcf11abe28c81db65fab3008458
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Sep 30 11:01:11 2011 -0700

    Updating version numbers for 2.7.5

commit de51f3d376c97de789c7b9d9bf4c59f3eb907505
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Sep 30 10:36:37 2011 -0700

    (#9832) 2.7.4 StoreConfigs regression with PostgreSQL.
    
    The extraction of StoreConfigs to a terminus caused a regression for
    PostgreSQL users, in that we had the wrong case for the title of resources in
    the database when matching.
    
    This wasn't caught because MySQL and SQLite do case insensitive matching, and
    our stub data was wrongly using a downcased name to test.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit fd4f9d6cf9b24df149111bb6f0b1c824c7dce21b
Merge: 6621498 8343077
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Sep 30 10:44:30 2011 -0700

    Merge pull request #146 from daniel-pittman/bug/2.7.x/9832-storeconfigs-postgresql-regression
    
    Bug/2.7.x/9832 storeconfigs postgresql regression

commit 8343077c154dbe60919783870badb615959ebc8e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Sep 30 10:36:37 2011 -0700

    (#9832) 2.7.4 StoreConfigs regression with PostgreSQL.
    
    The extraction of StoreConfigs to a terminus caused a regression for
    PostgreSQL users, in that we had the wrong case for the title of resources in
    the database when matching.
    
    This wasn't caught because MySQL and SQLite do case insensitive matching, and
    our stub data was wrongly using a downcased name to test.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b2e2175b1591b0f82bba6730e7afe1ddbf192cb4
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Sep 30 09:52:21 2011 -0700

    Include necessary Facter stubs
    
    The values for :macaddress and :arp need to be stubbed out for
    the 10.5 tests.

commit 6621498ee821ae5923d52542f56499fca3f52cfa
Merge: b90b559 dce82ea
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Sep 29 15:54:47 2011 -0700

    Merge remote-tracking branch 'josh/ticket/2.7.x/9458-puppet-fails-when-no-subcommand' into 2.7.x
    
    * josh/ticket/2.7.x/9458-puppet-fails-when-no-subcommand:
      (#9458) Require main puppet module

commit dce82eaa90021ed28f4f6f15d746a8f6056d182c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 13 14:53:51 2011 -0700

    (#9458) Require main puppet module
    
    Puppet was getting an undefined method error when running puppet
    without a subcommand or with an "unavailable" subcommand. This was due
    to the Puppet::Util.which method attempting to access the
    Puppet.features.microsoft_windows? feature before the main Puppet
    module had been loaded.
    
    The command_line code is very order-dependent when launching available
    applications: it has to instantiate the application and set the
    run-mode prior to loading the top-level Puppet module. However, the
    command_line only invokes the Puppet::Util.which method when
    attempting to resolve an external application or when displaying usage
    information. In other words, we've already decided that we're not
    going to launch an available application and we're either going to
    invoke system(..) or we're going to exit, in which case, it's safe to
    load the top-level Puppet module without side-effects.

commit b90b559d5d2a2cba3956f0bc90ba1286fa936e76
Merge: 4ecbe94 6533292
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Sep 29 13:40:23 2011 -0700

    Merge branch 'ticket/2.7.x/9328-user-group-sids' into 2.7.x
    
    * ticket/2.7.x/9328-user-group-sids:
      (#9328) Retrieve user and group SIDs on windows.
    
    Conflicts:
    	lib/puppet/provider/user/windows_adsi.rb
    
    Resolved conflict with getting/setting user passwords

commit e158b262dbe1da3ab46b48bf7731d6e947370a84
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 29 00:07:16 2011 -0700

    (#9793) "secure" indirector file backed terminus base class.
    
    The file base class in the indirector trusted the request key directly, which
    made it vulnerable to the same potential for injection attacks as other
    terminus base classes.
    
    However, this is somewhat mitigated by the fact that base class is entirely
    unused.  We can simple eliminate it from the system, because nothing is more
    secure than code that doesn't exist.
    
    The only consumer of the code was in the tests, and didn't care what base
    class was used, so that was substituted with a continuing class.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 1aa9be5a975282e366c6e107da43eb4518a05dab
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Sep 28 23:59:49 2011 -0700

    (#9793) "secure" indirector file backed terminus base class.
    
    The file base class in the indirector trusted the request key directly, which
    made it vulnerable to the same potential for injection attacks as other
    terminus base classes.
    
    However, this is somewhat mitigated by the fact that base class is entirely
    unused.  We can simple eliminate it from the system, because nothing is more
    secure than code that doesn't exist.
    
    The only consumer of the code was in the tests, and didn't care what base
    class was used, so that was substituted with a continuing class.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d76c30935460ded953792dfe49f72b8c5158e899
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Sep 28 23:35:19 2011 -0700

    (#9792) Predictable temporary filename in ralsh.
    
    When ralsh is used in edit mode the temporary filename is in a shared
    directory, and is absolutely predictable.  Worse, it won't be touched until
    well after the startup of the command.
    
    It can be tricked into writing through a symlink to edit any file on the
    system, or to create through it, but worse - the file is reopened with the
    same name later, so it can have the target replaced between edit and
    operate...
    
    The only possible mitigation comes from the system editor and the behaviour it
    has around editing through symbolic links, which is very weak.
    
    This improves this to prefer the current working directory for the temporary
    file, and to be somewhat less predictable and more safe in conjuring it into
    being.
    
    Fixes CVE-2011-3871
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit b29b1785d543a3cea961fffa9b3c15f14ab7cce0
Author: Ricky Zhou <ricky@fedoraproject.org>
Date:   Mon Aug 29 16:01:12 2011 -0400

    Drop privileges before creating and chmodding SSH keys.
    
    Previously, potentially abusable chown and chmod calls were performed as
    root.  This tries to moves as much as possible into code which is run
    after privileges have been dropped.
    
    Huge thanks to Ricky Zhou <ricky@fedoraproject.org> for discovering this and
    supplying the security fix.  Awesome work.
    
    Fixes CVE-2011-3870
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 343c7bd381b63e042d437111718918f951d9b30d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Sep 28 23:35:19 2011 -0700

    (#9792) Predictable temporary filename in ralsh.
    
    When ralsh is used in edit mode the temporary filename is in a shared
    directory, and is absolutely predictable.  Worse, it won't be touched until
    well after the startup of the command.
    
    It can be tricked into writing through a symlink to edit any file on the
    system, or to create through it, but worse - the file is reopened with the
    same name later, so it can have the target replaced between edit and
    operate...
    
    The only possible mitigation comes from the system editor and the behaviour it
    has around editing through symbolic links, which is very weak.
    
    This improves this to prefer the current working directory for the temporary
    file, and to be somewhat less predictable and more safe in conjuring it into
    being.
    
    Fixes CVE-2011-3871
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 88512e880bd2a03694b5fef42540dc7b3da05d30
Author: Ricky Zhou <ricky@fedoraproject.org>
Date:   Mon Aug 29 16:01:12 2011 -0400

    Drop privileges before creating and chmodding SSH keys.
    
    Previously, potentially abusable chown and chmod calls were performed as
    root.  This tries to moves as much as possible into code which is run
    after privileges have been dropped.
    
    Huge thanks to Ricky Zhou <ricky@fedoraproject.org> for discovering this and
    supplying the security fix.  Awesome work.
    
    Fixes CVE-2011-3870
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6533292f766e466c46b7ae3fb97d5a4cf7b4d3bd
Author: Cameron Thomas <cameron@puppetlabs.com>
Date:   Wed Sep 28 11:38:59 2011 -0700

    (#9328) Retrieve user and group SIDs on windows.
    
    This commit implements the ID get-method for Windows 'user' and
    'group' providers. Prior to this commit, 'puppet resource {user,group}'
    would not return an id property for each resource. With this change,
    the Windows user/group security identifier (SID) is provided as the id.
    
    The uid and gid properties are read only. Setting these values is still
    not supported for Windows providers, and attempting to set either
    property will result in a failure message. Attempting to set the
    user 'gid' or 'shell' properties will likewise fail.
    
    Spec tests have been updated.

commit f5bc8971fd6fd9dcf24e343ff8dff3829d80ad42
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Thu Sep 29 10:57:05 2011 -0700

    Remove test dependencies on QUANTITY of calls
    
    Changed the tests that expected a specific number of calls
    to simple stub tests when what's being tested is NOT the
    number of times a reference is CALLED.

commit 7d4c169df84fc7bbeb2941bf995a63470f71bdbd
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 29 00:32:49 2011 -0700

    (#9794) k5login can overwrite arbitrary files as root
    
    The k5login type is typically used to manage a file in the home directory of a
    user; the explicit purpose of the files is to allow access to other users.
    
    It writes to the target file directly, as root, without doing anything to
    secure the file. That would allow the owner of the home directory to symlink
    to anything on the system, and have it replaced with the  correct  content of
    the file. Which is a fairly obvious escalation to root the next time Puppet
    runs.
    
    Now, instead, fix that to securely write the target file in a predictable and
    secure fashion, using the `secure_open` helper.
    
    Fixes CVE-2011-3869
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2775c21ae48e189950dbea5e7b4d1d9fa2aca41c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 29 00:32:49 2011 -0700

    (#9794) k5login can overwrite arbitrary files as root
    
    The k5login type is typically used to manage a file in the home directory of a
    user; the explicit purpose of the files is to allow access to other users.
    
    It writes to the target file directly, as root, without doing anything to
    secure the file. That would allow the owner of the home directory to symlink
    to anything on the system, and have it replaced with the  correct  content of
    the file. Which is a fairly obvious escalation to root the next time Puppet
    runs.
    
    Now, instead, fix that to securely write the target file in a predictable and
    secure fashion, using the `secure_open` helper.
    
    Fixes CVE-2011-3869
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 51adf3146f045e6b5448f13623062391c296f48c
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Thu Sep 29 10:37:58 2011 -0700

    Reset the @macosx_version_major variable
    
    Because the value of @macosx_version_major was being
    cached between test runs, a before :each block was added
    to initialize the variable before each run.

commit e7a69952c052e89acc5b57a51ac0680a7a9a5977
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 29 00:32:49 2011 -0700

    (#9794) k5login can overwrite arbitrary files as root
    
    The k5login type is typically used to manage a file in the home directory of a
    user; the explicit purpose of the files is to allow access to other users.
    
    It writes to the target file directly, as root, without doing anything to
    secure the file. That would allow the owner of the home directory to symlink
    to anything on the system, and have it replaced with the  correct  content of
    the file. Which is a fairly obvious escalation to root the next time Puppet
    runs.
    
    Now, instead, fix that to securely write the target file in a predictable and
    secure fashion, using the `secure_open` helper.
    
    Fixes CVE-2011-3869
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4b9dfddae45615c8f7390c6c8510601d064c4a24
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Thu Sep 29 10:36:34 2011 -0700

    Reset the @job_list variable between tests
    
    Because the value of @job_list has the ability to be cached
    between tests, an after :each block was added to initialize
    that variable to nil each time.

commit 446a5bf1a09751839d410aab9ecab3d8727b95c0
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Thu Sep 29 10:33:05 2011 -0700

    Remove use of defined?()
    
    defined?(@macosx_version_major) will still evaluate to TRUE if the
    variable is nil. Changed this to if @macosx_version_major which retains
    the same functionality and is somewhat easier to test.

commit 0e4079d6b0468d470ce55de464109e2cf7e1a4a9
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Thu Sep 29 10:30:39 2011 -0700

    Use memoization instead of 'unless'
    
    Use the ||= syntax instead of an if x unless y.

commit 9d504ff11d64bbfc6449aa71ce2c27c5402f2846
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu Sep 29 16:55:46 2011 +0200

    (#9796) ssh_authorized_key supports whitespace again
    
    Remove the value validation for the name parameter.
    
    1c7f0c3530 caused a regression: puppet does not support whitespace in
    the name anymore, e.g. if you specify
    
        ssh_authorized_key { 'fancy user':
          ensure => present,
          type   => rsa,
          key    => 'AAAAB3...iopMxe5aWw==',
        }
    
    you will get the error "Resourcename must not contain whitespace."
    
    While spaces are in general used as a delimiter OpenSSH does support
    these in the comment field and the provider did already handle
    whitespace correctly. So the type should not forbid it.

commit 122b8c2879475a5c3768faaba19ed7cb4de6e3f6
Author: Cameron Thomas <cameron@puppetlabs.com>
Date:   Wed Sep 14 15:32:20 2011 -0700

    (#9459) Fix problems with Windows 'user' and 'group' providers.
    
    This commit corrects several problems with the Windows 'user' and
    'group' providers, Puppet::Util::ADSI helper class.
    
    The 'user' provider failed to add the username to the set of groups
    specified in the 'groups' property when creating a new user, due to
    the provider trying to enumerate a user's group membership before the
    underlying ADSI user object was saved. Any group referenced in the
    property must exist prior to creating the resource.
    
    The 'group' provider failed to save a newly-created resource, due to a
    missing 'flush' method, which in turn calls the
    'Puppet::Util::ADSI.commit' (save) method. It also had the same
    problem when creating a new group and trying to add members to it,
    before the underlying ADSI group object was saved.
    
    Windows does not allow user and groups to share the same name,
    and when attempted the ADSI connection would throw a misleading
    exception referring to an 'invalid moniker'. The 'user' provider will
    now raise an error if it attempts to create a resource when a like-named
    group already exists, and vice-versa.
    
    Spec tests were updated to reflect code changes. Added expectation
    sequence to ensure newly created users and groups are committed before
    making the ADSI connection.

commit ee107cf009a530a6a058fae0e228c7d5d954c256
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Wed Sep 28 15:13:30 2011 -0700

    Use instance variable for job_list
    
    When this behavior was changed in a previous commit, it resulted in
    launchctl list being run once for every service on the system. This
    commit reverts to the original behavior using an instance variable.

commit 41f23f16c1669c7d219ae8cd39c6257dcf31534d
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Sep 28 14:49:15 2011 -0700

    Update CHANGLEOG for 2.7.4

commit 408d117e7d6b7f2b5e0e4268fce3d4cabd2225b4
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Sep 28 14:40:28 2011 -0700

    Updated CHANGELOG for 2.6.10

commit ec5a32ae9cb4f6b737678c82f27ffdf3b5ecc9de
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Sep 28 14:36:25 2011 -0700

    Update spec and lib/puppet.rb for 2.6.10 release
    
    2.6.10 is being released as 2.6.9 + a patch for CVE-2011-3484.
    
    Anything originally targeted at 2.6.10 is now targeted at 2.6.11.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit d1e0fa197a04ea3b99ef8df51efa18aecd1e8dcb
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Wed Sep 28 14:08:08 2011 -0700

    Refactor launchd provider spec tests
    
    Refactor the tests to bring them up to date with the current
    method for spec testing our providers.

commit 3440c10ca53612207e1e8514d4e349f83b8a1c77
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Wed Sep 28 14:06:24 2011 -0700

    Refactor status method
    
    To eliminate ambiguity rename self.status to self.job_list,
    and change @status from a class instance variable to a local
    variable named job_list to force 'launchctl list' to repopulate
    the currently running job list with every call to self.job_list.

commit 62b8d6b5f00b051da4c29113f6e1b61aed4a3741
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Wed Sep 28 14:00:58 2011 -0700

    Deprecation Warning if using Facter <= 1.5.5
    
    Use the built-in Puppet deprecation function of warnonce() to
    throw a deprecation warning if a node is using a version of
    Facter that's less-than or equal-to 1.5.5.

commit 8a50c3a077fce010fd8dfba9cfadc2c55826fb60
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Tue Sep 27 11:17:35 2011 -0700

    Test prefetching
    
    With the change in methodology of the launchd provider,
    this commit stubs out calls that must query the OS and
    tests the returned array of values from the prefetching
    method.

commit f09d264d5da2aa930217faa669bcdb9781e4843e
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Tue Sep 27 11:12:45 2011 -0700

    Stub call to Facter
    
    Stub the call to Facter to test alternate versions of
    OS X

commit a6bc5a509a15b366afe82d220cf4ebb27558a44f
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Tue Sep 27 11:11:10 2011 -0700

    Optimize @product_version variable
    
    Add the ||= assignment operator instead of = so the
    self.get_macosx_version_major method doesn't get called
    every time we need to evaluate a plist.

commit af42ff803e4086cac684febe9fd17148711a427d
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Tue Sep 27 11:09:47 2011 -0700

    Documentation Commit

commit 55610bf35c14afec0a62e167a7a174de51b359a9
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Tue Sep 27 09:45:24 2011 -0700

    Whitespace Commit

commit cf3d3786020073d3583c9eebff06baabc62fa8ec
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Tue Sep 27 09:45:02 2011 -0700

    Change method used to get Fact Value
    
    A previous commit had me change the way we get the value of
    the macosx_productversion_major fact. This commmit changes
    the method to use the self.get_macosx_version_major method.

commit ce776b05f913f1f48af29262c970324d9cc6a97d
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Mon Sep 26 17:10:15 2011 -0700

    Revert launchd_spec
    
    Revert this file to the version that's in Master.

commit f65b111a23e97d81d58e881c08501331a62b69be
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Mon Sep 26 15:53:55 2011 -0700

    Rearrange launchd provider
    
    This should make it easier to read through the code and find the
    method that you need.  I've put them in the order that they're called.

commit ed90957b28754b35df30ab5b62350962df2d29e2
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Mon Sep 26 14:51:39 2011 -0700

    First attempt at launchd spec
    
    It's nasty - remove this later

commit 637b57bebe75d90461df0ca80665c00f258c4ae4
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Sep 9 16:58:16 2011 -0700

    Implement Caching
    
    This commit will implement caching with the launchd provider.
    Class instance variables are now being used to pass information
    between classes. Comments have been added to each method that
    has been modified. Launchctl has been restricted to a single
    call per puppet run, but plutil must still be used to convert
    all plists to XML.

commit 60482f47541afefe37bdc0dac10719202a895f80
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Sep 9 16:53:49 2011 -0700

    Whitespace and Alignment Commit

commit 5b52bd6ff517d92ecf01ec72bafeb0fe45c651ad
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Fri Sep 9 09:10:50 2011 -0700

    Bring up to date with topic branch
    
    This commit brings us up-to-date with the changes that were made
    to Pull Requests 99 and 100.

commit 4ecbe94924cb9a2154806fed97f1e48e2f0beeb0
Merge: 9be3b98 4e8d3a1
Author: Max Martin <maxwellmartin@gmail.com>
Date:   Wed Sep 28 13:20:10 2011 -0700

    Merge pull request #136 from mmrobins/ticket/2.7.x/dont_count_audited_resources_as_managed
    
    Ticket/2.7.x/dont count audited resources as managed

commit 9be3b98beba744c4123c78877735be90c63ecf0b
Merge: 8c2dd75 51b33d1
Author: Josh Cooper <josh+github@puppetlabs.com>
Date:   Wed Sep 28 13:15:17 2011 -0700

    Merge pull request #120 from ChaseMotorman/ticket/2.7.x/9326-windows-cleartext-passwords
    
    (#9326) Support plaintext passwords in Windows 'user' provider

commit 4e8d3a148c152e78568dabf067456084474939ca
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Sep 27 17:42:21 2011 -0700

    (#9775) Only list managed resources in the resources file
    
    In ticket #8667 puppet was made to write out a list of resources in the
    catalog. However, it sometimes wrote out resources that weren’t actually
    being managed, like audited resources.
    
    Turns out that there was already a method on the resources to ask if
    they were managed, it it did what I needed, so I used it.

commit 51b33d1f1e6ebfa658a73ab2b3f6677b3b78ec85
Author: Cameron Thomas <cameron@puppetlabs.com>
Date:   Wed Sep 28 10:59:15 2011 -0700

    (#9326) Support plaintext passwords in Windows 'user' provider.
    
    This commit adds password support to the Windows 'user' provider.
    When setting the password, the resource value is passed unmolested
    to the underlying ADSI 'SetPassword' method.  During a get,
    the password is checked using the Windows 'LoginUser' function with
    tha current user name and password. If the call succeeds, the password
    is returned; if unsuccessful, ':absent' is returned.
    
    The spec test has been updated to reflect these changes.

commit fe2de817b43a427a3c6fd629c5e13949b222ac34
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Sep 24 12:44:20 2011 -0700

    Resist directory traversal attacks through indirections.
    
    In various versions of Puppet it was possible to cause a directory traversal
    attack through the SSLFile indirection base class.  This was variously
    triggered through the user-supplied key, or the Subject of the certificate, in
    the code.
    
    Now, we detect bad patterns down in the base class for our indirections, and
    fail hard on them.  This reduces the attack surface with as little disruption
    to the overall codebase as possible, making it suitable to deploy as part of
    older, stable versions of Puppet.
    
    In the long term we will also address this higher up the stack, to prevent
    these problems from reoccurring, but for now this will suffice.
    
    Huge thanks to Kristian Erik Hermansen <kristian.hermansen@gmail.com> for the
    responsible disclosure, and useful analysis, around this defect.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 47135fbea8004f49c3255ae2052cb2357b325300
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Sep 24 12:44:20 2011 -0700

    Resist directory traversal attacks through indirections.
    
    In various versions of Puppet it was possible to cause a directory traversal
    attack through the SSLFile indirection base class.  This was variously
    triggered through the user-supplied key, or the Subject of the certificate, in
    the code.
    
    Now, we detect bad patterns down in the base class for our indirections, and
    fail hard on them.  This reduces the attack surface with as little disruption
    to the overall codebase as possible, making it suitable to deploy as part of
    older, stable versions of Puppet.
    
    In the long term we will also address this higher up the stack, to prevent
    these problems from reoccurring, but for now this will suffice.
    
    Huge thanks to Kristian Erik Hermansen <kristian.hermansen@gmail.com> for the
    responsible disclosure, and useful analysis, around this defect.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8c2dd75b5dc5e36d3f9697b049bd2427e1dd1351
Merge: 7f8c288 d34d28d
Author: Cameron Thomas <cs.thomas.dev@gmail.com>
Date:   Tue Sep 27 17:09:43 2011 -0700

    Merge pull request #109 from joshcooper/ticket/2.7.x/9435-log-destinations-on-windows
    
    Ticket/2.7.x/9435 log destinations on windows

commit 7f8c288f60913f0ed0bffce87bf5d3066b4440a4
Merge: d1b631b ea88745
Author: Cameron Thomas <cs.thomas.dev@gmail.com>
Date:   Tue Sep 27 15:24:34 2011 -0700

    Merge pull request #105 from joshcooper/ticket/2.7.x/9329-fix-daemonize-option-on-windows
    
    Verified the default behavior of 'puppet agent' is identical to 'puppet agent --no-daemonize', and 'puppet agent -daemonize' fails the options parse with ""Could not parse options: Cannot daemonize on Windows".

commit d1b631b35aa5e00de5ed52ce50276abd14630df6
Merge: e002a50 b27b013
Author: Cameron Thomas <cs.thomas.dev@gmail.com>
Date:   Tue Sep 27 14:56:22 2011 -0700

    Merge pull request #112 from joshcooper/ticket/2.7.x/8410-waitpid2-on-windows
    
    (#8410) Fix child exit status on Windows

commit 5fea1dc64829e9c8178937764faccd51131b2a77
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 27 13:57:40 2011 -0700

    Fix issues with Windows based file URIs
    
    Previously, specifying a Windows file URI of the form 'file:///C:/foo'
    as a file source failed to strip the leading slash when attempting to
    source the file. Also there was ambiguity after values were munged (a
    value of the form 'C:/foo' could either be a Windows file path or a
    URI whose scheme is 'C').
    
    This commit changes the file source to be more deliberate in how it
    validates source properties, including only allowing absolute paths
    and 'puppet' and 'file' URIs, which are both absolute and
    hierarchical. Also it uses the Puppet::Util.path_to_uri method to
    handle file path to URI translation issues.
    
    Previously, if a request was created using a Windows file URI of the
    form 'file:///C:/foo', then the set_uri_key method wasn't stripping
    the leading slash, and setting the request key to '/C:/foo'. This
    caused problems when attempting to collect metadata for Windows
    files. This commit changes the request class to use the
    Puppet::Util.uri_to_path method to handle URI path to file path
    translation issues.
    
    Previously, if a file URI was created programmatically using ruby's
    built-in URI class, such as occurs when specifying file source URIs,
    then calling URI#to_s omits the authority component, e.g. 'file:/foo'
    instead of 'file:///foo'. This commit changes the URI regex to not
    require two slashes, but note that the order of operations is
    important as Windows file paths will match the URI regex and can be
    successfully parsed: URI.parse('c:/foo').scheme == 'c'

commit 1a13d24986c390cd9d268b75cde47a322591b8f0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 26 17:08:24 2011 -0700

    Simplify absolute path detection
    
    Previously, we were trying to detect absolute-path-ness if
    File.expand_path == path, but we now have a method for checking
    absolute pathness, so we use that.

commit a163cd5b1859c2af916b40aaadb302aa8a11ff81
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 26 15:43:00 2011 -0700

    Eliminate duplicate absolute path detection
    
    The file serving indirection hooks attempts to short-circuit requests
    whose key is an absolute path or a file protocol. Previously, it was
    performing platform-specific regex matching to detect absolute
    paths. This commit changes it to use the Puppet::Util.absolute_path?
    method that does just that.

commit 0ce60a569604105e5e7ef47431d239bcd0d46b27
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 26 15:03:02 2011 -0700

    Added methods for manipulating URI and file paths
    
    Added Puppet::Util.path_to_uri and uri_to_path. These methods will be
    needed to support Windows file paths as the file 'source' property,
    metadata, and indirector.
    
    The path_to_uri method takes an absolute path and constructs a file
    URI, e.g. 'file:/foo'. Note this is equivalent to 'file:///foo' as in
    both cases the authority component of the URI is optional.
    
    On Windows local file paths are typically URI-ized as 'file:/C:/foo'
    (or 'file:///C:/foo'), whereas 'file://host/C:/foo' is used to express
    UNC paths.
    
    The uri_to_path method takes a URI (not necessarily a file URI) and
    extracts the unescaped path portion. So given a URI of
    'file:/foo%20bar', the method returns '/foo bar'.
    
    On Windows, this method strips the leading slash from file URIs that
    contain drive letters. It also converts UNC URIs of the form
    'file://host/share/file' to '//host/share/file'

commit 71ba92cd09b317fda6d77650640725de69658cf7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 21 08:30:16 2011 -0700

    Restrict the absolute path regex to the start of the string
    
    Previously the regex used to detect Windows absolute paths only
    applied the caret to the first part of the regex (the part that
    matched drive letters). But the parts used to detect UNC paths
    (\\server\name) and prefixed paths (\\?\C:\foo) were matching any part
    of the string. And since / and \ are valid path separators on Windows,
    URIs like puppet://foo/bar (used as file sources) were incorrectly
    thought to be absolute paths.
    
    This commit ensures the absolute path regex is restricted to the start
    of the string for all cases.

commit 1edf767dccc4684c11e273f2f473c418e55be960
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Sep 26 17:26:05 2011 -0700

    Move group management into providers
    
    Move provider-specific logic from the file group property to the posix
    file provider. For example, mapping group IDs to names and vice-versa
    is provider specific, but detecting if the property value is insync?
    is common across all file providers.
    
    Modify the windows file provider to allow getting and setting the
    group via its 'group' and 'group=' methods. Also, on Windows the file
    owner can be a group, and the file group can be a user, so the same
    method for mapping names and SIDs can be used for both owner and
    group.
    
    Added test cases where there weren't any.

commit 15149c10902b5841337b7463d04a3cac4eb6656d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Sep 19 22:28:42 2011 -0700

    Remove duplicate SID resolution code
    
    Previously the User and Group classes defined their own method for
    resolving a name into a SID with the assumption that we might need to
    customize the WMI query for each type of object (by including the
    SIDType in the where clause). But it turns out that the Name and
    Domain properties of the Win32_Account table are a compound key, so
    the method for resolving names into SIDs can be refactored.
    
    Also, eliminated duplicate, and slightly incorrect code from the
    Windows security integration test (it wasn't restricting the query to
    local accounts only).

commit f93251172ca73c786b01356513a3405656b00b8d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Sep 19 21:14:13 2011 -0700

    Move owner management into providers
    
    Previously, the logic for getting and setting the owner of a file,
    including validating owner names, detecting if the property is in
    sync, and detecting if we are running as root (and can manage file
    ownership) was spread across the owner property (type) and file
    providers.
    
    This commit changes the owner property (type) to only perform logic
    that is common across all file providers and to delegate to its
    provider for operations that are platform-specific. Examples of the
    former are detecting if the properties are in sync, detecting if we
    are running as root, and overriding the is_to_s and should_to_s
    methods (for displaying owners as strings). Examples of the latter are
    mapping owner names to user ids and back, and implementing the 'owner'
    and 'owner=' methods.
    
    This commit also changes the group property to always be insync? on
    Windows, as this functionality will be implemented in a later commit.
    
    It also re-enables file integration tests that previously had been
    failing on Windows due to the lack of file provider support.

commit f05fc83405f6b7847b7cdbc4e862a48d5f906b85
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 19 20:57:46 2011 -0700

    Add platform-specific metadata collectors
    
    Puppet::File_Serving::MetaData was not able to retrieve owner, group
    or mode on Windows, because the underlying Ruby File.stat
    implementation always returns 0 for uid and gid, and returns either
    644 or 444 (the latter for read-only).
    
    This commit wraps File::Stat in platform-specific objects that
    delegate to the appropriate object and method. By default, owner,
    group, mode, ftype delegate to methods on the normal File::Stat
    object. On Windows, we delegate owner, group, and mode to the get/set
    class methods of Puppet::Util::Windows::Security.

commit db0b4fbb35e570b5e1dacb5c83d038aac6e1b331
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Sep 19 20:30:45 2011 -0700

    Make string_to_sid_ptr block optional
    
    Previously the Puppet::Util::Windows::Security#string_to_sid_ptr
    method required a block to be passed to it.
    
    This commit makes the block optional, and simply returns true if the
    string SID, e.g. 'S-1-5-18', can be converted into a SID pointer
    (pointer to the binary SID structure). If the string SID cannot be
    converted, then a Puppet::Util::Windows::Error will be thrown. If the
    string SID is invalid, then the P::U::W::E#code will return 1337.
    
    This commit is being implemented so that we can validate SIDs prior to
    converting from string SIDs to names.

commit 7fc6baf22a813400e298ae99976808ec67640c82
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Sep 19 20:27:30 2011 -0700

    Add the ability to retrieve user and group SIDs
    
    This commit adds the ability to retrieve the Security ID for Windows
    users and groups. This will be necessary for translating from
    (trustee) names to SIDs as part of managing file owners and groups.

commit 22bfd9ce83ff52d909a43c370ba71112ed4961a4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Sep 26 11:33:18 2011 -0700

    Move mode management into the providers
    
    Previously, the logic for getting and setting file mode was
    implemented in the type's retrieve and sync methods of the mode
    property itself.
    
    This commit adds a validate method to the type (previously validating
    was being done in munge), and adds 'mode' and 'mode=' methods to the
    POSIX and Windows file providers. The POSIX provider does what it did
    before, and the Windows provider contains the same broken mode-logic
    that it did before. Actually translating file permissions, e.g. 0755,
    to Windows will be done in a later commit.
    
    This commit also fixes tests on Windows where the file mode was being
    set by Puppet::Util::Windows::Security, but read back using File.stat,
    which doesn't round-trip. Now the test uses the security module for
    both setting and getting.
    
    Disabled symlink tests on Windows, which are not supported.

commit 4c3aae84702225f441eb080ddbf6ff9121c1b49c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Sep 26 11:31:18 2011 -0700

    Fix typo bug that prevented FILE_DELETE_CHILD from being set
    
    The Windows FILE_DELETE_CHILD right was not being set on directories
    when the user had write and execute permission. When translating a
    POSIX permission for a specific class, e.g. user, we right shift the
    appropriate number of bits, e.g. 6, and then compare using the 'other'
    permission contants, e.g. S_IWOTH.

commit 7de0a805d6a85516b73afe3e5e7284164d2767a7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Sep 9 16:09:56 2011 -0700

    Sub away trailing backslashes at the end of sources on Windows
    
    When munging file sources, we previously only removed trailing forward
    slashes, but on Windows, a trailing backslash is equivalent, so in that
    case we ought to remove that as well.

commit 44cb1f1fb1fb736d4195959fc417c45d03e6f0b7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Sep 9 14:35:29 2011 -0700

    Refactor autorequire of parent to use pathname with ancestors
    
    Rather than implementing this logic of ascending to the root directory
    and searching for parents ourselves, we now just use the functionality
    provided by the Pathname class.

commit 1300e0afeb297d0f150cadf698e1f997dae7345c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Sep 9 13:34:33 2011 -0700

    Remove unnecessary Windows-on-non-Windows-master code for path parameter
    
    This code was taking special care to properly validate and munge the
    path parameter in the case where a non-Windows master was compiling a
    catalog for a Windows agent. However, validation and munging are only
    performed on the agent, so we can simply use the available
    platform-specific methods for verifying and splitting the path.

commit 1f9b57f0208d962d80d6b1c0d58dfb4416a98aae
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Sep 7 15:49:45 2011 -0700

    Cleanup file type integration tests
    
    These changes are to simplify and improve the specs in preparation for
    refactoring of the file type to support Windows.

commit 8d2126295f2cd6284b2e9d8e8242e8b19242c48c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Sep 6 16:16:33 2011 -0700

    Cleanup and improve coverage of file type unit tests
    
    This commit significantly reorganizes spec/unit/type/file_spec.rb, in
    preparation for refactoring of the type to support Windows. It also adds
    tests for most of the non-trivial untested methods of the file type.
    
    Disabled symlink tests on Windows, removed duplicate #remove_existing
    tests, fixed absolute path drive letter issue with the title, and
    changed tests that added an expectation to File.unlink, as cleanup is
    not able to unlink them.

commit 0a92a70a22b7e85ef60ed9b4d4070433b5ec3220
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Sep 24 12:44:20 2011 -0700

    Resist directory traversal attacks through indirections.
    
    In various versions of Puppet it was possible to cause a directory traversal
    attack through the SSLFile indirection base class.  This was variously
    triggered through the user-supplied key, or the Subject of the certificate, in
    the code.
    
    Now, we detect bad patterns down in the base class for our indirections, and
    fail hard on them.  This reduces the attack surface with as little disruption
    to the overall codebase as possible, making it suitable to deploy as part of
    older, stable versions of Puppet.
    
    In the long term we will also address this higher up the stack, to prevent
    these problems from reoccurring, but for now this will suffice.
    
    Huge thanks to Kristian Erik Hermansen <kristian.hermansen@gmail.com> for the
    responsible disclosure, and useful analysis, around this defect.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 27057a691f9c235a3ea4e9a10cac56286cc53bbf
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Sep 26 14:15:19 2011 -0700

    Maint: Fix the "provider" parameter documentation
    
    The provider parameter had a chunk of code that seemed to be designed to
    include the name of the type; however, it has always been broken and was
    resulting in bizarre English.
    
    This commit changes the way we introspect the current type -- it's hacky, but
    it gives us a correct answer -- and adds two tests to the type spec to ensure
    this documentation is being generated correctly.
    
    Paired-with: Matt Robinson <matt@puppetlabs.com>

commit e002a50e988a556e0979ffc680214f4da05a1214
Merge: 18afb3a 8b6a775
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Sep 25 20:08:48 2011 +0200

    Merge branch 'array-to_s-1.9-stable' of https://github.com/5long/puppet into 2.7.x
    
    * 'array-to_s-1.9-stable' of https://github.com/5long/puppet:
      Call Array#join explicitly on command

commit 8b6a775bd53156d3bf460fa5d01a07991a21393f
Author: Whyme.Lyu <5longluna@gmail.com>
Date:   Sun Sep 25 23:27:33 2011 +0800

    Call Array#join explicitly on command
    
    In Ruby 1.8 Array#to_s simply returns `self.join` and in 1.9 it works like
    .join(", "). We should avoid relying on it.

commit 747ffd2bca307446ea3a51aa0da917770b032ede
Author: Adrien Thebo <adrien@puppetlabs.com>
Date:   Mon Sep 19 14:53:00 2011 -0700

    (#8341) Remove duplicate loading of facter files.
    
    If there were duplicate file paths in puppet's modulepath, fact files in
    the modulepath would be loaded for every instance of the directory in
    the modulepath. The resolution to this was to unique the list of fact
    plugins to load.

commit 18afb3a5262b1447c6bb2f21e5ecb3262d004777
Merge: 8012a7b ae74c68
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sat Sep 17 18:17:55 2011 -0700

    Merge branch 'tickets/2.7.x/7982' into 2.7.x
    
    * tickets/2.7.x/7982:
      Fix failing SSL Host test introduced by b6a67edc
      Fix device.conf error reporting
      Fix #9164 - allow '-' in device certificate names
      Fix #7982 - puppet device doesn't reset all cached attributes

commit ae74c68128647c9c0b4a71a09d6ff915c665b6b3
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Sep 17 15:29:53 2011 +0200

    Fix failing SSL Host test introduced by b6a67edc
    
    The fix for #7982 added a test that was failing when run as part
    of the full suite:
      1) Puppet::SSL::Host should allow to reset localhost
         Failure/Error: previous_host = Puppet::SSL::Host.localhost
         Puppet::Error:
           Cannot save maynard.lan; parent directory /var/folders/hq/
    hhqxfhws68bc_s23f2ktyx0m0000gp/T/ssl_host_testing20110914-2703-fzokxv-0/
    ssl/private_keys does not exist
         # ./lib/puppet/indirector/ssl_file.rb:95:in `save'
         # ./lib/puppet/indirector/key/file.rb:34:in `save'
         # ./lib/puppet/indirector/indirection.rb:265:in `save'
         # ./lib/puppet/ssl/host.rb:147:in `generate_key'
         # ./lib/puppet/ssl/host.rb:176:in `certificate'
         # ./lib/puppet/ssl/host.rb:32:in `localhost'
         # ./spec/unit/ssl/host_spec.rb:69
    
    This is because during the ssl_file terminus initialization in
    ca_spec the vardir and ssldir directories are created through the
    use of Puppet.settings.use. Unfortunately those "use" are reset after
    each test but not the fact that the terminus was initialized.
    Thus when running the host_spec tests, no "implicit" Puppet.settings.use
    are run when the terminus is first accessed.
    The fix is to add an explicit Puppet.settings.use to those tests.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 8012a7bbe4bcad46ca51edbc1d21f0701606ec5f
Merge: 52f3e4c 37a1975
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Sep 16 16:08:07 2011 -0700

    Merge pull request #124 from daniel-pittman/bug/2.7.x/7991-and-4549-autoloading-for-custom-functions
    
    Bug/2.7.x/7991 and 4549 autoloading for custom functions
    
    Merged for the second time, because something in the murky past ate the original merge into the main tree, done by mmrobins.

commit 52f3e4cad515230a03efcc892867c65155ff90e5
Merge: fe4029e a74e56d
Author: Cameron Thomas <cs.thomas.dev@gmail.com>
Date:   Fri Sep 16 15:32:38 2011 -0700

    Merge pull request #123 from haus/ticket/2.7.x/catalog_spec_fix
    
    Ticket/2.7.x/catalog spec fix

commit 37a19759950b817b285daa658ecbd3e4f827aa09
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jul 26 15:58:48 2011 -0700

    (#4549) Fix templates to be able to call all functions
    
    Only a small subset of Puppet functions were available on the scope in
    templates.  This had people doing workarounds like:
    
        inline_template("<%= Puppet::Parser::Functions.autoloader.loadall; scope.function_extlookup(['hello world']) %>")
    
    Rather than need to know these workarounds and need to load all
    templates, the scope object now uses method_missing to find the function
    if avaialable.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit a74e56da5df6af56a0a8fd4d77c7c21684e1ac8c
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 16 14:31:41 2011 -0700

    Expand paths in catalog_spec for windows testing
    
    Using paths that were not being expanded had cause windows test failures. This
    patch wraps file references in File.expand_path so that the tests will work on
    linux as well as windows. It will also correctly make linux absolute paths into
    windows absolute paths.
    
    Signed-off-by: Matthaus Litteken <matthaus@puppetlabs.com>

commit 368d4efa79d36ef3840694cc92e52920924810a9
Merge: 2e12ea4 9dd18cf
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 16 11:45:11 2011 -0700

    Merge branch '2.7rc'

commit fe4029ef5b6e09689a8913c0595f9d21f9db797f
Merge: 5210f8d 9dd18cf
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 16 11:44:49 2011 -0700

    Merge branch '2.7rc' into 2.7.x

commit 9dd18cfcbf74995bde7bf18f6e3ddd47659d3daf
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 16 11:43:14 2011 -0700

    Updated CHANGELOG for 2.7.4rc3

commit 515cc6c3e0068ac584f4469d97c79d82d8a589f6
Merge: 79fb5b3 fe92f20
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Sep 16 11:28:19 2011 -0700

    Merge pull request #122 from haus/ticket/9440
    
    Ticket/9440

commit fe92f20a5e904a2350b41d7c67dc61d0194060b8
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 16 11:02:26 2011 -0700

    (#9440) Allow cron vars to have leading whitespace
    
    Patch applied from Jeremy Thornhill. This allows whitespace to appear before
    cron variables. Previously, whitespace before cron variables would trigger a
    parse failure, and the crontab, except for the puppet managed portion, would
    get removed. This addresses that issue. It also includes a test for this issue,
    added into the tests directory, which seems to be where the crontab tests live.
    
    Signed-off-by: Matthaus Litteken <matthaus@puppetlabs.com>

commit 4a37529b7d59491a70e09d323768c6db28d1a9a4
Merge: e4bb85a 8d86e5a
Author: Dan Bode <dan@bodepd.com>
Date:   Fri Sep 16 10:59:59 2011 -0700

    Merge pull request #121 from djm68/9547_accectance_tests_cleanup_cfgs
    
    (9547) Minor mods to acceptance tests

commit 8d86e5a421eeaf0972ad520b4a732c33754671bb
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Wed Aug 3 16:12:34 2011 -0700

    (9547) Minor mods to acceptance tests
    
    Consolidation of all RHEL based systems to now be identified as
    "el-" vs. rhel-, centos-, scientific-, etc.  Platform regex
    changed to only use "el-".

commit 5210f8d7748158d47bb83aaeb658fa621587e111
Merge: 25b4cb6 8ec3c7b
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Fri Sep 16 19:11:44 2011 +0200

    Merge branch 'ticket/2.7.x/4135' of https://github.com/nanliu/puppet into 2.7.x
    
    * 'ticket/2.7.x/4135' of https://github.com/nanliu/puppet:
      (#4135) Update pluginsync to only load ruby files.

commit 79fb5b3780fdf4acda42aea4b85b25a69525422b
Merge: 5df6924 da69637
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Thu Sep 15 18:20:53 2011 -0700

    Merge pull request #119 from nicklewis/ticket/2.7rc/8667-spec-fix
    
    Fix failing spec for resource file

commit da69637e32a267c0133b0eeb902065ed56d8935d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Sep 15 18:13:33 2011 -0700

    Fix failing spec for resource file
    
    This spec was trying to cause a failure to write the resource file by
    using the incorrect location "//bad file". However, this location is
    actually perfectly valid, so the write was succeeding, and the spec was
    failing. Now we use a genuinely unwritable location.

commit 5df6924d047e8b87173a6e12107a8fdc3defb3b2
Merge: bc40516 7a39ca7
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Sep 15 17:27:16 2011 -0700

    Merge branch 'ticket/2.7rc/8667-write_managed_resources' into 2.7rc
    
    * ticket/2.7rc/8667-write_managed_resources:
      (#8667) Write out a list of resources that are managed by puppet agent

commit 7a39ca72e64d9ca07875fd41d60f23140d6195d9
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Aug 23 15:33:23 2011 -0700

    (#8667) Write out a list of resources that are managed by puppet agent
    
    Similar to how the Puppet classes are written out each catalog apply,
    the list of resources is now being written out to a text file that can
    be easily used by tools like MCollective.  This allows tools that do
    ad-hoc management of resources to know if they're changing a resource
    that puppet manages, and adjust behavior accordingly.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit bc4051658bf6e057819f23eea7a138d34efd1f9d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Sep 15 17:04:53 2011 -0700

    Fix order dependent spec failure in exec specs
    
    The provider/exec/windows_spec.rb spec was creating exec resources
    explicitly using the Windows provider as the provider. The Windows
    provider was being evaluated as suitable and thus the default provider
    for the type. Then in future specs, it could be used since it was the
    default, even though it wasn't necessarily suitable, causing failures.
    Now, we just clear the defaultprovider on the exec type after all the
    specs in the file have finished, ensuring it will be recalculated
    appropriately when needed.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 8ec3c7bae0c1612295e24b70e70125bed5b03bc2
Author: Nan Liu <nan@puppetlabs.com>
Date:   Fri Jul 15 16:32:57 2011 -0700

    (#4135) Update pluginsync to only load ruby files.
    
    Pluginsync allows replication of all files, but we should only load
    ruby files available in the pluginsync directory. For example,
    currently pluginsync will attempt and fail to load puppet-module
    generated readme files. This change restrict puppet agent to only load
    ruby files, but preserve the ability to sync other files such as
    scripts in other languages, augeus lens, etc.

commit 885c9cdc91760f858601b85a7bdbb4d9f20810d9
Merge: a20551f 3b152e4
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Thu Sep 15 10:12:06 2011 -0700

    Merge branch 'ticket/2.7.x/7114fixup' of https://github.com/stschulte/puppet into 2.7rc

commit 25b4cb689432a658f3ccf8985197c5986605d764
Merge: d544104 0c8a0c7
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Sep 14 17:32:36 2011 -0700

    Merge remote-tracking branch 'josh/ticket/2.7.x/9186-win-2008-failures' into 2.7.x
    
    * josh/ticket/2.7.x/9186-win-2008-failures:
      Fix order dependent test failures relating to ADSI
      (#9186) Fix tests that fail on 2008 when running as SYSTEM

commit 0c8a0c75f27fa7ae53763f78cde6b302d7701502
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 14 17:09:10 2011 -0700

    Fix order dependent test failures relating to ADSI
    
    The ADSI spec tests were setting the computer name, but not clearing
    it. This caused other tests that tried to use ADSI to fail, such as
    spec/integration/util/windows/security_spec.rb.

commit c0edb76086d5f6d0d0eefe5f30a93bb4e6ce9d65
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 14 14:38:01 2011 -0700

    (#9186) Fix tests that fail on 2008 when running as SYSTEM
    
    The tests were failing on Jenkins because the SYSTEM account's temp
    directory is C:\windows\temp, which on 2008 only has 2 access control
    entries (one for Administrators and one for SYSTEM). One test assumed
    that newly created file/directories had extra entries, e.g. Users. The
    other test assumed that unprotecting the DACL for a newly created
    file/directory would cause it to inherit extra access control entries
    from its parent. But on 2008, the sids for the parent aces
    corresponded to the owner and group, so the sids were not "extra".
    
    I fixed both of these tests to not make assumptions about the access
    control entries present for newly created files.

commit d54410446efc8cf1d436886b161083a534f705b2
Merge: 9e725e4 8e14de6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Sep 14 11:54:38 2011 -0700

    Merge remote-tracking branch 'josh/maint/2.7.x/9186-fix-shared-examples' into 2.7.x

commit 8e14de6fa56e3c1e25ea506ee1ad3a79b9df0021
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 14 11:45:42 2011 -0700

    (#9186) Handle when running under non 'user' contexts
    
    The Sys::Admin.get_user method doesn't work when the username exists
    in the WMI Win32_Account class, but not the Win32_UserAccount
    class. For example, SYSTEM which is the user context under which the
    jenkins agent runs under.
    
    This commit modifies the spec test to query the more general
    Win32_Account class. This code will be moved to a more generic
    location in a future commit.

commit 759547511364f900d6ece94e6311c8e54cff86cd
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Sep 14 19:41:53 2011 +0200

    Fix device.conf error reporting
    
    The ConfigurationError class doesn't exist and during parsing
    of device.conf if an error is encountered it wasn't able to report
    it correctly.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 1d3a3a757ded47dc1195c91e42b580777c4dabbb
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Sep 14 19:40:54 2011 +0200

    Fix #9164 - allow '-' in device certificate names
    
    The regex was a little bit too strict and disallowed certnames
    containing a dash.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b6a67edc7ea4c42767136b2360b9dc3939be242e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Sep 14 19:34:16 2011 +0200

    Fix #7982 - puppet device doesn't reset all cached attributes
    
    This leads to strange errors like using the previous device SSL cert
    for the next device.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ba1f469dc9c8093be4748d74fe539d8bbd287117
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 14 10:21:01 2011 -0700

    (#9186) Change to shared_examples_for
    
    The build broke because I was using "shared_examples" which is not
    available in older rspec versions, e.g. 2.3.0 (which is what our
    windows jenkins nodes are configured with). Just changed the spec test
    to use "shared_examples_for" instead.

commit 9e725e4b0c01ff1291e40350deb1845643f7a26b
Merge: a20551f 42c9982
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Sep 14 10:10:30 2011 -0700

    Merge pull request #97 from joshcooper/ticket/2.7.x/9186-windows-file-security
    
    Ticket/2.7.x/9186 windows file security

commit b27b013060169f372adb43c71ed8623d60556d69
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 14 09:12:58 2011 -0700

    (#8410) Fix child exit status on Windows
    
    The Process.waitpid2 method in the win32-process gem returns an array,
    with the child's exit status as the last element. This is different
    than ruby's implementation where the last element is a Process::Status
    object, which has an exitstatus method.
    
    As a result, if a child process returned a non-zero exit status on
    Windows, then Puppet::Util.execute would raise an error while trying
    to call the exitstatus method on a Fixnum (the actual exit status).
    
    This commit ensures we consistently retrieve the exit status
    across all platforms.

commit 42c998233ba188d94f4b903f802f075ffe87f0d6
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Sep 7 09:57:37 2011 -0700

    (#9186) Add the ability to get/set windows permissions
    
    The Puppet::Util::Windows::Security module maps POSIX owner, group,
    and modes to the Windows security model, and back.
    
    The primary goal of this mapping is to ensure that owner, group, and
    modes can be round-tripped in a consistent and deterministic
    way. Otherwise, Puppet might think file resources are out-of-sync
    every time it runs. A secondary goal is to provide equivalent
    permissions for common use-cases. For example, setting the owner to
    "Administrators", group to "Users", and mode to 750 (which also denies
    access to everyone else.)
    
    There are some well-known problems mapping windows and POSIX
    permissions due to differences between the two security models. Search
    for "POSIX permission mapping leak". In POSIX, access to a file is
    determined solely based on the most specific class (user, group,
    other). So a mode of 460 would deny write access to the owner even if
    they are a member of the group. But in Windows, the entire access
    control list is walked until the user is explicitly denied or allowed
    (denied take precedence, and if neither occurs they are denied). As a
    result, a user could be allowed access based on their group
    membership. To solve this problem, other people have used deny access
    control entries to more closely model POSIX, but this introduces a lot
    of complexity.
    
    In general, this implementation only supports "typical" permissions,
    where group permissions are a subset of user, and other permissions
    are a subset of group, e.g. 754, but not 467.  However, there are some
    Windows quirks to be aware of.
    
    * The owner can be either a user or group SID, and most system files
      are owned by the Administrators group.
    * The group can be either a user or group SID.
    * Unexpected results can occur if the owner and group are the
      same, but the user and group classes are different, e.g. 750. In
      this case, it is not possible to allow write access to the owner,
      but not the group. As a result, the actual permissions set on the
      file would be 770.
    * In general, only privileged users can set the owner, group, or
      change the mode for files they do not own. In 2003, the user must
      be a member of the Administrators group. In Vista/2008, the user
      must be running with elevated privileges.
    * A file/dir can be deleted by anyone with the DELETE access right
      OR by anyone that has the FILE_DELETE_CHILD access right for the
      parent. See http://support.microsoft.com/kb/238018. But on Unix,
      the user must have write access to the file/dir AND execute access
      to all of the parent path components.
    * Many access control entries are inherited from parent directories,
      and it is common for file/dirs to have more than 3 entries,
      e.g. Users, Power Users, Administrators, SYSTEM, etc, which cannot
      be mapped into the 3 class POSIX model. The get_mode method will
      set the S_IEXTRA bit flag indicating that an access control entry
      was found whose SID is neither the owner, group, or other. This
      enables Puppet to detect when file/dirs are out-of-sync,
      especially those that Puppet did not create, but is attempting
      to manage.
    * On Unix, the owner and group can be modified without changing the
      mode. But on Windows, an access control entry specifies which SID
      it applies to. As a result, the set_owner and set_group methods
      automatically rebuild the access control list based on the new
      (and different) owner or group.
    
    We are not using the win32-file gem, because it modifies several File
    methods, e.g. dirname, basename, to return paths with
    backslashes. This breaks other parts of the code, notably Pathname, as
    calling File.basename("c:/") returns "c:\\", which prevents Pathname
    from finding the root of the drive. Instead, we call the
    GetFileAttributes and SetFileAttributes Win32 API directly.
    
    This commit also introduces a Puppet::Util::Windows::Error class that
    extends Puppet::Error, and provides access to the Win32 last error
    code and localized Windows error message.

commit 2e12ea408f2a0b848a69cfadc5884823fce0ad6c
Merge: 2ba3c44 a20551f
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Sep 13 15:56:13 2011 -0700

    Merge branch '2.7rc'

commit a20551f4343765b850562060e4f41d4393cdf31e
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Sep 13 15:53:53 2011 -0700

    Updated CHANGELOG for 2.7.4rc2

commit f61e5361b63a36bbbea109cc8dc17d33f9018a9b
Merge: 2bd8b7f 41302e9
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Sep 13 15:47:23 2011 -0700

    Merge branch '2.7.x' into 2.7rc

commit 2bd8b7f747a021967d5ae1ff85bb2b4c446f3d8c
Merge: f325b40 ae2b2c9
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Sep 13 15:45:29 2011 -0700

    Merge branch '2.7rc' of github.com:puppetlabs/puppet into 2.7rc

commit ae2b2c9cb0f78f7ac00070cc4fc298bf4c92e1be
Merge: 5a3f24d d59a0b3
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Tue Sep 13 15:44:59 2011 -0700

    Merge pull request #111 from haus/minor_cert_test_fix
    
    Update certificate_spec.rb test to include spec_helper

commit d59a0b35dbfebcdebca73f0ee48068d0d3731fdd
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Tue Sep 13 14:02:17 2011 -0700

    Update certificate_spec.rb test to include spec_helper
    
    The spec/unit/application/certificate_spec.rb test was missing a require for
    spec_helper, which then meant that the stubs method wasn't available to the
    test, and the test would fail when run on its own. This adds that require, so
    the test now passes.
    
    Signed-off-by: Matthaus Litteken <matthaus@puppetlabs.com>

commit f325b409aa247308d82af9964d6f4b717d393bd3
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jun 18 18:48:55 2011 +0200

    Fix #7984 - GigabitEthernet/TenGigabitEthernet are uncorrectly parsed
    
    The interface name abbreviation to canonical name doesn't return
    the correct name for GigabitEthernet and doesn't support TenGigabitEthernet
    interfaces.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 6cc15c2dc2c411aad31ba0e04ad7f71e67f88fc4
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jun 18 18:43:40 2011 +0200

    Fix #7983 - Cisco uptime facts doesn't always work
    
    It was failing when one category (like week, day, hour) was missing.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d34d28d6445d452740139a975e57a9f9049147ac
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 13 11:44:14 2011 -0700

    (#9435) Gracefully handle when syslog feature is unavailable
    
    Previously, if puppet is run without setting a log destination, it
    always create a syslog log destination. This fails on Windows, because
    the Syslog module is not available.
    
    This commit adds the ability for a log destination type to say whether
    it is suitable or not. If the destination is not suitable, then
    Puppet::Util::Log.newdestination(obj) is a no-op. In the case of
    syslog, it is only suitable if the syslog feature is enabled.
    
    The reason for making the change this way, is that we don't want to
    check whether the syslog feature is available everytime the log
    destination is asked to handle a log message.

commit f013c65ca84ddd49777ad11d176a120d4c3a5dae
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Sep 13 09:55:07 2011 -0700

    (#9435) Fix absolute path matching for file log destinations
    
    Puppet::Util::Log::DestFile requires that an absolute path be
    specified as the log file destination. Previously, it enforced this
    requirement using a regex that matched paths starting with '/', which
    doesn't work on Windows.
    
    This commit changes the file log destination type to use
    Puppet::Util.absolute_path? when determining file absolute-ness.

commit 41302e9003f52edb296f12e1dc888f3341526750
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Thu Sep 8 14:57:22 2011 -0700

    Fixes #9143, allows macauthorization provider to work on OS X Lion 10.7
    
    We've flipped around the confine check so we explicitly exclude the
    versions of OS X where this provider won't work, rather than working
    from a whitelist.

commit ea887456e70afe1d15151b43290770f89c3fa48f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Sep 8 21:56:33 2011 -0700

    (#9329) Disable agent daemonizing on Windows
    
    Running puppet agent on Windows with the default set of options fails
    because the win32-process gem doesn't really support fork (it
    re-executes the parent program, but doesn't preserve the parent
    context), and then it fails to setsid as this call is not implemented
    by the ruby runtime.
    
    But the bigger issue is that Windows services are the preferred way to
    run daemon processes. For this release, we will not be providing the
    code to run puppet agent as a service, though we have verified that
    puppet will run as a service using a third-party service wrapper,
    nssm.
    
    This commit changes the daemonize option to default to false on
    Windows, so that the typical 'puppet agent' command does the right
    thing. And if the daemonize option is set to true on Windows, it will
    report an error.

commit 2ba3c446f818f1b3d2d2334e354f4197b3cbb7fc
Merge: 86f4719 5a3f24d
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 9 15:03:56 2011 -0700

    Merge branch '2.7rc'

commit 5a3f24d8f31db300a464063aeb4e516eb641d038
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 9 14:56:57 2011 -0700

    Updated CHANGELOG for 2.7.4rc1

commit 1422fc38fe3e7aca4b5de61005445aadcb7fc0bc
Merge: 307d14d 2f7380b
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 9 14:46:40 2011 -0700

    Merge branch 'feature/master/7999-systemd-services' into 2.7.x

commit 307d14de9813a1b1eada342bbbd2c44352964cd2
Merge: 04519a7 3d5f655
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 9 14:46:29 2011 -0700

    Merge branch '2.7rc' into 2.7.x

commit 2f7380b6ade1510c635e59e8314316eb63522acd
Merge: 839e7c9 04519a7
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 9 14:38:17 2011 -0700

    Merge branch '2.7.x' of github.com:puppetlabs/puppet into feature/master/7999-systemd-services

commit 04519a78eba83ff604e166ab6e58aab2d681466c
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 9 13:52:40 2011 -0700

    Revert "Merge pull request #100 from glarizza/tickets/2.7.x/9192_launchd_fix"
    
    This merge, along with the merge for pull #99 has 11 failing tests in
    spec/unit/provider/system/launchd_spec.rb, reverting commit/merge until
    resolved.
    
    This reverts commit 2828d22daef9996a94e08a3942f2bf85bdb5c7a0, reversing
    changes made to 74cffa087aa35d31b331033870b026d41e40cb07.

commit 769f2b20a6879a1d9a00373e67e63e2fb225c55d
Author: Matthaus Litteken <matthaus@puppetlabs.com>
Date:   Fri Sep 9 13:51:50 2011 -0700

    Revert "Merge pull request #99 from nigelkersten/tickets/2.7.x/9143-make-macauthorization-work-on-lion"
    
    This merge, along with the merge for pull #100 has 11 failing tests in
    spec/unit/provider/system/launchd_spec.rb, reverting commit/merge until
    resolved.
    
    This reverts commit 88f1ef54dc08641c51dd40f8b0feb541e5961f69, reversing changes
    made to 2828d22daef9996a94e08a3942f2bf85bdb5c7a0.

commit 88f1ef54dc08641c51dd40f8b0feb541e5961f69
Merge: 2828d22 51b0c00
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Thu Sep 8 17:16:30 2011 -0700

    Merge pull request #99 from nigelkersten/tickets/2.7.x/9143-make-macauthorization-work-on-lion
    
    Tickets/2.7.x/9143 make macauthorization work on lion

commit 2828d22daef9996a94e08a3942f2bf85bdb5c7a0
Merge: 74cffa0 ff13d8d
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Thu Sep 8 17:16:17 2011 -0700

    Merge pull request #100 from glarizza/tickets/2.7.x/9192_launchd_fix
    
    Tickets/2.7.x/9192 launchd fix

commit ff13d8d9fd7f902c8451bd4e241ab69169fff4fc
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Thu Sep 8 17:02:07 2011 -0700

    Add comment explaining helper method
    
    This commit adds a comment explaining when plist overrides were
    enabled and why we added the has_macosx_plist_overrides? method.

commit 74cffa087aa35d31b331033870b026d41e40cb07
Merge: b4ea086 670d30c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Sep 8 16:53:49 2011 -0700

    Merge pull request #98 from daniel-pittman/feature/2.7.x/9051-storeconfig-backend-should-be-configurable
    
    Feature/2.7.x/9051 storeconfig backend should be configurable

commit 40f64e9d021525fd8146e471b9f7df2f65f74687
Author: Gary Larizza <gary@puppetlabs.com>
Date:   Thu Sep 8 16:53:18 2011 -0700

    Add has_macosx_plist_overrides? method
    
    This commit adds the has_macosx_plist_overrides? method to determine
    whether we're on a version of OS X >= 10.6.  Plist handling changed
    as of version 10.6, and this method allows us to implement different
    plist behavior without needing to modify code whenever Apple releases
    a new version of OS X (assuming plist behavior doesn't change).

commit 670d30c245db67d505a77af17004f12f97b860d9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 8 16:40:01 2011 -0700

    Fix ActiveRecord handling of symbols in query interpolation.
    
    Most versions of ActiveRecord, including the ones I test with, treat an
    interpolated symbol in an SQL query as a simple string, vis:
    
      ["example = ?", :banana] => "... WHERE example = 'banana' ..."
    
    Some versions, though, preserve the symbol-nature, and instead:
    
      ["example = ?", :banana] => "... WHERE example = ':banana' ..."
      # ...or some variant of that, where it isn't just the string.
    
    So, to avoid this confusion, manually stringify the symbol name of our
    resource type in the query builder.  This gives consistent and expected
    behaviour at all times.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 51b0c002d4f1781d930c4805f128855407add796
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Thu Sep 8 14:57:22 2011 -0700

    Fixes #9143, allows macauthorization provider to work on OS X Lion 10.7
    
    We've flipped around the confine check so we explicitly exclude the
    versions of OS X where this provider won't work, rather than working
    from a whitelist.

commit a04051a48c249e78543e2cc8b0f7bdf5bc1c1e74
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Sep 8 14:22:03 2011 -0700

    (#9051) Move complex collect expression error into terminus.
    
    When the StoreConfig system was extracted from core to a set of termini, most
    of the rules about permitted syntax were pushed down into the same place, to
    allow them to also be replaced.
    
    One set of restrictions were missed, the limitation that complex search
    criteria (like and, or, or parenthetical expressions) were not permitted, and
    remained in our parser.
    
    Now, they live in the terminus, and we enforce them only there.  This ensures
    that StoreConfigs can be replaced with a back-end that supports complex
    collection criteria without other changes to the Puppet core.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit c88d22b44ba4c76e874f15caa567b5614762584c
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Mon Sep 5 17:30:11 2011 +0200

    Fix tests for #1886 with ActiveRecord 3.x
    
    We didn't properly call the method to test, which lead to a failing
    test. However, this couldn't be properly displayed on ruby
    installations with an ActiveRecord 3.x installed, as the inspect in
    the `after test` part, tried to examine the table, which (obviuosly)
    raised a NotConnected exception.
    
    By calling the method the right way, we fix the test and hence also
    fix the failing inspection.

commit 723cd922c6d214d53f52c3598979a329b7a32538
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Mon Sep 5 17:18:39 2011 +0200

    Revert "(Maint.) Disable cleaning of storeconfigs."
    
    This reverts commit 38801ddbd3036b45d35e48e444d1e7d566b5db47.

commit b4ea0862b130293a5521709280e2a758b85d1f39
Merge: 2af5802 f7e526b
Author: joshcooper <josh+github@puppetlabs.com>
Date:   Thu Sep 1 12:18:29 2011 -0700

    Merge pull request #90 from nicklewis/fix-pidlock-removal-failure
    
    (#8413) Only try to catch Process::Error if it's defined

commit f7e526b86a015a63995a3300a3d438f3f3b4272f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Sep 1 11:49:24 2011 -0700

    (#8413) Only try to catch Process::Error if it's defined
    
    This error class is only defined when using the win32-process gem on
    Windows. So rather than always trying to rescue Process::Error (which of
    course causes its own error), we build a list of classes to rescue,
    which initially only contains Errno::ESRCH, and add Process::Error if
    it exists.

commit 2af580256d2b451b004f780f8b70fa3a31e37a6c
Merge: cfc6b75 2ab5634
Author: joshcooper <josh+github@puppetlabs.com>
Date:   Thu Sep 1 11:24:55 2011 -0700

    Merge pull request #74 from nicklewis/ticket/2.7.x/8413
    
    (#8413) Properly clean up stale pidfile on Windows

commit cfc6b7505f05d00962bdd6876ced66f23968ae24
Merge: a0fabbc 2c96286
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Aug 31 10:50:41 2011 -0700

    Merge pull request #86 from daniel-pittman/feature/2.7.x/9051-storeconfig-backend-should-be-configurable
    
    Feature/2.7.x/9051 storeconfig backend should be configurable

commit 2c9628659b7aa8f947f9f8470e22a3a7851dcedc
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Aug 31 10:49:20 2011 -0700

    Debug order-dependent test failures in CI / ActiveRecord.
    
    At this point it looks like the only remaining cause of the ActiveRecord
    failures could be that someone is leaking an active database handle in
    ActiveRecord from an unrelated test.
    
    The theory is that if the handle is open, SQLite will try to create a lock
    file in a directory that no longer exists during the test; this raises the I/O
    error we see here.
    
    To verify this, which can currently only be reproduced in the CI system, we
    close off any active handle before changing the database location settings.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 86f47191cc4d9f4fc9416804559548e1b924286a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Aug 31 10:16:40 2011 -0700

    Revert "Fixes #8119 - Write to a temporary file and move when storing reports."
    
    This reverts commit 74602e0c00ff307b8a539c7b1713fa1e20772dd4.  The change is
    incomplete, despite reading right, and shouldn't have been merged.

commit 1f69bd3c2011bbde6e6910d66c53a5af5e1b2ced
Merge: 98db04e 74602e0
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Aug 31 09:50:43 2011 -0700

    Merge pull request #83 from jamtur01/tickets/master/8119
    
    Fixes #8119 - Write to a temporary file and move when storing reports.

commit 74602e0c00ff307b8a539c7b1713fa1e20772dd4
Author: Ricky Zhou <ricky@fedoraproject.org>
Date:   Tue Jun 28 11:01:35 2011 -0400

    Fixes #8119 - Write to a temporary file and move when storing reports.
    
    When writing reports, there is a window in between opening and writing
    to the report file when the report file exists as an empty file. This
    makes writing report processors a little annoying as they have to deal
    with this case. This patch writes the report into a temporary file then
    renames it to the report file, which eliminates this window.

commit d8a3f4d4acf6ff46c20c83c329177530a9ced234
Author: Aditya Patawari <aditya.pa@directi.com>
Date:   Wed Aug 31 11:59:54 2011 +0530

    Fix for bug #9256. Get rid of error about missing sequence table while using postgresql for inventory service.

commit a0fabbcade730a49250b9c9381cc6dad1d7ec87c
Merge: 1b3cc0a 38070d5
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Aug 30 20:28:56 2011 -0700

    Merge pull request #81 from daniel-pittman/feature/2.7.x/9051-storeconfig-backend-should-be-configurable
    
    Feature/2.7.x/9051 storeconfig backend should be configurable

commit 38070d5b2a8a84a515c74be373edff59e8dfabca
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Aug 30 20:27:28 2011 -0700

    Don't toggle storeconfigs back and forth.
    
    In some cases turning StoreConfigs on, then off, can lead to test failures
    that do not reflect reality.  Instead, avoid that by using rspec contexts to
    separate out the two phases nicely.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 1b3cc0aa8ce2b3a8087420f8781ca0b9d3eb35ae
Merge: 900c591 cf60243
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Aug 30 20:02:17 2011 -0700

    Merge pull request #79 from daniel-pittman/feature/2.7.x/9051-storeconfig-backend-should-be-configurable
    
    Feature/2.7.x/9051 storeconfig backend should be configurable

commit cf602431b532957639314dc86344f725d6a3d169
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Aug 30 20:00:07 2011 -0700

    One character typo, entire code path broken...
    
    The state preserving code had a single type, resulting in the wrong value
    getting saved and restored.  This made the previous commit ineffective, and
    explains entirely why it didn't resolve the problem in the field.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 40dc39ce3fa1edf1fa8a02ca0c3a7c0e577dfc51
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Aug 30 19:42:24 2011 -0700

    More protection against accidentally using sqlite3
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 900c5916d5e09a9d5023d08b635d3c1c8393a2e6
Merge: 28c9104 f898749
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Aug 30 19:30:31 2011 -0700

    Merge pull request #78 from daniel-pittman/feature/2.7.x/9051-storeconfig-backend-should-be-configurable
    
    Feature/2.7.x/9051 storeconfig backend should be configurable

commit f898749946195cc4e27c7502b07a25aa57e5abd9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Aug 30 19:28:55 2011 -0700

    Save and restore indirector configuration around all tests.
    
    One of the most persistent and troublesome parts of the Puppet codebase, in
    terms of testing, is the indirector.  It has significant global state in the
    terminus and cache configuration, and that state was not being preserved
    between tests.
    
    Given that the runtime performance cost of doing this, other than the very
    ugly code it engenders, is approximately zero (less than 0.5 percent runtime),
    and it substantially improves correctness of testing...
    
    Now we save and restore that state around every test.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit e3073ac1538952fbf0b3681c13b835d1a624cef4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Aug 30 16:57:46 2011 -0700

    (#9051) More storeconfigs test cleanup.
    
    We had additional global state modifications out of my testing, where the
    cache class and terminus for indirections were changed.  This caused, in some
    cases other than "running on my workstation", the tests to fail trying to use
    the wrong terminus.
    
    This fixes that, by resetting the state appropriately so we don't leak global
    configuration and break each other.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 28c91040dd06afe0de7aaaf00a1f60ae8d0284a1
Merge: bdad190 51461de
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Tue Aug 30 16:15:22 2011 -0700

    Merge pull request #77 from daniel-pittman/feature/2.7.x/9051-storeconfig-backend-should-be-configurable
    
    Feature/2.7.x/9051 storeconfig backend should be configurable

commit 51461de41ea355acfb5023a97df96a9bc344163b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Aug 30 16:05:59 2011 -0700

    (#9051) Protect SQLite tests from running without gem.
    
    In testing #9051 I introduced some tests that used the SQLite database adapter
    to test StoreConfigs.  Not everywhere that did so was protected correctly, so
    machines without SQlite would blow up.
    
    Now everything is guarded the way it should be, and tests no longer explode.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 94609b11f9340879696448df9d3bc1bd1713754a
Merge: fd1d4b9 bdad190
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Aug 30 16:01:13 2011 -0700

    Merge branch '2.7.x' into feature/2.7.x/9051-storeconfig-backend-should-be-configurable

commit bdad190519e3aae8f76daba41ee7f5eb0fed6867
Merge: 29c7bf2 8700682
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 30 10:32:07 2011 -0700

    Merge branch 'feature/2.7.x/9051-storeconfig-backend-should-be-configurable' into 2.7.x
    
    * feature/2.7.x/9051-storeconfig-backend-should-be-configurable:
      (#9051) de-ActiveRecord-ify Collection expressions.
      (#9051) Port query tests into the indirection.
      (#9051) Implement the `resource` terminus for StoreConfigs.
      (#9051) Make generic tagging imported resource origins.
      (#9051) Whitespace cleanup for puppet/parser/collector
      (#9051) Dead code elimination in the compiler terminus.
      (#9051) Get the compiler out of the ActiveRecord business.
      (#9051) Implement the StoreConfigs indirection itself.
      (#9051) Add configuration around StoreConfigs indirection.
    
    Reviewed-by: Jeff McCune

commit 29c7bf2ce5d6912b6177b4477492507e0749a485
Merge: 61a809a bb0380f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Aug 29 17:41:37 2011 -0700

    Merge pull request #75 from joshcooper/ticket/2.7.x/8662-elevated-priv-check-fails-on-2k3R2
    
    Ticket/2.7.x/8662 elevated priv check fails on 2k3 r2

commit bb0380f9eccf25714b23b524324462accbb7a16d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 29 16:09:08 2011 -0700

    (#8662) Don't rely on error message to detect UAC capable platform
    
    The call to Win32::Security.elevated_privileges? can raise an
    exception when running on a pre-Vista computer or if the process fails
    to open its process token.
    
    Previously, we were looking at the exception message to determine
    which case it was. However, Windows 2003 and 2003 R2 return different
    error codes (and therefore messages) for the pre-Vista case. In 2003,
    it returns error code 1 (Incorrect function), but in 2003 R2 it
    returns 87 (The parameter is incorrect). Since SUIDManager was only
    looking for Incorrect function, SUIDManager.root? would always return
    false on 2003 R2.
    
    Ideally, we could just check if the GetTokenInformation Win32 API was
    available, and only call it on platforms where it makes sense. But
    this API is available on all recent version of Windows. What's new in
    Vista and up is the TokenElevation value of the
    TOKEN_INFORMATION_CLASS enumeration.
    
    This commit changes the suidmanager to only call GetTokenInformation
    when the major kernel version, as reported by facter, is 6.0 or
    greater, which corresponds to Vista/2008. See:
    
    http://msdn.microsoft.com/en-us/library/ms724833(v=vs.85).aspx

commit 61a809a4ccab9cce31f5fd83ae8be7771307077f
Merge: 73ea15b 6dff78c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Aug 29 16:45:48 2011 -0700

    Merge pull request #62 from nicklewis/ticket/2.7.x/8489
    
    Ticket/2.7.x/8489 Replace hard-coded colons with File::PATH_SEPARATOR

commit 73ea15bc181620e86148c7f5f6a125cd033b9605
Merge: 7a36265 cc958e1
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Aug 29 13:25:29 2011 -0700

    Merge pull request #64 from jhelwig/tickets/2.7.x/8412-install-msi-on-windows-via-package-type
    
    Tickets/2.7.x/8412 install msi on windows via package type

commit 7a36265fe79e9aa37fbe32608d68cff10eb07c52
Merge: a2ced0f 4274e15
Author: joshcooper <josh+github@puppetlabs.com>
Date:   Mon Aug 29 11:06:18 2011 -0700

    Merge pull request #63 from nicklewis/ticket/2.7.x/9174
    
    Ticket/2.7.x/9174

commit 2ab563408159c06f897cae38addb372e1f1ad63f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Aug 29 10:48:20 2011 -0700

    (#8413) Properly clean up stale pidfile on Windows
    
    This code uses 'kill 0' to determine whether a process is running with
    the pid found in the pidfile. Typically, that will raise Errno::ESRCH if
    no such process is running. However, the win32-process gem on Windows
    changes this behavior to raise Process::Error instead. Thus, we need to
    also catch Process::Error.

commit cc958e1019e30cff6cb399901e40ff5aa178e9f1
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Aug 25 15:40:41 2011 -0700

    (#8412) Add MSI package provider for use with Windows
    
    This provider takes some of its inspiration from the appdmg provider
    used with OS X.  It will maintain a list of packages that have been
    installed and removed from the system via the provider in a directory
    under Puppet's vardir called db/package/msi.  These state files will
    be named the same as the resource name with '.yml' appended.  The
    state files will be a hash containing the resource name, the install
    options used, and the source location of the MSI.
    
    Any properties that a user wishes to provide to the MSI can be
    specified as key/value pairs in the install_options parameter.  For
    example:
    
      package { 'mysql':
        provider => msi,
        source => 'E:\mysql.msi',
        ensure => installed,
        install_options => { 'INSTALLDIR' => 'C:\mysql' },
      }
    
    The MSI properties specified by install_options will be appropriately
    quoted when invoking msiexec.exe to install the MSI.
    
    Because the source parameter is integral to the functionality of being
    able to install and uninstall MSI packages, we also override
    validate_source to make sure that the source parameter is always set,
    and is not an empty string when using this provider.

commit 878ea25432706a4a68ecdb988a50af95647f7acf
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Aug 26 11:29:03 2011 -0700

    (#8412) Add optional type-level validation of the source parameter
    
    We need to be able to make the source parameter required for the MSI
    provider, since the .msi is directly used for installation, and
    uninstallation of the package.
    
    To accomplish this we add a validate_source method to the base package
    provider class that treats source as always valid to ensure there is
    no behavioral change with any of the existing providers, and we will
    override this in the MSI provider to make sure that it is set, and not
    an empty-string.

commit dad075d090e7054db4592dfeba55dabceabf7ad2
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Aug 25 15:38:19 2011 -0700

    Correct grammar in parameter comment

commit 4168a4c642825ae27574e4a91b3e057e1e5dd253
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Aug 26 11:35:32 2011 -0700

    Clean up formatting & whitespace in Puppet::Type
    
    The Great Re-Indentation of 2010 seems to have left some mis-indented
    and mis-aligned things in Puppet::Type, which this cleans up.

commit 01df23754cf12305bad460d67eca2a41493e791e
Author: Jeff Blaine <jblaine@kickflop.net>
Date:   Thu Aug 25 21:19:44 2011 -0300

    Removed spurious "exec" from a debug string

commit fd1d4b9af4d8c6bf20586ec400959d215d19f0b4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Aug 25 16:51:50 2011 -0700

    (#9051) de-ActiveRecord-ify Collection expressions.
    
    The original collection expressions built the ActiveRecord level SQL query
    directly during AST evaluation, then returned that up to the collection and
    ended up injecting it directly into the SQL query in the end.
    
    Now that we have an abstract terminus for performing the query, it makes sense
    to have an abstract definition of the query.  Instead of SQL as a string the
    collexpr AST entity now returns a data structure containing the desired
    filter.
    
    This allows the individual terminus to transform that into the appropriate
    query expression for their data store, or otherwise evaluate the requested
    filter on their own.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 78e33cc873f1cf9656c93f9f54062f72dcfe7b2d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Aug 24 12:12:11 2011 -0700

    (#9051) Port query tests into the indirection.
    
    Now that the parser is using a terminus to search, it shouldn't be in the
    business of making assertions about how the Rails level search is constructed
    from the input data.
    
    On the other hand, the ActiveRecord resource terminus *should* be in that
    business.
    
    This transplants the tests from one to the other, then rewrites the entire
    show to make them apply in their new environment.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 65580e75dba1117162558546c291163b0e5a635c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Aug 22 10:53:09 2011 -0700

    (#9051) Implement the `resource` terminus for StoreConfigs.
    
    Add a StoreConfigs terminus to the `resource` indirection, and an ActiveRecord
    implementation to back that, using the current StoreConfigs schema.
    
    This is done by extracting the database interaction out of the compiler and
    into an appropriate indirection.  Following that, push down the searching into
    the terminus itself.
    
    With this we have most of the ability to drop in a replacement for the current
    StoreConfigs storage engine.
    
    Along the way, unstub a whole pile of Puppet::Parser::Collector testing so
    that it works with the new code and, more importantly, actually tests things
    along the way.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 89aaa51e48240eba347e4239ebc28ba13f858eb3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Aug 22 17:11:22 2011 -0700

    (#9051) Make generic tagging imported resource origins.
    
    When StoreConfigs was tied to rails, parser resources were tagged with a
    `rails_id` to allow the code to determine if this was the same object we had
    previously imported.
    
    Now that we are making that generic, rename that to `collector_id` to make it
    clear that it isn't so directly tied to the original purpose.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d5b295d67c78a1de1b61a59c3652bc791da4d9ab
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Aug 22 15:08:04 2011 -0700

    (#9051) Whitespace cleanup for puppet/parser/collector
    
    This is a whitespace cleanup only, eliminating odd spacing and indents,
    killing gratuitous blank lines, and wrapping some comments more appropriately.
    
    There are no functional changes.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 611c466e235a51c308c9d630ac0cca66552c1858
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 19 16:32:07 2011 -0700

    (#9051) Dead code elimination in the compiler terminus.
    
    The `update_node_check` method in the compiler terminus used to be used for
    compilation checking, but that went the way of the dodo a long time back.
    
    Since nothing and no one in the codebase actually uses this method, and it is
    the last lingering bit of database access in the compiler, we can ditch it and
    gratefully separate out the compiler from any direct database relationship.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6e0ff6a77e0020f71205cbb006f274ae942b9acd
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 19 16:30:15 2011 -0700

    (#9051) Get the compiler out of the ActiveRecord business.
    
    When we started to abstract the system initialization of our database
    connections moved out of the parser and AST, into the compiler terminus.
    
    This was excellent progress, and helped abstract away our stored configuration
    passing system from the language itself.
    
    Now, as we move StoreConfigs out into a separate and replaceable system we
    need to get the compiler out of the business of database initialization
    entirely.  That can be fully delegated down to the StoreConfigs terminus and
    implementations themselves.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4d51680d59aa439ae44c077d5bab6fe0749754bf
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Aug 18 16:13:17 2011 -0700

    (#9051) Implement the StoreConfigs indirection itself.
    
    We now have a StoreConfigs terminus base class, and concrete uses in a number
    of indirections, along with testing to ensure they behave as expected.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit d0357c8404ad11ce5750ab85594969518f0bc5d0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Aug 18 15:07:48 2011 -0700

    (#9051) Add configuration around StoreConfigs indirection.
    
    Move from the hard-coded ActiveRecord back-end for StoreConfigs to an
    indirection model; now, we have a back-end setting for StoreConfigs which
    flows through to select the appropriate wrapped terminus when the parent
    terminus is used.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 87006825f92d4bac336e17eb386e58521dd4dab5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Aug 25 16:51:50 2011 -0700

    (#9051) de-ActiveRecord-ify Collection expressions.
    
    The original collection expressions built the ActiveRecord level SQL query
    directly during AST evaluation, then returned that up to the collection and
    ended up injecting it directly into the SQL query in the end.
    
    Now that we have an abstract terminus for performing the query, it makes sense
    to have an abstract definition of the query.  Instead of SQL as a string the
    collexpr AST entity now returns a data structure containing the desired
    filter.
    
    This allows the individual terminus to transform that into the appropriate
    query expression for their data store, or otherwise evaluate the requested
    filter on their own.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4274e151810d08942ea70a5f0d126437175dc736
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Aug 25 16:59:55 2011 -0700

    (#9174) Provide a helpful error when missing a gem and installing on Windows
    
    We require the sys-admin, win32-process, win32-dir, and win32-service
    gems in order to run on Windows, and the win32-dir gem to install.
    Previously, failing to require the win32-dir gem would just raise an
    exception and fail. Now we catch it, and turn it into a more helpful
    explanation of the requirements.

commit f53db3d77a81d6e7d9d943561054141cf2d702f7
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Aug 25 15:34:38 2011 -0700

    Clean up formatting & whitespace in package type & providers
    
    There were several whitespace problems in the package type &
    providers, including trailing blank lines, trailing whitespace,
    hard-tabs for indentation & alignment, and four-space indentation.
    While cleaning this up, we also wrap a couple of long lines, and
    remove some comments that are redundant, or no longer relevant.

commit 6dff78c2709a746b1b19d13d0e0a395edfb0af1e
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Aug 25 15:07:15 2011 -0700

    (#8489) Use File::PATH_SEPARATOR in path attribute of service type
    
    This was hard-coded to use ':' as the path delimiter, when it is ';' on
    Windows. So now we use File::PATH_SEPARATOR for compatibility.

commit 64dbd3b4ff5bbd2cdb17274a8ba3c43964bd9acb
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Aug 25 14:58:09 2011 -0700

    (#8489) Use File::PATH_SEPARATOR for path attribute of exec type
    
    This was previously accepting paths delimited by both ':' and ';', in
    order to supports Windows systems. It should actually just use the
    appropriate delimiter for the given platform.

commit 3e40207601694db6ffc961a399b51797a667f983
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Aug 25 14:54:59 2011 -0700

    (#8489) Use File::PATH_SEPARATOR rather than ':' for factpath setting
    
    This was using hard-coded ':' as the separator for its modulepath and
    manifestdir arguments. Now it uses File::PATH_SEPARATOR, to support
    other platforms. The places it's used were already correctly using
    File::PATH_SEPARATOR.

commit c46929414e9f4e238bda0b67cb6f68241f45ddfa
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Aug 25 14:48:27 2011 -0700

    (#8489) Use File::PATH_SEPARATOR rather than ':' for args to puppet doc
    
    This was using hard-coded ':' as the separator for its modulepath and
    manifestdir arguments. Now it uses File::PATH_SEPARATOR, to support
    other platforms.

commit 98db04eb290ad7767cbc6da43c0ab94971f0d8ef
Merge: da4a2de 01df237
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Aug 25 13:24:53 2011 -0700

    Merge pull request #61 from jblaine/patch-1
    
    Removed spurious "exec" from a debug string

commit a2ced0f6aaeb02d83af39cf927eed039d7b41f7f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Aug 24 17:49:21 2011 -0700

    Properly determine file deletion in puppet/unit/util_spec.rb
    
    This test had previously been checking that the path attribute of the
    Tempfile used for stdout was nil, in order to determine whether or not
    the file had been deleted. However, on Ruby 1.8.5, a Tempfile's data is
    not cleared when the file is closed and deleted. Thus, its path wasn't
    actually nil and it was failing, even though the file had properly been
    deleted.
    
    Now, we just check whether or not the file exists, which will always
    directly correspond to whether or not the file has been deleted.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 2bd9b7918599ff6987ef25e6af8560989a431b57
Merge: 630ec36 f6b91be
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Aug 24 16:18:48 2011 -0700

    Merge pull request #54 from nicklewis/ticket/2.7.x/8410
    
    Ticket/2.7.x/8410

commit da4a2def42639817c4522fc0162bd691956998da
Merge: 0d51dc9 630ec36
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Aug 24 15:42:03 2011 -0700

    Merge branch '2.7.x'
    
    Conflicts:
    	lib/puppet/feature/base.rb
    	lib/puppet/file_serving/configuration.rb
    	spec/unit/indirector/ssl_file_spec.rb
    	spec/unit/parser/functions/extlookup_spec.rb
    	spec/unit/resource/catalog_spec.rb
    	test/language/ast/variable.rb

commit bc5f1e3a6c3aedb18d1aff1ce3b9957cd48d535c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Aug 24 12:12:11 2011 -0700

    (#9051) Port query tests into the indirection.
    
    Now that the parser is using a terminus to search, it shouldn't be in the
    business of making assertions about how the Rails level search is constructed
    from the input data.
    
    On the other hand, the ActiveRecord resource terminus *should* be in that
    business.
    
    This transplants the tests from one to the other, then rewrites the entire
    show to make them apply in their new environment.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit fa78e9959df0d3d86feb50cdd4188c18fac8377c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Aug 22 10:53:09 2011 -0700

    (#9051) Implement the `resource` terminus for StoreConfigs.
    
    Add a StoreConfigs terminus to the `resource` indirection, and an ActiveRecord
    implementation to back that, using the current StoreConfigs schema.
    
    This is done by extracting the database interaction out of the compiler and
    into an appropriate indirection.  Following that, push down the searching into
    the terminus itself.
    
    With this we have most of the ability to drop in a replacement for the current
    StoreConfigs storage engine.
    
    Along the way, unstub a whole pile of Puppet::Parser::Collector testing so
    that it works with the new code and, more importantly, actually tests things
    along the way.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit f6b91be3274ba9f366d2d279190b352356606b66
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Aug 22 10:45:55 2011 -0700

    (#8140) Add an exec provider for Windows
    
    This provider inherits from the Puppet::Provider::Exec class, and is
    very similar to the posix provider in its behavior. This provider
    doesn't have the ability to run as a particular user or group and will
    fail if that is attempted, but does support setting all other
    parameters, as well as autorequires.

commit 18c322ad262b048238f575dfbcd6866d6fcb813d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Aug 22 13:28:20 2011 -0700

    (#8410) Factor out a base class for exec providers
    
    Rather than the shell provider inheriting from the posix provider, they
    both now inherit from a common Puppet::Provider::Exec class. This new
    base class and inheritance structure will allow the forthcoming windows
    provider to also inherit from that class, rather than from the
    unsuitable posix provider.
    
    Also, now that Puppet::Util.execute supports commands as strings in
    addition to arrays, the command to execute is passed to
    Puppet::Util::SUIDManager.run_and_capture as a string, rather than a
    string wrapped in an array. This ensures we will never improperly quote
    a command with arguments provided as a single string.

commit cb53870a8546216a170db4c21b090d76d10361cb
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Aug 22 10:44:41 2011 -0700

    (#8410) Cleanup and fix Windows support in Puppet::Util.execute
    
    The primary change in this commit is fixing the support for Windows in
    Puppet::Util.execute. However, properly testing this commit required
    significant refactoring (which was long overdue for this old code) for
    testability.
    
    The functionality for executing on posix and windows was extracted into
    platform-specific methods, execute_posix and execute_windows. These
    methods are self-contained and will both return the PID of the child
    process, which the caller then waits on before reading and returning the
    output of the command.

commit 39a582b1ab92a30ffdb4beb0678edcef40663012
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 23 11:13:02 2011 -0700

    (#8410) Use absolute_path? for Puppet::Parameter::Path validation
    
    A Puppet::Parameter::Path's value is valid if it is fully qualified (or
    in the case of an array, if each of its elements is fully qualified).
    This class was previously using its own method to validate whether a
    path was fully qualified, which was different from the rules applied by
    absolute_path?. Now that we have a dedicated method for this,
    it is used here for consistency.

commit fb6df317016b8bbe44116e31ac5ededa4d1e0c75
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Aug 22 13:27:56 2011 -0700

    (#8410) Add a helper to Puppet::Util to determine absoluteness of a path
    
    The method Puppet::Util.absolute_path? accepts a path and an optional
    platform (:windows or :posix) as an argument. If no platform is given,
    it will default to the local platform. The method will return true if
    the path provided is absolute on that platform, and false if it is not.
    This method is also being used in Puppet::Util.which in lieu of testing
    against a platform-specific regex inline.

commit c2a432a1f2042f140c9bf3f526898e25de934976
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Aug 22 13:27:44 2011 -0700

    maint: Fix trailing whitespace in lib/puppet/util.rb

commit fab2fe7968d5b03bd857ef03c8f0f29eefb4e046
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Aug 22 17:11:22 2011 -0700

    (#9051) Make generic tagging imported resource origins.
    
    When StoreConfigs was tied to rails, parser resources were tagged with a
    `rails_id` to allow the code to determine if this was the same object we had
    previously imported.
    
    Now that we are making that generic, rename that to `collector_id` to make it
    clear that it isn't so directly tied to the original purpose.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 5300368178866dace9c2be82361f5529ae836977
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Aug 22 15:08:04 2011 -0700

    (#9051) Whitespace cleanup for puppet/parser/collector
    
    This is a whitespace cleanup only, eliminating odd spacing and indents,
    killing gratuitous blank lines, and wrapping some comments more appropriately.
    
    There are no functional changes.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 6420ede0f2fc775ff0e728b03b41f751a1869597
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 19 16:32:07 2011 -0700

    (#9051) Dead code elimination in the compiler terminus.
    
    The `update_node_check` method in the compiler terminus used to be used for
    compilation checking, but that went the way of the dodo a long time back.
    
    Since nothing and no one in the codebase actually uses this method, and it is
    the last lingering bit of database access in the compiler, we can ditch it and
    gratefully separate out the compiler from any direct database relationship.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 543f331af8fcff3f14696174c6fecbcafcd6bb50
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Aug 19 16:30:15 2011 -0700

    (#9051) Get the compiler out of the ActiveRecord business.
    
    When we started to abstract the system initialization of our database
    connections moved out of the parser and AST, into the compiler terminus.
    
    This was excellent progress, and helped abstract away our stored configuration
    passing system from the language itself.
    
    Now, as we move StoreConfigs out into a separate and replaceable system we
    need to get the compiler out of the business of database initialization
    entirely.  That can be fully delegated down to the StoreConfigs terminus and
    implementations themselves.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 4b55e72aba4d572199b4c0d11474e813c77be5fa
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Aug 18 16:13:17 2011 -0700

    (#9051) Implement the StoreConfigs indirection itself.
    
    We now have a StoreConfigs terminus base class, and concrete uses in a number
    of indirections, along with testing to ensure they behave as expected.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 630ec36089e2224fba99b76d76eaf904af13e4d6
Merge: 4684db1 0f207a8
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Aug 22 17:06:44 2011 -0700

    Merge pull request #53 from joshcooper/ticket/2.7.x/8662-root-on-windows
    
    Ticket/2.7.x/8662 root on windows

commit 0f207a8ea61205ba6b47e8da429ab3887b3cda4d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Aug 22 09:26:33 2011 -0700

    (#8662) Don't manage internal file permissions on Windows
    
    When running as root, puppet will by default manage internal file
    permissions for file-related settings. However, ruby does not support
    chown/chgrp functionality on Windows, so puppet will fail to run
    (puppet apply generates an exception while trying to set the owner,
    etc).
    
    This commit disables internal file permissions handling on Windows
    until we add support for chown (at least) as part of the larger file
    type effort on Windows.

commit 47058abc0c5647d59b0dd21181e67dbfdd908292
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 18 10:35:50 2011 -0700

    (#8662) Skip user and group resources when applying settings on Windows
    
    When running as root, puppet will generate a catalog from its settings
    to create the various directories, e.g. var, ssl. If mkusers is true
    and a setting implements owner and/or group methods, then puppet will
    automatically add user and group resources to the catalog (provided
    the user name is not root and the group names are not root or
    wheel). This functionality will not be supported on Windows, and so
    this step is skipped.

commit 2ac87905708ddbc44d212e10e34d72cad09e3271
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 18 10:34:18 2011 -0700

    (#8662) Fix Puppet.features.root? on Windows
    
    This commit changes Puppet::Util::SUIDManager.root? (and
    Puppet.features.root?) to only return true if the user is running with
    elevated privileges (granted via UAC). If this check fails because
    elevated privileges are not supported, e.g. pre-Vista, then we fall
    back to checking if the user is a member of the builtin Administrators
    group.
    
    This means if you are logged in as Administrator on 2008,
    Puppet.features.root? will return false, unless you are explicitly
    running puppet as an administrator, e.g.
    
     runas /user:Administrator "puppet apply manifest.pp"
    
    This commit also adds tests to ensure SUIDManager.asuser is a no-op on
    Windows, since Windows does not (easily) support switching user
    contexts without providing a password.

commit 4684db12b1ca27df4d612fb1a54b7be43f54a6a8
Merge: 2999326 9f39cc4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Aug 22 14:53:22 2011 -0700

    Merge pull request #52 from joshcooper/maint/2.7.x/ssl-file-spec-test-failure
    
    Maint/2.7.x/ssl file spec test failure

commit ccdd043ab309ca382dc949612d7efe3562adf5c5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 18 10:30:29 2011 -0700

    (#8662) Break circular feature dependency
    
    The root feature was being evaluated prior to the microsoft_windows
    feature being defined. On Windows, this had the side-effect of calling
    Process.uid prior to the win32 sys/admin gem being loaded. And the
    default ruby implementation of Process.uid always returns 0, which
    caused Puppet.features.root? to always return true.
    
    This commit reorders the syslog, posix, microsoft_windows, and root
    features due to dependencies among them. This ensures the
    microsoft_windows feature is defined prior to evaluating the root
    feature.
    
    As a result of this commit, the SUIDManager now calls the win32
    sys/admin version of the Process.uid method, which returns the RID
    component of the user's SID. As this is not 0, Puppet.features.root?
    will now always return false on Windows. A future commit will fix
    this, so that Puppet.feature.root? only returns true when running as
    the Windows-equivalent of root.

commit 4b29f5f1dbc48c499e728c31005e6eb15acf8d01
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Aug 18 15:07:48 2011 -0700

    (#9051) Add configuration around StoreConfigs indirection.
    
    Move from the hard-coded ActiveRecord back-end for StoreConfigs to an
    indirection model; now, we have a back-end setting for StoreConfigs which
    flows through to select the appropriate wrapped terminus when the parent
    terminus is used.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 9f39cc476246e307ec4d8861502c1d5b8ce1bc21
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 18 14:23:15 2011 -0700

    maint: Stub spec test so directory is not created unnecessarily
    
    One of the spec tests required that the parent directory (in this case
    /tmp) already exist and that /tmp/my_directory could be created. This
    fails on Windows as /tmp likely doesn't exist, and also the test
    doesn't actually need to create the directory.
    
    This commit forces the call to exists? with the parent directory to
    return true, and stubs the mkdir call so that the directory is not
    actually created.
    
    It also makes the raise_error expectation look for the specific error
    message, instead of a generic DevError.

commit 299932691c7a67c93275e978c52132ff99cae4f5
Merge: 384302a 66fb531
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 19 14:51:19 2011 -0700

    Merge remote-tracking branch 'jhelwig/add-missing-commit-for-ruby-1.8.5-compatibility-to-2.7.x' into 2.7.x
    
    * jhelwig/add-missing-commit-for-ruby-1.8.5-compatibility-to-2.7.x:
      Don't use non-1.8.5-compatible methods 'Object#tap' and 'Dir.mktmpdir'

commit 66fb5319b419c4145d07b4a217efc13d35e3a5a4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 21:25:21 2011 -0700

    Don't use non-1.8.5-compatible methods 'Object#tap' and 'Dir.mktmpdir'
    
    These methods aren't available until Ruby 1.8.6 (Dir.mktmpdir) and Ruby 1.8.7
    (Object#tap).
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 61df3f7c39d74b82e37f48c3519293406036e1e9)

commit 384302af6dec8c51442f2f29a4c7c555379cd297
Merge: 71e190b 2091cbe
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Aug 19 14:03:56 2011 -0700

    Merge branch 'backport-windows-work-to-2.7' into 2.7.x
    
    * backport-windows-work-to-2.7: (60 commits)
      maint: Fix build break due to recent merge from 2.7.x to master
      Fix posix exec provider spec failures on Windows
      (#5495) Remove dead Windows-specific code from posix exec provider
      Stop trying to make config directories in Windows specs
      (#8272) Add missing tests for Windows service provider methods.
      (#8409) Add a default group provider for Windows
      (#8408) Add a default user provider for Windows
      (#8408/8409) Add a Windows ADSI helper module
      (#8663) Exclude exec timeout test on Windows
      (#8663) Exclude git rev-parse HEAD spec test on Windows
      Check for the appropriate permissions in File type tests on Windows
      Remove :fails_on_windows from file type tests that no longer fail on Windows
      Disable file bucket diffing tests on Windows
      Always put a slash between the checksum and path in filebucket URLs
      Treat Windows absolute paths as absolute paths
      Consolidate test logic determining if a registered file is in the temp directory
      Clarify logic and error messages when initializing Puppet::FileBucket::File
      Disable symlink related file tests on Windows
      (#8644) Host provider on Windows
      (#8660) Fix destdir option on Windows
      ...

commit 2091cbeade9d69a18689609f407f9d7f0304dc04
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 17 17:08:38 2011 -0700

    maint: Fix build break due to recent merge from 2.7.x to master
    
    The resource_spec was failing because /etc is not considered a
    fully-qualified path on Windows. Using File.expand_path fixes that.
    
    The suidmanager_spec was failing because we weren't stubbing the
    microsoft_windows feature, so SUIDManager.asuser was a no-op when
    running as root, and our expectations weren't being met.
    (cherry picked from commit af87f32a016a5ed48353f516f9558f95c54c50b4)

commit 2681ca5360428db071aaa66614c21f6be581c1cc
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 16 12:40:06 2011 -0700

    Fix posix exec provider spec failures on Windows
    
    These specs were assuming that paths such as /foo were always absolute, which
    is not the case on Windows. Thus, when run on Windows, the provider was
    complaining about receiving relative paths when it expected absolute, rather
    than succeeding or failing in the intended way. Now we expand all paths we want
    to be absolute, to guarantee they will be absolute everywhere.
    
    Also, some specs were failing because they were trying to test the case where a
    file isn't executable. That's not something we can reliably check on Windows,
    so instead just stub the appropriate executable? methods.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>
    (cherry picked from commit e9b558dd35eec6e221aef9de3f300a5843347454)

commit 3812fc35eae962938041256f8974bc94f41a3326
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Aug 15 15:51:37 2011 -0700

    (#5495) Remove dead Windows-specific code from posix exec provider
    
    Because this provider only applies when the posix feature is present (and thus
    not the windows feature), it can never be used on Windows. Thus, the
    Windows-specific command handling is unnecessary and unused.
    
    Also added more specific error messages for the cases where a command doesn't
    exist, isn't a file, and isn't executable. These only apply when the command
    path is absolute (otherwise the message is simply command not found).
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>
    (cherry picked from commit b28bcb031346cfd2026361ec5ffb420c1dcf60d7)
    
    Conflicts:
    
    	spec/unit/provider/exec/posix_spec.rb

commit b6ca78cc8d28dd51ce64de42d20f6fb49dfe814a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Aug 10 13:55:39 2011 -0700

    Stop trying to make config directories in Windows specs
    
    FileSetting#to_resource had a provision to not attempt to manage files in /dev,
    which effectively stopped spec from trying to make their configuration
    directories in /dev/null. However, on Windows, the path turns into something
    like C:/dev/null, so the specs were still trying to manage their configuration
    directories when this wasn't desired or handled by the spec.
    
    Now, we also exclude management of C:/dev (or similar), to mimic the behavior
    on Windows. Because this isn't a standard path (and thus will not be used for
    anything else), there seems to be no harm in treating it as though it were
    really /dev.
    
    Reviewed-By: Josh Cooper <josh@puppetlabs.com>
    (cherry picked from commit 44719fcf9f9053a7be1bea59d516f24d2234ede4)

commit 4237cb1b12851d42504c9829fc61fe31cb84866c
Author: Cameron Thomas <cameron@puppetlabs.com>
Date:   Wed Jul 27 15:30:19 2011 -0700

    (#8272) Add missing tests for Windows service provider methods.
    
    Added missing spec tests for Windows service provider methods:
      :stop, :enable, :disable, and :manual_start
    Refactored to match Nick's previous work.
    
    Reviewed By: Nick Lewis [nick@puppetlabs.com]
    (cherry picked from commit d08ae7fd2180c95d1fcafa149128d25cc4680c6c)

commit a32c8be4b32cfbc0588648e56e9194f3a75bbaa6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 9 13:04:37 2011 -0700

    (#8409) Add a default group provider for Windows
    
    This provider, windows_adsi, uses the Puppet::Util::ADSI module to manage
    groups. It can only manage group existence and memberships, but is fully
    functional in those regards.
    
    Based on work by: Joel Rosario <joel.r@.internal.directi.com>
    Based on work by: Cameron Thomas <cameron@puppetlabs.com>
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>
    (cherry picked from commit 01f09f5f395bab66b90a4e81e958aa89025977b4)

commit 4f7170a0fd7d77d7d9941001cdb7dbcb0662d6b4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 9 13:04:25 2011 -0700

    (#8408) Add a default user provider for Windows
    
    This provider, windows_adsi, uses the Puppet::Util::ADSI module to manage
    users. It can currently only manage group memberships, comments, and home
    directories, which are the only fields that can be managed via ADSI.
    
    Based on work by: Joel Rosario <joel.r@.internal.directi.com>
    Based on work by: Cameron Thomas <cameron@puppetlabs.com>
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>
    (cherry picked from commit ac00e9e289f8fdc81f060e7dd289e1a8e0f133c0)

commit f19a0ea8c12c06bb01ddfe53e47e3a02ae87bdbb
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 9 13:04:10 2011 -0700

    (#8408/8409) Add a Windows ADSI helper module
    
    This module (Puppet::Util::ADSI) provides access to Active Directory Services
    Interfaces, using win32ole. The base module has methods for generating resource
    URIs and connecting to ADSI.
    
    It also provides classes Puppet::Util::ADSI::User and Puppet::Util::ADSI::Group
    for managing Active Directory users and groups, along with their properties and
    group memberships. This will be used to implement the Windows ADSI user and
    group providers.
    
    Based on work by: Joel Rosario <joel.r@.internal.directi.com>
    Based on work by: Cameron Thomas <cameron@puppetlabs.com>
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>
    (cherry picked from commit b5fd95336e71ad428109cddf6cd2f33bdd31e025)

commit 6919d2c082ad2bdf1bcc19cd1b62c1befc75133c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 4 17:27:56 2011 -0700

    (#8663) Exclude exec timeout test on Windows
    
    The exec provider is not yet supported for Windows and this test relies
    on /bin/sleep. And due to #8410 it attempts to execute the program named
    "sleep 1", with variations of "sleep 1".bat, etc. This test needs to be
    reworked for Windows when the exec provider is implemented.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    (cherry picked from commit 0efe900902f0a6528c78c966b73f3eb6c720353b)

commit 80092091fb986eb013a12045cdb5f0efe3490702
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 4 16:41:11 2011 -0700

    (#8663) Exclude git rev-parse HEAD spec test on Windows
    
    When running spec/integration/parser/compiler_spec.rb, the git command
    passed to Puppet::Util.execute is an array containing a single string
    ["git rev-parse HEAD"]. On Unix, it calls Kernel.exec(*command), but on
    Windows it calls Process.create(:command_line =>command), which attempts
    to execute the program called "git rev-parse HEAD" and fails:
    
    CreateProcess() failed: The system cannot find the file specified.
    
    This commit marks the test as fails_on_windows, and will be re-enabled
    when #8410 is fixed.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    (cherry picked from commit 7ca187509ce954e5b2707212a5615dbb9eb20378)

commit a0013e4b2d802f7d10e913da9b89ea912b1564bd
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 12:19:47 2011 -0700

    Check for the appropriate permissions in File type tests on Windows
    
    Ruby's interface to the permissions on Windows does not map well to
    the *nix concept of User, Group, and Other.  On Windows directories
    don't get the execute bit, and Ruby cannot manage group, and other via
    the standard chmod interfaces.
    
    Because of this, we no longer check that the execute bit is set on
    Windows, and use a permission set that will show differences if we
    fail to set the permissions on Windows.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    (cherry picked from commit 447c1171845d8d17e4e684c9508fddecc003d15e)

commit 58c7dacef62679c9e2ec5fd889d224978ed8c0d6
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 11:57:38 2011 -0700

    Remove :fails_on_windows from file type tests that no longer fail on Windows
    
    With the previous changes to the file bucket and the handling of what
    is considered an absolute path, enough pieces have slid into place
    that the file type is now mostly working on Windows.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    (cherry picked from commit 6385e08004ff06b709cc874870de38c078adb791)

commit 9f2a7b90095126864a329c3f729a820f47522194
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 11:39:02 2011 -0700

    Disable file bucket diffing tests on Windows
    
    The diffing ability of the file bucket is purely master functionality,
    and not supported on Windows.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    (cherry picked from commit 660ea963ddc5c74a758f6d52384ea40a8d335c58)

commit 1e59b268063772a59efdc810e5967c63e05cdb2d
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 11:13:21 2011 -0700

    Always put a slash between the checksum and path in filebucket URLs
    
    Since absolute paths on Windows do not always start with /, we need to
    make sure that there is always a slash between the checksum and the
    path, or the drive letter will end up being considered as part of the
    checksum.
    
    On systems where absolute paths always start with /, the extra slash
    is removed by the parsing done to the constructed URL.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    (cherry picked from commit 5314376d4378c4b4f990a7d61a9677594e12a2a5)

commit 37f87b709598b48bc8b562422da27cc73cc1eff1
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 11:04:26 2011 -0700

    Treat Windows absolute paths as absolute paths
    
    Previously, we only considered files that matched the *nix concept of
    'absolute' as being absolute paths.  Since absolute paths on Windows
    look more like URLs with this world-view, we need to specifically look
    for the Windows absolute paths, and treat them as such.
    
    We will still treat *nix absolute paths as absolute on Windows, even
    though they are actually relative to the "current" drive.  We do not
    currently limit which "style" of absolute path is allowed based on
    what the agent is.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    (cherry picked from commit 568d25ee10effd5e87c57cdc8c24280eabf9cd93)

commit 4a6d61717eb54a0cefff87bf67ae62df1e3b4317
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 10:46:53 2011 -0700

    Consolidate test logic determining if a registered file is in the temp directory
    
    Previously, we were always using string comparisons, and hard-coded
    paths to temp locations on non-Windows platforms.  This was
    problematic for a few reasons.  We had to maintain a list of temp
    locations for the various platforms, and the string comparisons were
    unreliable on Windows, since paths have two string representations
    (the "short" name containing a ~ followed by a number, and the "full"
    name).
    
    By getting the current temp location using Dir.tempdir (the same
    mechanism our temp creation code uses), we no longer need to maintain
    the list of temp locations.  Also, rather than doing string
    comparisons on file paths, we can use a combination of
    Pathname#ascend, and File.identical? to determine if the path
    registered as a temp file for deletion was actually created in the
    temp location.
    
    With this refactoring, the same code now works for both Windows, and
    non-Windows platforms.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    (cherry picked from commit 3aec02ba0e4bda8ba4e9fffbc6defaae4e4e2ba1)

commit 8c889187a4699f8b797e7a960343558fd2cb8e34
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 10:34:06 2011 -0700

    Clarify logic and error messages when initializing Puppet::FileBucket::File
    
    Rather than stating the logic as 'if !thing', the two checks done when
    initializing a new Puppet::FileBucket::File are now phrased as 'unless
    thing', which should lessen the likelihood of overlooking the '!'.
    
    We also now provide a reason for the ArgumentError being raised, which
    should help users of Puppet::FileBucket::File quickly figure out what
    is the problem when these exceptions are raised.
    
    In addition to updating the tests to look for these new error
    messages, we update the existing tests to specify which type of
    exception, and what message it should have, when something is raised.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    (cherry picked from commit b4cacfd8f95577c514999b4dd6bcb7ad57e37207)

commit 2efaa855e9ef9079342ba041c103832313696582
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 10:23:08 2011 -0700

    Disable symlink related file tests on Windows
    
    While Windows filesystems typically have support for symlinks (NTFS),
    there are no immediate plans to support symlinks on Windows.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    (cherry picked from commit 207d41f798356d7001f5de971e118e3c33d5f6d1)

commit 7259e1e5877b81dc5fd9b6ff090a4cccfc37c2f4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 29 13:30:15 2011 -0700

    (#8644) Host provider on Windows
    
    The host provider did not work on Windows because it didn't know where
    to find its hosts file. The provider now uses Win32::Resolv, which is
    part of the standard ruby library, to find it.
    
    Several host type/provider spec tests were marked as fails_on_windows,
    but now that the provider is working, I removed the tag from those
    tests, and verified that the tests now pass. There are two tests in
    resources_spec that fail because the user and exec providers are not
    supported on Windows yet, so those tests are marked as fails_on_windows.
    
    Reviewed-by: Pieter van de Bruggen <pieter@puppetlabs.com>
    (cherry picked from commit 82c6b3cb41397c989c011cf767066bcf1e403db2)

commit 328eaa2f7fd07ac7059e62d30064ef4b70f1f89f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 29 09:42:57 2011 -0700

    (#8660) Fix destdir option on Windows
    
    Specifying the --destdir option failed on windows because the install
    script attempted to concatenate two absolute paths together. On Unix,
    this is fine, but on Windows, it fails because the colon (part of the
    drive specifier) is not a valid filename character. This commit adds a
    method to join two paths, stripping off the drive specifier, if
    present.
    
    Also fixed a minor bug, which caused a deprecation warning to always
    be printed when the --destdir option is omitted, which is the default
    case.
    
    Reviewed-by: Cameron Thomas <cameron@puppetlabs.com>
    (cherry picked from commit f6006177a85766cfb3387db6c3d337bf97b52f17)

commit 088c7ac8632ee7137e86a15f28a75a7abbc0d252
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 29 09:37:58 2011 -0700

    (#8660) Default config dir to %PROGRAMDATA% on Windows
    
    The puppet install.rb script now defaults the config directory to
    %PROGRAMDATA%\PuppetLabs\puppet\etc on Windows. This is more inline
    with Windows best-practices, as this directory is used to store
    application data across all users. The PROGRAMDATA environment
    variable also takes into account alternate system drives, by using the
    SYSTEMDRIVE environment variable.
    
    Note that the Dir::COMMON_APPDATA constant is so named because it
    corresponds to the CSIDL_COMMON_APPDATA constant, which on 2000, XP,
    and 2003 is %ALLUSERSPROFILE%\Application Data, and on Vista, Win7 and
    2008 is %SYSTEMDRIVE%\ProgramData.
    
    This commit also updates puppet's default run_mode var and conf
    directories when running as "root" to match the install script, and
    fixes the spec test, which was looking in the Dir::WINDOWS directory.
    
    Reviewed-by: Cameron Thomas <cameron@puppetlabs.com>
    (cherry picked from commit 95b21dfde7d77a61633555f20f2e3b9675d48415)

commit 925af9586a0e209a031c46c81225c6925837a49a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jul 27 17:04:45 2011 -0700

    (#8663) Disable spec tests for unsupported functionality on Windows
    
    The mount, shell, and ssh_authorized_key types are not supported on
    Windows, so these spec tests have been disabled when running on
    Windows.
    
    One of the compiler spec tests fails on Windows because
    Puppet::Util.execute attempts to execute a program named "git rev-parse
    HEAD". This has different semantics than Unix, where the command is
    splatted, Kernel.exec(*command). Since this truly is a Windows bug, I
    removed the fails_on_windows tag and updated ticket #8410.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit d9ce88d10707268fe41c8f3ad1166137fe8e202f)

commit 04965d7d7a9cd34265d41c5870e6043ff24b3e4d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jul 27 15:46:43 2011 -0700

    (#8663) Drive letters are not valid absolute paths on Windows
    
    One of the file spec tests was attempting to use X: as a fully
    qualified file path, and the file type was correctly rejecting it,
    since it is a relative path. This commit changes the spec test to
    expect the file type to raise an exception.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit e0d3f11fc7b580aedec5350dc41a01417d6acd8d)

commit f4598ec2fabbab052f8a815290a6aa88c9338e5e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jul 27 15:36:20 2011 -0700

    (#8663) Update the run_mode spec test on Windows to match the code
    
    When running as root, the default conf and var directories on Windows
    are currently puppet/etc and puppet/var within the windows
    directory. Updated the spec tests to match what the code does on
    Windows.
    
    Whether or not this is the correct behavior is something that will be
    addressed in the future. See #8660.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit f883648d2f6e4c357263c0cf3aa39afd63d852d7)

commit 68bdc74e5cffa4cce44ccc60ea942484fe64fb62
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jul 27 15:30:49 2011 -0700

    (#8663) The ssh_authorized_key type is not supported on Windows
    
    We are not supporting the ssh_authorized_key type on Windows at this
    time, since Windows does not ship with an ssh server (though there are
    third-party versions available). As a result these spec tests have
    been disabled.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 6bd8aaa8a8307913eb20afc4e57551e2dfd4822e)

commit 9fbb0be88daec8def1cca622cd4045d4eda7a3b5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jul 27 15:28:21 2011 -0700

    (#8663) Reenable spec tests on Windows that now pass
    
    The cacher was causing spec tests to fail due to Time.now not having
    millisecond resolution on Windows. Now that usage of the cacher has
    been removed from many places, these tests now pass.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 9e502ed121847fe4fcca90453c0520b53103d17d)

commit c93015264f8778baf6ba309064ab5a8ab16f32bc
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jul 12 15:26:32 2011 -0700

    (#8392) Disable master related tests on Windows
    
    The master, and queue applications are not used for agent
    functionality and since only agent functionality is supported on
    Windows, these tests do not need to run.
    
    Reviewed-by: Josh Cooper <josh@puppetlabs.com>
    (cherry picked from commit a521b99b2267e4c2588ceb6b90d36cab5af83aa6)

commit 28b16584d13399f911577a47a355e866d8601085
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 26 15:59:45 2011 -0700

    (#8272) Allow disabled Windows services to be started
    
    Because Windows allows a service to be both running and disabled, we now
    support that capability. If a service is explicitly requested to be running and
    disabled, we will set it to manual start if necessary, start it, and then
    disable it. If the service is requested to be running and enabled, we will now
    enable it before attempting to start it (previously, this would simply try to
    start it and fail).
    
    The exception to this rule is a service which is disabled, and for which we are
    not managing the enable property. In that case, we assume that some other
    authority has disabled the service, and respect that, failing to start. Thus,
    if the user actually wants a service to be running and disabled, they must
    explicitly declare that intent.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 12d0018f93e5a72a728c6decffb351a693a86344)

commit c69baf63bac4e7f6296b81fcb5278eaf95e7f74b
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 26 15:59:33 2011 -0700

    (#8272) Refactor specs for Windows service provider
    
    These were using fake objects when that's not really necessary, so replace them
    with real ones. Additionally, many of these specs were doing the same thing
    (like creating a resource), so that has been extracted to the before block.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit f5e8dbef9e16bf05e4c05a43407e94027faa2410)

commit 881c3858e88b6cc3d2c0e7bea6785fcbf091e4c0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 26 15:58:31 2011 -0700

    (#8272) Use symbols instead of booleans for enabled property on Windows
    
    Because the enable property of the service type uses :true and :false as its
    valid values, rather than true and false, we need to return :true and :false
    from our enabled? method. Otherwise, the property was being synced every time
    it was enabled or disabled, regardless of whether it was actually in sync or
    not.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 44e2d494f499e2005c1b31b92b97834189d4224d)

commit 9c575bd9106b3ffed92c357ead8ff06c01c484d5
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 26 11:38:05 2011 -0700

    (#8272) Fixup logging in Windows service provider
    
    We want to use self.debug for logging in the provider, so that log messages are
    properly associated with the resource, rather than generically coming from
    Puppet.
    
    Also fix the self.instances method to not use an unnecessary extra variable
    when collecting.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 38c181d00e87ecc699c6a3e23dd2155f716a6602)

commit ad29bf6114f637adfd686e88535aa79bc8cae7b8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 22 12:44:15 2011 -0700

    Fix issue with forward and backslashes in Windows paths
    
    The environment validates its modulepath and manifestdir settings, but
    it uses Dir.getwd to convert a relative path into an absolute path. The
    problem is that on Windows, Dir.getwd returns a path with backslashes.
    (Interestingly this only happens when puppet is loaded, not in irb for
    example.) And since we do not yet support backslashes in Windows paths
    or UNC paths, the directory is not included in the environment.
    
    For the time being, I am using File.expand_path to normalize the path.
    It has the side-effect of converting backslashes to forward slashes.
    This is sufficient to work around backslashes in Dir.getwd. In the near
    future, I will be refactoring how paths are split, validated, tested,
    etc, and I have a REMIND in place to fix the environment.
    
    But as a result of this change it exposed a bug in our rdoc parser
    dealing with the finding the root of a path. The parser assumed that the
    root was '/', but caused an infinite loop when passed a Windows path.
    
    I added a test for this case, which is only run on Windows, because on
    Unix File.dirname("C:/") == '.'.
    
    After all of that, I had to disable one of the rdoc spec tests, because
    it attempted to reproduce a specific bug, which caused rdoc to try to
    create a directory of the form: C:/.../files/C:/.... Of course, this
    fails because ':' is not a valid filename character on Windows.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 9279d0954eb20d75e18a666fd572b5492e157608)

commit eaa7d92f4017fcdae54e5f6addf1edd3a72fe384
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 22 12:34:05 2011 -0700

    Disable spec tests for unsupported functionality on Windows
    
    Ruby does not support creating symlinks on Windows (though Windows does
    support them), and since the tidy spec test is designed to reproduce a
    specific bug (as opposed to testing symlink functionality on Windows) it
    has been disabled.
    
    Ruby on Windows also does not support File.chmod, so the inspect spec
    test has been disabled. The general issue of File.chmod on Windows is
    something I know needs to be investigated.
    
    Also disabled the cron spec test as this functionality will not be
    supported on Windows (instead there will be task manager support).
    
    Re-enable the autoload spec tests as those now pass on Windows (this is
    probably due to the cacher changes recently made).
    
    The inventory ssl spec is not supported on Windows and so is disabled.
    However, while researching the failure, it was due to
    Time.now.strftime("%Z") returning "Pacific Daylight Time" on Windows,
    instead of "PDT" like it does on other platforms. As a result, the split
    method was sometimes splitting in the wrong place.
    
    As far as I can tell, the inventory code is only called from the CA (to
    keep track of serial numbers for certs that it has issued). But it's
    something to watch out for on Windows when calling strftime.
    
    Webrick, fileserver and CA functionality are not supported on Windows so
    these spec tests are disabled.
    
    Also fix path issue with catalog spec.
    
    Also several spec tests were creating tempfiles manually and calling
    system("rm -rf ..."), these have been replaced with
    PuppetSpec::Files.tmpdir.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 75d2e62cab1de7677463c274892f8920cb7e0cbf)

commit 945bf74aad13de37d5ca46961db78a72b8c24029
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 22 12:29:54 2011 -0700

    Update certificate spec tests for Windows
    
    Disable CA related spec tests on Windows, since that functionality is not supported.
    
    Some cert spec tests are still marked as fails_on_windows because
    settings attempts to create and apply a catalog corresponding to
    ssl/cert related directories. This fails because on Windows
    Puppet.features.root?  always returns true (which is a separate bug),
    and as a result attempts to set the owner and group, which fails because
    the provider is not implemented yet on Windows.
    
    Also many of these tests were using Tempfile.new and trying to
    system("rm -rf ...") later. I changed these to use
    PuppetSpec::Files.tmpdir instead, which automatically cleans up
    temporary directories after the tests have run.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 95837e6d3e74648617c308aedc52192bb13fde5a)

commit 3be4d79d288f43f0476f0fa8666936c184d2ca35
Author: Cameron Thomas <cameron@puppetlabs.com>
Date:   Fri Jul 22 15:09:13 2011 -0700

    Add basic service provider for Windows
    
    This provider allows us to query the system state through "puppet
    resource", and manage the ensure, and enabled properties of services on
    Windows.
    
    This also adds support for a new enabled value of 'manual' on Windows
    only.  With this we support the three major start types for services on
    Windows, with the following mapping of enabled to start type:
    
      true   => Automatic
      false  => Disabled
      manual => Manual (Demand)
    
    We use the win32-service gem to provide access to the Windows APIs for
    our operations.  This does add a new gem requirement for running Puppet
    on Windows, but we were already requiring some gems from the same suite
    that win32-service is a part of.
    
    When referring to a service, the simple service name must be used,
    instead of the display name.  For example, "snmptrap", instead of
    "SNMP Trap".
    
    All system services are reported in 'puppet resource service',
    including those started prior to run level 3 (system, device drivers,
    etc.).  These services should probably not be managed, without careful
    thought and planning.
    
    This currently does not support being able to move a service from
    {enabled => false, ensure => stopped} to {enabled => true, ensure =>
    running} (or enabled => manual) in a single Puppet run, since Puppet
    currently always tries to sync ensure before any other property.
    Because of this, the puppet run will fail every time, and the service
    must first be managed as {ensure => stopped, enabled => true} (or
    enabled => manual), before it can be managed as running and automatic
    start or manual start.
    
    Reviewed by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 82476e8be41b62ce1767ab6854a72b481b917380)

commit d9a693dc4431430fcfdc3ae15bee8b4a0985868f
Author: Cameron Thomas <cameron@puppetlabs.com>
Date:   Fri Jul 22 14:31:59 2011 -0700

    Regexp escape substituted commands in Windows wrapper script
    
    Because Windows file paths can (and do) contain '\', they can end up
    being interpreted as back-references on the substitution side of gsub.
    Since this is not at all what is intended, we use Regexp.escape to quote
    them.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit ca2f159caed691936bd9e87b59ccddc764066aa2)

commit 49d1e9da1381c77a3873965bad36ba6b33316882
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:53:06 2011 -0700

    Rework Puppet::Util::Cacher to only expire using TTLs
    
    We have removed every usage of cached_attr in which the attribute needs to be
    manually expired. Thus, the only meaningful behavior provided by
    Puppet::Util::Cacher is expiration based on TTLs. This commit reworks the
    cacher to only support that behavior.
    
    Rather than accepting an options hash, of which :ttl is the only available
    option, cached_attr now requires a second argument, which is the TTL.
    
    TTLs are now used to compute expirations, which are stored and used for
    expiring values. Previously, we stored a timestamp and used it and the TTL to
    determine whether the attribute was expired. This had the potentially
    undesirable side effect that the lifetime of a cached attribute could be
    extended after its insertion by modifying the TTL setting for the cache. Now,
    the lifetime of an attribute is determined when it is set, and is thereafter
    immutable, aside from deliberately re-setting the expiration for that
    particular attribute.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit d198fedf65e472b384666fc9ae3bef487852068a)
    
    Conflicts:
    
    	spec/integration/node/facts_spec.rb
    	spec/unit/node_spec.rb

commit 9849d565ec4db6bf1a39413c3136da9713f9fa25
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:52:50 2011 -0700

    Remove use of Puppet::Util::Cacher in Puppet::SSL::Host
    
    This class was previously using a cached_attr for its 'localhost' attribute,
    representing the Puppet::SSL::Host entry corresponding to the cert in
    Puppet[:certname]. We now no longer expire this attribute. This has the effect
    that a change to certname during the lifetime of an agent will not be reflected
    in the certificate it uses. If this behavior is desired, it will need to be
    reimplemented another way.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 7048b4c4d8c4a8ad45caf6a02b263ac0a9fa333e)

commit 028b795e2c705baa3652f26d8eec090e6b428d33
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:52:27 2011 -0700

    Remove dead uses of Puppet::Util::Cacher from autoloader
    
    In the past, Puppet::Util::Autoload used a cached_attr for its 'searchpath'.
    However, it no longer does that, so its references to Puppet::Util::Cacher are
    unnecessary.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit ce08cba9eb92abce7f7ab77dcf7eb9f9435d4040)

commit 7c4dbeb24fcfac432ac9540bd4e92ba84d187472
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:52:00 2011 -0700

    Remove Puppet::Util::Cacher use from Puppet::Indirector::Indirection
    
    Previously, indirections were storing their termini in a cached_attr, so that
    they could be easily cleared for tests. Because this provides no value outside
    of testing, we instead simply create an attr_reader for termini, and expire
    them manually in tests.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit e74090468192697a6a2447dc6fcece3dd09a46f1)

commit d6e0b71f141300da5241b6a0daf6afbc3eaa29e0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:47:07 2011 -0700

    Remove caching from the catalog, types, and parameters
    
    Types and parameters were registering their catalog as their expirer, so that
    the catalog could expire them between uses. However, because catalogs are never
    reused (and neither are types or parameters), there is no need to expire
    anything. Thus, we remove the entire cleanup/expire logic from catalog, type,
    and parameter.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit e2ea023f809c2bdc53b5259047c28f8061f57e54)

commit d49dd9ec3ab26d122c5c2a78482136f2a5f3efda
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:41:04 2011 -0700

    Remove cached_attrs from Puppet::Type::File
    
    These values needn't be cached_attrs, because they can be managed manually.
    'stat' does need to be cached, so that we avoid statting the file for each
    property we want to check from disk. The 'content' attribute of 'source' also
    needs to be cached, because it's retrieved from the server, which we certainly
    don't want to do multiple times.
    
    We need a mechanism for invalidating the 'stat' after we've written the file,
    so we use a special value :needs_stat, which essentially represented
    "undefined". We use this rather than nil so that we can store a failed stat
    if it occurs.
    
    Because the content and metadata of our source file will never change, there is
    no need to be able to similarly expire the values of those attributes.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 4b0c847f19d5db81758b5561bdc8196591209ef0)
    
    Conflicts:
    
    	lib/puppet/type/file/source.rb

commit 546e0f98e3c6bfcb35163d1c6c19e0b4cb02e230
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:40:00 2011 -0700

    Remove Puppet::Util::Cacher usage from Puppet::Util::Settings
    
    The path attribute was being unnecessarily cached. The value is a LoadedFile
    instance, which already knows how to check whether it needs to be reloaded. The
    act of reparsing was being triggered separately from the cacher mechanism.
    
    The comment indicated this value was only being cached so it could be easily
    cleared for tests, but it wasn't being cleared for tests. Thus, there is no
    reason for this attribute to be cached, so remove it.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit bdcb9be3b5d7cd54548cbeb7b13bee6fe4e730f7)

commit b6b54981bb0972ed6e57d5763e976418fe5bd32b
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:38:51 2011 -0700

    Remove Util::Cacher usage from SSL::CertificateAuthority
    
    Allowing the singleton_instance value to be expirable is unnecessary, because
    there will never be a need for a different CA instance in the lifetime of a
    master. Additionally, the master never expired its cache anyway. This was only
    using the cacher so it could be expired for tests, so it can safely be removed.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit fac867c7bdbfbd431b089eb1bfb6eb73230e912c)

commit 777b2f284eceedb3bbc51846089278752074bfca
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:37:33 2011 -0700

    Remove unused require 'puppet/util/cacher' from Network::HttpPool
    
    The use of Puppet::Util::Cacher in this module was removed previously, and this
    stray, unnecessary require was left around.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 93299e90e231bb407923e3534a0e33d841b95355)

commit 41425bd7b23e1883b46ac7029232a388318e0df6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:37:06 2011 -0700

    Remove use of Util::Cacher from FileServing::Mount::File
    
    Allowing this value to be expirable is superfluous; it is only used on the
    master, which never expires its cache. Additionally, it was providing partial
    support for an event we don't fully support already (hostname and domain
    changing during the lifetime of a master).
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 6a1b65760a0d8c6299d5c6d260dc37b5e0637706)

commit 8d530906490d5e2fafadd60a7f1699ef1d37b211
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:36:03 2011 -0700

    Remove use of Util::Cacher in FileServing::Configuration
    
    This class was using Util::Cacher for its singleton instance, when that was
    unnecessary. The FileServing::Configuration instance already manages whether or
    not to reparse its config file, based on whether it has changed. Thus, there is
    no need for it to be manually expired via the cacher.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 4bad729f56c26d8154cd0f20614fa4e478de9d40)

commit 3093047e07bdc69222c26d11aff50353f64c977d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 19 15:19:10 2011 -0700

    Remove Puppet::Network::HttpPool keep_alive handling
    
    Keep alive has been disabled since 2008, and seems to have caused problems when
    it was enabled before then. Since there doesn't seem to be any push to get it
    working again, just remove it to simplify this code.
    
    This also allows us to entirely remove the usage of Puppet::Util::Cacher from
    HttpPool.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 185a666018c0cf0b2c497f655f942a82cd22e49e)

commit 57d62179d248b8a7982921e2c60f5d9e9e0a8ba9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 19 15:15:23 2011 -0700

    Fix spec test failure on 1.9.2
    
    The previous set of windows patches accidentally changed %w{/one}
    to make_absolute("/one"). This commit changes it back to
    [make_absolute("/one")].
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 62a3e2296b872ee9f0ee3c03c9c77215dcd215c5)

commit 5d3a40fda87b7346d99fd25c0eb1906a62c19512
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 18 23:40:17 2011 -0700

    Maint: Fix miscellaneous tests
    
    Several tests were broken due to pecularities of Windows
    and Ruby on Windows:
    
    * Ruby on windows does not differentiate between group and
      other file permissions.
    * All open file handles must be closed before the file can
      be deleted
    * Sometimes the current working directory (Dir.getwd) is
      reported as C:/foo and other times as C:\\foo, which
      confuses the spec tests.
    * Ruby's sprintf formats floating point values differently
      on Windows vs Unix. The Windows exponent has an extra
      leading zero.
    * Needed to stub execution of security command with the
      SMF service provider.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 0e4ae653c0628cb0df9ccace98bca4bc7478fb7c)

commit ce0c258ba24a5232a82a69eb62387893feca684e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 18 23:26:31 2011 -0700

    Maint: Don't test for extended signals on Windows
    
    The signals HUP, USR1, and USR2 are not supported on Windows. The
    Puppet::Daemon code already skipped trapping these on Windows,
    but the spec test was expecting them to be trapped. This commit
    just updates the spec test to match the existing daemon code.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 8d56355981961fd1c4a358992930bbb80325fea7)

commit bdc9790b4e3a4312f56cb66cf550f7b98ce910e5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 18 23:17:36 2011 -0700

    Maint: Tagged spec tests that are known to fail on Windows
    
    Many spec tests fail on Windows because there are no default
    providers implemented for Windows yet. Several others are
    failing due to Puppet::Util::Cacher not working correctly,
    so for now the tests that are known to fail are marked with
    :fails_on_windows => true. To skip these tests, you can run:
    
      rspec --tag ~fails_on_windows spec
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 255c5b4663bd389d2c87a2d39ec350034421a6f0)
    
    Conflicts:
    
    	spec/unit/resource/catalog_spec.rb

commit c26f3e5f79fa2caa17d18be41e32871ac09b1dc4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 18 23:05:35 2011 -0700

    Fix tests with "relative" paths on Windows
    
    Absolute paths on Unix, e.g. /foo/bar, are not absolute on Windows,
    which breaks many test cases. This commit adds a method to
    PuppetSpec::Files.make_absolute that makes the path absolute in
    test cases.
    
    On Unix (Puppet.features.posix?) it is a no-op. On Windows,
    (Puppet.features.microsoft_windows?) the drive from the current
     working directory is prepended.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 462a95e3d077b1915a919399b846068816c84583)
    
    Conflicts:
    
    	spec/unit/parser/functions/extlookup_spec.rb

commit bfeb33734358528209221be09b97ffc8513d3f87
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 18 22:44:10 2011 -0700

    (#8268) Require windows drive letters in absolute file paths
    
    When testing whether a file path is absolute, the regexp was only
    handling POSIX style file paths. This commit requires Windows
    style file paths to start with a drive letter. A future commit
    will refacter the various places we do path validation to
    support both Windows drive letters and UNC paths.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 45ae5b4a9ced26dfcd3e324391f9a26cb02bf93d)

commit fe81decc5336a540ba9e65e0da48f5a5e3b52274
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 18 22:28:18 2011 -0700

    (#8489) Consistently use File::PATH_SEPARATOR
    
    Puppet uses both colon and File::PATH_SEPARATOR in various places, which
    does not work on Windows, where File::PATH_SEPARATOR is a semi-colon. This
    commit changes the code and tests to consistently use File::PATH_SEPARATOR.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 26ee468e8b963d63933d9a27a65d55510ff87618)

commit a4378128c214d3c8c349a8052f018c13417b7cb1
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jul 12 14:14:13 2011 -0700

    (#8356) Specify setting type for color
    
    Because we default the color setting to "false" on Microsoft Windows,
    the heuristics used to detect which type of setting we're using were
    getting confused, and mis-detected color as being a BooleanSetting
    rather than just a Setting.
    
    By specifying that color is a "Setting", we can skip the
    auto-detection, and avoid this problem entirely.
    
    Reviewed-by: Josh Cooper <josh@puppetlabs.com>
    (cherry picked from commit b84bdbf31bbb0c5d5501bf6f32a9c0d0dc6acc94)

commit af2446ad8ebf0c112901ea26efa37b06247c08b0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 12 15:42:44 2011 -0700

    (#8268) Fix resource harness spec tests
    
    The windows file type requires that the path start with either a drive
    letter or UNC style path. Also Ruby's File implementation on windows
    only supports 0644 and 0444 permission bits (it doesn't differentiate
    between group and other, and it doesn't know about the execute bit).
    This commit maps the path and permissions used in the test to sensible
    values when running on windows.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit 06e0208ec34285e0749c366c8a12817044d7d513)

commit d9c3b0f5ac1e8f7ccbdb4b4edd2fa3e93fe882a5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 11 16:40:00 2011 -0700

    (#8356) Color defaults to false on Windows
    
    Windows consoles do not support ansi escape sequences for colorizing
    output. This commit changes the default setting of 'color' to false when
    the "microsoft_windows" feature is present.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>
    (cherry picked from commit d7d384ec0b7f28a8f0be20defcc2eebd0550aff0)

commit 9ebe500c496f76c5678fcde9c52d65c8282c9fe6
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jul 8 11:25:03 2011 -0700

    Disable the master on Windows instead of blowing up with failed resources
    
    Running the Puppet master on Windows is not supported, so instead of
    failing with what can be cryptic error messages about failed resources
    we fail with an explicit error message about the master on Windows not
    being supported.  This way a user isn't mistakenly given the
    impression that running a master on Windows will work, and they just
    have something mis-configured.
    
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-by: Max Martin <max@puppetlabs.com>
    (cherry picked from commit 3a70503b60f9fd51177df4e9267c5ac28b06fb2d)

commit 7467a08368b09e8e36c40b5013e3774c76123b85
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Jun 27 13:33:31 2011 -0700

    (#7581) Provide more detailed error message when missing gems on Windows
    
    Running Puppet on Windows requires the sys-admin, win32-process &
    win32-dir gems.  If any of these gems were missing, Puppet would fail
    with the message "Cannot determine basic system flavour".
    
    When trying to determine if we are on Windows, we now warn with the
    message "Cannot run on Microsoft Windows without the sys-admin,
    win32-process & win32-dir gems: #{err}", where err is the normal ruby
    load error message stating which gem could not be loaded.
    
    We also only warn if the POSIX feature is not present.
    
    Signed-off-by: James Turnbull <james@puppetlabs.com>
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-by: Cameron Thomas <cameron@puppetlabs.com>
    (cherry picked from commit faf8a5c05f50d98835a1db05b96146618f485a04)

commit 71e190bf255f98e900f7ddd55db393d448df3274
Merge: 249e287 fd7332b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Aug 18 17:09:33 2011 -0700

    Merge pull request #48 from daniel-pittman/maint/2.7.x/strip-incorrect-rights-statements
    
    Maint/2.7.x/strip incorrect rights statements

commit 249e287ed2dd6260b0289e27606b3cccea402fd5
Merge: 208b41e 654de01
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Aug 18 17:04:15 2011 -0700

    Merge pull request #49 from nfagerlund/maint/2.7.x/filebucket_type_and_wrapping
    
    Maint/2.7.x/filebucket type and wrapping

commit 654de01a90297ea460733ad8993d66144cceffa1
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Aug 18 15:20:22 2011 -0700

    Maint: Correct docs for filebucket type and file's backup parameter
    
    There's a known bug that prevents remote filebucket resources from working
    unless you set path => false. Until this bug is fixed, the docs should reflect
    reality as she is played. This commit mentions the bug in both areas where it
    is relevant.

commit b623826a4edc5b1f4bb509aae923d77e8845ad42
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Aug 18 15:12:28 2011 -0700

    Maint: Fix line wrapping in create_resources function
    
    This is a cosmetic commit improving the line wrapping in the create_resources
    function's documentation string.

commit fd7332be5ca8ba78ff24a455fddad1713be779b5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Aug 18 11:27:41 2011 -0700

    maint: remove inaccurate copyright and license statements.
    
    For a while Luke, and other authors, injected a created tag, copyright
    statement, and "All rights reserved" into every new file they added to the
    Puppet project.
    
    This isn't really true, and we have a global license covering the code, so
    we have now stripped out all those old tags.
    
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 208b41e5dd3d5b9285759592acb25892b7c9ba89
Merge: 99678f2 a8b27de
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Aug 18 10:41:05 2011 -0700

    Merge pull request #47 from nfagerlund/maint/2.7.x/create_resources_documentation
    
    Maint: Improve create_resources function's doc string

commit a8b27debc09b02eb78b40b891db2f01f9b617406
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Aug 17 17:48:08 2011 -0700

    Maint: Improve create_resources function's doc string
    
    The create_resources function's doc string was not particularly clear and had
    incorrect markdown formatting. This commit adds a more complete example which
    demonstrates the necessary hash format, and changes the doc string to a
    heredoc to simplify escaping.

commit 0d51dc9be0bc1c785d749b8b352a1e43b1b6e9c6
Merge: cf95530 af87f32
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Aug 17 17:44:43 2011 -0700

    Merge remote-tracking branch 'josh/maint/master/resource_and_suidmanager_specs'

commit af87f32a016a5ed48353f516f9558f95c54c50b4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 17 17:08:38 2011 -0700

    maint: Fix build break due to recent merge from 2.7.x to master
    
    The resource_spec was failing because /etc is not considered a
    fully-qualified path on Windows. Using File.expand_path fixes that.
    
    The suidmanager_spec was failing because we weren't stubbing the
    microsoft_windows feature, so SUIDManager.asuser was a no-op when
    running as root, and our expectations weren't being met.

commit cf95530964a067374f2ff8be0602342e47a55cc5
Merge: 54fb365 99678f2
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Aug 17 14:44:03 2011 -0700

    Merge branch '2.7.x'

commit 99678f26369f7ac57a4125b6b391f2db832bbb4b
Merge: 3a3a510 5f22985
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Aug 17 14:37:55 2011 -0700

    Merge remote-tracking branch 'josh/maint/2.7.x/ca-location-test-failures' into 2.7.x

commit 5f22985fa68162a849f15e0ca8125b40529e5769
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 17 14:03:48 2011 -0700

    maint: Fix order dependent test failure
    
    The spec tests failed when running spec/unit/face/node_spec.rb
    followed by spec/unit/ssl/certificate_request_spec.rb, because the
    clean action for the node face was leaving
    Puppet::SSL::Host.ca_location set to :local instead of its default
    :none state.
    
    This commit resets the ca_location back to :none in the top-level
    after :all block.

commit 3a3a5100305a5334397c350f4e8e42a7f9b7e3f6
Merge: 020c476 e4bb85a
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Aug 17 11:41:26 2011 -0700

    Merge branch '2.6.x' into 2.7.x
    
    * 2.6.x:
      Reset indirector state after configurer tests.
      (#8770) Don't fail to set supplementary groups when changing user to root
      (#8770) Always fully drop privileges when changing user
      (#8662) Migrate suidmanager test case to rspec
      (#8740) Do not enumerate files in the root directory.
      (#3553) Explain that cron resources require time attributes
    
    Conflicts:
    	lib/puppet/application/resource.rb
    	test/puppet/tc_suidmanager.rb

commit 020c47645c7d882b1eac5150fd47227806af8aed
Merge: 0702c0c 35c1006
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Aug 17 10:49:27 2011 -0700

    Merge pull request #43 from domcleal/tickets/2.7.x/9039
    
    (#9039) Update Augeas commands documentation

commit e4bb85af3216473e82a263f41c39c34489940276
Merge: b6895de 2bf6721
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Aug 17 10:47:57 2011 -0700

    Merge pull request #41 from jhelwig/do-not-leak-indirector-state-2.6.x
    
    Do not leak indirector state

commit 0702c0cde0f161e2f43bdf195eb3fb0b749aa3d7
Merge: fe22c1c 7ac1093
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Aug 17 10:37:23 2011 -0700

    Merge pull request #44 from nfagerlund/ticket/2.7.x/8037_incorrect_augeas_example
    
    (#8037) Fix incorrect example in Augeas type reference

commit 7ac10930b30f13b5fdb7aea094283c8c122a0918
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Aug 9 17:33:14 2011 -0700

    (#8037) Fix incorrect example in Augeas type reference
    
    The changes attribute for the Augeas type's second example was
    incorrect, as it had leading slashes that took the paths out of the
    context of /files. This commit fixes the bad example, and changes the doc
    string to a heredoc to eliminate some messy escaping.

commit 35c10060ed647ba221289d1edf90ce0c587b6c74
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Wed Aug 17 08:02:10 2011 +0100

    (#9039) Update Augeas commands documentation
    
    Added documentation on commands added as part of #6494 and clarified existing
    commands documentation.

commit 2bf6721a35a001c5b1ce2c6b9707ef28058919e9
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 16 17:31:12 2011 -0700

    Reset indirector state after configurer tests.
    
    Because the indirector state persists across tests, we need to make
    sure that we clean up after ourselves whenever we explicitly set a
    non-default configuration.  We now reset the terminus class after all
    the tests have run in the context with the modified configuration.

commit 54fb365120463e240328cd6fe507423e6d022110
Merge: 66d852b fe22c1c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 16 12:59:33 2011 -0700

    Merge branch '2.7.x'

commit fe22c1c4819d035af02c9db5d065a712dc2d0e3c
Merge: 1049458 e9b558d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 16 12:45:28 2011 -0700

    Merge branch 'ticket/2.7.x/5495' into 2.7.x

commit e9b558dd35eec6e221aef9de3f300a5843347454
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 16 12:40:06 2011 -0700

    Fix posix exec provider spec failures on Windows
    
    These specs were assuming that paths such as /foo were always absolute, which
    is not the case on Windows. Thus, when run on Windows, the provider was
    complaining about receiving relative paths when it expected absolute, rather
    than succeeding or failing in the intended way. Now we expand all paths we want
    to be absolute, to guarantee they will be absolute everywhere.
    
    Also, some specs were failing because they were trying to test the case where a
    file isn't executable. That's not something we can reliably check on Windows,
    so instead just stub the appropriate executable? methods.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 66d852bb2c2b66ff5e7c9966fdb510e2edd529db
Merge: 39116d4 1049458
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 16 11:45:55 2011 -0700

    Merge branch '2.7.x'
    
    Conflicts:
    	lib/puppet/provider/augeas/augeas.rb
    	spec/unit/node_spec.rb

commit 1049458461b5ec5e1e48ad0244d63eb24626b09d
Merge: c9c331b b28bcb0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 16 11:40:40 2011 -0700

    Merge branch 'ticket/2.7.x/5495' into 2.7.x

commit b28bcb031346cfd2026361ec5ffb420c1dcf60d7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Aug 15 15:51:37 2011 -0700

    (#5495) Remove dead Windows-specific code from posix exec provider
    
    Because this provider only applies when the posix feature is present (and thus
    not the windows feature), it can never be used on Windows. Thus, the
    Windows-specific command handling is unnecessary and unused.
    
    Also added more specific error messages for the cases where a command doesn't
    exist, isn't a file, and isn't executable. These only apply when the command
    path is absolute (otherwise the message is simply command not found).
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit c9c331bda6f4220d3fde636cdfdc7b0ae449c005
Merge: b3e7f7b 2297899
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Aug 16 10:26:45 2011 -0700

    Merge pull request #40 from jhelwig/fix-order-dependent-terminus-tests-in-2.7.x
    
    Fix order dependent terminus tests in 2.7.x

commit b3e7f7b14111b75fbce01ce2bab5adf0fa333882
Merge: 1ce2973 b52fbf4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Aug 16 09:53:46 2011 -0700

    Merge pull request #39 from nfagerlund/ticket/2.7.x/8612_exec_creates_parameter
    
    Ticket/2.7.x/8612 exec creates parameter

commit 2297899e76dd3b65787768f2e4bf6b74b95a3d66
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Aug 15 17:07:51 2011 -0700

    Do not leak indirector state from apply tests
    
    Since the indirector state persists across tests, we were seeing order
    dependent test failures with tests that assumed the default indirector
    settings.
    
    Specifically, if the following tests were run in order, the first
    would cause failures in the second two:
    
      spec/unit/application/apply_spec.rb
      spec/unit/node_spec.rb
      spec/integration/node_spec.rb
    
    To protect against this state leakage, we now:
    
      - reset the Puppet::Node terminus before each test in
        spec/integration/node_spec.rb to ensure we are testing a clean
        environment.
    
      - reset the Puppet::Node, and Puppet::Node::Facts terminus, and
        cache class after each test in spec/unit/application/apply_spec.rb
        to prevent leakage into other tests.
    
    Since the cache class has the same state leakage problem as the
    terminus class, but does not have the same ability to lazily populate
    the default when set to nil, we remove the test.  Testing the default
    for the cache class would require running the test before all other
    tests to ensure there is no state pollution.n

commit b52fbf4e3c8cac2956c8a0d301f91d8eb081f994
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Aug 15 17:11:00 2011 -0700

    (#8612) Clarify the function of the example for exec's "creates" parameter
    
    It was not clear to all readers that /var/tmp/myfile was being extracted from
    the tarball. This commit adds a sentence to make the conditions when the exec
    will run more explicit and fixes an error in the tar command.

commit 39116d4a6ed4861e46b16ba26c679a8b346fca00
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Aug 15 11:25:37 2011 -0700

    maint: Fix order dependent spec failure
    
    Since the cacher was removed in master the indirection's terminus class
    no longer gets reset between tests by clearing the cache.  This meant
    that one spec was setting the cache_class and affecting another spec,
    causing failures.
    
    Now that test manually resets its indirection related info.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 3d5f65538028c3dc8ed7896d61878e6570032dfd
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Mon Aug 15 10:44:01 2011 -0700

    Update changelog for 2.7.3

commit e7d5c7c1cd4109d7bb061a503f5da8777a1be66d
Merge: a71573c fa1ec4d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Aug 15 10:36:03 2011 -0700

    Merge branch '2.7.x'
    
    * 2.7.x: (25 commits)
      (#4411) Explain that runinterval = 0 does not mean "never run"
      Maint: Fix missing option text in puppet agent and arrange options alphabetically
      (#8302) Improve documentation of exec providers
      (#7853) Clarify and complete docs for the tagmail report processor
      Maint: Mention that audit metaparameter will accept "all"
      Maint: Adjust wording for file type's content parameter
      Maint: Fix poor documentation for versioncmp function.
      maint: Fix case sensitive require
      maint: Add inspect app options to help
      maint: Fix inspect help
      Increment lib/puppet.rb VERSION string
      Updated CHANGELOG for 2.7.3rc1
      (#4762) Ensure that clients on the moon can successfully connect.
      Add document outlining preferred contribution methods
      Add document outlining preferred contribution methods
      Add document outlining preferred contribution methods
      Revert "Merge branch 'vcsrepo'"
      Revert "Merge branch 'vcsrepo'"
      Updating CHANGELOG for 2.7.2rc3
      (#8704) Give better errors for invalid fileserver.conf
      ...
    
    Manually Resolved Conflicts:
    	lib/puppet/parser/functions/versioncmp.rb
    	spec/integration/node/facts_spec.rb

commit b6895de42276262a58029a7763844eacd9cd0745
Merge: 7de5ee8 bb224dd
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Aug 12 13:24:17 2011 -0700

    Merge remote-tracking branch 'nicklewis/ticket/2.6.x/8770' into 2.6.x
    
    * nicklewis/ticket/2.6.x/8770:
      (#8770) Don't fail to set supplementary groups when changing user to root

commit bb224dd1549817190b6471e677e43fa02bb766a3
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Aug 12 12:18:51 2011 -0700

    (#8770) Don't fail to set supplementary groups when changing user to root
    
    Previously, Puppet::Util::SUIDManager.change_user would always try to set
    supplementary groups (Process.initgroups) before changing its EUID.
    Process.initgroups requires the calling process to have EUID 0 in order to
    succeed.
    
    This worked fine in the case where the process was changing from root to a
    normal user, as it would set groups as root and then change EUID to 0.
    However, in the case where the process was changing back to root from a normal
    user, it would attempt to set groups as the normal user, and fail.
    
    Now, we check Process.euid before changing, and will set groups first if root,
    and will set euid first if not root. This ensures we can freely switch back
    and forth between root.
    
    This behavior is maintained inside of the change_user, rather than being broken
    into eg. raise_privilege and lower_privilege, because it is a relatively minor
    behavior difference, and the helper methods on their own would not have been
    generically useful.

commit a71573cb32f01e5bf5f1a5030c6a291ce5b63370
Merge: eee90dd d3c747b
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 12 06:29:46 2011 -0700

    Merge pull request #34 from nanliu/ticket/2.7.x/8814
    
    (#8814) Update fqdn_rand for ruby 1.9.2 rand bug.

commit 1ce2973e8af2300aff2b042257d8181855cf887d
Merge: fa1ec4d 344aef9
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 12 06:23:00 2011 -0700

    Merge pull request #22 from domcleal/tickets/2.7.x/8808
    
    (#8808) Fail Augeas resource when unable to save changes

commit eee90dd5036c0627ab83c7a39c53d4ca3f0affc3
Merge: 44719fc 000b8fe
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Aug 12 06:21:35 2011 -0700

    Merge pull request #23 from domcleal/tickets/master/5606
    
    (#5606) Print Augeas' /augeas//error info to debug on save failure

commit d3c747b3c22be2592267071075facaaad498a82b
Author: Nan Liu <nan@puppetlabs.com>
Date:   Thu Aug 11 22:18:48 2011 -0500

    (#8814) Update fqdn_rand for ruby 1.9.2 rand bug.
    
    Ruby 1.9.2 does not accept a string for rand function, so rand('1')
    fails even though this works in Ruby 1.8.x and the string is implicitly
    converted to a number. We added to_i to avoid this bug.

commit 7de5ee899621e3a799ca87988ac1d2498b19d09a
Merge: 75786ad 2a0de12
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Aug 11 17:16:15 2011 -0700

    Merge remote-tracking branch 'nicklewis/ticket/2.6.x/8770' into 2.6.x
    
    * nicklewis/ticket/2.6.x/8770:
      (#8770) Always fully drop privileges when changing user
      (#8662) Migrate suidmanager test case to rspec

commit 75786ada2187283f21241a5377908ff3a8b3d694
Merge: f7e9695 d7c9c76
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Aug 11 17:07:11 2011 -0700

    Merge pull request #32 from joshcooper/ticket/2.6.x/8740-cannot-manage-files-of-type-socket
    
    Ticket/2.6.x/8740 cannot manage files of type socket

commit 2a0de12af5305ed54dd99391ee17533e71e0d88e
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 9 17:48:33 2011 -0700

    (#8770) Always fully drop privileges when changing user
    
    On Mac OS X, it is only possible to directly change the euid of a process, and
    not the uid. Thus, when a puppet master started as root on OS X would change to
    the service user (puppet), it would leave the uid of its process set to 0.
    This allowed any type of Ruby plugin executed on the master (a type, provider,
    function, etc.) to trivially regain root privileges (by setting the euid of
    its process back to 0) and potentially compromise the master.
    
    Now, when permanently changing user, we will first try
    Process::UID.change_privilege, before falling back to setting the euid/uid
    ourselves. change_privilege correctly sets the uid of the process to the
    desired new uid, preventing the process from later escalating itself back to
    root. Similar behavior is also used when changing group. This has no effect on
    the behavior when temporarily changing user/group (for instance, to execute a
    single command or create a file as a particular user).
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 00c4b25010068eeb57a15104fb178a72af733fda
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Aug 11 15:47:37 2011 -0700

    (#8662) Migrate suidmanager test case to rspec
    
    We're trying to move away from the legacy Test::Unit tests, and toward rspec
    specs, so rewrite this file as specs.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit d7c9c765dbf28df3631e709832c44c343569cb53
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Aug 10 16:20:00 2011 -0700

    (#8740) Do not enumerate files in the root directory.
    
    Previously the command 'puppet resource file' would enumerate all files
    in the root directory, and generate an exception if the file type was
    not a directory, file, or link. Worse, it would also do this when a file
    or directory was specified, e.g. 'puppet resource file /etc/hosts'.
    
    Ideally, the find method of the ral terminus should not need to call the
    type's instances class method, instead just creating an instance of the
    type with the specified name and parameters. However, some types, like
    package, depend on this behavior. The type walks all providers and all
    instances that they provide, checking to see if the provider provides an
    instance with that name, and also warning if another provider provides
    an instance with the same name.
    
    Also, ideally, puppet should not blow up when encountering an
    unsupported file type, e.g. Unix domain socket, but that would be too
    big of a change for 2.6.x.
    
    This commit changes 'puppet resource file' to return a message saying
    that the operation is not supported:
    
        Listing all file instances is not supported.  Please specify a file
        or directory, e.g. puppet resource file /etc
    
    The change is bit of a hack, as ideally, the file type's instances
    method could raise an exception when called in a 'search' context, but
    return an empty array in a 'find' context. But that also would be too
    big of a change for 2.6.x.
    
    This commit also adds spec tests for the resource application and file
    type, as well as an acceptance test, which creates a Unix domain socket
    in the root directory, while running 'puppet resource file'.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit f7e96953b4e297ac1f78a1747e8dc3187c49870b
Merge: e5f43b0 0e00473
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Aug 10 17:38:14 2011 -0700

    Merge pull request #28 from nfagerlund/ticket/2.6.x/3553_cron_requires_time
    
    Ticket/2.6.x/3553 cron requires time

commit fa1ec4dd93f015c2943271c9ae107991c6d3c90e
Merge: fb5fab3 39da99d
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Aug 10 17:36:04 2011 -0700

    Merge pull request #29 from nfagerlund/maint/2.7.x/minor_docs_fixes
    
    Maint/2.7.x/minor docs fixes

commit 39da99ddd734e405aa91cede01bade9395767f5f
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Aug 10 17:22:43 2011 -0700

    (#4411) Explain that runinterval = 0 does not mean "never run"
    
    Unlike several other tools that accept a number of seconds between runs,
    puppet agent doesn't use 0 as a special value representing "never;" instead,
    it takes this as an instruction to run continuously. As this has caused some
    user confusion, this commit updates runinterval's description to explain this,
    and points to the correct method to make puppet agent do nothing.

commit 4146a33c3f04f5e3783931e1aa36d1f1ab5c22e6
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Aug 10 17:01:04 2011 -0700

    Maint: Fix missing option text in puppet agent and arrange options alphabetically
    
    Puppet agent's man text was missing the --no-client option in its command
    synopsis, and the long text for --no-client cut off weirdly in the middle of a
    sentence. This commit fixes both problems, and arranges all the options
    alphabetically so they're easier to reference.

commit 0e0047393f869330979b5e0ca205f4667476379e
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Aug 10 16:39:59 2011 -0700

    (#3553) Explain that cron resources require time attributes
    
    The cron resource docs previously read, "All fields except the command and the
    user are optional, although specifying no periodic fields would result in the
    command being executed every minute." This was factually incorrect; instead,
    specifying no periodic fields results in a failure and an unhelpful error on
    Puppet 2.6 and 2.7.
    
    Although the issue will remain open as a behavior bug, this commit corrects
    the documentation of which attributes are required. It also changes the @doc
    string to a heredoc to simplify quote escaping.

commit 44719fcf9f9053a7be1bea59d516f24d2234ede4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Aug 10 13:55:39 2011 -0700

    Stop trying to make config directories in Windows specs
    
    FileSetting#to_resource had a provision to not attempt to manage files in /dev,
    which effectively stopped spec from trying to make their configuration
    directories in /dev/null. However, on Windows, the path turns into something
    like C:/dev/null, so the specs were still trying to manage their configuration
    directories when this wasn't desired or handled by the spec.
    
    Now, we also exclude management of C:/dev (or similar), to mimic the behavior
    on Windows. Because this isn't a standard path (and thus will not be used for
    anything else), there seems to be no harm in treating it as though it were
    really /dev.
    
    Reviewed-By: Josh Cooper <josh@puppetlabs.com>

commit c50b213b716cc5d6a7e282225353cfa3e4637322
Merge: 6d692af d08ae7f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Aug 10 13:11:47 2011 -0700

    Merge pull request #27 from ChaseMotorman/feature/master/8272-windows_service_support
    
    (#8272) Add missing tests for Windows service provider methods.

commit d08ae7fd2180c95d1fcafa149128d25cc4680c6c
Author: Cameron Thomas <cameron@puppetlabs.com>
Date:   Wed Jul 27 15:30:19 2011 -0700

    (#8272) Add missing tests for Windows service provider methods.
    
    Added missing spec tests for Windows service provider methods:
      :stop, :enable, :disable, and :manual_start
    Refactored to match Nick's previous work.
    
    Reviewed By: Nick Lewis [nick@puppetlabs.com]

commit fb5fab36913c792443fd9dc5272a6b514f64ca2f
Merge: 4ab915a e5f43b0
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Aug 10 13:02:12 2011 -0700

    Merge branch '2.6.x' into 2.7.x
    
    * 2.6.x:
      (#8302) Improve documentation of exec providers
      Add document outlining preferred contribution methods

commit 6d692af86b70977b73be051992e18e34a1d64d65
Merge: 2b9b7c1 01f09f5
Author: Cameron Thomas <cs.thomas.dev@gmail.com>
Date:   Wed Aug 10 12:21:10 2011 -0700

    Merge pull request #25 from nicklewis/feature/master/windows-users-and-groups
    
    (#8408/8409) Windows user and group providers

commit e5f43b06546b5cee49b6290068e22641ca3134eb
Merge: c209f62 769d432
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Aug 10 12:13:40 2011 -0700

    Merge pull request #26 from nfagerlund/ticket/2.6.x/8302_exec_provider_docs
    
    Ticket/2.6.x/8302 exec provider docs

commit 769d43252c02272a67a5b6bf456c45985e07ce59
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Aug 10 12:03:30 2011 -0700

    (#8302) Improve documentation of exec providers
    
    The documentation for the shell and posix providers didn't fully explain the
    differences between them or the security implications of each. This commit
    improves the documentation of both providers.

commit 01f09f5f395bab66b90a4e81e958aa89025977b4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 9 13:04:37 2011 -0700

    (#8409) Add a default group provider for Windows
    
    This provider, windows_adsi, uses the Puppet::Util::ADSI module to manage
    groups. It can only manage group existence and memberships, but is fully
    functional in those regards.
    
    Based on work by: Joel Rosario <joel.r@.internal.directi.com>
    Based on work by: Cameron Thomas <cameron@puppetlabs.com>
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit ac00e9e289f8fdc81f060e7dd289e1a8e0f133c0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 9 13:04:25 2011 -0700

    (#8408) Add a default user provider for Windows
    
    This provider, windows_adsi, uses the Puppet::Util::ADSI module to manage
    users. It can currently only manage group memberships, comments, and home
    directories, which are the only fields that can be managed via ADSI.
    
    Based on work by: Joel Rosario <joel.r@.internal.directi.com>
    Based on work by: Cameron Thomas <cameron@puppetlabs.com>
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 4ab915a02a6ce80d74ba404c46bda4cb03995ff6
Merge: 6d1418c 76d45d2
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Aug 9 16:29:34 2011 -0700

    Merge pull request #24 from nfagerlund/maint/2.7.x/misc_doc_fixes
    
        Merge branch 'maint/2.7.x/misc_doc_fixes' into 2.7.x
    
        * maint/2.7.x/misc_doc_fixes:
          (#7853) Clarify and complete docs for the tagmail report processor
          Maint: Mention that audit metaparameter will accept "all"
          Maint: Adjust wording for file type's content parameter
          Maint: Fix poor documentation for versioncmp function.

commit 76d45d22ad134d73e4a2b9b8abbc1955784c0a93
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Aug 9 15:51:24 2011 -0700

    (#7853) Clarify and complete docs for the tagmail report processor
    
    The tagmail report docs did not mention that you could use log levels as
    tags, and was unclear in several other minor ways. This commit improves that
    documentation.

commit d60852bf8e0ce7dfb0941d0f2d44aa3792421e97
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Aug 2 14:13:40 2011 -0700

    Maint: Mention that audit metaparameter will accept "all"
    
    Previously, `audit => all` wasn't documented anywhere. This commit adds
    a note on it to the metaparameter reference.

commit 51d989ef5da1d0a9257bb402eb7708385cac798a
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Aug 2 11:19:14 2011 -0700

    Maint: Adjust wording for file type's content parameter
    
    The content parameter's doc string said: "The primary purpose of this
    parameter is to provide a kind of limited templating... This attribute
    is especially useful when used with templating." This commit clarifies
    said awkward wording.

commit a110d83fb81bf35d2d4d66d1d04e271877b79948
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jul 19 17:19:47 2011 -0700

    Maint: Fix poor documentation for versioncmp function.
    
    The versioncmp function's documentation was missing punctuation and was
    unnecessarily vague. This commit clarifies the return data and makes the
    documentation more legible at a glance.

commit b5fd95336e71ad428109cddf6cd2f33bdd31e025
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 9 13:04:10 2011 -0700

    (#8408/8409) Add a Windows ADSI helper module
    
    This module (Puppet::Util::ADSI) provides access to Active Directory Services
    Interfaces, using win32ole. The base module has methods for generating resource
    URIs and connecting to ADSI.
    
    It also provides classes Puppet::Util::ADSI::User and Puppet::Util::ADSI::Group
    for managing Active Directory users and groups, along with their properties and
    group memberships. This will be used to implement the Windows ADSI user and
    group providers.
    
    Based on work by: Joel Rosario <joel.r@.internal.directi.com>
    Based on work by: Cameron Thomas <cameron@puppetlabs.com>
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 6d1418ca7069816353356db960fbeee623451856
Merge: 2db9725 746a374
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Aug 9 13:58:33 2011 -0700

    Merge branch 'ticket/2.7.x/maint-fix_inspect_help' into 2.7.x
    
    * ticket/2.7.x/maint-fix_inspect_help:
      maint: Fix case sensitive require

commit 746a374f6ffe9be0628d720b0e4759bde7caf8db
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Aug 9 21:52:49 2011 +0100

    maint: Fix case sensitive require
    
    Mac's filesystems aren't case sensitive, so developing this change
    didn't catch the issue with requiring filenames that had been
    uppercased.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 2db9725bf6774de2e1fe9d42f4b1de948524acd3
Merge: 3a17e28 310bd55
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Aug 9 11:46:00 2011 -0700

    Merge branch 'ticket/2.7.x/maint-fix_inspect_help' into 2.7.x
    
    * ticket/2.7.x/maint-fix_inspect_help:
      maint: Add inspect app options to help
      maint: Fix inspect help

commit 310bd552e320a0fd0561b3d1619820428a07a01d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Aug 9 11:30:21 2011 -0700

    maint: Add inspect app options to help
    
    Inspect wasn't documenting the only two options it has, archive_files
    and archive_file_server.  Now it does.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 3a19628194d8ec8319fb9090b8fb62620956c03c
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Aug 9 10:56:52 2011 -0700

    maint: Fix inspect help
    
    Running `puppet help inspect` did not result in help:
    
        Unable to find application 'inspect'.
        err: exit
        err: Try 'puppet help help help' for usage
    
    It turned out that the only reason applications were getting required so
    that their help could be found was the LegacyName conversion table in
    lib/puppet/util/command_line.rb:7.  Inspect never had a legacy name, so
    the help system couldn't find it since it never got required.  Now
    instead of checking for the class constant to see if the application has
    been loaded, we try to require the application and exit if it's not
    found.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 000b8fef6a33e5c9f56c0801523de15a0e5bc30b
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Aug 7 09:55:09 2011 +0100

    (#5606) Print Augeas' /augeas//error info to debug on save failure
    
    When saving fails, the contents of /augeas//error (for put_failed) are printed
    to the debug log.  Should help users track down the issue without needing to
    replicate it with augtool.

commit 9d09b077a33c1324d53f2725fcf61b529deafb4b
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Aug 6 17:46:20 2011 +0100

    (#8808) Fail Augeas resource when unable to save changes
    
    Raise a failure when Augeas changes cannot be saved (due to invalid layout of
    the tree, permissions etc).  Fixes a regression.

commit 3a17e2896b4167aa33f3bbe7a2b7aa6ed3086ae4
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Sat Aug 6 12:20:47 2011 -0700

    Increment lib/puppet.rb VERSION string
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit 344aef91a3589ce3fcc4dfb00df16762ceef81d5
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Aug 6 17:46:20 2011 +0100

    (#8808) Fail Augeas resource when unable to save changes
    
    Raise a failure when Augeas changes cannot be saved (due to invalid layout of
    the tree, permissions etc).  Fixes a regression.

commit 13aea5c66649ae6918a7125109f21d06239d4825
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Aug 5 09:25:23 2011 -0700

    Updated CHANGELOG for 2.7.3rc1

commit 3daea902b29cfd8e126ed64247ddf28aa5ad3d76
Merge: c8835ad 2185bb2
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Aug 5 09:23:49 2011 -0700

    Merge branch '2.7.x' into 2.7rc

commit 2b9b7c114e7c599f88be4f3be70f504add8072f8
Merge: 3fde2a6 0efe900
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 4 17:35:28 2011 -0700

    Merge branch 'ticket/master/8663-windows-spec-tests'
    
    * ticket/master/8663-windows-spec-tests:
      (#8663) Exclude exec timeout test on Windows

commit 0efe900902f0a6528c78c966b73f3eb6c720353b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 4 17:27:56 2011 -0700

    (#8663) Exclude exec timeout test on Windows
    
    The exec provider is not yet supported for Windows and this test relies
    on /bin/sleep. And due to #8410 it attempts to execute the program named
    "sleep 1", with variations of "sleep 1".bat, etc. This test needs to be
    reworked for Windows when the exec provider is implemented.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 3fde2a6e3176f346e8727291ec2c53eac93ff0cb
Merge: e45f08b 7ca1875
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 4 16:50:20 2011 -0700

    Merge branch 'ticket/master/8663-windows-spec-tests'
    
    * ticket/master/8663-windows-spec-tests:
      (#8663) Exclude git rev-parse HEAD spec test on Windows

commit 7ca187509ce954e5b2707212a5615dbb9eb20378
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Aug 4 16:41:11 2011 -0700

    (#8663) Exclude git rev-parse HEAD spec test on Windows
    
    When running spec/integration/parser/compiler_spec.rb, the git command
    passed to Puppet::Util.execute is an array containing a single string
    ["git rev-parse HEAD"]. On Unix, it calls Kernel.exec(*command), but on
    Windows it calls Process.create(:command_line =>command), which attempts
    to execute the program called "git rev-parse HEAD" and fails:
    
    CreateProcess() failed: The system cannot find the file specified.
    
    This commit marks the test as fails_on_windows, and will be re-enabled
    when #8410 is fixed.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 2185bb2804aeef6b419667951b2157b01404c694
Merge: b85f57c 7113448
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Aug 4 13:40:34 2011 -0700

    Merge pull request #21 from daniel-pittman/bug/2.7.x/4762-ensure-that-clients-on-the-moon-can-successfully-connect
    
    Bug/2.7.x/4762 ensure that clients on the moon can successfully connect

commit 711344836aa1e469876fc511be14e8159e61b0b8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Aug 4 10:49:59 2011 -0700

    (#4762) Ensure that clients on the moon can successfully connect.
    
    Previously, we only allowed Puppet Clients at a maximum distance of somewhere
    between 7,494 and 14,988 kilometers from the master, depending on the variance
    in local conditions.
    
    While this gave us good data security against hostile clients connecting from
    the dark side of the moon, real world testing shows the moon folks are likely
    to just take over a local staging host and attack that way.
    
    So, instead, allow clients sufficient time they should be comfortable able to
    connect to a master from the moon.  We still refuse clients further out, like
    Mars, since it seems unlikely that Puppet management over that distance should
    work.
    
    We advise the manned Mars expedition to deploy a local Puppet Master to manage
    infrastructure in their base, and to watch out for the martians.

commit da9bc7cba9288e33f193f9b93325da948949ce71
Merge: 6231a19 30b7294
Author: R.I.Pienaar <rip@devco.net>
Date:   Wed Aug 3 15:43:51 2011 -0700

    Merge pull request #7 from duritong/master
    
    false vs. nil - supporting false as default value

commit e45f08bf1fef8842554ca0d8cb6fb13711e888e7
Merge: a97c86e c833fde
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Wed Aug 3 15:43:20 2011 -0700

    Merge branch 'master' of github.com:puppetlabs/puppet

commit 30b7294d581c675c521c9c32c0e7fc8b02177bb4
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Wed Aug 3 23:58:50 2011 +0200

    false vs. nil - supporting false as default value
    
    1st) There is no need to initialize an unset index aka.
         a = []; b=a[9999]||nil <- a[9999] will always be nil. But this
         prevents the default value to be also `false`.
    
    2nd) unless answer will also fail if default or the answer is
         `false`, so we can't use `unless answer` here.

commit c833fde370d43023f52c8f2e11fd77e720d0f577
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 17:34:10 2011 -0700

    Add document outlining preferred contribution methods
    
    We have historically had the preferred contribution process on the
    Redmine wiki, however this is not obvious to people that don't already
    know it is there.  By adding this document to the repository itself,
    it becomes much easier for new contributors to find what the preferred
    contribution methods are.
    
    By having the preferred contribution method in the repository also
    means that it becomes a "curated" document, which must go through the
    same submission/review process that other changes to the repositories
    go through.
    
    Reviewed-by: Nick Fagerlund <nick.fagerlund@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit c8835ad0275c350b57884b81e485d9fc16699a21
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 17:34:10 2011 -0700

    Add document outlining preferred contribution methods
    
    We have historically had the preferred contribution process on the
    Redmine wiki, however this is not obvious to people that don't already
    know it is there.  By adding this document to the repository itself,
    it becomes much easier for new contributors to find what the preferred
    contribution methods are.
    
    By having the preferred contribution method in the repository also
    means that it becomes a "curated" document, which must go through the
    same submission/review process that other changes to the repositories
    go through.
    
    Reviewed-by: Nick Fagerlund <nick.fagerlund@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit b85f57cc227df16a6f0beedbd4f10befa55b9b3c
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 17:34:10 2011 -0700

    Add document outlining preferred contribution methods
    
    We have historically had the preferred contribution process on the
    Redmine wiki, however this is not obvious to people that don't already
    know it is there.  By adding this document to the repository itself,
    it becomes much easier for new contributors to find what the preferred
    contribution methods are.
    
    By having the preferred contribution method in the repository also
    means that it becomes a "curated" document, which must go through the
    same submission/review process that other changes to the repositories
    go through.
    
    Reviewed-by: Nick Fagerlund <nick.fagerlund@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit c209f6279563faa863644641a85c9b554900d227
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 17:34:10 2011 -0700

    Add document outlining preferred contribution methods
    
    We have historically had the preferred contribution process on the
    Redmine wiki, however this is not obvious to people that don't already
    know it is there.  By adding this document to the repository itself,
    it becomes much easier for new contributors to find what the preferred
    contribution methods are.
    
    By having the preferred contribution method in the repository also
    means that it becomes a "curated" document, which must go through the
    same submission/review process that other changes to the repositories
    go through.
    
    Reviewed-by: Nick Fagerlund <nick.fagerlund@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 11b4d2ddcc240e1d3ea4106c984ef98e6de9b653
Merge: e9233b6 447c117
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 17:05:10 2011 -0700

    Merge branch 'file-test-on-windows'
    
    * file-test-on-windows:
      Check for the appropriate permissions in File type tests on Windows
      Remove :fails_on_windows from file type tests that no longer fail on Windows
      Disable file bucket diffing tests on Windows
      Always put a slash between the checksum and path in filebucket URLs
      Treat Windows absolute paths as absolute paths
      Consolidate test logic determining if a registered file is in the temp directory
      Clarify logic and error messages when initializing Puppet::FileBucket::File
      Disable symlink related file tests on Windows

commit 447c1171845d8d17e4e684c9508fddecc003d15e
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 12:19:47 2011 -0700

    Check for the appropriate permissions in File type tests on Windows
    
    Ruby's interface to the permissions on Windows does not map well to
    the *nix concept of User, Group, and Other.  On Windows directories
    don't get the execute bit, and Ruby cannot manage group, and other via
    the standard chmod interfaces.
    
    Because of this, we no longer check that the execute bit is set on
    Windows, and use a permission set that will show differences if we
    fail to set the permissions on Windows.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 6385e08004ff06b709cc874870de38c078adb791
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 11:57:38 2011 -0700

    Remove :fails_on_windows from file type tests that no longer fail on Windows
    
    With the previous changes to the file bucket and the handling of what
    is considered an absolute path, enough pieces have slid into place
    that the file type is now mostly working on Windows.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 660ea963ddc5c74a758f6d52384ea40a8d335c58
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 11:39:02 2011 -0700

    Disable file bucket diffing tests on Windows
    
    The diffing ability of the file bucket is purely master functionality,
    and not supported on Windows.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 5314376d4378c4b4f990a7d61a9677594e12a2a5
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 11:13:21 2011 -0700

    Always put a slash between the checksum and path in filebucket URLs
    
    Since absolute paths on Windows do not always start with /, we need to
    make sure that there is always a slash between the checksum and the
    path, or the drive letter will end up being considered as part of the
    checksum.
    
    On systems where absolute paths always start with /, the extra slash
    is removed by the parsing done to the constructed URL.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 568d25ee10effd5e87c57cdc8c24280eabf9cd93
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 11:04:26 2011 -0700

    Treat Windows absolute paths as absolute paths
    
    Previously, we only considered files that matched the *nix concept of
    'absolute' as being absolute paths.  Since absolute paths on Windows
    look more like URLs with this world-view, we need to specifically look
    for the Windows absolute paths, and treat them as such.
    
    We will still treat *nix absolute paths as absolute on Windows, even
    though they are actually relative to the "current" drive.  We do not
    currently limit which "style" of absolute path is allowed based on
    what the agent is.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 3aec02ba0e4bda8ba4e9fffbc6defaae4e4e2ba1
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 10:46:53 2011 -0700

    Consolidate test logic determining if a registered file is in the temp directory
    
    Previously, we were always using string comparisons, and hard-coded
    paths to temp locations on non-Windows platforms.  This was
    problematic for a few reasons.  We had to maintain a list of temp
    locations for the various platforms, and the string comparisons were
    unreliable on Windows, since paths have two string representations
    (the "short" name containing a ~ followed by a number, and the "full"
    name).
    
    By getting the current temp location using Dir.tempdir (the same
    mechanism our temp creation code uses), we no longer need to maintain
    the list of temp locations.  Also, rather than doing string
    comparisons on file paths, we can use a combination of
    Pathname#ascend, and File.identical? to determine if the path
    registered as a temp file for deletion was actually created in the
    temp location.
    
    With this refactoring, the same code now works for both Windows, and
    non-Windows platforms.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit b4cacfd8f95577c514999b4dd6bcb7ad57e37207
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 10:34:06 2011 -0700

    Clarify logic and error messages when initializing Puppet::FileBucket::File
    
    Rather than stating the logic as 'if !thing', the two checks done when
    initializing a new Puppet::FileBucket::File are now phrased as 'unless
    thing', which should lessen the likelihood of overlooking the '!'.
    
    We also now provide a reason for the ArgumentError being raised, which
    should help users of Puppet::FileBucket::File quickly figure out what
    is the problem when these exceptions are raised.
    
    In addition to updating the tests to look for these new error
    messages, we update the existing tests to specify which type of
    exception, and what message it should have, when something is raised.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 207d41f798356d7001f5de971e118e3c33d5f6d1
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 10:23:08 2011 -0700

    Disable symlink related file tests on Windows
    
    While Windows filesystems typically have support for symlinks (NTFS),
    there are no immediate plans to support symlinks on Windows.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit ea0f2bf3fe596c6356db1150b28ddf6842f22ae9
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 14:12:16 2011 -0700

    Revert "Merge branch 'vcsrepo'"
    
    vcsrepo is available in a module of its own, is missing tests, and
    goes against the long-term goal of moving "extra" types out of core
    puppet into modules (an example of this is the nagios types).
    
    This reverts commit 25b967559dfa39eb094008c7a3952c4ee885530b, reversing
    changes made to b87a1dea704ed981f2f0af728afac2c63e87b5a8.
    
    Reviewed-by: Michael Stahnke <mike@puppetlabs.com>

commit a5716e4b7e924b71b39c447c3169a91439d39370
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Aug 2 14:13:17 2011 -0700

    Revert "Merge branch 'vcsrepo'"
    
    vcsrepo is available in a module of its own, is missing tests, and
    goes against the long-term goal of moving "extra" types out of core
    puppet into modules (an example of this is the nagios types).
    
    This reverts commit 25b967559dfa39eb094008c7a3952c4ee885530b, reversing
    changes made to b87a1dea704ed981f2f0af728afac2c63e87b5a8.
    
    Reviewed-by: Michael Stahnke <mike@puppetlabs.com>

commit 1e826bfe371de67372548b5973614946c39f4d78
Merge: 6cb3572 1e76c16
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Jul 29 14:22:18 2011 -0700

    Merge branch '2.7rc' into 2.7.x

commit 1e76c166d91fd125ca5d25d7dc6a0ce7af4c8e1f
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Jul 29 14:06:21 2011 -0700

    Updating CHANGELOG for 2.7.2rc3
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit e9233b67a5d73852d89eb2e14dcf5255fe082a6a
Merge: cd1e501 82c6b3c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 29 14:00:08 2011 -0700

    Merge branch 'ticket/master/8644-host-provider'
    
    * ticket/master/8644-host-provider:
      (#8644) Host provider on Windows

commit 82c6b3cb41397c989c011cf767066bcf1e403db2
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 29 13:30:15 2011 -0700

    (#8644) Host provider on Windows
    
    The host provider did not work on Windows because it didn't know where
    to find its hosts file. The provider now uses Win32::Resolv, which is
    part of the standard ruby library, to find it.
    
    Several host type/provider spec tests were marked as fails_on_windows,
    but now that the provider is working, I removed the tag from those
    tests, and verified that the tests now pass. There are two tests in
    resources_spec that fail because the user and exec providers are not
    supported on Windows yet, so those tests are marked as fails_on_windows.
    
    Reviewed-by: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 6cb35727272d62514d6b82b8525b4c44701f6ef6
Merge: 11e026f 94f0b93
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Jul 29 13:00:04 2011 -0700

    Merge branch 'ticket/2.7.x/8704-fileserverconf_parse_errors' into 2.7.x
    
    * ticket/2.7.x/8704-fileserverconf_parse_errors:
      (#8704) Give better errors for invalid fileserver.conf

commit 94f0b93b6065d1818f0f3b99d12d651655247c30
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Jul 29 12:29:51 2011 -0700

    (#8704) Give better errors for invalid fileserver.conf
    
    If you tried to just put an allow or deny line in the fileserver.conf
    without a mount point, you got a really confusing error message:
    
        lib/puppet/network/handler/fileserver.rb:285:in `readconfig': undefined method `info' for nil:NilClass (NoMethodError)
    
    Now instead we give an error saying no mount point was specified.
    
    Reviewed-by: Josh Cooper <josh@puppetlabs.com>

commit cd1e501b6ebba6f7b109c0591452a459a95c43da
Merge: ca3396e f600617
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 29 10:45:52 2011 -0700

    Merge branch 'ticket/master/8660-default-windows-install-paths'
    
    * ticket/master/8660-default-windows-install-paths:
      (#8660) Fix destdir option on Windows
      (#8660) Default config dir to %PROGRAMDATA% on Windows

commit f6006177a85766cfb3387db6c3d337bf97b52f17
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 29 09:42:57 2011 -0700

    (#8660) Fix destdir option on Windows
    
    Specifying the --destdir option failed on windows because the install
    script attempted to concatenate two absolute paths together. On Unix,
    this is fine, but on Windows, it fails because the colon (part of the
    drive specifier) is not a valid filename character. This commit adds a
    method to join two paths, stripping off the drive specifier, if
    present.
    
    Also fixed a minor bug, which caused a deprecation warning to always
    be printed when the --destdir option is omitted, which is the default
    case.
    
    Reviewed-by: Cameron Thomas <cameron@puppetlabs.com>

commit 95b21dfde7d77a61633555f20f2e3b9675d48415
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 29 09:37:58 2011 -0700

    (#8660) Default config dir to %PROGRAMDATA% on Windows
    
    The puppet install.rb script now defaults the config directory to
    %PROGRAMDATA%\PuppetLabs\puppet\etc on Windows. This is more inline
    with Windows best-practices, as this directory is used to store
    application data across all users. The PROGRAMDATA environment
    variable also takes into account alternate system drives, by using the
    SYSTEMDRIVE environment variable.
    
    Note that the Dir::COMMON_APPDATA constant is so named because it
    corresponds to the CSIDL_COMMON_APPDATA constant, which on 2000, XP,
    and 2003 is %ALLUSERSPROFILE%\Application Data, and on Vista, Win7 and
    2008 is %SYSTEMDRIVE%\ProgramData.
    
    This commit also updates puppet's default run_mode var and conf
    directories when running as "root" to match the install script, and
    fixes the spec test, which was looking in the Dir::WINDOWS directory.
    
    Reviewed-by: Cameron Thomas <cameron@puppetlabs.com>

commit 11e026f53966d4525afef388a2409796bc0d807f
Merge: 023d959 38801dd
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Thu Jul 28 15:36:02 2011 -0700

    Merge branch 'tickets/2.7.x/1886' into 2.7.x
    
    * tickets/2.7.x/1886:
      (Maint.) Disable cleaning of storeconfigs.

commit 38801ddbd3036b45d35e48e444d1e7d566b5db47
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Thu Jul 28 15:34:47 2011 -0700

    (Maint.) Disable cleaning of storeconfigs.
    
    This feature (and the corresponding tests) were causing intermittent
    failures which we were unable to trace.  We will reintroduce this
    behavior when we can do so without test fragility.
    
    Reviewed-By: Matt Robinson

commit 023d9597b9895f57fda05dc79adad41684179eb2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 28 15:08:00 2011 -0700

    (#8690) Accept 'global' options in Puppet Faces
    
    When we introduced verification of options, we forgot to handle the case that
    global options from the Puppet settings system could be passed to the face.
    This, in turn, means that the system would fail if you used any of those.
    
    This remediates that, and now these work as expected.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit ca3396e827d4abd0350440223d0925d685a3caa5
Merge: 0668c5e d9ce88d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jul 28 15:02:13 2011 -0700

    Merge branch 'ticket/master/8663-windows-spec-tests'
    
    * ticket/master/8663-windows-spec-tests:
      (#8663) Disable spec tests for unsupported functionality on Windows

commit d9ce88d10707268fe41c8f3ad1166137fe8e202f
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jul 27 17:04:45 2011 -0700

    (#8663) Disable spec tests for unsupported functionality on Windows
    
    The mount, shell, and ssh_authorized_key types are not supported on
    Windows, so these spec tests have been disabled when running on
    Windows.
    
    One of the compiler spec tests fails on Windows because
    Puppet::Util.execute attempts to execute a program named "git rev-parse
    HEAD". This has different semantics than Unix, where the command is
    splatted, Kernel.exec(*command). Since this truly is a Windows bug, I
    removed the fails_on_windows tag and updated ticket #8410.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit bad0442f78d42fbdce3555faefa80886618f0001
Merge: ecca900 bff817c
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Thu Jul 28 13:14:08 2011 -0700

    Merge branch 'tickets/2.7.x/1886' into 2.7.x
    
    * tickets/2.7.x/1886:
      (Maint.) Fix spec failures related to leaking state.

commit bff817c5bea1a1b298a81d5aa4f28c2789125286
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Thu Jul 28 13:12:58 2011 -0700

    (Maint.) Fix spec failures related to leaking state.
    
    The `node clean` code has introduced a systematic change in
    state which is not uniformly protected against by the tests.
    
    As these order dependent failures arise, we should refactor
    the tests to be more robust.
    
    Reviewed-By: Matt Robinson

commit ecca900facc6316c8479f937119e34342618257a
Merge: 5682125 ccd622a
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Thu Jul 28 12:43:48 2011 -0700

    Merge branch 'feature/2.7.x/1886' into 2.7.x
    
    * feature/2.7.x/1886:
      (#1886) Clean up `node clean` for merge.
      Fix #1886 - Add node cleanup capability

commit ccd622a96dfe5871689f5b2f059c11aef3caf3b4
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed Jul 27 14:10:02 2011 -0700

    (#1886) Clean up `node clean` for merge.
    
    This includes various style changes, and assorted fixes to testing.
    
    Paired-With: Matt Robinson

commit 0668c5e4ef080c5dd7e37f35b72b484ca6574fdb
Merge: e6fb148 e0d3f11
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jul 27 15:59:10 2011 -0700

    Merge branch 'ticket/master/8663-windows-spec-tests'
    
    * ticket/master/8663-windows-spec-tests:
      (#8663) Drive letters are not valid absolute paths on Windows
      (#8663) Update the run_mode spec test on Windows to match the code
      (#8663) The ssh_authorized_key type is not supported on Windows
      (#8663) Reenable spec tests on Windows that now pass

commit e0d3f11fc7b580aedec5350dc41a01417d6acd8d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jul 27 15:46:43 2011 -0700

    (#8663) Drive letters are not valid absolute paths on Windows
    
    One of the file spec tests was attempting to use X: as a fully
    qualified file path, and the file type was correctly rejecting it,
    since it is a relative path. This commit changes the spec test to
    expect the file type to raise an exception.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit f883648d2f6e4c357263c0cf3aa39afd63d852d7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jul 27 15:36:20 2011 -0700

    (#8663) Update the run_mode spec test on Windows to match the code
    
    When running as root, the default conf and var directories on Windows
    are currently puppet/etc and puppet/var within the windows
    directory. Updated the spec tests to match what the code does on
    Windows.
    
    Whether or not this is the correct behavior is something that will be
    addressed in the future. See #8660.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 6bd8aaa8a8307913eb20afc4e57551e2dfd4822e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jul 27 15:30:49 2011 -0700

    (#8663) The ssh_authorized_key type is not supported on Windows
    
    We are not supporting the ssh_authorized_key type on Windows at this
    time, since Windows does not ship with an ssh server (though there are
    third-party versions available). As a result these spec tests have
    been disabled.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 9e502ed121847fe4fcca90453c0520b53103d17d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jul 27 15:28:21 2011 -0700

    (#8663) Reenable spec tests on Windows that now pass
    
    The cacher was causing spec tests to fail due to Time.now not having
    millisecond resolution on Windows. Now that usage of the cacher has
    been removed from many places, these tests now pass.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit e6fb1480eb2d6271dd05e11ab6cff70c70414c6f
Merge: 1809b40 a521b99
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Jul 27 15:12:15 2011 -0700

    Merge branch 'ticket/master/8392-disable-master-tests-on-windows'
    
    * ticket/master/8392-disable-master-tests-on-windows:
      (#8392) Disable master related tests on Windows

commit a521b99b2267e4c2588ceb6b90d36cab5af83aa6
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jul 12 15:26:32 2011 -0700

    (#8392) Disable master related tests on Windows
    
    The master, and queue applications are not used for agent
    functionality and since only agent functionality is supported on
    Windows, these tests do not need to run.
    
    Reviewed-by: Josh Cooper <josh@puppetlabs.com>

commit c315da0efeace1878a877dc4b2f4aebc1ec13f0d
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Fri Apr 29 15:56:15 2011 +0200

    Fix #1886 - Add node cleanup capability
    
    Here is a changeset that adds a new action to the puppet node face.
    
    This application removes all traces of a node on the puppetmaster
    (including certs, cached facts and nodes, reports, and storedconfig
    entries).
    
    Furthermore it is capable of unexporting exported resources of a
    host so that consumers of these resources can remove the exported
    resources and we will safely remove the node from our
    infrastructure.
    
    Usage:
    puppet node clean [--unexport] <host> [<host2> ...]
    
    To achieve this we add different destroy methods to the different
    parts of the indirector. So for example for yaml indirections we
    already offer read access for the yaml, this changeset adds
    the destroy handler which only removes the yaml file for
    a request. This can be used to remove cached entries.
    
    This work is based on the initial work of Brice Figureau
    <brice-puppet@daysofwonder.com>

commit 1809b40e5ab05ceac166d5271cf1fe392efee1e1
Merge: 5b167eb 12d0018
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 26 16:45:07 2011 -0700

    Merge branch 'ticket/master/8272'

commit 12d0018f93e5a72a728c6decffb351a693a86344
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 26 15:59:45 2011 -0700

    (#8272) Allow disabled Windows services to be started
    
    Because Windows allows a service to be both running and disabled, we now
    support that capability. If a service is explicitly requested to be running and
    disabled, we will set it to manual start if necessary, start it, and then
    disable it. If the service is requested to be running and enabled, we will now
    enable it before attempting to start it (previously, this would simply try to
    start it and fail).
    
    The exception to this rule is a service which is disabled, and for which we are
    not managing the enable property. In that case, we assume that some other
    authority has disabled the service, and respect that, failing to start. Thus,
    if the user actually wants a service to be running and disabled, they must
    explicitly declare that intent.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit f5e8dbef9e16bf05e4c05a43407e94027faa2410
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 26 15:59:33 2011 -0700

    (#8272) Refactor specs for Windows service provider
    
    These were using fake objects when that's not really necessary, so replace them
    with real ones. Additionally, many of these specs were doing the same thing
    (like creating a resource), so that has been extracted to the before block.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 44e2d494f499e2005c1b31b92b97834189d4224d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 26 15:58:31 2011 -0700

    (#8272) Use symbols instead of booleans for enabled property on Windows
    
    Because the enable property of the service type uses :true and :false as its
    valid values, rather than true and false, we need to return :true and :false
    from our enabled? method. Otherwise, the property was being synced every time
    it was enabled or disabled, regardless of whether it was actually in sync or
    not.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 5b167eba2b602f5c6c6c224790fa1eb56b239ad4
Merge: 0506874 5682125
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jul 26 16:15:38 2011 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      Deprecate RestAuthConfig#allowed? in favor of #check_authorization
      Fix #6026 - security file should support inline comments
      Fix #5010 - Allow leading whitespace in auth.conf
      Fix #5777 - rule interpolation broke auth.conf CIDR rules

commit 38c181d00e87ecc699c6a3e23dd2155f716a6602
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 26 11:38:05 2011 -0700

    (#8272) Fixup logging in Windows service provider
    
    We want to use self.debug for logging in the provider, so that log messages are
    properly associated with the resource, rather than generically coming from
    Puppet.
    
    Also fix the self.instances method to not use an unnecessary extra variable
    when collecting.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 0506874ebeac8f2fb7d6c754ed6b606eab56d216
Merge: 770e30d d88923b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 26 15:02:58 2011 -0700

    Merge branch 'master' of github.com:puppetlabs/puppet
    
    * 'master' of github.com:puppetlabs/puppet:
      maint: Suggest where to start troubleshooting SSL error message
      maint: Fix cert app to print help and exit if no subcommand

commit 770e30d620271f988321ea45c108fb167ab55ad7
Merge: b13427b 9279d09
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 26 14:57:33 2011 -0700

    Merge branch 'feature/master/8268-puppet-agent-windows'
    
    * feature/master/8268-puppet-agent-windows:
      Fix issue with forward and backslashes in Windows paths
      Disable spec tests for unsupported functionality on Windows
      Update certificate spec tests for Windows

commit 9279d0954eb20d75e18a666fd572b5492e157608
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 22 12:44:15 2011 -0700

    Fix issue with forward and backslashes in Windows paths
    
    The environment validates its modulepath and manifestdir settings, but
    it uses Dir.getwd to convert a relative path into an absolute path. The
    problem is that on Windows, Dir.getwd returns a path with backslashes.
    (Interestingly this only happens when puppet is loaded, not in irb for
    example.) And since we do not yet support backslashes in Windows paths
    or UNC paths, the directory is not included in the environment.
    
    For the time being, I am using File.expand_path to normalize the path.
    It has the side-effect of converting backslashes to forward slashes.
    This is sufficient to work around backslashes in Dir.getwd. In the near
    future, I will be refactoring how paths are split, validated, tested,
    etc, and I have a REMIND in place to fix the environment.
    
    But as a result of this change it exposed a bug in our rdoc parser
    dealing with the finding the root of a path. The parser assumed that the
    root was '/', but caused an infinite loop when passed a Windows path.
    
    I added a test for this case, which is only run on Windows, because on
    Unix File.dirname("C:/") == '.'.
    
    After all of that, I had to disable one of the rdoc spec tests, because
    it attempted to reproduce a specific bug, which caused rdoc to try to
    create a directory of the form: C:/.../files/C:/.... Of course, this
    fails because ':' is not a valid filename character on Windows.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 75d2e62cab1de7677463c274892f8920cb7e0cbf
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 22 12:34:05 2011 -0700

    Disable spec tests for unsupported functionality on Windows
    
    Ruby does not support creating symlinks on Windows (though Windows does
    support them), and since the tidy spec test is designed to reproduce a
    specific bug (as opposed to testing symlink functionality on Windows) it
    has been disabled.
    
    Ruby on Windows also does not support File.chmod, so the inspect spec
    test has been disabled. The general issue of File.chmod on Windows is
    something I know needs to be investigated.
    
    Also disabled the cron spec test as this functionality will not be
    supported on Windows (instead there will be task manager support).
    
    Re-enable the autoload spec tests as those now pass on Windows (this is
    probably due to the cacher changes recently made).
    
    The inventory ssl spec is not supported on Windows and so is disabled.
    However, while researching the failure, it was due to
    Time.now.strftime("%Z") returning "Pacific Daylight Time" on Windows,
    instead of "PDT" like it does on other platforms. As a result, the split
    method was sometimes splitting in the wrong place.
    
    As far as I can tell, the inventory code is only called from the CA (to
    keep track of serial numbers for certs that it has issued). But it's
    something to watch out for on Windows when calling strftime.
    
    Webrick, fileserver and CA functionality are not supported on Windows so
    these spec tests are disabled.
    
    Also fix path issue with catalog spec.
    
    Also several spec tests were creating tempfiles manually and calling
    system("rm -rf ..."), these have been replaced with
    PuppetSpec::Files.tmpdir.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 95837e6d3e74648617c308aedc52192bb13fde5a
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jul 22 12:29:54 2011 -0700

    Update certificate spec tests for Windows
    
    Disable CA related spec tests on Windows, since that functionality is not supported.
    
    Some cert spec tests are still marked as fails_on_windows because
    settings attempts to create and apply a catalog corresponding to
    ssl/cert related directories. This fails because on Windows
    Puppet.features.root?  always returns true (which is a separate bug),
    and as a result attempts to set the owner and group, which fails because
    the provider is not implemented yet on Windows.
    
    Also many of these tests were using Tempfile.new and trying to
    system("rm -rf ...") later. I changed these to use
    PuppetSpec::Files.tmpdir instead, which automatically cleans up
    temporary directories after the tests have run.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 5682125e1800f4c7b69b20fdd28f97a473d5d93c
Merge: 4857ac9 7e6fc0d
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jul 26 14:22:57 2011 -0700

    Merge branch 'tickets/2.7.x/5777' into 2.7.x
    
    * tickets/2.7.x/5777:
      Deprecate RestAuthConfig#allowed? in favor of #check_authorization
      Fix #6026 - security file should support inline comments
      Fix #5010 - Allow leading whitespace in auth.conf
      Fix #5777 - rule interpolation broke auth.conf CIDR rules

commit 7e6fc0d80ccd29f206c3b56960ee1eef3afc33a3
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue May 31 20:01:36 2011 +0200

    Deprecate RestAuthConfig#allowed? in favor of #check_authorization
    
     #allowed? was a poorly named method since it isn't actually a predicate
    method. Instead of returning a boolean, this methods throws an
    exception when the access is denied (in order to keep the full context
    of what ACE triggered the deny).
    
    Given that #allowed? was overriding the behavior from AuthConfig, we
    leave a version of #allowed? in place that will issue a deprecation
    warning before delegating to #check_authorization.  Once support for
    XML-RPC agents is removed from the master, we will be able to remove
    this delegation, since there should no longer be a reason for a
    distinction between AuthConfig and RestAuthConfig.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>

commit 6401dfe5602fd39cc59ec1f1b3822110e4ad864a
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon May 30 20:31:14 2011 +0200

    Fix #6026 - security file should support inline comments
    
    Auth.conf, namespaceauth.conf and fileserver.conf were not supporting
    trailing inlined comments.
    Also this commit fixes some indentation and error management.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 0c385f1fb436ab6f667693d347f711470305a019
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon May 30 20:17:11 2011 +0200

    Fix #5010 - Allow leading whitespace in auth.conf
    
    The regex used to detect ACE is too lax and would allow trailing
    spaces to sneak in, which in turn would confuse the ACE parser.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 8da0486c36e095e9a08b6f5a79abf3cabeba6603
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon May 30 20:08:19 2011 +0200

    Fix #5777 - rule interpolation broke auth.conf CIDR rules
    
    Due to the interpolation performed to support regex back-references,
    various type of rules (mainly IP CIDR notations and wildcard hosts)
    were not working anymore.
    
    This patch adds an auth.conf integration test that covers most
    of the various rules types.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d88923bb830336d7f5fc1e0809923e9a69126995
Merge: b13427b 4857ac9
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jul 26 13:11:17 2011 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      maint: Suggest where to start troubleshooting SSL error message
      maint: Fix cert app to print help and exit if no subcommand

commit 4857ac928ccf1bd56d513eae201b57b12dd14a38
Merge: dd97d7b 778127d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jul 26 13:03:59 2011 -0700

    Merge branch 'ticket/2.7.x/maint-show_help_for_cert_without_subcommand' into 2.7.x
    
    * ticket/2.7.x/maint-show_help_for_cert_without_subcommand:
      maint: Fix cert app to print help and exit if no subcommand

commit dd97d7b054df5dd1d36f32387ddf30afeefad769
Merge: 8baa489 1d4acb5
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jul 26 12:57:40 2011 -0700

    Merge branch 'ticket/2.7.x/maint-improve_ssl_error' into 2.7.x
    
    * ticket/2.7.x/maint-improve_ssl_error:
      maint: Suggest where to start troubleshooting SSL error message

commit 1d4acb5afda61b1f2c05223afff19c68248a3996
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jul 19 11:27:03 2011 -0700

    maint: Suggest where to start troubleshooting SSL error message
    
    Much like the infamous "hostname was not match" error message, there's
    another SSL error that people run into that isn't clear how to
    troubleshoot.
    
       err: Could not send report: SSL_connect returned=1 errno=0
       state=SSLv3 read server certificate B: certificate verify failed.
    
    As far as I can tell this only ever happens when the clock is off on the
    master or client.  People seem to think it will happen other times, but
    I haven't been able to reproduce it other ways - missing private key,
    revoked cert, offline CA all have their own errors.  I googled around
    and the only thing I've seen for this error in relation to puppet is the
    time sync problem.
    
    So the error message text just has some additional info to suggest you
    check your clocks.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit b13427b56d8529731d0334d420b24a592ecb43ea
Merge: 043c3e8 8baa489
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jul 25 17:02:24 2011 -0700

    Merge branch '2.7.x'
    
    Conflicts:
    	lib/puppet/type/file/source.rb
    	spec/unit/resource/catalog_spec.rb

commit 8baa4897e777f9515dc1663317f432ace3067bae
Merge: 62b6b0c 0157bf3
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jul 25 16:55:05 2011 -0700

    Merge branch '2.6.x' into 2.7.x

commit 0157bf3ee2d53173874e37da9848b2753d428a25
Merge: c736162 fb2ffd6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jul 25 16:54:07 2011 -0700

    Merge branch 'ticket/2.6.x/8596' into 2.6.x

commit fb2ffd6879f4c885fe29f70e3cf9bcde89cdc8e9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jul 25 15:34:56 2011 -0700

    (#8596) Detect resource alias conflicts when titles do not match
    
    The introduction of composite namevars caused the resource title used in
    resource aliases to be set as an array, even when the resource only had one
    namevar. This would fail to conflict with non-alias entries in the resource
    table, which used a string for the title, even though the single element array
    contained the same string.
    
    Now, we flatten the key used in the resource table, so that single element
    arrays are represented as strings, and will properly conflict with resource
    titles.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit 778127d0c3cf01701d227ec88a8e5e6550638c35
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jul 25 16:18:54 2011 -0700

    maint: Fix cert app to print help and exit if no subcommand
    
    In 2.6.x this was the behavior, but the changes to the way options
    parsing worked in 2.7.x to support faces changed the behavior of how
    help was called.
    
    This resulted in the follow unhelpful error message when you just called
    `puppet cert`:
    
        /Users/matthewrobinson/work/puppet/lib/puppet/ssl/certificate_authority/interface.rb:85:in `method='
        Invalid method  to apply
    
    Reviewed-by: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 62b6b0c438803ab216e2f03024786692c352876b
Merge: fc42000 0366b18
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Jul 25 15:16:35 2011 -0700

    Merge branch 'tickets/2.7.x/7293' into 2.7.x

commit 0366b1856489f01f1c46519dfebbda3a8676f933
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Jul 25 15:15:51 2011 -0700

    (#7293) Set default format for SSL-related faces.
    
    By default, the SSL-related faces should all render a strings,
    not with `Object#inspect`.
    
    Reviewed-By: Daniel Pittman

commit cc2c3edbb6907e8be03792a83f2b81fb839f5189
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Jul 25 15:13:28 2011 -0700

    (Maint.) Unquoting HEREDOCs.
    
    The additional quotation marks frustrate certain syntax highlighters,
    and are completely unnecessary for their use.
    
    Reviewed-By: Daniel Pittman

commit fc420008b75a482575250df4b8cd132fae061557
Merge: d19fc2b e1a4fed
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Mon Jul 25 14:35:35 2011 -0700

    Merge branch '2.7rc' into 2.7.x

commit e1a4fed4f3bda7f1b76d0f1c4173cfa884319728
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Mon Jul 25 14:34:18 2011 -0700

    Updated CHANGELOG for 2.7.2rc2

commit c7361629dff08d506209f806f0d903a0e968da06
Merge: 69acbb0 89c021c
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jul 25 13:06:02 2011 -0700

    Merge branch 'ticket/2.6.x/8418-inspect_respect_run_mode' into 2.6.x
    
    * ticket/2.6.x/8418-inspect_respect_run_mode:
      (#8418) Fix inspect app to have the correct run_mode
      maint: Adding logging to include environment when source fails
      maint: Add debug logging when the master receives a report

commit 89c021cac52a4bdecbe490772cb73cef9ef049c5
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jul 19 14:19:26 2011 -0700

    (#8418) Fix inspect app to have the correct run_mode
    
    Requiring puppet before the run_mode has been set by the application
    causes the default run_mode of 'user' to be set instead of what the
    application wants.  This leads to the incorrect default settings to be
    used, which lead to inspect not being able to properly retrieve file
    metadata from a fileserver.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 3165364e20fc008b3997effafb290fe47c13bf42
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jul 19 14:18:43 2011 -0700

    maint: Adding logging to include environment when source fails
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit f484851b7528c0fcf1254d25a022e9cb7ef9b3bd
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jul 19 14:11:37 2011 -0700

    maint: Add debug logging when the master receives a report
    
    It's always bothered me that when running puppet inspect (or any
    application that produces a report really) the master gives no
    indication that anything happened when it processes the report.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit d19fc2b34ddbb26c68edf6890588b771ec550cfd
Merge: d522b0b 10e05ad
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Jul 25 12:06:35 2011 -0700

    Merge branch 'tickets/2.7.x/7266' into 2.7.x

commit 10e05ad302d1b2d93f5da070d612817729473009
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Jul 25 12:05:31 2011 -0700

    (#7266) Move Certificate option validation into face.
    
    The validation for the ca_location option on the certificate
    application continued to hang around on the application long
    after the face realized its potential to take responsibility
    for itself.  This change moves (and adds) validation code as
    appropriate into the Face.
    
    Reviewed-By: Matt Robinson

commit d522b0b824285d025884ff271cda957df1c9951d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jul 25 11:06:58 2011 -0700

    maint: Fix Face testing bug 1.9.2 revealed.
    
    Ruby 1.8.7 is fairly lax about various bits of introspection, including that
    we can't tell much about what arguments a block takes.  Ruby 1.9.2 makes it
    possible to do this, though.
    
    Meanwhile, the Faces system uses this to make sure that scripts and actions
    take the right set of arguments, to avoid surprises: failing early and
    explicitly is better than failing at runtime.
    
    Which, in final turn, exposes that I forgot to accept the right arguments in a
    couple of my testing actions for Faces, but didn't notice because 1.8.7
    doesn't check that, and I didn't test on 1.9.2.

commit 29a25abe7a6e04d2b2f78b604aca3d819f010d38
Merge: feec7b3 ae36003
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jul 22 16:27:39 2011 -0700

    Merge branch 'refactor/2.7.x/8561-and-7290-improved-option-handling' into 2.7.x

commit ae360034c07f9b16467f5ae245ac6d037789ee13
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jul 22 16:26:10 2011 -0700

    (#7290) Update indirected Faces to avoid unknown options.
    
    Now that we enforce that options must be declared, the model we exposed in the
    Ruby API (but not the CLI facade) was that you could pass additional arguments
    to the indirection method by passing them as unknown options doesn't work.
    
    Instead, explicitly declare an option, `extra`, that accepts the final
    argument to be passed direct to the indirection.  This makes things work
    smoothly, as well as making it possible (once you can input a hash on the
    command line) to invoke extra arguments from the facade too...
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 88e9cd2138e9f23e056bd3331498a6d4723a8b0c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jul 22 15:24:16 2011 -0700

    maint: don't print inside action implementations.
    
    Rather than printing directly, we should return the data from the Action and
    allow the facade to route that to the user directly.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 82e5fa9561e2d4cb1d699a41c14f50953d8f2d97
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jul 22 15:15:38 2011 -0700

    (#8561, #7290) Implement the option contract fully.
    
    Rewrite the process of validating and updating the options to fully reflect
    the contract - we fail if there are unknown options passed, report nicely
    errors of duplicate names, pass only the canonical names to the action code,
    and generally enforce nicely.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 77441be2299bbb96ab9f048855b0fd4c16eb7b5a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jul 22 14:32:00 2011 -0700

    (#8561) Unify validation and modification of action arguments.
    
    Rather than having multiple, separate operations that modify and validate the
    arguments to an action, a single pass makes sense.  This also means less walks
    across the set of data, and a few less expensive method calls in Ruby.
    
    Additionally, we work on a duplicate of the arguments hash rather than
    directly modifying the original.  Because everything we do is at the top level
    key/value mapping, this is sufficient to isolate the original.
    
    While mostly theoretical, we now don't mutilate the hash passed in, so the
    user won't get nastily surprised by the fact that we could have done so.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 69b4e70ac2fa2b265f6c92d7de073d51ae25d3ed
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jul 22 14:13:50 2011 -0700

    (#7290) Fail on unknown options.
    
    Part of the "social contract" of Faces, Actions and Options is that the
    metadata we collect is authoritative: it covers everything that is possible.
    
    In the initial release we didn't enforce that around options.  If you passed
    an unknown option in the hash, we just silently ignored it in validation and
    made it available down in the action.
    
    Now, instead, we enforce that rule.  If you pass an unknown option we raise an
    error and complain; anything that gets to the action will be listed in the set
    of inspectable options.
    
    Cases that depended on this behaviour to pass arbitrary content in the hash
    should be rewritten to move that content down a level: take a hash value for
    one option, and use that for your free content.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 6bec2df0860b71730b99ddd9f1764aa2ce0dc960
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jul 22 14:11:35 2011 -0700

    (#8561) Use canonical names for options to actions.
    
    When we invoke an action, we parse a set of options.  These have a canonical
    name, and optionally a set of aliases.  For example, :bar might have :b as an
    alias to allow a short name to be given.
    
    Previously we would just pass this on as received; if you passed :bar you got
    :bar, and if you passed :b you got :b.  This works, but means that every
    action has to write the same code to extract the appropriate version of an
    option from whatever set of aliases might be passed.
    
    Now, instead, we centralize that and always pass options as their canonical
    name to the action code.  This makes it simpler to work with.  (This happens
    before any validation, or other user-supplied, code to simplify everything
    that handles options.)
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 043c3e87c882d38b9708b6e215425a9935f74769
Merge: eeb54a9 82476e8
Author: Cameron Thomas <cameron@puppetlabs.com>
Date:   Fri Jul 22 16:11:55 2011 -0700

    Merge branch 'feature/master/8272-windows_service_support'
    
    * feature/master/8272-windows_service_support:
      Add basic service provider for Windows
      Regexp escape substituted commands in Windows wrapper script

commit 82476e8be41b62ce1767ab6854a72b481b917380
Author: Cameron Thomas <cameron@puppetlabs.com>
Date:   Fri Jul 22 15:09:13 2011 -0700

    Add basic service provider for Windows
    
    This provider allows us to query the system state through "puppet
    resource", and manage the ensure, and enabled properties of services on
    Windows.
    
    This also adds support for a new enabled value of 'manual' on Windows
    only.  With this we support the three major start types for services on
    Windows, with the following mapping of enabled to start type:
    
      true   => Automatic
      false  => Disabled
      manual => Manual (Demand)
    
    We use the win32-service gem to provide access to the Windows APIs for
    our operations.  This does add a new gem requirement for running Puppet
    on Windows, but we were already requiring some gems from the same suite
    that win32-service is a part of.
    
    When referring to a service, the simple service name must be used,
    instead of the display name.  For example, "snmptrap", instead of
    "SNMP Trap".
    
    All system services are reported in 'puppet resource service',
    including those started prior to run level 3 (system, device drivers,
    etc.).  These services should probably not be managed, without careful
    thought and planning.
    
    This currently does not support being able to move a service from
    {enabled => false, ensure => stopped} to {enabled => true, ensure =>
    running} (or enabled => manual) in a single Puppet run, since Puppet
    currently always tries to sync ensure before any other property.
    Because of this, the puppet run will fail every time, and the service
    must first be managed as {ensure => stopped, enabled => true} (or
    enabled => manual), before it can be managed as running and automatic
    start or manual start.
    
    Reviewed by: Jacob Helwig <jacob@puppetlabs.com>

commit ca2f159caed691936bd9e87b59ccddc764066aa2
Author: Cameron Thomas <cameron@puppetlabs.com>
Date:   Fri Jul 22 14:31:59 2011 -0700

    Regexp escape substituted commands in Windows wrapper script
    
    Because Windows file paths can (and do) contain '\', they can end up
    being interpreted as back-references on the substitution side of gsub.
    Since this is not at all what is intended, we use Regexp.escape to quote
    them.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit feec7b3df713569f76b93ae8cef882e9ddc1bf35
Merge: f309e1e 532c4f3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jul 22 13:30:05 2011 -0700

    Merge branch 'feature/2.7.x/7184-better-action-loading' into 2.7.x

commit 532c4f37e4f8289cf4a9871ebc0cb5086c2ba26a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 21 16:43:16 2011 -0700

    (#7184) Load the core of obsolete versions of Faces.
    
    When we define an action on an older version of a Face, we must be sure to
    directly load the core of that version, not just define it with the external
    Action(s) that it had.
    
    Otherwise we break our contract, which is that any core Actions for a specific
    version will be available to your external Action for as long as we support
    that core version.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 2cd3bc47993fbd32a77ca9dfdd51353f2dfbcb58
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 21 16:34:20 2011 -0700

    (#7184) Find actions bound to other versions of Faces.
    
    When we first touch a Face, we load all the available Actions from disk.
    
    Given they define themselves against a specific version of a Face, they are
    automatically available tied to the correct version; this makes it trivially
    possible to locate those on demand and return them.
    
    Now, we have the ability to find and, consequently, invoke Actions on older
    versions of Faces.  We don't load enough context, though: the older face will
    only have external Actions defined, not anything core.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 1e0655e6bdbc872014abdffa5deacb334616e826
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 21 15:34:52 2011 -0700

    (#7184) Centralize "find action for face" into Puppet::Face
    
    As part of moving to load actions first, and their associated face, when
    invoked from the command line, it makes sense to push the logic for finding
    the action and face down into the Puppet::Face implementation.
    
    This means that we can change the logic there without needing to update the
    public part of the CLI implementation, and that any further facades can use
    the same, correct, logic to locate the action for the face.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 039661156116cb6d3c5c8e372ed4d81af221453b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Jul 21 15:35:35 2011 -0700

    maint: better error reporting when test fails
    
    This test ensures, among other things, that we get a log message.  If that
    fails, we were trying to call a random method on nil; making that an assertion
    means that we get a nice message rather than a failure that needs decoding.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit eeb54a9e809c35a7da3c0fb68c22bbc9f4f929a8
Merge: 61df3f7 f309e1e
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jul 22 13:21:25 2011 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      Confine password disclosure acceptance test to hosts with required libraries

commit f309e1e45c456cc1d53469863f59cbad0df37241
Merge: 5e2a3d2 69acbb0
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jul 22 13:21:12 2011 -0700

    Merge branch '2.6.x' into 2.7.x
    
    * 2.6.x:
      Confine password disclosure acceptance test to hosts with required libraries

commit 69acbb026145f7c5042cbb32ea0fbcfe88865897
Merge: a87ef54 e639868
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jul 22 13:20:13 2011 -0700

    Merge branch 'confine_shadow_acceptance_tests' into 2.6.x
    
    * confine_shadow_acceptance_tests:
      Confine password disclosure acceptance test to hosts with required libraries

commit e6398680e673e69240bacdf2f0262524bf9e964e
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jul 22 11:38:14 2011 -0700

    Confine password disclosure acceptance test to hosts with required libraries
    
    The useradd provider has the requirement that ruby-shadow[1] be
    installed to be able to manage passwords.
    
    On systems where we would use the useradd provider and this library
    has not been installed we don't bother running the test, since we will
    never be able to see the output we are testing.
    
    [1] http://ttsky.net/ruby/
    
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-by: Dominic Maraglia <dominic@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 61df3f7c39d74b82e37f48c3519293406036e1e9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 21:25:21 2011 -0700

    Don't use non-1.8.5-compatible methods 'Object#tap' and 'Dir.mktmpdir'
    
    These methods aren't available until Ruby 1.8.6 (Dir.mktmpdir) and Ruby 1.8.7
    (Object#tap).
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit c5d70ed11f8f964523ca049d6c3d504de3840c1a
Merge: 9c78759 d198fed
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 20:21:41 2011 -0700

    Merge branch 'remove-cacher'

commit d198fedf65e472b384666fc9ae3bef487852068a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:53:06 2011 -0700

    Rework Puppet::Util::Cacher to only expire using TTLs
    
    We have removed every usage of cached_attr in which the attribute needs to be
    manually expired. Thus, the only meaningful behavior provided by
    Puppet::Util::Cacher is expiration based on TTLs. This commit reworks the
    cacher to only support that behavior.
    
    Rather than accepting an options hash, of which :ttl is the only available
    option, cached_attr now requires a second argument, which is the TTL.
    
    TTLs are now used to compute expirations, which are stored and used for
    expiring values. Previously, we stored a timestamp and used it and the TTL to
    determine whether the attribute was expired. This had the potentially
    undesirable side effect that the lifetime of a cached attribute could be
    extended after its insertion by modifying the TTL setting for the cache. Now,
    the lifetime of an attribute is determined when it is set, and is thereafter
    immutable, aside from deliberately re-setting the expiration for that
    particular attribute.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 7048b4c4d8c4a8ad45caf6a02b263ac0a9fa333e
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:52:50 2011 -0700

    Remove use of Puppet::Util::Cacher in Puppet::SSL::Host
    
    This class was previously using a cached_attr for its 'localhost' attribute,
    representing the Puppet::SSL::Host entry corresponding to the cert in
    Puppet[:certname]. We now no longer expire this attribute. This has the effect
    that a change to certname during the lifetime of an agent will not be reflected
    in the certificate it uses. If this behavior is desired, it will need to be
    reimplemented another way.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit ce08cba9eb92abce7f7ab77dcf7eb9f9435d4040
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:52:27 2011 -0700

    Remove dead uses of Puppet::Util::Cacher from autoloader
    
    In the past, Puppet::Util::Autoload used a cached_attr for its 'searchpath'.
    However, it no longer does that, so its references to Puppet::Util::Cacher are
    unnecessary.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit e74090468192697a6a2447dc6fcece3dd09a46f1
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:52:00 2011 -0700

    Remove Puppet::Util::Cacher use from Puppet::Indirector::Indirection
    
    Previously, indirections were storing their termini in a cached_attr, so that
    they could be easily cleared for tests. Because this provides no value outside
    of testing, we instead simply create an attr_reader for termini, and expire
    them manually in tests.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit e2ea023f809c2bdc53b5259047c28f8061f57e54
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:47:07 2011 -0700

    Remove caching from the catalog, types, and parameters
    
    Types and parameters were registering their catalog as their expirer, so that
    the catalog could expire them between uses. However, because catalogs are never
    reused (and neither are types or parameters), there is no need to expire
    anything. Thus, we remove the entire cleanup/expire logic from catalog, type,
    and parameter.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 4b0c847f19d5db81758b5561bdc8196591209ef0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:41:04 2011 -0700

    Remove cached_attrs from Puppet::Type::File
    
    These values needn't be cached_attrs, because they can be managed manually.
    'stat' does need to be cached, so that we avoid statting the file for each
    property we want to check from disk. The 'content' attribute of 'source' also
    needs to be cached, because it's retrieved from the server, which we certainly
    don't want to do multiple times.
    
    We need a mechanism for invalidating the 'stat' after we've written the file,
    so we use a special value :needs_stat, which essentially represented
    "undefined". We use this rather than nil so that we can store a failed stat
    if it occurs.
    
    Because the content and metadata of our source file will never change, there is
    no need to be able to similarly expire the values of those attributes.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit bdcb9be3b5d7cd54548cbeb7b13bee6fe4e730f7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:40:00 2011 -0700

    Remove Puppet::Util::Cacher usage from Puppet::Util::Settings
    
    The path attribute was being unnecessarily cached. The value is a LoadedFile
    instance, which already knows how to check whether it needs to be reloaded. The
    act of reparsing was being triggered separately from the cacher mechanism.
    
    The comment indicated this value was only being cached so it could be easily
    cleared for tests, but it wasn't being cleared for tests. Thus, there is no
    reason for this attribute to be cached, so remove it.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit fac867c7bdbfbd431b089eb1bfb6eb73230e912c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:38:51 2011 -0700

    Remove Util::Cacher usage from SSL::CertificateAuthority
    
    Allowing the singleton_instance value to be expirable is unnecessary, because
    there will never be a need for a different CA instance in the lifetime of a
    master. Additionally, the master never expired its cache anyway. This was only
    using the cacher so it could be expired for tests, so it can safely be removed.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 93299e90e231bb407923e3534a0e33d841b95355
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:37:33 2011 -0700

    Remove unused require 'puppet/util/cacher' from Network::HttpPool
    
    The use of Puppet::Util::Cacher in this module was removed previously, and this
    stray, unnecessary require was left around.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 6a1b65760a0d8c6299d5c6d260dc37b5e0637706
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:37:06 2011 -0700

    Remove use of Util::Cacher from FileServing::Mount::File
    
    Allowing this value to be expirable is superfluous; it is only used on the
    master, which never expires its cache. Additionally, it was providing partial
    support for an event we don't fully support already (hostname and domain
    changing during the lifetime of a master).
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 4bad729f56c26d8154cd0f20614fa4e478de9d40
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 21 11:36:03 2011 -0700

    Remove use of Util::Cacher in FileServing::Configuration
    
    This class was using Util::Cacher for its singleton instance, when that was
    unnecessary. The FileServing::Configuration instance already manages whether or
    not to reparse its config file, based on whether it has changed. Thus, there is
    no need for it to be manually expired via the cacher.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 9c78759af57967d64eceeeb704a6673b81a76f30
Merge: ba6230b 5e2a3d2
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Jul 21 16:50:02 2011 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      (#7123) Make `find` the default action...
      (#7123) Support runtime setting of 'default' on actions.
      (#6787) Add `default_to` for options.
      (#6857) Password disclosure when changing a user's password

commit 5e2a3d200b74eef9549e3e2a5bdbe2a23ae7fac1
Merge: 691554c a87ef54
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Jul 21 16:37:18 2011 -0700

    Merge branch '2.6.x' into 2.7.x
    
    * 2.6.x:
      (#6857) Password disclosure when changing a user's password

commit a87ef54385cbf325d6b085200606562b0d4d7876
Merge: 790e947 111a4b5
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Jul 21 16:27:28 2011 -0700

    Merge remote-tracking branch 'barn/tickets/2.6.x/6857-password-disclosure-when-changing-a-users-password' into 2.6.x
    
    * barn/tickets/2.6.x/6857-password-disclosure-when-changing-a-users-password:
      (#6857) Password disclosure when changing a user's password

commit 691554ce752b631ae09bb87762b7bb9fcbe68e68
Merge: 8820a78 395c174
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 20 17:07:42 2011 -0700

    Merge branch 'feature/2.7.x/6787-introduce-option-defaulting' into 2.7.x

commit 395c1742981590c694ee6f0154ba7ad63c6bcb36
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 20 12:37:53 2011 -0700

    (#7123) Make `find` the default action...
    
    Part of the progress toward getting the `puppet status` invocation working
    nicely is that it should default to invoking the `find` operation.  This
    implements that, using the new runtime default action facility.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit fd6a653cb32cb03e339655862c526fd5dccbfcf0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 20 12:35:22 2011 -0700

    (#7123) Support runtime setting of 'default' on actions.
    
    Given the inheritance model for actions, we are sometimes going to need to set
    them to 'default' at runtime, rather than during their static declaration.
    
    Add tests to verify that this works correctly, and update the code to ensure
    that happens.  This gives up caching of the default action, but this should be
    an extremely rare operation - pretty much only CLI invocation, really.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit b75b1c19ecf6c278b065d203ac8486fa598caa8b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 20 11:58:55 2011 -0700

    (#6787) Add `default_to` for options.
    
    This implement support for options with default values, allowing faces to set
    those values when not invoked.  This can eliminate substantial duplicate code
    from actions, especially when there are face-level options in use.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit ba6230b6039d62b0713c9d5e3ff61a68f70ef723
Merge: e8a2287 8820a78
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jul 20 16:35:46 2011 -0700

    Merge branch '2.7.x'

commit 8820a78b5793ba6266b3974ac90a9405d73b8343
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jul 20 16:30:34 2011 -0700

    Replace calls to Array#count with #length
    
    Array#count is not available in Ruby 1.8.5, so we need to use #length in these
    specs for compatibility.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit bdd6a17c995175d240cd2cb098ab41e612ba8d63
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jul 20 15:57:20 2011 -0700

    Fix order-dependent test failure in certificate_status/file spec
    
    This test was failing if the SSL indirections had previously been configured as
    :ca. The was due to the fact that we are explicitly testing the
    certificate_status :file terminus, which depends on the other SSL indirections
    using corresponding termini. This spec wasn't appropriately ensuring they were
    also set to :file, breaking that precondition, and causing failures.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit da504b3a0004666e9014ffbd0bf108acf07f9dce
Merge: 72abe6c c830ab0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jul 20 14:50:30 2011 -0700

    Merge branch 'feature/2.7.x/6789-port-ca-interface-to-faces' into 2.7.x

commit c830ab01f31b3c6999953783a0ec1939bdbc25a9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jul 18 11:40:05 2011 -0700

    (#6789) Port SSL::CertificateAuthority::Interface to a Face
    
    The Puppet::SSL::CertificateAuthority::Interface class was an early prototype
    heading toward building out a system like Faces.  Now that we have done that,
    this changeset ports the early code to a new face.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit cc311ad3dcb70547d7249e7aec9f545672c3e8e2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jul 19 16:45:26 2011 -0700

    maint: SSL::Inventory.serial should report missing names.
    
    Our SSL inventory was able to find the serial number of a certificate by name,
    but was incapable of living up to the contract it offered, that it would
    actually report when a certificate was missing.
    
    Now it returns `nil`, which is the same case as "no inventory", if the
    certificate was not found, rather than accidentally returning the entire
    inventory data as raw strings.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit e8a2287cdac5dbf086b60af65e301f3e2360ee2b
Merge: c1e8359 185a666
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 19 15:57:39 2011 -0700

    Merge branch 'remove-http-pool-keep-alive'

commit 185a666018c0cf0b2c497f655f942a82cd22e49e
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 19 15:19:10 2011 -0700

    Remove Puppet::Network::HttpPool keep_alive handling
    
    Keep alive has been disabled since 2008, and seems to have caused problems when
    it was enabled before then. Since there doesn't seem to be any push to get it
    working again, just remove it to simplify this code.
    
    This also allows us to entirely remove the usage of Puppet::Util::Cacher from
    HttpPool.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit c1e83597712f4553960b42aebc3ab45ae272e724
Merge: 21c5929 62a3e22
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 19 15:29:51 2011 -0700

    Merge branch 'feature/master/8268-puppet-agent-windows'
    
    * feature/master/8268-puppet-agent-windows:
      Fix spec test failure on 1.9.2

commit 62a3e2296b872ee9f0ee3c03c9c77215dcd215c5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 19 15:15:23 2011 -0700

    Fix spec test failure on 1.9.2
    
    The previous set of windows patches accidentally changed %w{/one}
    to make_absolute("/one"). This commit changes it back to
    [make_absolute("/one")].
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 21c5929aae899e559e9a813c48424da4fcbec54b
Merge: d69bf48 0e4ae65
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 19 14:16:49 2011 -0700

    Merge branch 'feature/master/8268-puppet-agent-windows'
    
    * feature/master/8268-puppet-agent-windows:
      Maint: Fix miscellaneous tests
      Maint: Don't test for extended signals on Windows
      Maint: Tagged spec tests that are known to fail on Windows
      Fix tests with "relative" paths on Windows
      (#8268) Require windows drive letters in absolute file paths
      (#8489) Consistently use File::PATH_SEPARATOR

commit 0e4ae653c0628cb0df9ccace98bca4bc7478fb7c
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 18 23:40:17 2011 -0700

    Maint: Fix miscellaneous tests
    
    Several tests were broken due to pecularities of Windows
    and Ruby on Windows:
    
    * Ruby on windows does not differentiate between group and
      other file permissions.
    * All open file handles must be closed before the file can
      be deleted
    * Sometimes the current working directory (Dir.getwd) is
      reported as C:/foo and other times as C:\\foo, which
      confuses the spec tests.
    * Ruby's sprintf formats floating point values differently
      on Windows vs Unix. The Windows exponent has an extra
      leading zero.
    * Needed to stub execution of security command with the
      SMF service provider.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 8d56355981961fd1c4a358992930bbb80325fea7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 18 23:26:31 2011 -0700

    Maint: Don't test for extended signals on Windows
    
    The signals HUP, USR1, and USR2 are not supported on Windows. The
    Puppet::Daemon code already skipped trapping these on Windows,
    but the spec test was expecting them to be trapped. This commit
    just updates the spec test to match the existing daemon code.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 255c5b4663bd389d2c87a2d39ec350034421a6f0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 18 23:17:36 2011 -0700

    Maint: Tagged spec tests that are known to fail on Windows
    
    Many spec tests fail on Windows because there are no default
    providers implemented for Windows yet. Several others are
    failing due to Puppet::Util::Cacher not working correctly,
    so for now the tests that are known to fail are marked with
    :fails_on_windows => true. To skip these tests, you can run:
    
      rspec --tag ~fails_on_windows spec
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 462a95e3d077b1915a919399b846068816c84583
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 18 23:05:35 2011 -0700

    Fix tests with "relative" paths on Windows
    
    Absolute paths on Unix, e.g. /foo/bar, are not absolute on Windows,
    which breaks many test cases. This commit adds a method to
    PuppetSpec::Files.make_absolute that makes the path absolute in
    test cases.
    
    On Unix (Puppet.features.posix?) it is a no-op. On Windows,
    (Puppet.features.microsoft_windows?) the drive from the current
     working directory is prepended.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 45ae5b4a9ced26dfcd3e324391f9a26cb02bf93d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 18 22:44:10 2011 -0700

    (#8268) Require windows drive letters in absolute file paths
    
    When testing whether a file path is absolute, the regexp was only
    handling POSIX style file paths. This commit requires Windows
    style file paths to start with a drive letter. A future commit
    will refacter the various places we do path validation to
    support both Windows drive letters and UNC paths.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 26ee468e8b963d63933d9a27a65d55510ff87618
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 18 22:28:18 2011 -0700

    (#8489) Consistently use File::PATH_SEPARATOR
    
    Puppet uses both colon and File::PATH_SEPARATOR in various places, which
    does not work on Windows, where File::PATH_SEPARATOR is a semi-colon. This
    commit changes the code and tests to consistently use File::PATH_SEPARATOR.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 72abe6ce7192bba0b295a8a83483668d21050624
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue Jul 19 10:55:26 2011 -0700

    (#7204) Consolidate Semantic Versioning code.
    
    This introduces a class representing a semantic version, and
    implementing a few of the most common uses of them: validation,
    comparison, and finding the greatest available version matching
    a range.  This refactoring also allows us to easily expand our
    matching of version ranges in the future, which is a big plus.
    
    Reviewed-By: Daniel Pittman

commit 756314da4e48b8a138a1e38f1ae276d6721ef410
Merge: 833edd0 b82f29c
Author: Dan Bode <dan@puppetlabs.com>
Date:   Fri Jul 15 14:51:25 2011 -0700

    Merge branch 'issue/2.7.x/7699' into 2.7.x

commit 833edd0abaa13cd71da0d200b593f3f63bc4b7b9
Merge: afc3616 d02000b
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Jul 15 11:55:12 2011 -0700

    Merge branch 'ticket/2.7.x/8401-docs-detailed-exitcodes' into 2.7.x

commit d69bf48ecae71ff01679bb38cdeebc8f4a8b8b15
Merge: 4ad404e bdc0f87
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Jul 15 11:54:33 2011 -0700

    Merge branch 'refactor/master/8232-array_indexers_on_scope'

commit d02000bf0060045eb27649ce2b433dcac34a7827
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Jul 15 10:52:37 2011 -0700

    (#8401) Document that --detailed-exitcodes is a bitmask
    
    The agent/apply/device man pages mentioned the 2 and 4 exit codes, but didn't
    mention that they can combine to make 6 if there are both changes and failures.
    This commit adds the missing information to all three man pages.
    
    Reviewed-by: Matt Robinson <matt@puppetlabs.com>

commit bdc0f8716ae8ccb2b2657dfab591afe9589d8902
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Jul 5 16:32:03 2011 -0700

    Scope[] now returns nil for undefined variables
    
    Given that we have the 'include?' method, this feature
    is unnecessary, and it makes sense to convert to more
    ruby-like behavior.
    
    Any code that previously checked whether lookupvar
    (or the new []) returned :undefined should now check
    whether 'scope.include?(var)'.  Thus, you can have
    the same behavior, but it takes a bit different code
    to get it.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 9662045bfe551821823b38fe6511e621998aef0b
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Jul 5 12:34:49 2011 -0700

    Fixing a failing test because of mismatched error string
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 540377b526424e7ef9b2c06460d43af2b780a4af
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Jul 5 12:28:44 2011 -0700

    Removing an unnecessary stub in the Scope tests
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit baf32de1dcda02f7da8b2926abee7f46d0d47fe1
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Jul 5 12:25:54 2011 -0700

    Making the Functions module more resilient
    
    We were previously storing the module name with
    the environment instances as the key, which meant
    if the environment instances were removed, we could
    never get those modules again.  Given that the
    functions weren't reloaded, this meant the functions
    were gone if we ever reloaded the environment.
    
    This makes the Functions environment module resilient across
    environment reloads, and it also makes the method work correctly
    when handed either an environment or a string.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 2431bb3fc8fba238cb2cf1bb71f316c62ba384b7
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Jul 5 12:03:40 2011 -0700

    Cleaning up indentation in versoncmp function
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 79c8023d45d8c86f0f21cf6c4c27e0e5389c7528
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Jul 5 11:58:34 2011 -0700

    Fixing default parameter value assignment
    
    The method for adding class resources to the
    catalog was only working in cases where the default
    values weren't AST objects.  This commit fixes
    this, along with the tests that were failing
    and drew out the problem.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit ef7e25b468c70537d172129b70f096364ac3e6d5
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Jul 5 11:58:26 2011 -0700

    Cleanup up a small amount of whitespace
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 784d54c20bbc6272d408de1aee831a883298c5cd
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Jul 5 11:57:53 2011 -0700

    Improving an error message
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 3b2a24602d11d4ca2f7e761fb831f126ecf2de62
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Jun 16 18:41:19 2011 -0700

    Adding Scope#each method
    
    The capability was already there via to_hash, and
    Enumerable was already included, but this method was
    missing.  Given the kind of hacking RI is doing,
    this seemed appropriate.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit b3c155430965280ab59b1dd70c020c6da3396fc9
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Jun 16 18:37:04 2011 -0700

    Adding Scope#include? method
    
    This is primarily for Hiera/DataLibrary support,
    but is a decent idea regardless.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 9d608ea176224f38c6af349883065d9363dd1bb1
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Jun 8 22:36:25 2011 -0700

    Resource type defaults cleanup
    
    This is again done to make support for hiera easier.
    The way we were handling lookup of resource defaults
    was over-complicated.
    
    This does a decent bit of cleanup overall, but primarily
    focused on resource type defaults and how they get
    set during compilation.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 06e86e40bbb173fa24a7d1c2ecf4e54e1748de67
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Jun 8 18:55:10 2011 -0700

    Adding default environment to Scope
    
    We were previously not defaulting to an environment,
    which is silly given that there's always a default.  It
    just made setup code harder.  We now default to the default
    environment.
    
    This makes further testing involving scopes much easier.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 0d2e0672eb516a1b1f2ced6b8c74bd2064dd205e
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Jun 8 07:03:54 2011 -0700

    Adding []/[]= support to Scope
    
    The interface to scope is much clearer this way anyway,
    but this is needed to integrate Puppet with Hiera[1].
    It just provides hash-like behavior to Scope, which Hiera
    and others can now easily rely on.
    
    I also went through all of the code that used Scope#lookupvar
    and Scope#setvar and changed it if possible, and at the same
    time cleaned up a lot of tests that were unnecessarily stubbing
    (and thus making it difficult to tell if I had actually broken
    anything).
    
    1 - https://github.com/ripienaar/hiera
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 4ad404ee7e7244d94ff4d87effc1a041d65b3f73
Merge: b152621 3612201
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Jul 15 11:21:24 2011 -0700

    Merge branch 'tickets/master/7080-serializable_indirector_requests'

commit 361220166525762634dd1886f84c9a928b28766b
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Jul 15 11:05:50 2011 -0700

    (#7080) Registering PSON document types
    
    We were originally using the actual constant for both Indirector
    Requests and Nodes, and this registers their document types
    as symbolic names.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 8c4cc7cae65b43fc4ab2f56ec27ee05a9bfc0494
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Jul 7 00:05:09 2011 -0700

    Switching to use of json matchers
    
    This is only in the Node and Indirection::Request code.
    
    It makes the tests much simpler.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 7e5ca648112a2703ba827f96f36fe2a5f7d1c751
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Jul 7 00:03:51 2011 -0700

    Making Fact json handling more resilient
    
    We were failing if any values were nil, and values
    were often nil, at least in testing.
    
    We now only include non-nil values, and we handle nil
    values just fine.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit f4acb025f3a125d4c3c359fb6896ac20b36e06ab
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Apr 12 21:41:06 2011 -0700

    Adding json support to Puppet::Node
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 1cbe2ad70eddbf00ef2d3127a9ffcc9f220ee277
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Apr 12 21:08:57 2011 -0700

    (7080) Adding json support to Indirector Request
    
    We'll be using this to do RPC over mcollective.
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 564a6031a39449d84a983162d65d7b7063513d4b
Merge: 2263be6 8ec0804
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Jul 14 16:00:21 2011 -0700

    Merge branch 'ticket/master/8301-redhat-spec-cleanup' into 2.7rc
    
    * ticket/master/8301-redhat-spec-cleanup:
      (#8301) Red Hat spec file for 2.7.2rc1 won't work

commit 8ec0804b0ff2ea4ec616b95fab8f410a6edc6d99
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Fri Jul 8 06:39:20 2011 +0000

    (#8301) Red Hat spec file for 2.7.2rc1 won't work
    
    Updated Red Hat spec file included in ext.
    Now reduces the number of rpmlint complaints.
    Fixed license tag to be compliant with Fedora guidelines.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit 2263be6f190e025d424358862b8f22b54a9a1529
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Jul 14 15:07:12 2011 -0700

    (#5108) Update service type docs for new hasstatus default
    
    Commit #7d35a479 changed the default value of the service type's hasstatus
    attribute. This was never documented. This commit documents the changed
    behavior, which will end up in the type references (and puppet describe) for
    version 2.7.2 and greater. (I intend to manually change the cached references
    for versions 2.7.[01].)

commit afc3616dc31f4a432410be4081a657726a257986
Merge: acf5d3a 790e947
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jul 14 15:27:54 2011 -0700

    Merge branch '2.6.x' into 2.7.x
    
    * 2.6.x:
      (maint) Cleanup and strengthen acceptance tests
      (#7144) Update Settings#writesub to convert mode to Fixnum
      (maint) Fix platform dection for RHEL
    
    Manually Resolved Conflicts:
    	acceptance/tests/ticket_5477_master_not_dectect_sitepp.rb
    	spec/unit/util/settings_spec.rb

commit 790e947e5581fc51e7002c81c3848fb7048bb6ac
Merge: e806e58 a109c90
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Thu Jul 14 15:08:06 2011 -0700

    Merge branch 'maint/2.6.x/replace_regex_with_asserts' into 2.6.x

commit a109c908f6d46d0b3a8bcd203b661d150eabb1ba
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Thu Jul 14 15:01:13 2011 -0700

    (maint) Cleanup and strengthen acceptance tests
    
    Converted plain regex checks to use Test::Unit::Accertions.
    Adding more verbose output in the case of failure to speeed
    debugging.

commit acf5d3ae8c45099534d0b4d43276c1ae3d586c8a
Merge: 8730b29 c4848d2
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jul 14 14:17:23 2011 -0700

    Merge branch 'ticket/2.7.x/maint-fix_doc_link' into 2.7.x
    
    * ticket/2.7.x/maint-fix_doc_link:
      maint: Fix documentation link for fileserver configuration

commit c4848d25f51372b9c8fc0e5259b7d58fd23ebb44
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jul 14 14:13:31 2011 -0700

    maint: Fix documentation link for fileserver configuration
    
    The link to the filesever configuration page linked to the wiki, which
    links back to the docs site.  Short circuiting that do just link to
    where you want to go.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit e806e58b19a9c3433c229fff7575ebef86016a81
Merge: b8e67ba b268fb3
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jul 14 13:11:10 2011 -0700

    Merge branch 'ticket/2.6.x/7144-private-keys' into 2.6.x
    
    * ticket/2.6.x/7144-private-keys:
      (#7144) Update Settings#writesub to convert mode to Fixnum

commit b268fb3d4cca79bdce0adc7da8b4d47f20769521
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Jul 6 15:04:27 2011 -0700

    (#7144) Update Settings#writesub to convert mode to Fixnum
    
    Settings#writesub was not checking the type of the mode value passed in
    from the defaults, causing it to pass a string for mode to File.open,
    leading to failures. This commit resolves that issue.
    
    Paired-with: Matt Robinson <matt@puppetlabs.com>

commit b82f29c61aa84a12fc208487e4b049cb24702261
Author: Dan Bode <dan@puppetlabs.com>
Date:   Wed Jul 13 15:38:32 2011 -0700

    (#7699) Help command should only list options once
    
    The problem was caused by the fact that the
    options method returns a list of options that
    treated the aliases as seperate options.
    
    The fix is to only maintain a list of options
    and not add all aliases to the options list.

commit b1526216d1e47726bae78a884a0db2666101e34a
Merge: a0b658f b84bdbf
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Jul 13 15:14:40 2011 -0700

    Merge branch 'ticket/master/8356-color-setting-on-windows'
    
    * ticket/master/8356-color-setting-on-windows:
      (#8356) Specify setting type for color

commit b8e67ba44f7605260bc3141250d746ae748df2a2
Merge: 8bad457 4a2f22c
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Tue Jul 12 17:40:22 2011 -0700

    Merge branch 'maint/2.6.x/fix_plaform_detection' into 2.6.x

commit 4a2f22c00d1348aaa136f7269d2b5c65bcb54dc5
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Tue Jul 12 17:34:22 2011 -0700

    (maint) Fix platform dection for RHEL
    
    Detecting supported platform used incorrect string for RHEL.
    Changed string from 'redhat' to 'rhel'

commit 8730b290c4f45f3f76d57d2648bfb642528d0762
Merge: 1feccc3 45b3908
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jul 12 16:17:43 2011 -0700

    Merge branch 'ticket/2.7.x/4142-metadata_json' into 2.7.x
    
    * ticket/2.7.x/4142-metadata_json:
      (#4142) Fix module check not to fail when empty metadata.json

commit 45b3908e03734388b6c699ffbc4223f43b44a1d5
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jul 12 15:47:21 2011 -0700

    (#4142) Fix module check not to fail when empty metadata.json
    
    Even though the puppet module tool was fixed to generate the required
    metadata attributes when it packages modules, it still creates an empty
    metadata.json file that gets checked into everybody's module repos.
    This causes the module to be unusable straight from a git clone since
    puppet was requiring all the required metadata attributes just with the
    presence of that file, and resulting in the error:
    
        No source module metadata provided for mcollective at
    
    This change makes it so that if you have an empty metadata.json (like
    the moduletool generates), puppet doesn't consider it to have metadata.
    If you have ANY metadata attributes in that file, it will still check to
    make sure all the required attributes are present.
    
    The work around up to this point has just been to delete the
    metadata.json file in git cloned modules.
    
    This also fixed the tests around this to actually run, since previously
    the tests depended on the a json feature, which we didn't have.  We do,
    however, have a pson feature.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit a0b658f24fb664c61c271771609d3ce5652cf0fd
Merge: 9774c36 06e0208
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 12 15:52:50 2011 -0700

    Merge branch 'feature/master/8268-puppet-agent-windows'
    
    * feature/master/8268-puppet-agent-windows:
      (#8268) Fix resource harness spec tests

commit 06e0208ec34285e0749c366c8a12817044d7d513
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Jul 12 15:42:44 2011 -0700

    (#8268) Fix resource harness spec tests
    
    The windows file type requires that the path start with either a drive
    letter or UNC style path. Also Ruby's File implementation on windows
    only supports 0644 and 0444 permission bits (it doesn't differentiate
    between group and other, and it doesn't know about the execute bit).
    This commit maps the path and permissions used in the test to sensible
    values when running on windows.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>

commit b84bdbf31bbb0c5d5501bf6f32a9c0d0dc6acc94
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jul 12 14:14:13 2011 -0700

    (#8356) Specify setting type for color
    
    Because we default the color setting to "false" on Microsoft Windows,
    the heuristics used to detect which type of setting we're using were
    getting confused, and mis-detected color as being a BooleanSetting
    rather than just a Setting.
    
    By specifying that color is a "Setting", we can skip the
    auto-detection, and avoid this problem entirely.
    
    Reviewed-by: Josh Cooper <josh@puppetlabs.com>

commit 9774c363c9ce11202f9170bf38028c812527ea76
Merge: 768a063 d7d384e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 11 17:10:48 2011 -0700

    Merge branch 'ticket/master/8356-default-color-should-be-false-on-windows'
    
    * ticket/master/8356-default-color-should-be-false-on-windows:
      (#8356) Color defaults to false on Windows

commit d7d384ec0b7f28a8f0be20defcc2eebd0550aff0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Mon Jul 11 16:40:00 2011 -0700

    (#8356) Color defaults to false on Windows
    
    Windows consoles do not support ansi escape sequences for colorizing
    output. This commit changes the default setting of 'color' to false when
    the "microsoft_windows" feature is present.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>

commit 1feccc3f2db29d112308a55032e7f93ca44b45aa
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jul 10 13:51:31 2011 -0700

    Revert "Merge branch 'ticket/2.7.x/7699_fix_help_listing_options_twice' into 2.7.x"
    
    This reverts commit b7ee0258ab40478329c20177eda9b250f27ede18, reversing
    changes made to 8fe2e555ac3d57f5b6503ffe1a5466db8d6e190a.

commit b7ee0258ab40478329c20177eda9b250f27ede18
Merge: 8fe2e55 ae3ef42
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jul 10 13:04:20 2011 -0700

    Merge branch 'ticket/2.7.x/7699_fix_help_listing_options_twice' into 2.7.x
    
    * ticket/2.7.x/7699_fix_help_listing_options_twice:
      (#7699) - Help should only show options once

commit ae3ef423c03b7ef27f975dadfb67bf77ca481503
Author: Dan Bode <dan@puppetlabs.com>
Date:   Wed Jul 6 21:59:05 2011 -0700

    (#7699) - Help should only show options once
    
    puppet help was reprinting every option once
    for every alias that is had.
    
    This fix involves only storing the option.name
    in the @options instance var for both face and
    actions options. The @options_hash still
    maintains the list of options and aliases as its
    keys.
    
    Reviewed-by: Daniel Pittman (puppet-dev list)

commit 8fe2e555ac3d57f5b6503ffe1a5466db8d6e190a
Merge: d58eacd 5826f73
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sun Jul 10 12:57:23 2011 -0700

    Merge branch 'ticket/2.7.x/8032_create_resource_containment' into 2.7.x
    
    * ticket/2.7.x/8032_create_resource_containment:
      (#8032) Add containment to create_resources

commit 5826f7399325c784a5e8e33c7fabc46e202334a8
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jun 21 18:54:35 2011 -0700

    (#8032) Add containment to create_resources
    
    Without this change native resource types declared using the
    create_resources() function are not contained within the class scope of
    the function call.  As a result, resources were "floating off" in the
    graph, disconnected from the rest of the relationship edges.
    
    With this change, the scope is preserved and native resources are
    contained by the class the function call is executed from.
    
    Reviewed-by: Dan Bode <dan@puppetlabs.com>

commit 768a063099c8c855488728da77e8dd165816fa83
Merge: 474b6b5 a126aee
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Sat Jul 9 15:17:59 2011 -0700

    Merge pull request #15 from jeffmccune/ticket/master/8032_create_resources_containment
    
    (#8032) Add containment to create_resources

commit 474b6b530aa5a80414740c1733d93e6187199257
Merge: 3cc0981 3a70503
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jul 8 13:39:02 2011 -0700

    Merge branch 'disable-master-on-windows'
    
    * disable-master-on-windows:
      Disable the master on Windows instead of blowing up with failed resources

commit 3a70503b60f9fd51177df4e9267c5ac28b06fb2d
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jul 8 11:25:03 2011 -0700

    Disable the master on Windows instead of blowing up with failed resources
    
    Running the Puppet master on Windows is not supported, so instead of
    failing with what can be cryptic error messages about failed resources
    we fail with an explicit error message about the master on Windows not
    being supported.  This way a user isn't mistakenly given the
    impression that running a master on Windows will work, and they just
    have something mis-configured.
    
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 3cc09811cae1b263c0f94c78619b9e195c3d6bf9
Merge: 7262743 faf8a5c
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jul 8 10:09:47 2011 -0700

    Merge branch 'ticket/master/7581-windows-feature-detection-error-message'
    
    * ticket/master/7581-windows-feature-detection-error-message:
      (#7581) Provide more detailed error message when missing gems on Windows

commit faf8a5c05f50d98835a1db05b96146618f485a04
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Jun 27 13:33:31 2011 -0700

    (#7581) Provide more detailed error message when missing gems on Windows
    
    Running Puppet on Windows requires the sys-admin, win32-process &
    win32-dir gems.  If any of these gems were missing, Puppet would fail
    with the message "Cannot determine basic system flavour".
    
    When trying to determine if we are on Windows, we now warn with the
    message "Cannot run on Microsoft Windows without the sys-admin,
    win32-process & win32-dir gems: #{err}", where err is the normal ruby
    load error message stating which gem could not be loaded.
    
    We also only warn if the POSIX feature is not present.
    
    Signed-off-by: James Turnbull <james@puppetlabs.com>
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-by: Cameron Thomas <cameron@puppetlabs.com>

commit 726274322ceecf7adf6affe378b15af39abdf8f4
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Jul 6 14:14:37 2011 -0700

    Updated CHANGELOG and package building files for 2.7.2rc1
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit 91acd8be41f3de25bca6b958ccc7698fb6ec9403
Merge: 902c414 6651b28
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Jul 6 14:05:32 2011 -0700

    Merge branch 'master' into 2.7rc

commit 5dfc436a23cc2d7e7459bb1ff8d0323a9a35d46b
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Fri Jul 1 13:22:54 2011 +0200

    (#8193) Support new keytypes for sshkey
    
    Recent versions of openssh (at least openssh 5.8) support the following
    keytypes in in the authorized_keys file: ecdsa-sha2-nistp256,
    ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-dss or ssh-rsa.
    
    Add support for ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 and
    ecdsa-sha2-nistp521.

commit 36e66429430ae97fa8c2a9b9c584b80ff3e893e0
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Fri Jul 1 12:58:54 2011 +0200

    (#8193) Support new keytypes for ssh_authorized_key
    
    Recent versions of openssh (at least openssh 5.8) support the following
    keytypes in in the authorized_keys file: ecdsa-sha2-nistp256,
    ecdsa-sha2-nistp384, ecdsa-sha2-nistp521, ssh-dss or ssh-rsa.
    
    Add support for ecdsa-sha2-nistp256, ecdsa-sha2-nistp384 and
    ecdsa-sha2-nistp521.

commit d58eacd6b4abc804bc5326184ed59c309fd04149
Merge: 902c414 98cd89b
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Jun 29 20:06:22 2011 -0700

    Merge branch 'ticket/2.7.x/8147' into 2.7.x

commit 98cd89bdd44a68439ee4d030acc91fd0dda42707
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Jun 29 20:01:20 2011 -0700

    (#8147) Update test for default reporturl
    
    Edit test to accomodate the default URL change made in commit
    f6882d6d5779883e931a6f558c06f631098011c5.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit f6882d6d5779883e931a6f558c06f631098011c5
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Jun 29 16:50:46 2011 -0700

    (#8147) Change default reporturl to match newer Dashboard versions
    
    Puppet's default reporturl setting was http://localhost:3000/reports, which has
    been deprecated in Puppet Dashboard in favor of
    http://localhost:3000/reports/upload. As Dashboard is the first-class
    destination for the http report processor, this commit changes Puppet's default
    to match what current versions of Dashboard expect.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 6651b28d64d59eff6af0bb9722e151e4da88979e
Merge: 8772bb7 902c414
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jun 28 19:33:11 2011 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      Update configurer_spec.rb to work with Ruby 1.8.5

commit 902c4147a2100c1f71d8493c526ae5275bab4cdc
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jun 28 19:19:10 2011 -0700

    Update configurer_spec.rb to work with Ruby 1.8.5
    
    Ruby 1.8.5 doesn't have start_with? on String, so instead of checking
    the log message using start_with? we check using a regex.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 8772bb7659a8586402802ce80d43fa249a4d6171
Merge: cf93404 8432684
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jun 28 18:05:49 2011 -0700

    Merge branch '2.7.x'
    
    * 2.7.x: (23 commits)
      Clean up indentation, whitespace, and commented out code
      Remove order dependency from functions integration spec
      (#7956) Porting cron tests
      (#7956) Port resource acceptance tests
      (#8048) Gem install puppet no longer fails if rdoc enabled.
      Updating for 2.7.1 release.
      (#8048) Gem install puppet no longer fails if rdoc enabled.
      Readying for release of 2.6.9
      Updating CHANGELOG for 2.7.0
      (#6854) Update Red Hat spec file
      Bumping release in lib/puppet.rb and updating CHANGELOG.
      Bumping RPM spec file to 2.6.9rc1.
      (#7224) Reword 'hostname was not match' error message
      (#7224) Add a helper to Puppet::SSL::Certificate to retrieve alternate names
      (#7506) Organize READMEs; specify supported Ruby versions in README.md
      (#7506) Specify supported Ruby versions in README.md
      (#5641) Help text: document that puppet doc takes modulepath, manifestdir, and environment options
      (#6418) Make test 64118 more portable
      (#7127) Stop puppet if a prerun command fails
      Do not needlessly create multiple reports when creating a transaction
      ...

commit 8432684e25cc82beb1f5d977dd509fd7bab3901b
Merge: 1feaf7c 8bad457
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jun 28 17:40:53 2011 -0700

    Merge branch '2.6.x' into 2.7.x
    
    * 2.6.x:
      (#7956) Porting cron tests
      (#7956) Port resource acceptance tests
      Readying for release of 2.6.9
      (#6854) Update Red Hat spec file
      Bumping release in lib/puppet.rb and updating CHANGELOG.
      Bumping RPM spec file to 2.6.9rc1.
      (#7506) Organize READMEs; specify supported Ruby versions in README.md
      (#6418) Make test 64118 more portable
      (#7127) Stop puppet if a prerun command fails
      Do not needlessly create multiple reports when creating a transaction
      (#4416) Ensure types are providified after reloading
      (#4416) Always remove old provider before recreating it
      Cleanup indentation, comment, and unused code
    
    Conflicts:
    	CHANGELOG
    	README.md
    	conf/redhat/puppet.spec
    	lib/puppet.rb
    	lib/puppet/transaction.rb
    	spec/unit/configurer_spec.rb
    	spec/unit/transaction_spec.rb

commit 1feaf7cf163c060eb213ce5f7a37faa0b7a4716f
Merge: 534ccfe 7ad1b04
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jun 28 15:29:48 2011 -0700

    Merge branch 'template-not-defined-test-failure-2.7.x' into 2.7.x
    
    * template-not-defined-test-failure-2.7.x:
      Clean up indentation, whitespace, and commented out code
      Remove order dependency from functions integration spec

commit 7ad1b04244e0b6252d7fea7ca76e8bb708caa66a
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jun 17 11:26:58 2011 -0700

    Clean up indentation, whitespace, and commented out code
    
    The mis-indented code, extra newlines, and commented out code were
    noticed while investigating the order dependent test failure fixed in
    4365c8ba.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 014d952883246f8919d4b1935d84b301c63a34d0
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jun 17 11:23:21 2011 -0700

    Remove order dependency from functions integration spec
    
    The test in spec/integration/parser/functions_spec.rb would fail when
    the spec tests were run in the order (among other orderings):
    
      spec/unit/parser/functions/tag_spec.rb
      spec/unit/parser/templatewrapper_spec.rb
      spec/integration/parser/functions_spec.rb
    
    There are tests that would cause the "template" function to be loaded
    into the root environment.
    Puppet::Parser::Functions.function("template") would then detect its
    presence and P::P::F.rmfunction("template") would fail since #function(...)
    looks in more than just the current environment to see if a function
    is defined, while #rmfunction(...) only looks in the current
    environment to see if a function can be removed.
    
    In the test ordering specified earlier, tag_spec.rb would load the
    "template" function, and templatewrapper_spec.rb would create a
    current environment that would mask the root environment for #rmfunction(...),
    but not for #function(...)
    
    Since #rmfunction(...) only looks in the current environment, we
    should be using #functions.include?("template") since that matches the
    check that #rmfunction(...) itself uses.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 8bad457fb68f8550db4c1c4802cb024c4e719d33
Merge: f389a9a bbde5b5
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Jun 28 15:14:46 2011 -0700

    Merge branch '2.6rc' into 2.6.x
    
    * 2.6rc:
      Readying for release of 2.6.9

commit f389a9a05ded789353615d448c37cc620b659135
Merge: 567589c 243aaa9
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Mon Jun 27 16:28:22 2011 -0700

    Merge branch 'ticket/2.6.x/7956' into 2.6.x

commit 243aaa9929aec91b2ede05ccf30553d328afd55c
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Mon Jun 27 16:21:39 2011 -0700

    (#7956) Porting cron tests
    
    Ported cron tests were still weak. Coverted tests to use
    Ruby asserts for better debugging of subsequent failures.
    
    Add stronger regex's to look for expected output when applying puppet
    resource manifests.

commit 567589c26ea029ffca2a9ab000936c7eb4349e22
Merge: c974653 3e3fc69
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Mon Jun 27 14:03:14 2011 -0700

    Merge branch 'maint/2.6.x/add_ported_resources_tests_from_enterpise_dist' into 2.6.x

commit 3e3fc693c2a96f6cf56e670f6d5ae5cd70f6a523
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Mon Jun 27 13:58:44 2011 -0700

    (#7956) Port resource acceptance tests
    
    Many of the Puppet resource acceptance tests were RHEL/Centos
    specifc.  These tests were ported under the enterptise-dist
    repo; move the tests into 2.6.x for merging.

commit 6231a19f1c87307da69bffb49d1f90feec9caa94
Merge: 0d8373c 15cd26d
Author: R.I.Pienaar <rip@devco.net>
Date:   Mon Jun 27 00:58:18 2011 -0700

    Merge pull request #3 from hunner/hash_support
    
    Hash support

commit 15cd26de9cd537c668810bdbb0d920a8547c23fc
Author: Hunter Haugen <h.haugen@gmail.com>
Date:   Sun Jun 26 22:53:24 2011 -0500

    Adding hiera_hash for CHANGES.txt

commit bd1d1bebf6e99295696be86a450a2c483314561f
Author: Hunter Haugen <h.haugen@gmail.com>
Date:   Sun Jun 26 15:18:08 2011 -0700

    Adding hiera_hash() Puppet function

commit b44fb87969e604547a4ba2fc65275f3b9c746ec7
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Tue Jun 21 12:58:52 2011 +0100

    (#8011) Support temp repo URLs in pkgutil provider
    
    One or more URLs to pkgutil repositories can be supplied in the "source"
    attribute and are given to pkgutil via the -t option as temporary repos.

commit 534ccfe8d8cac382f91eea1047bca2b183e937ca
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Jun 22 16:51:01 2011 -0700

    (#8048) Gem install puppet no longer fails if rdoc enabled.
    
    Pre-released versions of faces may have used the "desc" option, which
    was later changed to "description", and an alias provided for "desc". The
    previous fix for 8048 removed this backwards compatibility (since it was
    never released to customers). This commit fixes the test case that
    assumed the "desc" option was still available.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>

commit cb23e5a7207ee2aa13cb4fb7ba70e6d6207fbc40
Merge: 6ae3538 a23e391
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Jun 22 15:32:09 2011 -0700

    Merging up 2.7.1

commit a23e39165a9509a9fa40370929a50fcd1709f4a2
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Jun 22 15:25:50 2011 -0700

    Updating for 2.7.1 release.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit a49d5b885a62aa9bd3a686d411739723a67c399c
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Jun 22 14:57:03 2011 -0700

    (#8048) Gem install puppet no longer fails if rdoc enabled.
    
    Rdoc wouldn't parse lib/puppet/interface/options.rb
    The offending code has been removed.
    
    This was causing issues for users wishing to upgrade puppet,
    via gem or puppet.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit a126aee16294b183d2c6068b46ad8e394d2d95f8
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Tue Jun 21 18:54:35 2011 -0700

    (#8032) Add containment to create_resources
    
    Without this change native resource types declared using the
    create_resources() function are not contained within the class scope of
    the function call.  As a result, resources were "floating off" in the
    graph, disconnected from the rest of the relationship edges.
    
    With this change, the scope is preserved and native resources are
    contained by the class the function call is executed from.
    
    Reviewed-by: Dan Bode <dan@puppetlabs.com>

commit bbde5b599b9cfec4e7eee3f96848c0ef1e574208
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Tue Jun 21 14:58:22 2011 -0700

    Readying for release of 2.6.9
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit 839e7c9979f89badeb31157e8fe8ff3de46be3e2
Author: Jeffrey C. Ollie <jeff@ocjtech.us>
Date:   Mon Jun 20 20:36:43 2011 -0500

    (#7999) Add some basic tests of the systemd provider

commit 1cae35410c25856c6b89ab612aa8f81297db9ffa
Author: Jeffrey C. Ollie <jeff@ocjtech.us>
Date:   Mon Jun 20 16:22:05 2011 -0500

    (#7999) Add a service provider that manages systemd services natively
    
    systemd is the default system/service manager in Fedora 15 and will
    likely become the default on other Linux distributions in the future.
    While systemd provides a compatibility layer that allows the standard
    "redhat" Puppet service provider to manage some services on a systemd
    system, as more services are converted to native systemd services the
    compatibility layer will become less and less useful.  For more
    information on systemd see:
    
    http://www.freedesktop.org/wiki/Software/systemd

commit 3b152e4afd1a6a47204356e45f743eafeef2ab52
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Jun 20 20:12:27 2011 +0200

    (#7114) Fix value validation on options
    
    Support single options that legally include a comma like
    "from=host1,host2". We now basically allow either "word" or "key=value"
    as options. That's also what the parsedfile provider currently supports
    when parsing options.

commit aa1b36fa3deaed1269520be2adcceadd7384e134
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Mon Jun 20 20:01:37 2011 +0200

    (#7114) Add tests for option property
    
    The option property of the ssh_authorized_key type supports an array of
    options. To prevent user errors we fail when the user tries to pass
    multiple option as a single string like "option1,option2" instead of an
    array. A single option however can also include a comma. Sample option:
    from="host1,host2".
    
    Add tests that demonstrate that the new value validation on options
    is to strict.

commit cf93404e53aa32ac4a919ddd57d09ed78abfc1b5
Merge: 0b0a9be 5160822
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jun 17 11:37:25 2011 -0700

    Merge branch 'template-not-defined-test-failure'
    
    * template-not-defined-test-failure:
      Clean up indentation, whitespace, and commented out code
      Remove order dependency from functions integration spec

commit 51608221da248e679326087303ecd0c649225d5b
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jun 17 11:26:58 2011 -0700

    Clean up indentation, whitespace, and commented out code
    
    The mis-indented code, extra newlines, and commented out code were
    noticed while investigating the order dependent test failure fixed in
    4365c8ba.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 92a8f4a1cbb4e11a9bacf571b4c9f3d8181392fb
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Jun 17 11:23:21 2011 -0700

    Remove order dependency from functions integration spec
    
    The test in spec/integration/parser/functions_spec.rb would fail when
    the spec tests were run in the order (among other orderings):
    
      spec/unit/parser/functions/tag_spec.rb
      spec/unit/parser/templatewrapper_spec.rb
      spec/integration/parser/functions_spec.rb
    
    There are tests that would cause the "template" function to be loaded
    into the root environment.
    Puppet::Parser::Functions.function("template") would then detect its
    presence and P::P::F.rmfunction("template") would fail since #function(...)
    looks in more than just the current environment to see if a function
    is defined, while #rmfunction(...) only looks in the current
    environment to see if a function can be removed.
    
    In the test ordering specified earlier, tag_spec.rb would load the
    "template" function, and templatewrapper_spec.rb would create a
    current environment that would mask the root environment for #rmfunction(...),
    but not for #function(...)
    
    Since #rmfunction(...) only looks in the current environment, we
    should be using #functions.include?("template") since that matches the
    check that #rmfunction(...) itself uses.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 36d8caff18964841b6e6c33ebf595ca39e8b0871
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Thu Jun 16 17:34:42 2011 -0700

    Updating CHANGELOG for 2.7.0

commit c9746538f486233f854382c4a0f6e46126ae339a
Merge: cba645c 1b3130c
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Jun 15 12:11:39 2011 -0700

    Merge branch '2.6rc' into 2.6.x

commit 1b3130c4eb17cd5ebdc208b7e4a4dec65f9c710d
Merge: cba645c 31554c0
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Jun 15 11:42:48 2011 -0700

    Merge branch 'tickets/2.6rc/6854' of git://jet.mox.net/~tmz/puppet into 2.6rc

commit 31554c086eb2bf3afab37daba58704eca3fab16c
Author: Todd Zullinger <tmz@pobox.com>
Date:   Fri Mar 25 15:38:24 2011 -0400

    (#6854) Update Red Hat spec file
    
    Sync the spec file with Fedora/EPEL and pull in the following changes:
    
    - Ensure %%pre exits cleanly
    - Fix License tag, puppet is now GPLv2 only
    - Properly restart puppet agent/master daemons on upgrades from 0.25.x
    - Require libselinux-utils when selinux support is enabled
    - Support tmpfiles.d for Fedora >= 15 (#656677)

commit cba645c8b8a2c5293d50829c18cd753bcea34e81
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Tue Jun 14 17:52:24 2011 -0700

    Bumping release in lib/puppet.rb and updating CHANGELOG.
    
    This is for release 2.6.9rc1.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit 43027deaef488f85f560a995354236e6adb2a01d
Author: stahnma <stahnma@websages.com>
Date:   Tue Jun 14 17:49:43 2011 -0700

    Bumping RPM spec file to 2.6.9rc1.
    
    I will bump the RPM spec file for each release, that way
    as soon as we cut a release candidate, we won't get a patch
    that updates the spec.
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit c6909a6c9f640a9b00f5c7f3ae979e6e0481df35
Merge: f8c1132 fc530ac
Author: stahnma <stahnma@websages.com>
Date:   Tue Jun 14 17:29:32 2011 -0700

    Merge branch '2.6.x' into 2.6rc

commit 6ae3538a58eaa116762141759a88e0e9ad964ebb
Merge: 2e95568 99330fa
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jun 14 17:07:46 2011 -0700

    Merge branch 'ticket/2.7.x/7224' into 2.7.x

commit 99330fa56d5f2a459fe560d7f7506d42d4a98d14
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jun 14 15:31:13 2011 -0700

    (#7224) Reword 'hostname was not match' error message
    
    This error message is grammatically incorrect and unhelpful, so we replace it
    with a message that explains more correctly what went wrong and what was
    expected. This message happens when making an authenticated connection to a
    server where the certificate doesn't match its hostname. This happens in the
    REST terminuses, so we wrap their HTTP methods with a helper that will catch
    the appropriate SSLError and re-raise it with the better message stating the
    hostname used, and the list of hostnames that we were expecting it to be a part
    of.
    
    Unfortunately, because the certificate in question isn't available at error
    time, we have to use the Net::HTTP#verify_callback to capture it.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-By: Dominic Maraglia <dominic@puppetlabs.com>

commit 1d867b026dbfa38d44f042680acf708b42295882
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jun 14 14:42:21 2011 -0700

    (#7224) Add a helper to Puppet::SSL::Certificate to retrieve alternate names
    
    Alternate names, if present, are specified in the subjectAltName extension of
    the certificate. The values are in the form:
    
    "DNS:alternate_name1, DNS:alternate_name2"
    
    This helper will retrieve the value of the subjectAltName extension and extract
    the alternate names, returning and empty list if the extension is absent. This
    will make it easier to access the entire list of possible names for a
    certificate, rather than just the common name; this is helpful for generating
    more detailed SSL error messages.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit fc530ac518dbb4bfc831473e3a1cbf122550ad46
Merge: 4fb7cfe db1a392
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jun 14 13:58:00 2011 -0700

    Merge branch 'ticket/2.6.x/7506' into 2.6.x

commit db1a392e3fce0d616b6d1061a123b60f61470f20
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jun 14 13:56:23 2011 -0700

    (#7506) Organize READMEs; specify supported Ruby versions in README.md
    
    The README was not specific enough about the current state of our Ruby support.
    This commit lays out our current status as discussed in issue #7506 and in
    greater detail on the internal mailing list around April 8, 2011 under the
    subject "Statler Ruby Versions Support."
    
    This commit also consolidates two redundant README files into one.
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit 1a33bf86b74053f7978bddb6b1f715d04db9f2ba
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jun 14 13:35:31 2011 -0700

    (#7506) Specify supported Ruby versions in README.md
    
    The README was not specific enough about the current state of our Ruby support.
    This commit lays out our current status as discussed in issue #7506 and in
    greater detail on the internal mailing list around April 8, 2011 under the
    subject "Statler Ruby Versions Support."
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit 2e95568be7df9dd40a66a40e57e920c26f04da73
Merge: d1c965a de06469
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Jun 13 17:41:20 2011 -0700

    Merge branch 'ticket/2.7.x/5641' into 2.7.x

commit de064693c3b6846718497bcfb42ef0b9e44ab90b
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Jun 13 17:19:52 2011 -0700

    (#5641) Help text: document that puppet doc takes modulepath, manifestdir, and environment options
    
    Puppet doc didn't have the usual subcommand caveat about configuration settings
    being valid command line options, nor did it explicitly call out the three
    settings that it actually cares about.
    
    I opted to do the latter, since the number of relevant settings was so small.
    Note that --environment is currently broken; this is filed as bug #7907.

commit 0d8373cfcf85dc00e0bfd74e2649cae3698a9f78
Merge: 4e9e880 4b68af3
Author: R.I.Pienaar <rip@devco.net>
Date:   Mon Jun 13 11:54:16 2011 -0700

    Merge pull request #2 from jeffmccune/minor/master/readme_tweaks
    
    (minor) tweaks to modules README

commit 4b68af35ff705cf1602e200a0183adfec1d09896
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Jun 13 11:16:16 2011 -0700

    (minor) tweaks to modules README
    
    There was an _ missing.  Also did a whitespace only reflow of the line
    this change affects.

commit 4e9e880ad3c7c970f9f4cc1dcfb570c22befc64b
Author: R.I.Pienaar <rip@devco.net>
Date:   Sun Jun 12 11:25:39 2011 +0100

    Release 0.2.0

commit 27f3b10cf63e63ff382c5c22a5cceb78f6f43f67
Author: R.I.Pienaar <rip@devco.net>
Date:   Sat Jun 11 13:45:45 2011 +0100

    Update changes

commit ea3ca2d3835cf3f9d6923c0d1967641e22f6f648
Author: R.I.Pienaar <rip@devco.net>
Date:   Sat Jun 11 13:45:02 2011 +0100

    Add a hiera_array() function and fix args parsing

commit c4adfac974de7aa0c5e12287131844f6b90e24fb
Author: R.I.Pienaar <rip@devco.net>
Date:   Sat Jun 11 13:39:04 2011 +0100

    Add a hiera_include() function and update example

commit 3d082e4d936c62723f93a424f2ccf30852e934ad
Author: R.I.Pienaar <rip@devco.net>
Date:   Sat Jun 11 13:02:43 2011 +0100

    Fix spec failure

commit c3dd67f76bd8f085462af987b021c050f6bb83a4
Author: R.I.Pienaar <rip@devco.net>
Date:   Sat Jun 11 12:49:51 2011 +0100

    Add array search support

commit 4fb7cfe31795c5a9cf7df87628e4311a538e207b
Merge: f8c1132 381fa40
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Fri Jun 10 14:37:33 2011 -0700

    Merge branch 'ticket/2.6.x/6418' into 2.6.x

commit a97c86e7d01384aa06f5d4d69da427fc355aebe7
Merge: 0b0a9be 381fa40
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Fri Jun 10 14:35:38 2011 -0700

    Merge branch 'ticket/2.6.x/6418'

commit 381fa409207a1b0d26e7e55ea8cbe45a7e132fdf
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Fri Jun 10 14:27:39 2011 -0700

    (#6418) Make test 64118 more portable
    
    Test used a bash command negation to negate the a grep:
    '! grep ensure.*directory /var/opt/lib/pe-puppet/state/state.yaml'
    which only works on newer bash shells only. Removed the shell
    negation and use the harnesses ":acceptable_exit_codes" parameter.

commit f8c11329f1e0e0fb5648e26c7a5c58fc2341319e
Merge: 01c1142 98ba407
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jun 10 14:21:56 2011 -0700

    Merge branch 'ticket/2.6.x/7127-prerun-command-failures-dont-stop-puppet' into 2.6.x
    
    * ticket/2.6.x/7127-prerun-command-failures-dont-stop-puppet:
      (#7127) Stop puppet if a prerun command fails
      Do not needlessly create multiple reports when creating a transaction

commit 98ba4071f424932173b450d1a94a9ae39f33a6c7
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jun 10 14:09:32 2011 -0700

    (#7127) Stop puppet if a prerun command fails
    
    Before this change there were several problems with pre and post run
    commands, logging, and sending of reports.
    
    1. If a prerun command failed, puppet would attempt to apply the
    catalog. Now puppet will not apply the catalog, but it will run the
    postrun command and send the report (as it did before).
    
    2. If a postrun command failed, puppet would not send the report. Sending the
    report is now in an outer ensure block from the postrun command, so
    postrun failures won't prevent the report from being sent.
    
    3. Errors, e.g. Puppet.err, occuring during the prepare step, which
    which includes plugin/fact download and prerun commands were not
    appended to the report. Now the report log destination is registered as
    early as possible, and unregistered as late as possible to ensure
    Configurer errors that occur in the run method are included in the report.
    
    4. The transaction was closing the Configurer's report destination out
    from underneath it. As a result, postrun errors were not included in the
    report.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 6996e0bbfb3559773e5fa0d133a7632dcb06b2d5
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri Jun 10 14:03:47 2011 -0700

    Do not needlessly create multiple reports when creating a transaction
    
    Previously, the transaction would always create a report, which would
    some times be overridden with a new report.
    
    Now, the transaction optionally takes a report at initialization time,
    and only creates a report of its own if none was provided.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 01c11424b61163fae71de3611a5166c894601937
Merge: b1a506c caca469
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jun 10 11:55:21 2011 -0700

    Merge branch 'ticket/2.6.x/4416' into 2.6.x

commit caca469976cc8b5ff6c7f68d7324eecd35399176
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jun 10 10:58:19 2011 -0700

    (#4416) Ensure types are providified after reloading
    
    Previously, the 'provider' parameter for a type was only added when creating a
    provider for that type. This would cause a type to forget about its 'provider'
    parameter when only the type was reloaded.
    
    This was manifesting itself in pluginsync, when a provider plugin would be
    loaded before its type, causing the type to be autoloaded. The type plugin
    would then be loaded again by the plugin handler. Because the type => provider
    information is stored separately from the type, the providers don't need to be
    reloaded, and thus don't recreate the type's 'provider' parameter.
    
    Now we always "providify" the type (add its 'provider' parameter) upon
    creation, after trying to load its providers, if any providers are present.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>

commit 413b136671232a8a0a9e27c18c1b6547241276e7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jun 10 10:48:36 2011 -0700

    (#4416) Always remove old provider before recreating it
    
    In the case where provider class evaluation failed midway, the provider class
    would be created but not registered. Thus, when checking whether it should be
    removed, it wasn't found, and wasn't removed. This caused it to then fail to be
    recreated, because it collided with the existing class.
    
    Now we don't bother checking whether the provider is registered before we
    remove it, since rmclass has the appropriate checks to do the unregistration,
    and class removal safely.
    
    Removing a provider class that has been created but not registered should not
    be a problem since the only time this can happen is when the class is unusable
    because of parsing or other fatal errors in the provider itself.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>

commit d866ce187d45897acb9b099e7a4d77a2aadced8d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jun 10 10:32:30 2011 -0700

    Cleanup indentation, comment, and unused code
    
    The Great Reindentation of '10 left certain structures indented incorrectly;
    this addresses some of these instances.
    
    The comment about loading all providers incorrectly stated that we're trying to
    figure out the type, when we're actually trying to figure out the provider.
    
    There was an unused variable initialization that was introduced in 2b14f627,
    which was reverting c19835c, 9290cc8, and ffb4c2d.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>

commit 0b0a9be25f95f7dfd14bbcc9bf7c7f9b21531100
Merge: 649b3dc d1c965a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 9 16:53:39 2011 -0700

    Merge branch '2.7.x'
    
    Conflicts:
    	acceptance/tests/ticket_7117_broke_env_criteria_authconf.rb

commit d1c965a2e1ddde3907ecf83303a832a6fd5c20e9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 9 16:35:22 2011 -0700

    Make temporary auth.conf in acceptance test readable by Puppet
    
    The create_remote_file method uploads files with mode 600 since that is the
    default mode for Tempfile. The puppet user thus isn't able to read the
    temporary auth.conf, so it just uses the default rules instead, causing this
    test to fail.
    
    Also, this test was dependent on running after another test which set up a cert
    on the agents. Since that can't be guaranteed, the master now runs with
    autosign to ensure the agents can connect.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit e62b0af810aeb81868b8e62c2ceeb07cdcfd927d
Merge: 8ccd009 4af9784
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 9 15:54:36 2011 -0700

    Merge branch 'ticket/2.7.x/fix-broken-acceptance-tests' into 2.7.x

commit 4af97845453f9e4762a1743ba8e29316ef372f31
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 9 15:44:49 2011 -0700

    (#7117) Use a different auth.conf instead of overwriting the default
    
    This test was previously replacing the default auth.conf with its own, and
    restoring it afterward. This was error-prone, failing if there wasn't an
    initial auth.conf present. It would also causing cascading failures when this
    test failed, by leaving a non-standard auth.conf for other tests to use. Since
    this copy-and-restore behavior can be replaced by simply specifying a different
    auth file to use, we do that instead.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-By: Dominic Maraglia <dominic@puppetlabs.com>

commit ecde13449aab95cba22103075a362cfeb91b4ec0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 9 15:43:22 2011 -0700

    (#3360) Delete SSL directory in acceptance test before running
    
    A leftover SSL directory from another test, including a cert for the agent,
    will cause this test to fail. So before running, we remove the SSL directory
    to ensure this doesn't happen.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-By: Dominic Maraglia <dominic@puppetlabs.com>

commit b502423356f0cf9c42f06fe5822c8840069620ab
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 9 15:41:44 2011 -0700

    Update acceptance tests to use with_master_running_on
    
    A few of these tests weren't yet using this helper, and were instead
    implementing similar behavior on their own. Now they all use the standard
    method.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-By: Dominic Maraglia <dominic@puppetlabs.com>

commit 053e613bb102ab0032701c7619ba77d0581be775
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 9 15:30:51 2011 -0700

    Remove pending copy of an active acceptance test
    
    This test was introduced as pending in 2.6.x, and active in 2.7.x. When 2.6.x
    was merged to 2.7.x, the pending version was merged along as well, causing no
    visible conflicts. It's obviously not pending, so remove it.
    
    Reviewed-By: Dominic Maraglia <dominic@puppetlabs.com>

commit 649b3dc58349d3bbb1bd28bf882013c2cf5b8000
Merge: e057360 8ccd009
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jun 8 18:47:44 2011 -0700

    Merge branch '2.7.x'

commit 8ccd00963d91f168438eaec4b29a18cd4a1ac583
Merge: 376e0f0 d4c499d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jun 8 18:41:16 2011 -0700

    Merge branch '2.7rc' into 2.7.x

commit 376e0f04af01810d00eede4de52744bb8c8e1681
Merge: 4922409 b1a506c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jun 8 17:18:22 2011 -0700

    Merge branch '2.6.x' into 2.7.x
    
    Conflicts:
    	acceptance/tests/ticket_5477_master_not_dectect_sitepp.rb
    	lib/puppet/application/apply.rb
    	lib/puppet/configurer.rb
    	lib/puppet/configurer/fact_handler.rb
    	spec/unit/application/apply_spec.rb
    	spec/unit/configurer/fact_handler_spec.rb
    	spec/unit/configurer_spec.rb

commit d4c499dfdbd94f5272278e1ba87a75915607c3d7
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed Jun 8 17:28:35 2011 -0700

    Updated CHANGELOG for 2.7.0rc4
    
    Signed-off-by: Michael Stahnke <stahnma@puppetlabs.com>

commit 65fa8e6cbddf3b4d0d2a91630ee3e7b08ff92e33
Merge: 95088d3 dbe2310
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Jun 8 17:22:06 2011 -0700

    Merge branch 'maint/2.7rc/static_manpages' into 2.7rc

commit dbe2310dda94fb19fe767286ff26a51d934f8d60
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Jun 8 17:19:18 2011 -0700

    Maint: Update static man pages for 2.7.0
    
    This commit updates the static man pages for the final 2.7.0 release.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 50d188cc2f447a17b43b5bc7c9db5f7430826529
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Jun 8 17:18:15 2011 -0700

    Maint: Update static man page generator for Faces.
    
    The man page updater wasn't making man pages for the new Faces app. This commit
    gives it that capability, and handles the name collision on puppet resource.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 95088d3d9f11d785c29c12d374017d377d657303
Merge: 90d2cf0 f370d5a
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Jun 8 15:46:56 2011 -0700

    Merge branch 'ticket/2.7rc/7833-further_help_adjustments' into 2.7rc

commit f370d5a9e2587c067c458eca65198dbf90c800a6
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Jun 8 15:04:51 2011 -0700

    (#7833) Several help text/template edits
    
    This commit makes the following changes:
    
    * Changes wrapping on some "returns" blocks to accomodate the way we prepend
      "RETURNS: " to the first line in short help.
    * Overrides description for save on faces where save is invalid. (Since save has
      an inherited description, the description was contradicting the summary.)
    * Adds notes on dummy arguments to short_description where applicable, so as to
      show up in short help.
    * Adds the termini list to the action short help template.
    * Removes the authors block from short help for faces. (Save it for the man page.)
    * Several trivial wording changes.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit b1a506c7dec849415073e1bf4b3c92f3c898d6d9
Merge: e62734c 98f58ce
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jun 8 13:57:30 2011 -0700

    Merge branch 'ticket/2.6.x/2128_docstrings' into 2.6.x
    
    * ticket/2.6.x/2128_docstrings:
      (#2128) Add WARNING for node_name_{fact,value} descriptions
      (#2128) Whitespace only reflow commit
      (#2128) In-line docs for node_name_{fact,value}

commit 98f58ceff86547753bfb625ef6c222fbbf70ce28
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jun 8 13:53:21 2011 -0700

    (#2128) Add WARNING for node_name_{fact,value} descriptions
    
    Minor change to add a WARNING string as per feedback from UX.
    
    Reviewed-by: Randall Hansen <randall@puppetlabs.com>

commit 1cd848c5e28835f96f66b9d0e17b353dc02a60e3
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jun 8 13:08:39 2011 -0700

    (#2128) Whitespace only reflow commit
    
    The output of puppet --genconfig was showing a blank line between the
    description of the option and the default value line.  This is because
    of the here document being used in the first commit.
    
    This change replaces the HERE document with a normal string that does
    not contain a final newline.
    
    In addition, the indentation of one of the default options was using 4
    spaces instead of 2 and this has been corrected.

commit d9b5c1aaa7af277d74d1c9cb33d5be76c4ca7135
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Jun 8 11:29:52 2011 -0700

    (#2128) In-line docs for node_name_{fact,value}
    
    This change augments the in-line documentation for the node_name_fact and
    node_name_value configuration settings.  These settings will not work
    effectively without additional changes elsewhere in the system, e.g. to
    auth.conf.
    
    In order to help the end user land softly if they choose to change these
    settings, a short link URL we control and can redirect has been added
    to each setting.  These currently point to the community Wiki but may be
    redirected to docs.puppetlabs.com in the future.

commit 90d2cf0a7b2f3fc0d16f07abb11e204dc1ed0028
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jun 7 17:16:35 2011 -0700

    maint: more work on regexp matching in Test::Unit assertions.

commit 8c71df2af5ef281849b56eebfa42ad8372c3edca
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jun 7 17:05:14 2011 -0700

    maint: acceptance tests need to search for bin/false
    
    Because Mac and Linux systems hide bin/false in different places, we should
    have the catalog we are testing with search for it in the candidate places.

commit 54632867f7e2b97b47b0a6855196a52eb64ea92a
Merge: b4e9791 0ae4732
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jun 7 16:52:56 2011 -0700

    Merge branch 'bug/2.7rc/7828-face-synopsis-generators-ram-options-together' into 2.7rc

commit 0ae4732fd9058c2ae67f664c545dbd1846cef2df
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jun 7 16:52:39 2011 -0700

    (#7828) Fix whitespace in synopsis generator.
    
    We accidentally omitted whitespace between multiple options while building the
    synopsis.  This fixes that, by introducing a breakable space in the right
    location.
    
    Additionally, we extract the code that was 99 percent identical from the face
    and action synopsis generators, push it down into the documentation module,
    and then invoke it from both places.
    
    This eliminates the duplicate code, allowing me to fix that bug once and have
    it apply to both parts of the code; this is pretty much assured to be true
    any time we change the synopsis generation.
    
    Reviewed-By: Nick Fagerlund <nick.fagerlund@puppetlabs.com>

commit b4e9791df5c01183ff037a346361ed3667e67552
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jun 7 16:09:21 2011 -0700

    maint: handle incoherent Test::Unit assertions.
    
    So, it turns out that the 1.8.7 Test::Unit assertions are a bit quirky.  If we
    use 'assert_match' it will turn a String into a regular expression by passing
    it through Regexp.quote automatically.
    
    If you use 'assert_no_match', though, it will not do that.  It will just
    complain that it isn't a Regexp and blow up.  So, we manually quote outside
    the assertion in both cases, and things should just work.

commit 5c89129859bf7d9cb2533a6438cb9db0a8fee2be
Merge: 368b516 48aafa3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jun 7 15:58:51 2011 -0700

    Merge branch 'feature/2.7rc/6873-add-static-compiler' into 2.7rc

commit 48aafa3a5c553fec7b9a5193febd5591937d5680
Author: Luke Kaines <luke@puppetlabs.com>
Date:   Tue Jun 7 15:58:26 2011 -0700

    (#6873) Add Static Compiler terminus to 2.7.0
    
    This adds the static compiler terminus to the release.  This wraps the default
    compiler terminus, and post-processes the catalog to rewrite every file
    reference using the 'puppet://' URI/protocol into filebucket references that
    use the MD5 checksum of the file contents.
    
    This provides a genuinely static catalog, in terms of content: there are no
    external dependencies that can change to make the behaviour of applying this
    catalog change.
    
    It also eliminates the describe calls from file checking, as all the metadata
    is stored locally in the catalog.  This can be a substantial performance
    increase for nodes, especially those that manage large trees of recursive
    files.
    
    To use this set the `catalog_terminus` to `static_compiler`; the resultant
    catalog will then reference only static content.  This does not, however, put
    the required files into the filebucket on the client.
    
    There are some limitations of this code:
    
     * Files are all read into memory rather than streamed. This will definitely
       cause problems with large files, but the filebucket doesn't currently
       handle streaming.
    
     * We think the recursion behavior is equivalent, but can't really guarantee
       it without a good bit of testing.
    
     * You have to populate the client filebucket manually.  We don't have any
       support for doing this automatically, not even through variant access to
       the catalog downloader.
    
     * Behavior on the server is currently undefined if your puppet masters are
       behind a load balancer and they're configured to do fileserving through
       that load balancer. It should work, but it probably won't be that fast.
    
    You can see https://github.com/lak/puppet-static-compiler for the original
    prototype this was inherited from, which includes some example code for
    scanning the downloaded catalog and fetching resources into the filebucket.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>

commit 368b516d39ec36222421c09ac5c592e0a1ff7126
Merge: 26a6e39 9017fea
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jun 7 15:02:08 2011 -0700

    Merge branch 'bug/2.7rc/7728-resource-failure-leads-to-extra-warnings' into 2.7rc

commit 9017fea1904270f1c1a5365fe23fc52817867334
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jun 7 14:24:42 2011 -0700

    (#7728) Acceptance test for whit notifications.
    
    This adds an acceptance test to verify that we emit the expected logs, but
    none of the unexpected logs, when we process a manifest showing the whit
    notification problem.
    
    Reviewed-By: Dominic Maraglia <dominic@puppetlabs.com>
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 973e752cc210cc64ec50b942ee989f6e6acaaca0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jun 6 17:56:53 2011 -0700

    (#7728) Suppress notifications from container whits.
    
    We introduced changes to our graph to reduce the number of edges when we had
    container dependencies.  As part of this the 'whit' object was created, and
    used as an intermediate vertex to simplify processing.
    
    During that change we introduced additional reporting, based on those whit
    objects, about containment relationships during resource application failure.
    
    Specifically, we would now report that the containing class(es) and stages of
    any failed resource were failed, point-blank.  This was unclear, because the
    entire class had not failed, but only part of it, but also unhelpful, because
    it turned a single failure into at least one additional report that contained
    no additional information.
    
    Now, instead, we suppress reporting for the whit resources.  We still process
    them identically; just the report is eliminated.
    
    It isn't absolutely clear that this is the correct long term direction for
    handling these objects, but it is the minimal change for the RC release.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit e62734c661b660f6b8620da28589da7c6472808e
Merge: c260cf1 3f0dbb5
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jun 7 14:42:44 2011 -0700

    Merge branch 'ticket/2.6.x/650' into 2.6.x

commit 3f0dbb5fb7d9f4d88684fa07189270f42074e5f4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jun 7 13:00:46 2011 -0700

    (#650) Allow symlinks for configuration directories
    
    Previously, pointing a setting like 'confdir' at a symlink to a directory would
    replace the symlink with a directory. This was because files created by
    settings implicitly managed links, rather than following them. This behavior is
    now changed so that file settings will follow links.
    
    The behavior of these symlinks is the same as any other file resource. That is,
    if the target of the symlink doesn't exist, Puppet will consider this an
    error. Similarly, if the target of the symlink is a file, then the symlink
    will still be replaced with a directory, rather than replacing its target.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-By: Dominic Maraglia <dominic@puppetlabs.com>

commit 26a6e3937ac0f720a193ee0ec72d66b889a78b5c
Merge: d0d1e2e 1772363
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jun 7 14:35:43 2011 -0700

    Merge branch 'ticket/2.7rc/7764-Faces_help_revisions' into 2.7rc

commit 17723634875e308b2752efed8ebdfd3db3239215
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Jun 3 10:28:52 2011 -0700

    (#7764, 7775, 7778) Revisions to Faces help text
    
    Per UX review of help text, this commit makes several changes over the breadth
    of the Faces help:
    
    * Preface API-only action summaries/descriptions with "API only." (issue #7775)
    * Provide both CLI and API info in "returns," with the CLI info first. (issue #7778)
    * Summaries should be sentences. (Add punctuation.)
    * First sentences of descriptions should reiterate summaries. (Summaries and
      descriptions should be displayed far enough apart that this isn't a problem.)
    * Standardize on "subcommand" instead of "face" when talking about the entity
      you invoke at the command line. (Use "face" when describing API use.)
    * Fix outdated or clunky text in several faces.

commit 5a9998e41bc442ca66ca2ff151750355d2ef6d6f
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Jun 1 18:07:40 2011 -0700

    (#7773, 7776, 7764) Several help template tweaks
    
    Per UX review of help output, this commit makes several changes to templates and
    shared help text:
    
    * Change "unknown" to "undocumented"
    * Remove copyright from short help
    * Point readers to the man pages (issue 7773)
    * Remove examples from short help (issue 7776)
    * Remove summary from short help and make it a fallback for description
    * Edit common option summaries to fit on a single 80-col line

commit 5587b94ce1bcb4e86df1160e5238b535e10028da
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jun 7 11:33:17 2011 -0700

    maint: remove an unhelpful pending test.
    
    This has been pending approximately forever, and adds little value; removing
    the warning reduces noise without value.

commit bbf0a025c075124ffe2fc2838c27ace22d1ddb89
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jun 7 11:32:40 2011 -0700

    maint: fix misnamed acceptance test for #7139
    
    Just s/\.rm/\.rb/ on the filename.

commit c260cf1c8f4850fb5e81616c1e4baa2a42c063e9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jun 6 18:08:13 2011 -0700

    Fix acceptance tests not managing their masters
    
    These tests were assuming a master was already started when they were run,
    which caused order-dependent failures. They will now start their own
    masters, and use newer helper methods to run master and agent.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit e0573603c5780e79c2461ece604c6388e4222504
Merge: 4801e10 4922409
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jun 6 16:19:19 2011 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      (#7624) Manually fetch all properties in instances.
      (#7193) Fix path issues with acceptance tests that call old shell tests
      (#7632) Make secret_agent application compatible with secret_agent face
      (#7624) Auditing should not be enabled by default for purged resources.
      maint: Confine augeas specs to require the augeas feature
      (#2728) Add diff output for changes made by Augeas provider

commit 4922409a2bdf3ad6a094762c9e2e60371ed16a1b
Merge: 77a5987 d0d1e2e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jun 6 16:00:47 2011 -0700

    Merge branch '2.7rc' into 2.7.x
    
    * 2.7rc:
      (#7624) Manually fetch all properties in instances.
      (#7193) Fix path issues with acceptance tests that call old shell tests
      (#7632) Make secret_agent application compatible with secret_agent face
      (#7624) Auditing should not be enabled by default for purged resources.

commit 3d09ca82e57d0c8836b77623d876cd5dc9a3a5e6
Merge: 8ebec1e 1c70f0c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jun 6 15:59:01 2011 -0700

    Merge branch 'ticket/2.6.x/2128' into 2.6.x

commit 1c70f0ce54022b55119b9e2d6d60cd1ae9bc019e
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 2 16:24:16 2011 -0700

    (#2128) Add support for setting node name based on a fact
    
    This adds the node_name_fact setting, which specifies a fact to use to
    determine the node name. This allows dynamically determining the node name
    without having to modify puppet.conf or command line options.
    
    Using this setting requires modifying auth.conf to allow nodes to request
    catalogs not matching their certnames.
    
    For example, this would allow any authenticated node to retrieve any catalog:
    
      # $confdir/auth.conf
      path ~ /catalog/.+
      allow *
    
    The node_name_fact and node_name_value options are mutually exclusive, because
    it is ambiguous which setting should take precedence.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit c629958fb45f9ae3581f01835bf89654dd7967b7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 2 16:23:34 2011 -0700

    (#2128) Get facts before retrieving catalog
    
    Retrieving a catalog and getting the facts to submit with the catalog request
    are distinct operations, and should be done separately. This is also to prepare
    for adding the ability to determine the node name based on a fact, in which
    case the node name needs to be determined before it is used for either the
    catalog or the report.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit cd4fe148aae923f1167a3db450b64ead87418018
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 2 16:16:12 2011 -0700

    (#2128) Add the ability to specify a node name
    
    The setting node_name_value may now be used for 'puppet apply' or 'puppet
    agent' to specify the name for the node. This will not affect the certificate
    used by the node, and the node will still be authenticated based on its
    certname. The default value for node_name_value is the certname.
    
    This is useful for eg. EC2 nodes whose random hostnames cannot be easily used
    to classify them.
    
    Paired-With: Jacob Helwig

commit d0d1e2ef64c4a6eecf3465dff82b62cf2cc79afb
Merge: c8df027 d4e6c26
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jun 6 15:39:56 2011 -0700

    Merge branch 'bug/2.7rc/7624-resource-purging-causes-audit-messages' into 2.7rc

commit d4e6c268aecabdbf36ece126f960ce2384576fcc
Author: Luke Kaines <luke@puppetlabs.com>
Date:   Mon Jun 6 15:33:49 2011 -0700

    (#7624) Manually fetch all properties in instances.
    
    When we removed the `:audit => :all` flag on creation of an instance from a
    Puppet type, we stopped fetching all the properties.  This had flow-on
    consequences that were visible from the outside; while some places did their
    own work to ensure that properties were fetched, others didn't.
    
    We now open-code the loop that creates and fetches those properties, to ensure
    that we have the same data without going through the :audit machinery.
    
    This resolves the excessive logging, and also eliminates the behavioural
    change that we introduced in the previous commit.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>

commit 8ebec1effc8038b1f59537450f3fe27249d543ee
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jun 6 15:07:29 2011 -0700

    (#7193) Fix path issues with acceptance tests that call old shell tests
    
    Some rearranging of the acceptance test directories caused some ruby
    tests that referenced old shell tests to lose their relative paths.
    
    Paired-with: Dominic Maraglia <dominic@puppetlabs.com>

commit c8df02703ac29b00140648640f85ec044a9cfd6e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jun 6 14:40:39 2011 -0700

    (#7193) Fix path issues with acceptance tests that call old shell tests
    
    Some rearranging of the acceptance test directories caused some ruby
    tests that referenced old shell tests to lose their relative paths.
    
    Paired-with: Dominic Maraglia <dominic@puppetlabs.com>

commit 834191c81e6e390d9c147bddba286f1660780aa1
Merge: c5448b7 31bf55c
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Jun 6 13:44:22 2011 -0700

    Merge branch 'ticket/2.7rc/7632-secret_agent_application' into 2.7rc

commit 31bf55c2f9c090c40e48f38c5f64e4373a402261
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon May 23 11:14:03 2011 -0700

    (#7632) Make secret_agent application compatible with secret_agent face
    
    Running `puppet secret_agent` was failing with an error in validate_args (in
    interface/action.rb), because the application was trying to pass the certname as
    an argument to the synchronize action. Also, it was trying to submit the report
    a second time. Reviewing the code with Nick0, we found that the application
    wasn't inheriting from FaceBase and was duplicating a lot of work, and were able
    to resolve the issue by basically deleting the whole thing.
    
    This patch makes secret_agent behave like the other Faces apps, and makes
    synchronize the default action of the secret_agent face. We left the `run_mode
    :agent` line in the application because of bug #7802.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 459ed6ff7c76a240b6f5e3ca5d43eeff9096ec3f
Author: R.I.Pienaar <rip@devco.net>
Date:   Mon Jun 6 16:44:58 2011 +0100

    Add apache 2 lic

commit 59ae8a37884916f200dfb32c42443605c4ec23cc
Author: R.I.Pienaar <rip@devco.net>
Date:   Mon Jun 6 12:47:35 2011 +0100

    Improve example

commit 583f24c6d47eedf3f5bcc7cf0dbc512bc1528d57
Author: R.I.Pienaar <rip@devco.net>
Date:   Mon Jun 6 12:44:40 2011 +0100

    Fix formating and make clearer

commit bfef859372c78e55fd9a382075bb0de308e18b37
Author: R.I.Pienaar <rip@devco.net>
Date:   Mon Jun 6 12:42:35 2011 +0100

    Add a example setup
    Fix some unfriendly behavior wrt class names that don't resolve using scope

commit 1b6866e692c1a878bf593b2f6693712e169cd005
Author: R.I.Pienaar <rip@devco.net>
Date:   Sun Jun 5 12:21:19 2011 +0100

    Improve sample config and mention installation pains

commit 759fd062a6d5e2f00e891d748feccef6f589d146
Author: R.I.Pienaar <rip@devco.net>
Date:   Sun Jun 5 12:19:21 2011 +0100

    Rename tests dir to unit dir for consistancy with other projects

commit 4a00e43313279d70d90e642fa1de778f9f8041ab
Author: R.I.Pienaar <rip@devco.net>
Date:   Sat Jun 4 18:51:14 2011 +0100

    Add more tests, fix more bugs

commit f4cd24d811b862cb75ed1c8ac75c71459f13bcd1
Author: R.I.Pienaar <rip@devco.net>
Date:   Sat Jun 4 18:37:56 2011 +0100

    Add tests and fix bugs found with tests

commit b92ac2cab0342d51b3d893900605994766788df4
Author: R.I.Pienaar <rip@devco.net>
Date:   Sat Jun 4 17:18:58 2011 +0100

    Add a debug statement

commit ffda5bba828244b5c005fcb3a68a70802cd34aac
Author: R.I.Pienaar <rip@devco.net>
Date:   Sat Jun 4 17:03:21 2011 +0100

    Add README

commit 3df40077d937d0d0138a29c2745062b36bdc09ba
Author: R.I.Pienaar <rip@devco.net>
Date:   Sat Jun 4 16:33:08 2011 +0100

    Add a puppet backend that impliments Nigels design

commit ae5b0842e8c509b63598077cf04aeaf933e15031
Author: R.I.Pienaar <rip@devco.net>
Date:   Sat Jun 4 15:22:40 2011 +0100

    Add a hash like wrapper around puppet scope

commit 59e8e8834dab92ae346c9c82ab86e67d0bb6603e
Author: R.I.Pienaar <rip@devco.net>
Date:   Sat Jun 4 15:13:19 2011 +0100

    First working hiera() function and a logger that logs using puppet notice/debug

commit 9660f5e12f10eb20cb2c2beb7d66b931919b0019
Merge: 805b287 16b2311
Author: Ben Hughes <ben@puppetlabs.com>
Date:   Fri Jun 3 11:29:15 2011 -0700

    Merge branch 'ticket/2.6.x/6885-puppet-agent-fingerprint-requires---verbose-to-return-a-value' into 2.6.x

commit 16b2311256a142a69cb9ddadf29eea804b281e1c
Author: Ben Hughes <ben@puppetlabs.com>
Date:   Tue Apr 5 16:19:01 2011 +1000

    (#6885) puppet agent fingerprint requires --verbose to return a value.
    
    Always output the fingerprint to STDOUT, no matter what loglevel is used,
    as that's the whole purpose of the comment.
    
    Having to specify --verbose in addition to --fingerprint to get the finger
    is nonsensical.
    
    Update the spec test to stub @puppet puts, instead of the
    Puppet.logging facilities.
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit c5448b79e690d72536f4d98b636f450d37de627a
Author: Dan Bode <bodepd@gmail.com>
Date:   Sun May 22 21:54:58 2011 -0400

    (#7624) Auditing should not be enabled by default for purged resources.
    
    - Auditing creates logging messages as of 2.6.5 so it should not
      be enabled by default.
    
    - This patch removes the :audit => :all settting from resources
      created via self.instances (which is used for purging).
    
    Please note that we believe this change to be safe, and *should* not result in
    user-visible behavioural differences when you use the `instances` method on a
    type, but we can't give you a perfect assurance of that.
    
    If you do have code that depends on the current behaviour, and it misbehaves
    after this patch, please let us know so we can weep ^W find another solution
    that works for everyone.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>
    Reviewed-By: Nigel Kersten <nigel@puppetlabs.com>

commit 77a598724f961600170d8ba22cd9a11bbb7ab1e1
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 2 17:36:40 2011 -0700

    maint: Confine augeas specs to require the augeas feature

commit ae8069c0afc981d27012d7e1cf6fd1f63e0b6d94
Merge: 4ad8801 8eb0e16
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Jun 2 17:18:08 2011 -0700

    Merge branch 'ticket/2.7.x/2728-augeas-display-changes' into 2.7.x
    
    * ticket/2.7.x/2728-augeas-display-changes:
      (#2728) Add diff output for changes made by Augeas provider

commit 8eb0e16afdcd328fd562a7ffa026a6481c14413c
Author: Michael Knox <mike@sysam.com.au>
Date:   Fri Mar 18 22:37:00 2011 +1100

    (#2728) Add diff output for changes made by Augeas provider
    
    Utilising Augeas's SAVE_NEWFILE mode (similar to augtool -n) to
    determine the changes that will be made be made by Augeas.
    Output a unified diff to info
    
    handle non-default root, and multiple files correctly
    
    Adding tests for Augeas diff functionality
    Add test for non-default :root when diff'ing
    Ensure that multiple files are diffed if changed, not just one
    
    Signed-off-by: Josh Cooper <josh@puppetlabs.com>
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit a00fd25547db6dec8fcd57a004fbec58324ce3dc
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 2 15:47:21 2011 -0700

    maint: Refactor specs in preparation for making node name more flexible
    
    These tests were stubbing when it was unnecessary, so replace much of it with
    actual objects and files.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit 4801e10c81264b20c2d35b0d44c10cfb0668d1b9
Merge: 520cbc0 4ad8801
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Jun 2 15:56:22 2011 -0700

    Merge branch '2.7.x'
    
    * 2.7.x: (40 commits)
      (#7746) Fix bootstrap issues from #7717 fix.
      (#7683) Use ronn, when available, to render the output.
      (#7683) Add a 'man' face and subcommand to Puppet.
      maint: remove obsolete work-around code from help face.
      (#7699) Don't duplicate inherited action names on faces.
      (#7177) Deprecate implicit 'puppet apply' for 2.7.0
      (#7717) Layout cleanup for subcommand extraction.
      #7211: Test unknown options don't shadow unknown actions.
      #7211: nasty logic error with global Face options taking arguments.
      #7211: more helpful error messages in various cases.
      maint: Fix order dependent test failure
      (#5966) Add support for hostname regular expressions in auth.conf
      (#7708) Delete extended documentation from configuration reference
      (#7707) Document signals in puppet agent and puppet master help
      add puppet master polling step for ticket 7117
      (#5318) Always notice changes to manifests when compiling.
      (#5318) Always notice changes to manifests when compiling.
      (#7557) Remove Faces Application
      maint: Fix order dependent spec failure for face indirection
      (#7690) Don't blow up when listing terminuses available for faces
      ...
    
    Conflicts (resolved manually):
    	acceptance/tests/ticket_7117_broke_env_criteria_authconf.rb

commit 4ad88017d3b8b8000325f5165520a6c21b48c469
Merge: 2841137 c295ae6
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Jun 2 15:46:17 2011 -0700

    Merge branch '2.7rc' into 2.7.x
    
    * 2.7rc: (24 commits)
      (#7746) Fix bootstrap issues from #7717 fix.
      (#7683) Use ronn, when available, to render the output.
      (#7683) Add a 'man' face and subcommand to Puppet.
      maint: remove obsolete work-around code from help face.
      (#7699) Don't duplicate inherited action names on faces.
      (#7177) Deprecate implicit 'puppet apply' for 2.7.0
      (#7717) Layout cleanup for subcommand extraction.
      #7211: Test unknown options don't shadow unknown actions.
      #7211: nasty logic error with global Face options taking arguments.
      #7211: more helpful error messages in various cases.
      (#7708) Delete extended documentation from configuration reference
      (#7707) Document signals in puppet agent and puppet master help
      add puppet master polling step for ticket 7117
      (#5318) Always notice changes to manifests when compiling.
      (#7557) Remove Faces Application
      maint: Fix order dependent spec failure for face indirection
      (#7690) Don't blow up when listing terminuses available for faces
      maint: Dedup the loadpath so we don't have to walk it multiple times
      Maint: Fix ellipses for short descriptions
      (#7563) DRY: Remove indirector boilerplate from individual faces
      ...
    
    Conflicts (resolved manually):
    	acceptance/tests/ticket_7117_broke_env_criteria_authconf.rb
    	lib/puppet/application/faces.rb
    	lib/puppet/face/help/man.erb
    	lib/puppet/indirector/face.rb
    	spec/shared_behaviours/documentation_on_faces.rb

commit 284113707fa07c6abcbb765dcd6d8c24e1b6b5fa
Merge: 2f8bc26 805b287
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Jun 2 15:29:31 2011 -0700

    Merge branch '2.6.x' into 2.7.x
    
    * 2.6.x:
      (#5318) Always notice changes to manifests when compiling.
      (#7681) Add an acceptance test for resource refs with array variables
    
    Conflicts (manually resolved):
    	lib/puppet/parser/compiler.rb

commit c295ae699ff78f3d7e4922d00dcf5d9e92c790b8
Merge: 80c1978 b70f32a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jun 1 17:51:53 2011 -0700

    Merge branch 'bug/2.7rc/7746-fix-broken-master-start' into 2.7rc

commit b70f32a45a5dd5777c341e43816d54c37707cf27
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jun 1 17:51:25 2011 -0700

    (#7746) Fix bootstrap issues from #7717 fix.
    
    So, turns out the fix in #7717 introduced a failure when starting the Puppet
    master on some versions of Ruby.  Weird stuff.  I figured it out, eventually.
    
    You see, the process of bootstrapping Puppet is ... complex.  This file, like
    many of our early initialization files, has an incestuous relationship between
    the order of files loaded, code executed at load time, and code executed in
    other files at runtime.
    
    When we construct this object we have not yet actually loaded the global
    puppet object, so we can't use any methods in it.  That includes all the
    logging stuff, which is used by the deprecation warning subsystem.
    
    On the other hand, we can't just load the logging system, because that depends
    on the top level Puppet module being bootstrapped.  It doesn't actually load
    the stuff it uses, though, for hysterical raisins.
    
    Finally, we can't actually just load the top level Puppet module.  This one is
    precious: it turns out that some of the code loaded in the top level Puppet
    module has a dependency on the run mode values.
    
    Run mode is set correctly *only* when the application is loaded, and if it is
    wrong when the top level code is brought in we end up with the wrong settings
    scattered through some of the defaults.
    
    Which means that we have a dependency cycle that runs:
    1. The binary creates an instance of P::U::CL.
    2. That identifies the application to load.
    3. It does, then instantiates the application.
       4. That sets the run-mode.
       5. That then loads the top level Puppet module.
    6. Finally, we get to where we can use the top level stuff
    
    So, essentially, we see a dependency between runtime code in this file,
    run-time code in the application, and load-time code in the top level module.
    
    Which leads me to our current horrible hack: we stash away the message we
    wanted to log about deprecation, then send it to our logging system once we
    have done enough bootstrapping that it will, y'know, actually work.
    
    I would have liked to fix this, but that is going to be a whole pile of work
    digging through and decrufting all the global state from the local state, and
    working out what depends on what else in the product.
    
    Oh, and we use a global because we have *two* instances of a P::U::CL object
    during the startup sequence.  I don't know why.
    
    Reviewed-By: Nigel Kersten <nigel@puppetlabs.com>
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 80c197807faaaf839057c212e69ad0915b39bfe4
Merge: 796900b be233c3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jun 1 16:31:22 2011 -0700

    Merge branch 'feature/2.7rc/7683-man-face-with-ronn-support' into 2.7rc

commit be233c33a8f857b0edc07e24f74db85d469983a4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jun 1 14:49:00 2011 -0700

    (#7683) Use ronn, when available, to render the output.
    
    We now look for ronn(1), and if it is available ask it to generate the *roff
    output, delegate that to man(1) directly, and show the result to the user in
    their pager.
    
    If ronn(1) isn't available we delegate to $MANPAGER, $PAGER, less, most, or
    more, in that order, to paginate the raw markdown.  Not nearly so nice, but
    better than doing nothing.
    
    Finally, if none of those pagers are available we fall through to the default
    behaviour of puppet rendering the output, which more or less results in a
    direct dump to the console.  Nice.
    
    Reviewed-By: Nick Fagerlund <nick.fagerlund@puppetlabs.com>

commit 2389bdf85bf0ae26110666ff34680d057acc32ff
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jun 1 14:17:11 2011 -0700

    (#7683) Add a 'man' face and subcommand to Puppet.
    
    This is the minimal wrapper, cloning a good deal of the logic from help, that
    runs our face through the 'man' template and returns ronn-formatted Markdown.
    
    This provides the crudest baseline possible for getting man-style output, but
    lets us move forward to improve behaviour.
    
    Reviewed-By: Nick Fagerlund <nick.fagerlund@puppetlabs.com>

commit e647f70cbde1735af0710d07fc704448f5a8dcd8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jun 1 14:15:33 2011 -0700

    maint: remove obsolete work-around code from help face.
    
    The application wrapper for help used to disable the inherited 'render' method
    from FaceBase - specifically, to avoid the behaviour of rendering strings
    poorly.
    
    Now that we have support for good output in the upstream method, this is
    unnecessary, so we can eliminate the stub method entirely and use the default
    behaviour.
    
    (This also enables rendering the help into JSON or YAML, against the odds that
     someone actually cares about that. ;)

commit 111a4b546dd1bcaab182d5c8ad694404c2c2f91c
Author: Ben Hughes <ben@puppetlabs.com>
Date:   Fri Apr 1 15:23:14 2011 +1100

    (#6857) Password disclosure when changing a user's password
    
    Make the should_to_s and is_to_s functions to return a form of 'redacted'.
    
    Rather than send the password hash to system logs in cases of failure or
    running in --noop mode, just state whether it's the new or old hash. We're
    already doing this with password changes that work, so this just brings it
    inline with those, albeit via a slightly different pair of methods.

commit 796900b04e234b61a77fe4b64c006f24e15a7360
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jun 1 11:53:40 2011 -0700

    (#7699) Don't duplicate inherited action names on faces.
    
    We earlier moved to duplicating Action objects in the Faces subsystem to
    ensure they had the correct binding context during execution and introspection.
    
    This was correct, but introduced a bug where we would report both the parent
    and child binding as separate entries with duplicate names, in the list of
    actions.
    
    This flowed on to the help output, where it would cause every inherited action
    to be listed twice: once on the parent, once on the child.  (This was actually
    worse if the inheritance was deeper: we would duplicate once for every level
    between the instance and the origin of the action.)

commit 0370011a95d90ce0ff6ee7277d96021b3f3c8744
Merge: db25a02 a23cfd8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jun 1 11:28:39 2011 -0700

    Merge branch 'refactor/2.7rc/7717-deprecate-puppet-apply-by-magic' into 2.7rc

commit a23cfd869f90ae4456dded6e5a1c82719b128f01
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jun 1 11:04:18 2011 -0700

    (#7177) Deprecate implicit 'puppet apply' for 2.7.0
    
    Back in prehistory (eg: 0.25 era), 'puppet' was the name for the agent, and
    could be used directly to apply a manifest as well as to communicate with the
    puppet master process.
    
    During the 2.6 series we moved to a single binary, but continued to support
    older scripts by detecting invocations that looked like the traditional
    scripting uses and implicitly turning those into a call to 'puppet apply'.
    
    Now, with the 2.7.0 release, we are moving to deprecate that behaviour.  We
    still do the same detection, and still run the old manifests, but we now
    emit a deprecation warning directing people to use 'puppet apply' directly.
    
    We intend to remove the behaviour entirely in the 2.8 release, which also
    paves the way to nicer handling of the command line.
    
    Reviewed-By: Randall Hansen <randall@puppetlabs.com>
    Reviewed-By: Nick Fagerlund <nick.fagerlund@puppetlabs.com>

commit 3f47b0cce4436aa638e0b914ff8ab1c9fbf67552
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jun 1 10:34:22 2011 -0700

    (#7717) Layout cleanup for subcommand extraction.
    
    This transforms the layout of the code, to make it easier to work with, but
    makes no functional changes.  Done separately to make clearer the functional
    changes vs the non-functional changes.

commit db25a02490efcafab6822d8e83a36df35a4afc01
Merge: 0d9eaea 8072b4b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 31 15:57:58 2011 -0700

    Merge branch 'bug/2.7rc/7211-unhelpful-help-for-common-cases' into 2.7rc

commit 8072b4be084637b65846b662e4307b3d5a3a2f79
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 31 15:18:42 2011 -0700

    #7211: Test unknown options don't shadow unknown actions.
    
    Unknown options used to shadow unknown actions:
    
        $ puppet node something_I_cannot_do --unknown-option
        Could not parse options: invalid option: --unknown-option
    
    The earlier changes have fixed this problem, but we now add extra testing to
    make sure that we don't regress to the earlier state of play.

commit dd8108cd8f48d399ab728c3437e3fef38f0eb46c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 31 15:05:54 2011 -0700

    #7211: nasty logic error with global Face options taking arguments.
    
    A logic error meant that global Face options that took arguments were
    mishandled: we never consumed the argument, so we read this:
    
        puppet facts --render-as json find $(hostname)
    
    ...as meaning "invoke the 'json' action on the 'facts' face"...
    
    This fixes that problem, so we now correctly handle both optional and
    non-optional arguments to global Face options.

commit 618495c7b70671ff1da1653c76d1524ff3f615b7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 31 15:02:41 2011 -0700

    #7211: more helpful error messages in various cases.
    
    We were emitting a bunch of unhelpful failure messages, surrounding invalid
    actions and especially default actions interacting with the command-line.
    
    This cleans those up, to give a helpful, informative, and correct message in
    all cases.  Notably, we no longer report that there is no "default" action
    when you specify an unknown action on a face.
    
    This change revealed some other weaknesses in our unit tests, now correctly,
    that result in slightly more robust code.

commit 2f8bc2688ee5a612e5a7f6381ba181f49857cc03
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue May 31 10:34:14 2011 -0700

    maint: Fix order dependent test failure
    
    When running spec/unit/network/rights_spec.rb prior to
    spec/unit/network/authstore_spec.rb, test failures occur due to the
    AuthStore storing Declarations in current thread state. This is a
    temporary fix (explicitly clearing thread state for each test run) until
    the AuthStore can be modified to not rely on thread state. This commit
    is a follow up to 9834dcdd.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>

commit 9834dcdd831092464143700010ae73544eea42e8
Merge: d0592fa c02126d
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue May 31 09:15:37 2011 -0700

    Merge branch 'ticket/2.7.x/5966-auth-conf-hostname-regex' into 2.7.x
    
    * ticket/2.7.x/5966-auth-conf-hostname-regex:
      (#5966) Add support for hostname regular expressions in auth.conf

commit c02126df4804b42ecaca2cdff675be9c4e24aa54
Author: Siim Põder <siim.poder@skype.net>
Date:   Fri Jan 21 14:26:37 2011 +0200

    (#5966) Add support for hostname regular expressions in auth.conf
    
    When hosting multiple applications (especially with different security levels),
    you may not want to allow every client to read all the files required for
    every other client. Currently it is possible to do this when your host and
    domain names reasonably reflect that grouping, ex: hostXYZ.someapp.domain.com.
    
    However, if you have a more flat naming convention, it is difficult to write
    these ACLs. This patch adds support for matching hostnames with regular
    expressions, thus extending the ACLs to allow:
    
    path /file_content/secrets/appserver
    allow /appserver[0-9]+.example.com$/
    
    path /file_content/secrets/otherservice
    allow /^(test-)crazy[0-9]+.pattern.(com|net)$/
    
    Signed-off-by: Josh Cooper <josh@puppetlabs.com>
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 0d9eaea6fafe6bf57731a115d6a41c7ceacd8057
Merge: 3facc33 7df1fa4
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri May 27 16:17:17 2011 -0700

    Merge branch 'ticket/2.7rc/7708-reorganize-config-refs' into 2.7rc

commit 7df1fa448c9eb5f23f8ea481bbea18e09f8fff29
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri May 27 16:03:36 2011 -0700

    (#7708) Delete extended documentation from configuration reference
    
    The auto-generated references are meant to be pithy, dense, and fast -- to be
    references, not guides. The configuration reference was front-loaded with
    several pages of explanatory text that properly belongs in the guides on the
    docs site. This commit removes that text in preparation for a reorganization of
    the docs.
    
    This is a doc string only commit.

commit 2935feb648f7945175ebd11a243155ab088a8efe
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri May 27 16:00:17 2011 -0700

    (#7707) Document signals in puppet agent and puppet master help
    
    Previously, the signals accepted by the agent and master daemons were only
    documented in the configuration reference, which didn't make any particular
    sense. This commit moves their documentation to a blurb in the relevant
    man pages.
    
    This is a doc string only commit.

commit 3facc3393378ef7848374621a4674c977e82f884
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Tue May 24 11:28:40 2011 -0700

    add puppet master polling step for ticket 7117
    
    The test for ticket 7117 producedes spurious failures due to timing:
    a curl command is executed from an agent to a freshly started
    Puppet Master; if the Puppet Master is not ready to accept the connection
    the test will fail.  Added an until loop that issues  simple curl
    command to see if the Puppet Master is up and ready

commit 68c106e3ef192d64eb5a1e8daa1e070774909728
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri May 27 10:12:34 2011 -0700

    (#5318) Always notice changes to manifests when compiling.
    
    When we are asked to compile a catalog we need to update the set of known
    resource types, along with the node declaration, from the pool of manifests on
    disk.  This is, obviously, a per-environment pool of resource types.
    
    To reduce the scope of the race where an update to those manifest files on
    disk can be updated during a compilation, we tried to cache the set of known
    resources in the current thread at the start of compilation, then flush it
    after compile finished   and used the cache unconditionally if it was set.
    
    Theoretically, this would assure us that we would parse the set of manifests
    once, use them for the entire compile, flush the cache, and then carry on.
    
    Practically, this was enforced as described: flush *after* the compile, assume
    this would mean that it was clear at the start of the next compile.
    
    That presumably worked more or less right until a change was made to push
    extra data into the catalog at the start of the 2.6 series; that made
    serialization of the catalog depend on the pool of known resource types.
    
    When that happened we would reload the cache (and reparse the manifests)
    during serialization, but after compilation ... and leave that in the thread
    cache, so the precondition for the compiler was no longer true.  It would see
    the cache as of the end of the previous compile run, not the start of the next
    compile run.
    
    This, in turn, was what made Puppet wait for multiple runs of the agent before
    showing you a change in your manifests under Passenger, but *not* under
    Webrick: Passenger would reuse the same thread for the next request, cache in
    place, while Webrick would create a new thread and (by side-effect) "flush"
    the cache as the compiler expected.
    
    To minimally fix this, with as little change of side-effect as possible, we
    move the cache flush from after compile runs to before compile runs.
    
    This might have minimal memory cost until another compile request runs in the
    same thread, because we cache the data longer, but most models won't cause
    that to be too much trouble.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 805b2878d0b23d76917f5210abe35489f6f84c74
Merge: 6a00289 75e2764
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri May 27 10:12:54 2011 -0700

    Merge branch 'bug/2.6.x/5318-minimal-fix' into 2.6.x

commit 75e2764d15de6cf1dee923019f579f436d5b1587
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri May 27 10:12:34 2011 -0700

    (#5318) Always notice changes to manifests when compiling.
    
    When we are asked to compile a catalog we need to update the set of known
    resource types, along with the node declaration, from the pool of manifests on
    disk.  This is, obviously, a per-environment pool of resource types.
    
    To reduce the scope of the race where an update to those manifest files on
    disk can be updated during a compilation, we tried to cache the set of known
    resources in the current thread at the start of compilation, then flush it
    after compile finished   and used the cache unconditionally if it was set.
    
    Theoretically, this would assure us that we would parse the set of manifests
    once, use them for the entire compile, flush the cache, and then carry on.
    
    Practically, this was enforced as described: flush *after* the compile, assume
    this would mean that it was clear at the start of the next compile.
    
    That presumably worked more or less right until a change was made to push
    extra data into the catalog at the start of the 2.6 series; that made
    serialization of the catalog depend on the pool of known resource types.
    
    When that happened we would reload the cache (and reparse the manifests)
    during serialization, but after compilation ... and leave that in the thread
    cache, so the precondition for the compiler was no longer true.  It would see
    the cache as of the end of the previous compile run, not the start of the next
    compile run.
    
    This, in turn, was what made Puppet wait for multiple runs of the agent before
    showing you a change in your manifests under Passenger, but *not* under
    Webrick: Passenger would reuse the same thread for the next request, cache in
    place, while Webrick would create a new thread and (by side-effect) "flush"
    the cache as the compiler expected.
    
    To minimally fix this, with as little change of side-effect as possible, we
    move the cache flush from after compile runs to before compile runs.
    
    This might have minimal memory cost until another compile request runs in the
    same thread, because we cache the data longer, but most models won't cause
    that to be too much trouble.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 78355f7be66dc134aa774a91a124c30ca3755997
Merge: 3c0483f a5a78a5
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 26 17:09:33 2011 -0700

    Merge branch 'ticket/2.7rc/7557-remove_faces_application' into 2.7rc
    
    * ticket/2.7rc/7557-remove_faces_application:
      (#7557) Remove Faces Application

commit a5a78a52bb2345759f5703554e17e08703bca01e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 26 17:05:28 2011 -0700

    (#7557) Remove Faces Application
    
    It used to be that to list the faces available and their actions and
    options, you had this legacy based face application.  This functionality
    has all been moved into the puppet help face application.
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit 3c0483fad82d3c5650b8c283f134c043e9074649
Merge: 7688706 ea7908b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 26 16:12:09 2011 -0700

    Merge branch 'ticket/2.7rc/maint-faces_docs_spec_fixes' into ticket/2.7rc/maint-doc_changes_without_failures
    
    * ticket/2.7rc/maint-faces_docs_spec_fixes:
      maint: Fix order dependent spec failure for face indirection
      (#7690) Don't blow up when listing terminuses available for faces
      maint: Dedup the loadpath so we don't have to walk it multiple times
      Maint: Fix ellipses for short descriptions
    
    Resolved Conflicts:
    	lib/puppet/interface/documentation.rb

commit ea7908b8d6dc2092b7a7ff4b92452821a3afd86b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 26 15:44:43 2011 -0700

    maint: Fix order dependent spec failure for face indirection
    
    An indirected face is being created in
    spec/unit/application/indirection_base_spec.rb that uses a stubbed out
    indirection.  This stub didn't have a name method defined, which caused
    the documentation_spec.rb, that does checks against every available
    face, to blow up with:
    
        expected no Exception, got #<NoMethodError: undefined method `to_sym' for nil:NilClass>
    
    in lib/puppet/face/indirector/face.rb when listing the indirections for
    the help text.
    
    I toyed with creating a real indirection for the test, but that was
    harder than expected.
    
    Paired-with: Max Martin <max@puppetlabs.com>

commit 2aa9f2fe390c15806cce5532afed2fc7ecf51b8b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 26 14:54:11 2011 -0700

    (#7690) Don't blow up when listing terminuses available for faces
    
    Previously, in order to list the available terminuses for an indirected
    face we loaded all the the terminuses in order to list them.  This meant
    that if a terminus like active_record didn't have the dependencies it
    needed, the documentation would raise errors and not list terminuses.
    
        <Puppet::Error: Could not autoload filename uninitialized constant Object::ActiveRecord>
    
    Now we just list the terminuses available in the load path without
    trying to load them.  The terminus will still raise an error if you try
    to use it without its dependencies being met.
    
    Paired-with: Max Martin <max@puppetlabs.com>

commit 9447cb957b8c01ba7d368baebc1061c3dbfc9399
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 26 14:36:19 2011 -0700

    maint: Dedup the loadpath so we don't have to walk it multiple times
    
    If the user's path has duplicate entries, we end up looking at them
    multiple times.  This has bitten people in the past in that if you get a
    lot of duplication it can make autloading a lot slower.  Really the user
    shouldn't be duplicating their path, but since we can't control that,
    this is a safe fix to prevent them from having autoload slowness.
    
    Paired-with: Max Martin <max@puppetlabs.com>

commit 149a12f882252150ef9d642c6cf0345306f772ee
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu May 26 10:32:22 2011 -0700

    Maint: Fix ellipses for short descriptions
    
    Previously, we were adding ellipsis to any short_description, which was
    misleading; they were only necessary when we were truncating in the _middle_ of
    a paragraph.
    
    This commit changes the behavior, and updates the tests to show when we expect
    ellipsis.
    
    Paired-with: Matt Robinson <matt@puppetlabs.com>

commit 76887064b7691eb6f6751739df5bc83beee76a80
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue May 24 10:22:00 2011 -0700

    (#7563) DRY: Remove indirector boilerplate from individual faces
    
    Termini lists are now being generated in the help templates. This commit
    removes the hardcoded lists from each of the affected faces.

commit 4662f4d0aa57a8792b824338e82e89ca4ddb0960
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri May 20 18:38:13 2011 -0700

    (#7564) Finish templates
    
    This is a rebase of the following commits:
    
    * (#7563) Add a template for manpages
    
    In order to generate manpages in a reasonably maintainable way, we need
    to format text from the Faces help API for use with Ronn
    (https://github.com/rtomayko/ronn/).
    
    This commit adds a man template to the help templates folder; it has
    been verified to generate Ronn-friendly input text. It isn't currently
    called by any applications, but can be demonstrated by exchanging it for
    face.erb.
    
    * (#7634) Change ERB trim mode used in the Faces help API
    
    <%= something -%> tags (note the minus) are unavoidably necessary at at
    least one point in the Faces help templates. ERB objects instantiated
    with the % trim mode will blow up horribly whenever one of these tags
    appears.
    
    This commit changes the trim mode to `-` and refactors all help
    templates accordingly.
    
    * (#7563) Refactor short help templates
    
    This commit attempts to bring the short face and action help templates closer to the goals of fitting cleanly on one screen, fitting the prevailing *nix aesthetic, and being useful without overwhelming the user.

commit 331d8128288f8c7bb3645149ff452372c0866429
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed May 18 16:20:05 2011 -0700

    (#7561) Complete help text for all faces and actions
    
    Faces help output relies on input from the documentation methods in each
    of the faces to be documented. This commit calls those methods in each of our
    faces, with varying levels of detail depending on their complexity.

commit 069a6b8e645255530abf308cfeeed1d7650211db
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon May 23 17:26:59 2011 -0700

    Maint: Add ellipsis to generated short_descriptions.
    
    Auto-generated short descriptions cut off at five lines with no
    indication that they are truncated.
    
    This commit adds ellipsis in brackets to indicate incompleteness.

commit ebc642b2141cfed7d10a64ff0bb67a417f5f37be
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu May 19 12:04:59 2011 -0700

    (#6962) Add "arguments" method to help API
    
    Since some actions take arguments and some do not, action synopses were
    incomplete and ambiguous.
    
    This commit adds a method for explicitly declaring what argument(s) an
    action takes, and places the arguments at the appropriate spot in the
    action's synopsis. By convention, individual arguments should be wrapped
    in angle brackets.

commit d0592fabd27472ba0f5586393eff20e536f8766a
Merge: 59e6be3 bc71266
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 26 15:49:06 2011 -0700

    Merge branch 'ticket/2.7.x/maint-faces_docs_spec_fixes' into 2.7.x
    
    * ticket/2.7.x/maint-faces_docs_spec_fixes:
      maint: Fix order dependent spec failure for face indirection
      (#7690) Don't blow up when listing terminuses available for faces
      maint: Dedup the loadpath so we don't have to walk it multiple times

commit bc71266f4f76439bc7fc5ba5b78895e801cf8736
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 26 15:44:43 2011 -0700

    maint: Fix order dependent spec failure for face indirection
    
    An indirected face is being created in
    spec/unit/application/indirection_base_spec.rb that uses a stubbed out
    indirection.  This stub didn't have a name method defined, which caused
    the documentation_spec.rb, that does checks against every available
    face, to blow up with:
    
        expected no Exception, got #<NoMethodError: undefined method `to_sym' for nil:NilClass>
    
    in lib/puppet/face/indirector/face.rb when listing the indirections for
    the help text.
    
    I toyed with creating a real indirection for the test, but that was
    harder than expected.
    
    Paired-with: Max Martin <max@puppetlabs.com>

commit 654783564afd082c2e3e436cdf1bc3dc60308497
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 26 14:54:11 2011 -0700

    (#7690) Don't blow up when listing terminuses available for faces
    
    Previously, in order to list the available terminuses for an indirected
    face we loaded all the the terminuses in order to list them.  This meant
    that if a terminus like active_record didn't have the dependencies it
    needed, the documentation would raise errors and not list terminuses.
    
        <Puppet::Error: Could not autoload filename uninitialized constant Object::ActiveRecord>
    
    Now we just list the terminuses available in the load path without
    trying to load them.  The terminus will still raise an error if you try
    to use it without its dependencies being met.
    
    Paired-with: Max Martin <max@puppetlabs.com>

commit 0bcbca53f3248137de517a4942e4db70ab06e296
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 26 14:36:19 2011 -0700

    maint: Dedup the loadpath so we don't have to walk it multiple times
    
    If the user's path has duplicate entries, we end up looking at them
    multiple times.  This has bitten people in the past in that if you get a
    lot of duplication it can make autloading a lot slower.  Really the user
    shouldn't be duplicating their path, but since we can't control that,
    this is a safe fix to prevent them from having autoload slowness.
    
    Paired-with: Max Martin <max@puppetlabs.com>

commit 59e6be30f24dfb1011fbb242029b5ff61e19514c
Merge: 996dc07 2ebd2d9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu May 26 14:05:13 2011 -0700

    Merge branch '2.7rc' into 2.7.x

commit 6a002894d3fb5fc59cae92fc4e4ae510e1e584e9
Merge: d7ce922 4a5e99d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu May 26 14:01:33 2011 -0700

    Merge branch 'ticket/2.6.x/7681' into 2.6.x

commit 4a5e99d95ab80d06abf408c7e8f437fb2e90dc47
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu May 26 13:44:23 2011 -0700

    (#7681) Add an acceptance test for resource refs with array variables
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-by: Dominic Maraglia <dominic@puppetlabs.com>

commit 2ebd2d9eda3c556244cda1ae62da95965a92d79b
Merge: 76ad2bb 163ff6b
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu May 26 13:51:56 2011 -0700

    Merge branch 'ticket/2.7rc/7681' into 2.7rc

commit 163ff6b39120815d52811b20ef5f7f46f2fd950f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu May 26 13:44:23 2011 -0700

    (#7681) Add an acceptance test for resource refs with array variables
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-by: Dominic Maraglia <dominic@puppetlabs.com>

commit 9f6dec267467334dcc5e1157b9dce57a325cbb73
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu May 26 13:32:11 2011 -0700

    (#7681) Allow array variables as resource references
    
    The commit df088c9ba16dce50c17a79920c1ac186db67b9e9 introduced a regression
    where
    
      $files = ["/tmp/one", "/tmp/two"]
      file { "/tmp/one": content => "one", }
      file { "/tmp/two": content => "two", }
      file { "/tmp/three":
        content => "three",
        require => File[$files],
      }
    
    no longer worked.  File[$files] was concatenating the elements of $files to
    create a single title, instead of expanding to multiple File dependencies.
    
    Since resource reference titles are implicitly wrapped in an array, if one of
    the elements of that array is a variable containing an array, the list of
    titles is a nested array. Prior to the change causing the regression, we would
    flatten arrays when evaluating them, under certain circumstances.  We no longer
    ever flatten AST arrays when evaluating them, so anywhere that we really do
    need a flattened array, we have to manually flatten it.
    
    ResourceReference expects its list of titles to be a single, flat list of
    titles, so we have to make it so.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>

commit 996dc076e9ca61613f80fc79f0ffe667b14d1ebb
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu May 26 10:32:22 2011 -0700

    Maint: Fix ellipses for short descriptions
    
    Previously, we were adding ellipsis to any short_description, which was
    misleading; they were only necessary when we were truncating in the _middle_ of
    a paragraph.
    
    This commit changes the behavior, and updates the tests to show when we expect
    ellipsis.
    
    Paired-with: Matt Robinson <matt@puppetlabs.com>

commit 6a1b6e0656c6b3939e48bcd2f558deb343bddb7b
Merge: f50da8b 53af6f3
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu May 26 10:07:48 2011 -0700

    Merge branch 'ticket/2.7.x/7561-help_for_all_faces' into 2.7.x

commit 53af6f3b97af07f77cb084bad179a37d281cf8d6
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue May 24 10:22:00 2011 -0700

    (#7563) DRY: Remove indirector boilerplate from individual faces
    
    Termini lists are now being generated in the help templates. This commit
    removes the hardcoded lists from each of the affected faces.

commit 74aff59532e83453df7e90dedd42226811e9d19c
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri May 20 18:38:13 2011 -0700

    (#7564) Finish templates
    
    This is a rebase of the following commits:
    
    * (#7563) Add a template for manpages
    
    In order to generate manpages in a reasonably maintainable way, we need
    to format text from the Faces help API for use with Ronn
    (https://github.com/rtomayko/ronn/).
    
    This commit adds a man template to the help templates folder; it has
    been verified to generate Ronn-friendly input text. It isn't currently
    called by any applications, but can be demonstrated by exchanging it for
    face.erb.
    
    * (#7634) Change ERB trim mode used in the Faces help API
    
    <%= something -%> tags (note the minus) are unavoidably necessary at at
    least one point in the Faces help templates. ERB objects instantiated
    with the % trim mode will blow up horribly whenever one of these tags
    appears.
    
    This commit changes the trim mode to `-` and refactors all help
    templates accordingly.
    
    * (#7563) Refactor short help templates
    
    This commit attempts to bring the short face and action help templates closer to the goals of fitting cleanly on one screen, fitting the prevailing *nix aesthetic, and being useful without overwhelming the user.

commit 30263333cd30e40468d02e5cc77a0253415cf3e2
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed May 18 16:20:05 2011 -0700

    (#7561) Complete help text for all faces and actions
    
    Faces help output relies on input from the documentation methods in each
    of the faces to be documented. This commit calls those methods in each of our
    faces, with varying levels of detail depending on their complexity.

commit 13e473ed3c2dc53772e75bcb9822b725cf9f8a79
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon May 23 17:26:59 2011 -0700

    Maint: Add ellipsis to generated short_descriptions.
    
    Auto-generated short descriptions cut off at five lines with no
    indication that they are truncated.
    
    This commit adds ellipsis in brackets to indicate incompleteness.

commit 89d447bf425c98407e139eb2a9737906fd45e369
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu May 19 12:04:59 2011 -0700

    (#6962) Add "arguments" method to help API
    
    Since some actions take arguments and some do not, action synopses were
    incomplete and ambiguous.
    
    This commit adds a method for explicitly declaring what argument(s) an
    action takes, and places the arguments at the appropriate spot in the
    action's synopsis. By convention, individual arguments should be wrapped
    in angle brackets.

commit 520cbc0292ec0cf75b6871bb0a4bc12bce506bb0
Merge: 4d6703c 78657fc
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed May 25 14:25:32 2011 -0700

    Merge branch '2.7.x'
    
    Conflicts:
    	acceptance/tests/ticket_7117_broke_env_criteria_authconf.rb

commit 78657fcd7f779af475dad8df9fe954b39c041fb4
Merge: f50da8b d7ce922
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed May 25 14:24:14 2011 -0700

    Merge branch '2.6.x' into 2.7.x

commit 4d6703ca2eb295975d4dd5f8244af3313e959872
Merge: fb0ddf2 646919e
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Tue May 24 17:01:32 2011 -0700

    Merge branch 'test/2.6.x/4123'

commit f50da8bec7280a2816d9d967152ff83a2e888374
Merge: 9145569 646919e
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Tue May 24 16:54:39 2011 -0700

    Merge branch 'test/2.6.x/4123' into 2.7.x

commit d7ce9226badc3ac07febe2baf14e50ef8a2cc391
Merge: cbc123c 646919e
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Tue May 24 16:50:41 2011 -0700

    Merge branch 'test/2.6.x/4123' into 2.6.x

commit 646919e5ec1fd5c3071711c091994dcdfcf8bcb5
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Tue May 24 16:41:38 2011 -0700

    (4123) Fix test for 4123/4 on old egrep in cent4
    
    Older versions of egrep do not support the character class
    "\s". Changed:
    puppet resource service | egrep -B1 "ensure\s*=>.*'running"
    to:
    puppet resource service | egrep -B1 "ensure.*=>.*'running"

commit fb0ddf2a85ea7045cff116191ba8ec78e0d976cf
Merge: 2a86215 b101804
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Tue May 24 11:29:13 2011 -0700

    Merge branch 'tests/master/7117'

commit b101804f5825e9f69a690f9a974222dd7b83a330
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Tue May 24 11:28:40 2011 -0700

    add puppet master polling step for ticket 7117
    
    The test for ticket 7117 producedes spurious failures due to timing:
    a curl command is executed from an agent to a freshly started
    Puppet Master; if the Puppet Master is not ready to accept the connection
    the test will fail.  Added an until loop that issues  simple curl
    command to see if the Puppet Master is up and ready

commit 9145569f8a11216b9b8f99c1b2dd12da832cf9d4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue May 24 10:11:50 2011 -0700

    maint: Remove reliance on system clock from schedule spec tests
    
    Several schedule spec tests made assumptions about the system clock,
    which resulted in intermittent failures.
    
    Also found some issues with schedule ranges, filed it as bug #7369 and
    created a pending schedule test for it.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 2a86215498b20155cb588d018c0e1df0a8102f3f
Merge: 7f826bf 107b38a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue May 24 09:54:31 2011 -0700

    Merge branch 'ticket/master/maint-ruby19_fix'
    
    * ticket/master/maint-ruby19_fix:
      maint: Fix pacman provider to work with Ruby 1.9

commit 107b38a94f8b4e4a0fcca4879a167ab4c955fe4d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue May 24 09:31:39 2011 -0700

    maint: Fix pacman provider to work with Ruby 1.9
    
    Ruby 1.9 doesn't allow the lambda to walk up the directory structure to
    require the spec helper This is the same issue as with commit:
    f6da3339f59bbd9243a03dc1e417b1fed7955c7e
    
    Also, you can't call each on a string in Ruby 1.9 directly since it
    doesn't implicitly do a split on \n like it did in older Rubies, but
    each_line works all the way back to 1.8.5
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 6a9408e8431c2dd27434d02ba747b7ff476d2610
Merge: 8eea3f5 4645c99
Author: Dominic Maraglia <dominic@puppetlabs.com>
Date:   Tue May 24 09:21:06 2011 -0700

    Merge branch 'tests/2.7.x/7117' into 2.7.x

commit 7f826bfc1352ef84b2e990874c6285c5aca66bac
Merge: 25b9675 e0b63a2
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon May 23 23:16:51 2011 -0700

    Merge branch '2.7.x'
    
    * 2.7.x:
      (#7502) Fixed parser spec for ruby 1.8.5
      (#7507) Add more 1.9 filters
      (#6395) Add extpuppet help, eval, and interfaces
      maint: move trap call to Signal so we can stub it for specs
      Updated CHANGELOG for 2.7.0rc3
      (#7259) Remove ActiveRecord requirement from indirector face spec
      (#7259) Do not try to load all Terminus classes when configuring the Indirector
      Adding a sleep state post starting master

commit 8eea3f5481f429a415159a716b7a8f60f3c9be5a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon May 23 06:19:28 2011 +1000

    Added the vcsrepo type and providers to the core

commit 25b967559dfa39eb094008c7a3952c4ee885530b
Merge: b87a1de 8f0cecf
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon May 23 17:51:45 2011 +1000

    Merge branch 'vcsrepo'
    
    * vcsrepo:
      Added the vcsrepo type and providers to the core

commit 8f0cecfb46aface34d5189e60e924c9bfa7f4b13
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon May 23 06:19:28 2011 +1000

    Added the vcsrepo type and providers to the core

commit 4645c99166f415b87ac1bfd01caebdcbeb65d19f
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Fri May 20 15:45:57 2011 -0700

    add puppet master polling step for ticket 7117
    
    The test for ticket 7117 producedes spurious failures due to timing:
    a curl command is executed from an agent to a freshly started
    Puppet Master; if the Puppet Master is not ready to accept the connection
    the test will fail.  Added an until loop that issues  simple curl
    command to see if the Puppet Master is up and ready

commit 76ad2bb2ea14a915344acd19da2c8a1edb3067b0
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri May 20 12:17:41 2011 -0700

    (#7507) Add exclude filter for ruby 1.9 spec failures
    
    Exclude spec test for multiple writer processes as this fails
    intermittently on ruby 1.9.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 58f938bae058fbae8c3f22d229ffd755f7447d6d
Merge: e0b63a2 17e7223
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri May 20 13:53:00 2011 -0700

    Merge branch 'ticket/2.7.x/7507' into 2.7.x
    
    * ticket/2.7.x/7507:
      (#7507) Add exclude filter for ruby 1.9 spec failures

commit 17e7223526f3ec0b7eefc42e48fc215f5e1717c4
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri May 20 12:17:41 2011 -0700

    (#7507) Add exclude filter for ruby 1.9 spec failures
    
    Exclude spec test for multiple writer processes as this fails
    intermittently on ruby 1.9.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit e0b63a27382b577ce8af497238f702193ad15795
Merge: eeeab02 181098b
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri May 20 10:55:23 2011 -0700

    Merge branch 'ticket/2.7.x/7507' into 2.7.x
    
    * ticket/2.7.x/7507:
      (#7502) Fixed parser spec for ruby 1.8.5
      (#7507) Add more 1.9 filters

commit 181098ba045ee6731540a9d9d9517cd3a5c272e8
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri May 20 10:46:46 2011 -0700

    (#7502) Fixed parser spec for ruby 1.8.5
    
    The first method is not available on Enumerable in ruby 1.8.5, so when
    it is mixed into ASTArray, you can't call first.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 9c3bedd6b4d53584967e42a7fd07441252b56f6e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Fri May 20 10:42:46 2011 -0700

    (#7507) Add more 1.9 filters
    
    Additionally we fixed a scoping issue with the File type.
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit eeeab02fd97a625ec0e21ecd5d0ed7f0067027ef
Merge: be2f208 99bf07e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 19 21:18:55 2011 -0700

    Merge branch '2.7.next' into 2.7.x
    
    * 2.7.next: (42 commits)
      (#6395) Add extpuppet help, eval, and interfaces
      Adding a sleep state post starting master
      maint: fix spec_helper inclusions again.
      (#7523) Refactor the grammar to reduce duplication
      (#7114) Fix specs for ssh authorized key parsed provider
      (#7114) Target returns correct value
      (#7114) Add integration tests for authorized_key
      (#7114) Improve unit tests for ssh_authorized_key
      (#7114) Improve value validation for authorized_key
      (#7300) Fix instances method of mount provider
      (#7259) Remove ActiveRecord requirement from indirector face spec
      (#7259) Do not try to load all Terminus classes when configuring the Indirector
      (#3836) External nodes should only capture stdout
      Revert "(#7220) Add the ability to "inherit" options."
      maint: sync 'authconfig' to 'rest_authconfig' setting
      adding test for ticket 7139
      (#7139) Accept '/' as a valid path in filesets
      (#7300) Add specs for the mount provider
      case seems needless here as there is only two opts, also the rest of the file seems to use if so this should make things more consistant
      (#6845) Mount writes incorrect vfstab entries
      ...

commit 99bf07e76bab47760b9eb3dc42f08582c568388f
Merge: 0c9439d f037662
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Thu May 19 16:50:12 2011 -0700

    Merge branch 'feature/2.7.next/6395_envpuppet' into 2.7.next
    
    * feature/2.7.next/6395_envpuppet:
      (#6395) Add extpuppet help, eval, and interfaces

commit f037662edfd35a9b0f17cab45ba30753c3959a0c
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Mon Feb 21 15:34:31 2011 -0500

    (#6395) Add extpuppet help, eval, and interfaces
    
    This patch add three features to the envpuppet helper script.
    
    First, if --help is passed as the first argument, a helpful message is
    printed.
    
    Second, if ENVPUPPET_BLEEDING=true when envpuppet is executed,
    additional repositories are enabled.  The only addition at this time is
    puppet-interfaces, which heavily modifies the behavior of Puppet itself
    and may or may not be desired.
    
    Third, if no arguments are passed to the script, bourne compatible shell
    statements are printed to STDOUT which may be directly evaluated in the
    current shell.  This is to help people who prefer to directly set
    RUBYLIB and PATH in their development workflows, which I've noticed to
    be the case for many people.
    
    For example:
    
        eval $(envpuppet)
    
    Signed-off-by: Jeff McCune <jeff@puppetlabs.com>
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit be2f20899d76621db4cf574d074f0ae89777272e
Merge: fc0add1 3682025
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 19 10:47:07 2011 -0700

    Merge branch 'ticket/2.7.x/maint-stub_trap' into 2.7.x
    
    * ticket/2.7.x/maint-stub_trap:
      maint: move trap call to Signal so we can stub it for specs

commit 3682025065c431c750894dd9872f18a1f0b073ab
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu May 19 10:29:51 2011 -0700

    maint: move trap call to Signal so we can stub it for specs
    
    Also removed some monkey patching on Signal that would have
    theoretically done this without having to explicitly call trap on Signal
    in order to stub it, but it's not working.
    
    This allows us to ctrl+c (send SIGINT) in the middle of a spec run.
    
    Paired-with: Josh Cooper <josh@puppetlabs.com>

commit 0c9439d1ff0534edd69ff8581ad2085ca6a41b11
Merge: fd6f5b2 fc0add1
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed May 18 15:58:33 2011 -0700

    Merge branch '2.7.x' into 2.7.next

commit fc0add14616f9ddf54ba2dd449bfd0acc03d7ed7
Author: Michael Stahnke <stahnma@puppetlabs.com>
Date:   Wed May 18 15:55:56 2011 -0700

    Updated CHANGELOG for 2.7.0rc3

commit a622c95776d008c7aee64b553bdf127c86caed6f
Merge: 3378841 83c7563
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed May 18 15:45:19 2011 -0700

    Merge branch 'tickets/2.7.x/7259' into 2.7.x

commit 83c756367ef4bfc404b2395362f796c2c942b053
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon May 16 09:52:04 2011 -0700

    (#7259) Remove ActiveRecord requirement from indirector face spec
    
    "should be able to return a list of terminuses for a given
    indirection" was calling Puppet::Indirector::Face.terminus_classes,
    which is just a thin wrapper around
    Puppet::Indirector::Terminus.terminus_classes, which would attempt to
    load all Terminus classes.  This would cause problems if not all of
    the prerequisites for all of the Terminus classes were installed (For
    example: ActiveRecord).
    
    Now we only test that the thin wrapper appropriately munges the output
    from Puppet::Indirector::Terminus.terminus_classes, since the method
    being wrapped should have its own tests for the behavior that was
    being tested originally.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit aad2fd780b5134af4f5385c38c15a72c28697bd0
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon May 16 09:46:22 2011 -0700

    (#7259) Do not try to load all Terminus classes when configuring the Indirector
    
    When configuring the Indirector routes, we should only try loading the
    Terminus classes that are referenced by the configuration.
    
    Previously, we were loading all Terminus classes, which would cause
    errors if we didn't have all of the prerequisites for all of them,
    even if the ones with missing prerequisites weren't being used by the
    configuration.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit b87a1dea704ed981f2f0af728afac2c63e87b5a8
Merge: b63fd84 7941336
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed May 18 15:36:36 2011 -0700

    Merge branch 'next'

commit 7941336d6b91945c02bc6e79f72720f6048f4e64
Merge: c81f5c6 fd6f5b2
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed May 18 15:32:53 2011 -0700

    Merge branch '2.7.next' into next

commit fd6f5b2478efa1864c090545d7ff063b74e0956c
Merge: 4d4d587 cbc123c
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed May 18 15:17:03 2011 -0700

    Merge branch '2.6.x' into 2.7.next

commit cbc123c2641f1c51a71710ea5dac5f6114063d34
Merge: 1f438da 25eab1a
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed May 18 15:16:26 2011 -0700

    Merge branch '2.6.next' into 2.6.x

commit 4d4d587db224544fe4d4d04351a14ed19039e1d3
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Wed May 18 12:14:27 2011 -0700

    Adding a sleep state post starting master
    
    Occasional spurious errors seen when running this test -- curl
    reports an SSL protocol error; I suspect this is actually a timing
    issue related to starting up the master and not being
    ready to to accecpt connections.

commit c81f5c6e6cdb4d7f8bef6814f63f82acbdbdbe33
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Wed May 18 12:12:35 2011 -0700

    Adding a sleep state post starting master
    
    Occasional spurious errors seen when running this test -- curl
    reports an SSL protocol error; I suspect this is actually a timing
    issue related to starting up the master and not being
    ready to to accecpt connections.

commit 3378841a230cb467173eed9ed5d3aaa6cd08b2fc
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Tue May 17 15:56:30 2011 -0700

    Adding a sleep state post starting master
    
    Occasional spurious errors seen when running this test -- curl
    reports an SSL protocol error; I suspect this is actually a timing
    issue related to starting up the master and not being
    ready to to accecpt connections.

commit 390f9fe6112304aed07acc6ffdeb0114f246fac3
Merge: d1cc24f 3ac7aed
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue May 17 15:32:42 2011 -0700

    Merge branch 'ticket/2.7.next/7523' into 2.7.next

commit d1cc24f6e7eb8ea5b29f0611eaa8246f9d7d4d25
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 17 15:23:00 2011 -0700

    maint: fix spec_helper inclusions again.
    
    We got rid of the '../../spec_helper' style requires, but a few of them snuck
    back in in recent changes.  This purges them out, replaced with the header:
    
        #!/usr/bin/env rspec
        require 'spec_helper'
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit b63fd841a188f9b21aed40c7b2f046a144fd37c9
Merge: c8215c5 51855e7
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue May 17 15:07:18 2011 -0700

    Merge branch 'next'

commit 51855e7f17877871aa8ec4f1ed7226c1d95ce66b
Merge: 3b4fd7a f9e44f0
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue May 17 15:01:26 2011 -0700

    Merge branch '2.7.next' into next

commit 3ac7aede7233e0554077f7abbf6e561960a05e4d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu May 12 15:40:08 2011 -0700

    (#7523) Refactor the grammar to reduce duplication
    
    This commit unifies some paths in the grammar, which had previously been
    duplicated to avoid shift/reduce conflicts. Merging these paths together and
    separating only the conflicting structures leads to a cleaner grammar, with
    fewer holes.
    
    Several bugs are fixed as a result:
      (#3129) Nested class names beginning with numbers work correctly
      (#5268) Hyphens in class names work correctly
      (#5817) Hashes and arrays can now be passed to functions (hashes require parentheses)
    
    Additionally, expressions are now legal in most places where they would make
    sense, when previously only bare rvalues were allowed.
    
    Paired-With: Markus Roberts
    Reviewed-By: Matt Robinson

commit f9e44f041b3fdc120b1c78554c35c83f7517152e
Merge: 99d437d c8b294a
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue May 17 14:50:40 2011 -0700

    Merge branch '2.7.x' into 2.7.next

commit c8b294a0b0a1fc91a64c0a1ac3bab3b2aec92faf
Merge: 5457c70 d972cea
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue May 17 13:03:30 2011 -0700

    Merge branch 'tickets/2.7.x/7507' into 2.7.x

commit d972ceaa8a799aa22dddbb81c3e0115bc94c52d4
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue May 17 13:00:48 2011 -0700

    (#7507) Add more filters for Ruby 1.9 spec failures
    
    Paired-With: Matt Robinson

commit 5457c70a66ef95482391e39e43f1fa99ac83e721
Merge: 009c961 9da1454
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue May 17 10:16:03 2011 -0700

    Merge branch 'ticket/2.7.x/7507-filter_19_failures' into 2.7.x
    
    * ticket/2.7.x/7507-filter_19_failures:
      (#7507) Add ability to filter Ruby 1.9 spec failures
      (#7507) Fix when_invoked action specs in Ruby 1.9

commit 9da1454e71b8330e929ac5616eefa44388c90832
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon May 16 16:10:21 2011 -0700

    (#7507) Add ability to filter Ruby 1.9 spec failures
    
    By running:
    
        rspec spec --tag ~@fails_on_ruby_1.9.2
    
    We can now just run the specs that pass under Ruby 1.9.  Obviously in
    the long term we want to have all the specs passing, but until then we
    need notification when we regress.  From now on new code will be
    required to pass under Ruby 1.9, and Jenkins will give us email
    notification if it doesn't or if we break something that was already
    working.
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit 47e4ac948504aa6fbd3487ca1b1e19f3c8884a79
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon May 16 16:53:28 2011 -0700

    (#7507) Fix when_invoked action specs in Ruby 1.9
    
    Ruby 1.9 is strict about argument arity for methods that are
    metaprogrammatically defined.  A ton of specs that were setting up
    when_invoked didn't pass options even though they should have been.
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit 009c961ec6e71621cd984b98a5d4e3c855dbaee4
Merge: 797da04 809b6fe
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon May 16 17:22:33 2011 -0700

    Merge branch 'ticket/2.7.x/7297' into 2.7.x

commit 809b6fe5b105cefca34149af0a03d6445f5236fc
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon May 16 17:17:33 2011 -0700

    (#7297) Fix Puppet::Resource#to_manifest in Ruby 1.9
    
    This method was relying on the implicit join in Ruby 1.8's Array#to_s, eg.
    [1,2,3].to_s => "123". The behavior in Ruby 1.9 is more akin to Array#inspect,
    eg. [1,2,3].to_s => "[1, 2, 3]". Since the array we were building was lines
    to be printed, the latter behavior is incorrect. So we just join into a
    single string, which prints consistently in all versions of Ruby.
    
    Paired-With: Josh Cooper
    Original patch by Aria Stewart <aredridel@nbtsc.org>

commit 797da049bf8f90e110f27ecdd0f2aadd24392030
Merge: 8f58db9 3197e21
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon May 16 17:07:11 2011 -0700

    Merge branch 'ticket/2.7.x/7298' into 2.7.x

commit 3197e21069e797faadc8ee1716207a4cf98d6eee
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon May 16 17:03:42 2011 -0700

    (#7298) require 'English' to provide $CHILD_STATUS in Ruby 1.9
    
    This had been coming from 'cgi', but in Ruby 1.9, cgi no longer requires
    English. Since we use $CHILD_STATUS when execing, we need to have it available,
    so require it manually. This also provides the other named special globals,
    should we choose to use them.
    
    Paired-With: Josh Cooper

commit 99d437d2bbc2339f092304715ec562fbbcb0a50c
Merge: 83fa8cf d22b130
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon May 16 16:34:39 2011 -0700

    Merge branch 'ticket/2.7.next/7114' into 2.7.next

commit d22b1303de9a0dbc2c5b887eab0c9e146fcf13c6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon May 16 16:32:18 2011 -0700

    (#7114) Fix specs for ssh authorized key parsed provider
    
    These tests were unnecessarily creating a stub resource, as well as failing to
    re-initvars on the provider before each test. This led to test ordering
    failures, and incompatibilities with the other commits in this series. Now we
    use a real resource, and properly reinitialize before each test.
    
    Paired-With: Josh Cooper

commit 551cb3e5ee6c1ef4218adcebf04004c50fe4119f
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Apr 23 10:30:09 2011 +0200

    (#7114) Target returns correct value
    
    Fix the ssh_authorized_key parsedfile provider to return the current
    target value instead of the should value.
    
    Without this change puppet always thinks that the target property is in
    sync and thus will never move one key to the correct file.
    
    Reviewed-By: Nick Lewis
    Reviewed-By: Josh Cooper

commit 15c6fc789494f93823bf566562b8da654a28a65e
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu Apr 14 07:51:26 2011 +0200

    (#7114) Add integration tests for authorized_key
    
    Add tests to show the issue that one key is not moved from one keyfile
    to another keyfile if target is not in sync.
    
    Reviewed-By: Nick Lewis
    Reviewed-By: Josh Cooper

commit a5ac82ab7ea6a72114872c9ad8a23e1c3b70e9d4
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Tue Apr 12 00:49:50 2011 +0200

    (#7114) Improve unit tests for ssh_authorized_key
    
    Add tests to check if the type supports valid values for all the
    properties. Also check if the type rejects values that are invalid.
    
    Reviewed-By: Nick Lewis
    Reviewed-By: Josh Cooper

commit 1c7f0c3530846d9935bbc13cda33430cf5632975
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Tue Apr 12 00:48:26 2011 +0200

    (#7114) Improve value validation for authorized_key
    
    Whitespaces in any of the properties can lead to incorrect entries in
    the authorized_keys file.
    
    Reviewed-By: Nick Lewis
    Reviewed-By: Josh Cooper

commit 8f58db9188359ab8c8988e56b1abf0ec3bbc1303
Merge: 61d7322 48923af
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon May 16 15:14:23 2011 -0700

    Merge branch 'ticket/2.7.x/7291-ruby19-fixes' into 2.7.x
    
    * ticket/2.7.x/7291-ruby19-fixes:
      (#7291) Fix issues with instance_methods in Ruby 1.9
      (#7291) Fixed ascii problem with Ruby 1.9.2
      (#7291) Fix Ruby 1.9 face failures
      (#7291) The 'script' version of actions needs options argument

commit 48923af0954e93b5e063e4934809779b4f6cf690
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon May 16 14:33:58 2011 -0700

    (#7291) Fix issues with instance_methods in Ruby 1.9
    
    instance_methods in Ruby 1.8.7 returns an array of strings, but returns
    an array of symbols in 1.9.2.  This manifested itself when running the
    tests because in 1.9.2 we were trying to call sub on a sybmol.  The
    original proposed solution was to monkey patch symbols to have a sub
    method, but this didn't deal with the real issue of need to check
    whether a method was defined, and actually made it worse.
    
    Turns out that checking for the presence of a method in an array that
    may contain symbols and may contain strings is better done by just
    calling method_defined? instead.
    
    This patch addresses all the places ack turned up the code doing this
    include? check instead of directly calling method_defined?.
    
    Thanks to Alex Sharp ajsharp@gmail.com for pointing out the Ruby 1.9
    problems and working toward a solution.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 68065ff4bb09f90ecfc3d7a71197133d78f3eb3d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Sun May 15 22:21:29 2011 -0700

    (#7291) Fixed ascii problem with Ruby 1.9.2
    
    As with the previous commit, there was a problem loading a face because
    Ruby 1.9.2 doesn't like using non-standard ascii characters without
    declaring the encoding at the top of the file.
    
    SyntaxError Exception: /Users/matthewrobinson/work/puppet/lib/puppet/face/resource.rb:10:
    invalid multibyte char (US-ASCII)
    
    Rather than declare the encoding to allow the French word, I've
    translated it (after having to look it up myself).
    
    Reviewed-by: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 1abb7c086f2db11e986d2f57f2e5e12f16bd5180
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Sun May 15 21:10:34 2011 -0700

    (#7291) Fix Ruby 1.9 face failures
    
    The certificate face wasn't being loaded, but it wasn't clear from the
    test failure why:
    
        lib/puppet/interface.rb:61:in `[]': Could not find Puppet Face
        :certificate (Puppet::Error)
    
    The problem is that when the certificate face is required you get:
    
        SyntaxError Exception:
        /Users/matthewrobinson/work/puppet/lib/puppet/face/certificate.rb:11:
        invalid multibyte char (US-ASCII)
    
    However this error is caught and logged, but then ignored.  This
    behavior was a decision in #7314 and is currently under review.
    
    A space character in the description was ASCII 160 instead of the typical ASCII 32
    
    Reviewed-by: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 615946619b7121ab724fac1a3d78b8f4072b867d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri May 13 16:29:47 2011 -0700

    (#7291) The 'script' version of actions needs options argument
    
    Ruby 1.9 is stricter about arity for for arguments passed as a block.  A
    test case just hadn't been updated to take this into account for Face
    scripts (a simpler form of action), which isn't surprising since script
    isn't used anywhere in the code, which makes it a prime candidate for
    removal as far as I'm concerned, but apparently Luke wants it in there.
    
    Reviewed-by: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 83fa8cf03133174d7182adee6f34efc6ba15d6b3
Merge: 2705a04 0b8ebac
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon May 16 14:57:52 2011 -0700

    Merge branch 'ticket/2.7.x/7300' into 2.7.next

commit 0b8ebaccfef829856720c29c3bc00c042a515c71
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun May 1 15:22:17 2011 +0200

    (#7300) Fix instances method of mount provider
    
    The instance method now behaves like the prefetch method: After parsing
    /etc/(v)fstab run mount to update the ensure state from either
    :unmounted to :mounted and from :absent to :ghost
    
    Reviewed-By: Nick Lewis
    Reviewed-By: Josh Cooper

commit 2705a041f050a74cd7d11922c9b67ff747c1344f
Merge: 4b7afaa c8775f9
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon May 16 10:34:03 2011 -0700

    Merge branch 'tickets/2.7.x/7259-make-active-record-test-requirement-optional' into 2.7.next
    
    * tickets/2.7.x/7259-make-active-record-test-requirement-optional:
      (#7259) Remove ActiveRecord requirement from indirector face spec
      (#7259) Do not try to load all Terminus classes when configuring the Indirector

commit 3b4fd7a2a44873d3dd4afb882a381a2218e8a0e9
Merge: a8e4df7 1dc662a
Author: Max Martin <max@puppetlabs.com>
Date:   Mon May 16 10:29:11 2011 -0700

    Merge branch 'ticket/next/1853-pacman-provider' into next
    
    * ticket/next/1853-pacman-provider:
      (#1853) Pacman package provider
      (#1853) Pacman package provider

commit 1dc662a0988fee83c92d2d46462f0662710ce7ad
Author: Paul Boyd <boyd.paul2@gmail.com>
Date:   Sat May 14 08:08:47 2011 -0400

    (#1853) Pacman package provider
    
    Stub the command method, so it doesn't give an error.

commit 6bb2a85a2d1bfdf0fd3fb09339c4b98c627610bf
Author: Paul Boyd <boyd.paul2@gmail.com>
Date:   Wed May 11 21:21:38 2011 -0400

    (#1853) Pacman package provider
    
    Adds support for use Archlinux's pacman package manager in Puppet.
    
    Originally written by Miah Johnson, with bug fixes from Thomas Hatch and
    myself.

commit c8775f9c5caa883ab3b08695b355d3575263b165
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon May 16 09:52:04 2011 -0700

    (#7259) Remove ActiveRecord requirement from indirector face spec
    
    "should be able to return a list of terminuses for a given
    indirection" was calling Puppet::Indirector::Face.terminus_classes,
    which is just a thin wrapper around
    Puppet::Indirector::Terminus.terminus_classes, which would attempt to
    load all Terminus classes.  This would cause problems if not all of
    the prerequisites for all of the Terminus classes were installed (For
    example: ActiveRecord).
    
    Now we only test that the thin wrapper appropriately munges the output
    from Puppet::Indirector::Terminus.terminus_classes, since the method
    being wrapped should have its own tests for the behavior that was
    being tested originally.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 1ad8158da2435126693e02c66d188dd79e71f83d
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon May 16 09:46:22 2011 -0700

    (#7259) Do not try to load all Terminus classes when configuring the Indirector
    
    When configuring the Indirector routes, we should only try loading the
    Terminus classes that are referenced by the configuration.
    
    Previously, we were loading all Terminus classes, which would cause
    errors if we didn't have all of the prerequisites for all of them,
    even if the ones with missing prerequisites weren't being used by the
    configuration.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit c8215c550cbe7e3ad059637202b02267d401946d
Merge: 82fb02c a8e4df7
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri May 13 15:06:36 2011 -0700

    Merge branch 'next'
    
    * next:
      Revert "(#7220) Add the ability to "inherit" options."
      (#7469) Add license to test face so tests pass
      (#7264) Docs: Clarify that subscribe/notify imply require/before
      (#7468) Stub spec that tries to connect to pypi.python.org
      Prevent spec failure caused by network device mock leak
      Fix #7299 - do not require net/ssh for running rake spec

commit a8e4df735abcbb61915c28378f2fd045bdcdeb42
Merge: 82fb02c 4b7afaa
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri May 13 15:01:13 2011 -0700

    Merge branch '2.7.next' into next
    
    * 2.7.next:
      Revert "(#7220) Add the ability to "inherit" options."
      (#7469) Add license to test face so tests pass
      (#7264) Docs: Clarify that subscribe/notify imply require/before
      (#7468) Stub spec that tries to connect to pypi.python.org
      Prevent spec failure caused by network device mock leak
      Fix #7299 - do not require net/ssh for running rake spec

commit 4b7afaa065383c4a441068a15f97ab82d2ebd3fc
Merge: d63fc34 61d7322
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri May 13 15:00:42 2011 -0700

    Merge branch '2.7.x' into 2.7.next
    
    * 2.7.x:
      (#7469) Add license to test face so tests pass
      (#7264) Docs: Clarify that subscribe/notify imply require/before
      (#7468) Stub spec that tries to connect to pypi.python.org
      Prevent spec failure caused by network device mock leak
      Fix #7299 - do not require net/ssh for running rake spec
    
    Resolved Conflicts:
    	lib/puppet/util/network_device.rb
    	spec/unit/util/network_device_spec.rb

commit 25eab1a5193762688cfa16d7bb750d9f962503c9
Merge: 1f438da 8b76be3
Author: Max Martin <max@puppetlabs.com>
Date:   Fri May 13 14:47:05 2011 -0700

    Merge branch 'ticket/2.6.next/3836' into 2.6.next
    
    * ticket/2.6.next/3836:
      (#3836) External nodes should only capture stdout

commit 8b76be30cc1b015d17c5596c3d1b2be86572f9b8
Author: Oliver Hookins <ohookins@gmail.com>
Date:   Mon May 2 22:15:21 2011 +0200

    (#3836) External nodes should only capture stdout
    
    This patch prevents stdout and stderr from being combined by Puppet::Util.execute, when used by Puppet::Indirector::Exec for external nodes.

commit d63fc34d0c6fdfbe72dafdf5d07a6cc9c6dd388e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri May 6 12:09:09 2011 -0700

    Revert "(#7220) Add the ability to "inherit" options."
    
    This reverts commit 9329a1f33b4d7df81ad8661de74f8a3656428570.
    
    Conflicts:
    
    	spec/unit/interface/action_builder_spec.rb
    	spec/unit/interface/action_spec.rb

commit 61d732231fa1d23a5e9c32bc38ec9f11430229ba
Merge: c7bd46e 09f5d9c
Author: Max Martin <max@puppetlabs.com>
Date:   Thu May 12 15:46:35 2011 -0700

    Merge branch 'ticket/2.7.x/7469-rake-failures' into 2.7.x
    
    * ticket/2.7.x/7469-rake-failures:
      (#7469) Add license to test face so tests pass

commit 09f5d9cbfcbc6b0428d02fd4b5e9c0cfe550eb19
Author: Max Martin <max@puppetlabs.com>
Date:   Thu May 12 15:43:51 2011 -0700

    (#7469) Add license to test face so tests pass
    
    The TestIndirection test face defined in indirection_base_spec did not
    have copyright or license information defined; this was causing
    order-dependent test failures when unit tests were run before other
    specs (as in rake spec). This commit adds license and copyright info to
    the test face to prevent these failures.
    
    Paired-with: Daniel Pittman <daniel@puppetlabs.com>

commit 82fb02ce27c95d8326335a8d52a9ab7e676fe8d3
Merge: 7f9c9e1 704623c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu May 12 14:31:01 2011 -0700

    Merge branch 'next'

commit 704623cb95aacb0544609620994dc36f61a4b463
Merge: 9d73b73 c21539f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu May 12 14:26:49 2011 -0700

    Merge branch '2.7.next' into next

commit c21539fe2205fc61ca9e0a49b3b2702e76931632
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu May 12 14:22:52 2011 -0700

    maint: sync 'authconfig' to 'rest_authconfig' setting
    
    We changed the name of the authconfig setting to specify 'rest_', but this
    branch merge didn't sync the change through all the tests.  Now resolved by
    renaming the configuration option in the test also.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit 058cc39227112cefc637d38fd67d471945b2d4aa
Merge: f80afbe 1f438da
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu May 12 12:02:21 2011 -0700

    Merge branch '2.6.x' into 2.7.next
    
    Fix conflicts in the changelog, and one agent spec in favour of the 2.7.next
    version of the code.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit 1f438da968e1583d900903407c2e5b17648fa937
Merge: e059539 8f907f2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu May 12 11:46:17 2011 -0700

    Merge branch '2.6.next' into 2.6.x

commit c7bd46e2eb1d56c098376b7f500db13e6f98f570
Merge: 6890970 a44cbb1
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu May 12 11:10:26 2011 -0700

    Merge branch 'ticket/2.7.x/7264-metaparameter_reference' into 2.7.x

commit a44cbb1b9a032d7aeabe59662e60794569e7bcbd
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed May 11 13:49:24 2011 -0700

    (#7264) Docs: Clarify that subscribe/notify imply require/before
    
    This is a doc string only commit.
    
    The metaparameter reference was not clear about subscribe and notify being
    supersets of require and before, respectively. This commit also cleans up
    some unrelated quoting, arrow-alignment, and language flow issues.

commit 9d73b73594d4bf9fe4e8abb369ffc5887b15f4ec
Merge: b586a08 81d566f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu May 12 07:02:24 2011 +1000

    Merge branch 'tickets/next/7481' into next
    
    * tickets/next/7481:
      Fixed #7481 - Added MIT license to Thomas Bellman's function code

commit 81d566f216468c69d5c2e592afb66fe834261aa7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed May 11 10:03:36 2011 +1000

    Fixed #7481 - Added MIT license to Thomas Bellman's function code

commit b586a08cde4858222510a94f92f9763e7cb7d3c6
Merge: 7f9c9e1 1695dac
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed May 11 13:52:48 2011 -0700

    Merge branch 'ticket/next/7264-metaparameter_reference' into next

commit 1695daca385bb0aef16cdb6aa840ca16a8823b11
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed May 11 13:49:24 2011 -0700

    (#7264) Docs: Clarify that subscribe/notify imply require/before
    
    This is a doc string only commit.
    
    The metaparameter reference was not clear about subscribe and notify being
    supersets of require and before, respectively. This commit also cleans up
    some unrelated quoting, arrow-alignment, and language flow issues.

commit 68909707d4edcb6372e8809011a147e7fb28de8b
Merge: 7a3a373 5db214c
Author: Max Martin <max@puppetlabs.com>
Date:   Tue May 10 14:39:10 2011 -0700

    Merge branch 'tickets/2.7.x/7299' into 2.7.x
    
    * tickets/2.7.x/7299:
      Prevent spec failure caused by network device mock leak
      Fix #7299 - do not require net/ssh for running rake spec

commit 7a3a37366ddeab220b021636153527ff58034aae
Merge: b983386 9377507
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue May 10 12:03:24 2011 -0700

    Merge branch 'ticket/2.7.x/7468-stub_xmlrpc_internet_call' into 2.7.x
    
    * ticket/2.7.x/7468-stub_xmlrpc_internet_call:
      (#7468) Stub spec that tries to connect to pypi.python.org

commit 9377507499f70c11c87615675656dbffed30a0bf
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon May 9 22:02:50 2011 -0700

    (#7468) Stub spec that tries to connect to pypi.python.org
    
    I noticed a test failure when I ran the specs without an internet
    connection.  Specs should never need an internet connection to pass.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 5db214c486b82ef7cc7960831a44531f3892f3f6
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat May 7 17:45:15 2011 +0200

    Prevent spec failure caused by network device mock leak
    
    We were leaking some mocks in the network device singleton from
    tests to tests.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 37225200eb39af65dc9eeabb7ae3e6e7571fa602
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat May 7 17:43:58 2011 +0200

    Fix #7299 - do not require net/ssh for running rake spec
    
    This is a different fix than the one proposed by Stefan Schulte, based
    on Luke comments.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f80afbe72b848fe4ed81d8116d4eeb494aa6f61e
Merge: 1b12b55 b983386
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri May 6 11:08:35 2011 -0700

    Merge branch '2.7.x' into 2.7.next
    
    Conflicts:
     * spec/unit/node/facts_spec.rb
    
    Updates:
     * spec/unit/interface/action{,_builder}_spec.rb
       => update for 'when_invoked' block being required.

commit b983386ece1b9816e6d3d59a316ad589e35773df
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri May 6 10:23:30 2011 -0700

    Updated CHANGELOG for 2.7.0rc2

commit dfc7e2725f4d80d57aa92bccb14c60b91acbf557
Merge: 1c7bb92 61edff9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu May 5 16:31:25 2011 -0700

    Merge branch 'bug/2.7.x/7353-kill-for-humans-format-entirely' into 2.7.x

commit 61edff9ba5e8e4f8db8bb9cd5a84a986b8703c5d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu May 5 16:24:26 2011 -0700

    (#7353) Remove :for_humans format entirely.
    
    Since we never shipped this in a real release, we don't need to maintain
    compatibility.  So, remove it entirely from the codebase.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 1c7bb924bd38042a6b03b5e7a32c24c602087eea
Merge: d2b5ec6 7b71745
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu May 5 16:18:07 2011 -0700

    Merge remote-tracking branch 'nfagerlund/ticket/2.7.x/6962' into 2.7.x

commit 8f907f21c05295a4e04a55e2d0b287454eea4773
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Thu May 5 09:53:24 2011 -0700

    adding test for ticket 7139

commit d2b5ec617d91accdaf89a5f3309a4ffd3709d288
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Thu May 5 09:51:47 2011 -0700

    Adding test for ticket 7139

commit 6f2a129c111a99095a0ec214a31054755cb08ab1
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Wed May 4 17:53:22 2011 -0700

    add clean-up step to test for ticket_5477 to prevent site.pp from leaking to other tests

commit 92905ffb9f1538f226e2710ff1b6abb7c059672c
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Wed May 4 16:48:02 2011 -0700

    fixed test for ticket_7117
    
    Need to restart puppet master to detect changes made to auth.conf

commit 8d792a06399c4399c16a3add752e2f48f27f5c04
Merge: d950921 5076c37
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed May 4 16:45:50 2011 -0700

    Merge branch 'tickets/2.7.x/7179' into 2.7.x

commit 5076c3794dcbfd708d9169d720b8fc5a41998a14
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed May 4 16:44:48 2011 -0700

    (#7179) Modify default ACL for /node/<name>.
    
    By default, it is useful to permit an individual node to query
    information about itself, and there is no good reason to reject
    this by default.
    
    Paired-With: Nick Lewis

commit 7b71745ac4507375fc452d87e5130e504cef53c8
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed May 4 16:11:39 2011 -0700

    (Maint) Adjust documentation whitespace
    
    The patch from issue #7221 permits indented heredocs. This patch takes advantage
    of that to make the doc strings less messy.

commit 358418ce0fece0b3940b5c62c4633d61cb1de7b9
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed May 4 15:36:12 2011 -0700

    (#7303) Remove reference to not-yet-extant man action
    
    We haven't implemented the `man` action yet, so let's not mention it until we have.

commit dce072a87c0a47b4edc76ca988029ee8b626eeb6
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Apr 27 10:46:47 2011 -0700

    (#6962) Add self-documentation data to puppet faces
    
    This patch adds documentation strings to most of the faces, actions, and options
    introduced in 2.7.0. There are a small number of TK notes remaining, and longer strings
    have not been indented to take advantage of the patch from issue #7221.

commit 855a0ec0deba9fdbaa113260eef8cb8c28e6f5b6
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Apr 22 13:02:50 2011 -0700

    Maint: adjust faces.rb's help to match that of other applications
    
    Faces isn't a face, interestingly, so it doesn't get a summary line in the puppet help.
    This will output the appropriately-formatted manpage text using the normal
    mechanism.

commit d950921e0dffe3c2f5315e63d86881986d7e4041
Merge: 8a8e198 75f164a
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Wed May 4 15:29:55 2011 -0700

    Merge branch 'tickets/2.7.x/7304' into 2.7.x

commit 75f164a619962df239c7dc8144ebec9c2d27e6c7
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Wed May 4 15:22:43 2011 -0700

    (#7304) Remove full puppet help output when subcommand cannot be found
    
    In order to make the error message more visible to the user,
    we tell them about the puppet help command but don't automatically run it,
    so the error doesn't scroll off the screen.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>

commit 8a8e1981f2189ba0ae3942625e93f495671c20ee
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Wed May 4 14:19:57 2011 -0700

    adding test for ticket 7117

commit 4533aa16ec8c9ea4db2fc7de75b01ea056bcf624
Merge: e5b62d7 dda3264
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed May 4 12:29:03 2011 -0700

    Merge branch 'bug/2.7.x/7353-unify-face-rendering-with-network-formathandler' into 2.7.x

commit dda32647b4c11ecb352e469088f2438835ff99d7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed May 4 10:40:55 2011 -0700

    (#7353) Note the :for_humans compatibility issue.
    
    Where we need special support for :for_humans as an alias for :console, call
    it out in comments.  This makes it clear to someone who wonders why what the
    actual underlying purpose of the whole thing is.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit efd118114bab228b5f8f4a437ead8be2cc895d8a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed May 4 10:38:36 2011 -0700

    (#7353) Use :console rendering format in our own code.
    
    Now that we have unified things, stop using the compatibility name in favour
    of the new :console name for the output format.  No functional effect beyond
    avoiding a deprecated output mode.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 5986e8a3747ebb0fe48169f88fecb481be76d16c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed May 4 10:36:50 2011 -0700

    (#7353) Unify rendering in the face_bace application.
    
    We now move over to using only network FormatHandler rendering code for
    output, ditching all the support we had in the application.
    
    We include a compatibility shim to ensure that the :for_humans format that was
    supported for a while is now an alias for the :console format we are using
    moving forward.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit a4e735e133898a376747491d5bbc1ca5692ac122
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed May 4 10:30:52 2011 -0700

    (#7353) Add 'console' format to FormatHandler
    
    This adds a console rendering format to the Network FormatHandler subsystem;
    it provides the same human-friendly textual rendering as the Faces application
    did, except it uses JSON rather than PP as the fall-back rendering mode.
    
    This paves the path for unification of all formatting into the same subsystem,
    rather than the half-measures we used to have.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit e5b62d7424da24799c4d16f0e104fac3008e2b89
Merge: 94f0b09 d203853
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Tue May 3 17:59:26 2011 -0700

    Merge branch '2.7.x' of github.com:puppetlabs/puppet into 2.7.x

commit 94f0b0996ba628f4916bcf0978b29c584c15818b
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Tue May 3 17:58:53 2011 -0700

    add base test for ticket 7117

commit d203853bc8b40732c2ba88a4e5396f00a1e3a4ec
Merge: 71af776 dc0088f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 3 17:02:46 2011 -0700

    Merge branch 'bug/2.7.x/7277-improve-secret-agent-face-and-supporting-actions' into 2.7.x

commit dc0088f96f80292f545395eb3084dd37f7883ee9
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Apr 27 22:49:56 2011 +0100

    (#7277)Fixing all secret-agent functions, and the agent itself
    
    This cleans up the behaviours and ensures that we have parity between the
    basic actions of the agent and the secret_agent.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 71af776efc45daaaf14ca66db41261d6906bfd1b
Merge: 18b3584 1f112cd
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue May 3 16:31:37 2011 -0700

    Merge branch 'ticket/2.7.x/7139' into 2.7.x

commit 1f112cd61ff9e9a3b4a27314533ea4a91dcca76e
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue May 3 16:18:57 2011 -0700

    (#7139) Accept '/' as a valid path in filesets
    
    This was unconditionally removing the trailing file separator ('/'), which is
    only valid when the file separator isn't the entire path. This fixes 'puppet
    resource file <path>'.
    
    Paired-With: Jacob Helwig

commit 97e8ef32ff174a795a73d045ef1df99d8de51356
Merge: 37c86dd 90eb937
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue May 3 16:21:16 2011 -0700

    Merge branch 'ticket/2.6.next/7139' into 2.6.next

commit 90eb937a093b6dd962ee136a4e6f84cfa3ba72cd
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue May 3 16:18:57 2011 -0700

    (#7139) Accept '/' as a valid path in filesets
    
    This was unconditionally removing the trailing file separator ('/'), which is
    only valid when the file separator isn't the entire path. This fixes 'puppet
    resource file <path>'.
    
    Paired-With: Jacob Helwig

commit 18b3584e16515cfc45aeaa8d0913de8e8bcb3e95
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon May 2 16:27:28 2011 -0700

    (#7329) Consistent naming for rendering formats and hooks.
    
    We refer to rendering formats pretty consistently as `json`, `yaml`, `s`, and
    so forth; unqualified names.
    
    On the other hand, we refer to the rendering hooks *mostly* as `to_*`, except
    the `:for_humans` and `:json` formats.  Which is kind of confusing because of
    the internal inconsistency, and because it doesn't match the public name.
    
    Fix the code to resolve both, so the `to_*` format still works, but we mostly
    expect to use the `*` version, to match public expectation.

commit b3dd34b4d59329746042b23c1736ed432351a123
Merge: fded269 8f81f56
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 3 15:51:30 2011 -0700

    Merge branch 'bug/2.7.x/7326-faces-broken-on-ruby-1.8.5' into 2.7.x

commit 8f81f56e8315a62e6c8ff8943c64df7594855359
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 3 15:51:02 2011 -0700

    (#7326) Fix faces on Ruby 1.8.5
    
    Turns out that String#each_line on Ruby 1.8.5 only takes a block, and will not
    return an enumerable.  Rewrite to use split(/\n/) which has the same effect
    but works on all our platforms.

commit fded269b8b2487184f7cfc409c3e82daa59f595a
Merge: b17b49c 5569fad
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue May 3 15:27:03 2011 -0700

    Merge branch 'tickets/2.7.x/7117-authconf-should-respect-environments' into 2.7.x
    
    * tickets/2.7.x/7117-authconf-should-respect-environments:
      (#7117) Return the environment as a Puppet::Node::Environment in uri2indirection

commit 5569fad994978224dd24df9974ed731a409d11de
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue May 3 14:53:03 2011 -0700

    (#7117) Return the environment as a Puppet::Node::Environment in uri2indirection
    
    The environment returned by uri2indirection used to be a
    Puppet::Node::Environment.  When this changed to simply being the
    string of the environment name, this broke assumptions made in other
    areas of the code.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit b17b49c97380cd64e75ac5e2ef12fb939ae953bb
Merge: b7ba66c 5120a95
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 3 14:55:14 2011 -0700

    Merge branch 'bug/2.7.x/7276-return-value-from-plugin-download-is-not-user-friendly' into 2.7.x

commit 5120a95830183fdb30fc178452bfc3e6f44605b7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 3 14:36:13 2011 -0700

    (#7276) Better reporting from the plugin download action.
    
    Instead of just returning vague values, return useful information when
    rendering for a human being.
    
    Based on work by Luke Kaines <luke@puppetlabs.com> in
    https://github.com/lak/puppet/commit/a61cc770ca9b2cad744b5b21b9776a834d6ca895
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit bb889bf287f702e822d384f74af52fe2604ca37f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 3 13:41:57 2011 -0700

    (#7276) Create a plugin face application.
    
    We need a boilerplate application file and class to expose a face on the
    command line; this adds that for the plugin face, to expose it to users.
    
    Based on work by Luke Kaines <luke@puppetlabs.com> in
    https://github.com/lak/puppet/commit/a61cc770ca9b2cad744b5b21b9776a834d6ca895
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 5490f7aee19f477914520f0735858f58136122e4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 3 14:38:57 2011 -0700

    (#6962) Added 'returns' block to action documentation.
    
    We want to be able to document the data returned from an action, since this is
    one of the most critical parts of the API for Ruby developers.  This adds a
    multiline documentation block that captures that.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 0d6ac040f4223725586c2b5d71ffcb0d36206080
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 3 13:33:43 2011 -0700

    maint: remove emacs 'coding' cookie from files.
    
    This is unnecessary, and only turned up because Matz &c. impose their taste on
    the rest of the world through the Emacs Ruby mode.  Since people are starting
    to clone that, and it doesn't add value, eliminate it everywhere.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit b7ba66c8ebd7d59de40188a70b4e6fa0ddd8d2ad
Merge: 50d18e1 48903f5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 3 12:56:25 2011 -0700

    Merge branch 'feature/2.7.x/7278-improve-catalog-select-action' into 2.7.x

commit 48903f58e535dabd55b6895eae1dc1967553391a
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Apr 27 23:04:20 2011 +0100

    (#7278) Improve utility of the Catalog select action
    
    This extends the catalog select action to be able to return more than a single
    type, as well as supporting both programmatic and human focused rendering of
    the return value.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>

commit 50d18e1fda174a04e5251207f3a39e3ae6cbb891
Merge: d4df6cc 45adc1a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue May 3 12:25:23 2011 -0700

    Merge branch 'feature/2.7.x/7279-add-action-to-file-face' into 2.7.x

commit 45adc1a1e482be74d2db9f97e7a4d3be5834ccf2
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Apr 28 00:44:43 2011 +0200

    (#7279) Adding some basic file actions
    
    Add the ability to download a file into the local filebucket using a puppet
    URI or from disk.  Also, the ability to store into the filebucket.
    
    These provide at least basic UI for moving data around using the filebucket
    service, and act as an example of how further work can be done.
    
    Also, update the code to eliminate a couple of redundant checks on arguments,
    and add some basic testing around the actions.  Mostly only that they exist,
    at this point.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>

commit d4df6cc2274e119fb2a67bca0912667b0fef7866
Merge: 8b28417 1b42725
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon May 2 15:36:30 2011 -0700

    Merge branch 'bug/2.7.x/7314-backtrace-when-face-has-syntax-error' into 2.7.x

commit 8b28417f696bd7d34ea4212a89913b5e796993c7
Merge: 25ee3d6 a4a274b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon May 2 15:36:17 2011 -0700

    Merge branch 'bug/2.7.x/7315-puppet-status-can't-render-as-json' into 2.7.x

commit 25ee3d62bdd6c1e835f74eb9aa5f2e03e6b570df
Merge: a71bfa1 b20e977
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon May 2 15:36:05 2011 -0700

    Merge branch 'bug/2.7.x/better-error-reporting-in-face-cli-facade' into 2.7.x

commit a4a274b8c7807fdf35199dc20889de599ea912ca
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon May 2 12:46:09 2011 -0700

    (#7315) Fix `to_pson` method to render correctly.
    
    Puppet::Status had an outdated implementation of the `to_pson` hook, so would
    fail to render when asked.  Changes to the faces system exposed this,
    resulting in a backtrace if the user wanted JSON output on the CLI.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 1b42725b5caab6f8e457e11fec2488fbe94e8e43
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon May 2 15:14:25 2011 -0700

    (#7314) Faces fail horribly when one has a syntax error.
    
    When we hit a syntax error in any face, a whole bunch of unrelated face things
    would blow up in horrible ways.  Stack traces for all...
    
    Now, instead, we catch that fault   but specifically only in the face file
    and report it through our error logs, then quietly ignore the face.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 86c6ec24f387fc70abc333fc4ac974b06b3ec80a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon May 2 14:31:54 2011 -0700

    maint: move the indirector face base out of puppet/face
    
    We used to shove the base class Puppet::Face::Indirector next to the actual
    faces; this made a bunch of things, including testing, confusing.  Instead,
    move it away into the indirector where it lives with the rest of the
    indirector related things.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit c63e9c2394a30fe653908cd15967218d90fa34d6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon May 2 13:57:57 2011 -0700

    maint: reset more global state in testing faces...
    
    When we query for all faces we need to scan the entire Ruby load path, look
    for everything that looks like a face, and load it up.  That is a fairly
    expensive operation, especially on a platform that has slow I/O.
    
    *cough* EC2 *cough*
    
    Because of that we only scan once, and assume that the list is static
    thereafter; this works OK out in the field, but sucks in testing where that
    global state gets in the way of the rest of our fiddling under the hood.
    
    This resets the '@loaded' member of the collection additionally, which is what
    should be done since we have reset the rest of the collection at the same
    time.
    
    We don't bother to reset it, as an extra scan during tests is not a problem.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit b20e9779f1c60a2a2ea1ddf21b3c5e06d8f68ac4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon May 2 12:44:13 2011 -0700

    (#7304) Improve help from `puppet foo`
    
    This addresses two of the four points: we now quote the subcommand name, and
    emit 'Usage: ' before the usage information on the puppet command line.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 3bb8bd30c039edaab0f9eb4ff6865ba5077bf549
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon May 2 12:25:39 2011 -0700

    (#7317) better error handling in CLI face facade.
    
    The error handling code in the face CLI facade was pretty terrible: it make a
    bunch of assumptions about the structure of the error message it got back, and
    used exceptions to communicate inside the same function.
    
    Instead, we handle errors uniformly without raising and catching in the same
    method, report more nicely, and exit cleanly in all cases.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit a71bfa10123276b1dc96c5ef540b9fbf222c2f6d
Merge: 040e0fd b23cc8a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon May 2 10:09:24 2011 -0700

    Merge branch 'bug/2.7.x/7282-fail-when-no-invocation-given-for-action' into 2.7.x

commit b23cc8abec1a1ec41b554b4e72f9a3c21feaf9da
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 29 17:24:18 2011 -0700

    (#7282) action without `when_invoked` should fail...
    
    We used to let actions be declared without the `when_invoked` block, which was
    usually a sign of either someone writing their method code direct in action
    declaration, or someone forgetting to add their code at all.
    
    This was just let silently by: the error only showed up when you finally tried
    to invoke the action, and a NoMethod error was raised by the face.
    
    ...except for our own testing.  We took advantage of this a whole pile of
    times in there; fixing the original UI issue means fixing all those too.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 1f3b8e755883c865026f3d76459000b808f5a3b0
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun May 1 15:19:33 2011 +0200

    (#7300) Add specs for the mount provider
    
    Add specs to demonstrate that the instances method is currently broken
    because it does not take the actual mountstate into account.
    
    As a result running "puppet resource mount" on the commandline will
    report every mount that appears in /etc/(v)fstab as unmounted.

commit 040e0fdaacb767d61ef07a41098ebb9c998738e4
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Fri Apr 29 15:47:08 2011 -0700

    (Maint.) Fix accidental debug output in tests.
    
    Reviewed-By: Daniel Pittman

commit 6815044fbc94c0d502b1061309d5aaeb8f791660
Merge: 07efb24 65b9a3c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 29 15:42:19 2011 -0700

    Merge branch 'bug/2.7.x/7221-whitespace-stripping-for-documentation' into 2.7.x

commit 65b9a3c4f4e6830ed094d46381050dfa72c7eccd
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 29 15:19:24 2011 -0700

    (#7221) Strip bad whitespace from face and action docs.
    
    We now strip whitespace in face (and related) documentation in two places:
    
    We strip any trailing whitespace on each line, just because.
    
    We strip any leading indent, but not all leading whitespace, from the text.
    That is, we strip the *minimum* amount of whitespace that we can take from
    every line in the documentation without changing the overall content.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 07efb2463dfc4720df3996bb2f7a80844914f0da
Merge: 97ae812 207deae
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Fri Apr 29 13:36:36 2011 -0700

    Merge branch 'tickets/2.7.x/7289' into 2.7.x

commit 97ae812f0a67ef01daed4e9220981e2bc7c70603
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 29 13:29:17 2011 -0700

    (#7248) Fail if two aliases of one option are passed...
    
    From the command line, and other facades, it is fairly difficult to call an
    action with two aliases of the same option in the invocation, but from the
    Ruby API it would be relatively easy to achieve.
    
    This is now checked, and raises an error, so that we don't accidentally have
    strange or unusual behaviour coming out of the whole system.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 207deae2dc06ca439e3b5ee9b044221a1c2899bb
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Fri Apr 29 12:18:12 2011 -0700

    (#7289) Specify order for option decorations.
    
    `before_action` decorations should always resolve in resolution order
    from most general (inherited from furthest away) to most specific
    (declared on the instance), and should always execute Face-level
    option decorations before action-level option decorations.
    
    `after_action` decorations should execute in the opposite order.
    
    Reviewed-By: Daniel Pittman

commit 1707f2779e37f231191cf5234e4e309055717374
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 28 15:50:22 2011 -0700

    Revert "maint: better error reporting for argument count mismatch."
    
    This reverts commit cd474b0aff0e0fec33295c8abc0668af90fb7cc1.

commit cd474b0aff0e0fec33295c8abc0668af90fb7cc1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 28 15:41:13 2011 -0700

    maint: better error reporting for argument count mismatch.
    
    Another face quirk in error reporting highlights a better way to work the
    error message; do so.

commit e17f14925db09903b43151843102f204f9b31b61
Merge: f1b7faf 69e4b1c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 28 14:54:15 2011 -0700

    Merge branch 'bug/2.7.x/7122-puppet-facts-find-raises' into 2.7.x

commit 69e4b1c5c024f4e6087054a7d8e77d30cacc62c8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 27 14:21:42 2011 -0700

    (#7122) Enforce call arity on actions in the CLI wrapper.
    
    We had a problem, previously, in the generic translation of command line
    arguments to Ruby method calls: we could mistake the options, added by the CLI
    wrapper, for a positional argument to the action method.
    
    This was caused by a combination of factors, but primarily that the wrapper
    methods for actions are designed to present a friendly, helpful Ruby API for
    internal use.  Consequently, they have a default value if you don't wish to
    pass options.
    
    Unfortunately, this meant that the options that the CLI *always* passed could
    be treated as a positional argument instead, and the default set of options
    added to the back of the call.
    
    To resolve this we now check the number of positional arguments in the CLI
    wrapper, and raise an exception if they are mismatched.  This makes the
    generic CLI handling do the right thing in adapting the command line
    arguments to the Ruby API.
    
    (As an aside, we would have had a similar-but-different failure mode if we
     type-checked positional arguments: these calls would have failed with an
     invalid argument validation error.)
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 351b6fc5327baf8f2339fed04c3a8e54280fc394
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 28 10:48:24 2011 -0700

    maint: add a 'print' matcher to rspec, to inspect std{out,err}
    
    You can now write expectations along the lines of:
    
      expect { ... }.to print /whatever/
    
    This will do the expected thing, which is to require that we print something
    matching that regular expression during the block.  The output itself is
    suppressed during operation of the matcher.
    
    Paired-With: Max Martin <max@puppetlabs.com>

commit 37c86dd466aa571b0194b06bbf4d21ffb007c8be
Merge: 2892068 7f658e6
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 28 14:44:48 2011 -0700

    Merge remote-tracking branch 'toddz/feature/2.6.next/vim-indenting' into 2.6.next
    
    * toddz/feature/2.6.next/vim-indenting:
      vim: Initial ftplugin and indent support

commit f1b7fafd12f1071b940ed507e8394a66b69d8284
Merge: db14f12 be4d7e6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 28 14:24:56 2011 -0700

    Merge branch 'feature/2.7.x/7160-support-json-externally' into 2.7.x

commit be4d7e6eb45911793bf2370ff8a0d8d160446f54
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 28 14:24:46 2011 -0700

    (#7269) Fix error reporting for bad render formats...
    
    The previous change was incomplete, and could result in internal errors with
    the wrong combination of inputs.  Now we have more testing, and a logically
    consistent model, so all works.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 28920686e93a367e7de02cbd9c22a90b036091ed
Merge: c4a2647 1b2a7d9
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 28 13:50:12 2011 -0700

    Merge branch 'ticket/2.6.next/6844' into 2.6.next
    
    * ticket/2.6.next/6844:
      case seems needless here as there is only two opts, also the rest of the file seems to use if so this should make things more consistant

commit 1b2a7d90af49b19409dcb151f922f124f797a290
Author: ben hengst <notbenh@cpan.org>
Date:   Thu Mar 24 19:29:26 2011 -0700

    case seems needless here as there is only two opts, also the rest of the file seems to use if so this should make things more consistant

commit db14f1240be7e20ba04c0fdf448044b36ce24ceb
Merge: ebf49f9 632a0a0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 28 10:57:51 2011 -0700

    Merge branch 'feature/2.7.x/7160-support-json-externally' into 2.7.x

commit 632a0a0042ebf2e7ef209ce30005833ccee6e77b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 28 00:04:00 2011 -0700

    (#7269) Better error reporting for bad render formats.
    
    Previously we would try and send `nil` to a class to render an unsupported
    format, which was bad.  Worse, we would only discover this *after* the fact,
    when we tried to render, so the entire action had run and the result was lost
    to the world.
    
    Instead, validate the parameter early and fail during option parsing.  This
    has less nice error reporting than we can get handling it later[1], but it
    gets us a much better overall set of behaviour.
    
    [1] puppet/application.rb will print and exit, rather than raising, when the
        option handler fails; this will improve when we unify face and application
        options properly.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 80adaea6319b2aca81fd3d9b1d0061152b6c7db2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 27 18:30:27 2011 -0700

    (#7160) Support 'json' as a rendering method for CLI faces.
    
    We already had some specialized support for rendering JSON using the PSON
    libraries; this just extends that to recognize the request on the command line
    for json to be identical to a request for pson.
    
    Theoretically we should also support the format in our network rendering code,
    but that is a much bigger change, in established code, that has more chance of
    destabilizing the whole release.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit c4a2647ad58fbe809822e399042454627066f65b
Merge: 6ab2243 729336e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 28 15:15:30 2011 +1000

    Merge branch 'ticket/2.6.x/6845' into 2.6.next
    
    * ticket/2.6.x/6845:
      (#6845) Mount writes incorrect vfstab entries

commit 729336e3d74f3b56237c24cc777f2679c158e496
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Fri Mar 25 08:41:06 2011 +0100

    (#6845) Mount writes incorrect vfstab entries
    
    Facter[:operatingsystem] will not retrieve the operatingsystem as a
    string so puppet will always write fstab entries.

commit 6ab224313c694168b636f1fb841761b3ca8f935f
Merge: 361d6a3 16cf1ac
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Apr 27 15:18:18 2011 -0700

    Merge branch 'ticket/2.6.next/6442-agent_doesnt_need_namespaceauth' into 2.6.next
    
    * ticket/2.6.next/6442-agent_doesnt_need_namespaceauth:
      (#6442) Be able to start agents --listen without namespaceauth.conf

commit 16cf1ac559afa58059fbb38da49246233c6c00c4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Apr 22 13:07:12 2011 -0700

    (#6442) Be able to start agents --listen without namespaceauth.conf
    
    The namespaceauth.conf isn't being used since we switched from XMLRPC to
    Rest.  There's still a lot of cleanup of the code that deals with
    authorization from the namespaceauth.conf and XMLRPC in general, but
    that can be address later.  For now just being able to start puppet
    agent in listen mode without a useless file will be a big win.  You
    still need the auth.conf file though since that is used.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit e059539a0d7bfc33f80b003894a1a2d807e85851
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Apr 27 14:11:00 2011 -0700

    Update CHANGELOG for 2.6.8

commit 7f9c9e1089c4bc36d52fcdd9751de559c658bf8d
Merge: a80ff1a 68c82d4
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Apr 27 13:28:22 2011 -0700

    Merge branch 'next'
    
    * next:
      (#7101) Fix template error messages in Ruby 1.8.5
      (#3420) Nagios "name" attribute does not output correctly
      (#4487) When setting environment on a host, ensure it is a string.
      add test for ticket 7101
      add test for ticket 7101
      (#7220) Add the ability to "inherit" options.
      (#6487) Add some testing for OS X version support in DirectoryService provider
      (#6487) Directoryservice provider will fail in future OS releases
      (#6368) Make the File type autorequire its nearest ancestor directory

commit 68c82d4d8b75ebd8f0ab61b37ba78cf5fbc52081
Merge: 32b13da 1b12b55
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Apr 27 13:27:40 2011 -0700

    Merge branch '2.7.next' into next
    
    * 2.7.next:
      (#3420) Nagios "name" attribute does not output correctly
      (#4487) When setting environment on a host, ensure it is a string.
      add test for ticket 7101
      (#7220) Add the ability to "inherit" options.
      (#6487) Add some testing for OS X version support in DirectoryService provider
      (#6487) Directoryservice provider will fail in future OS releases
      (#6368) Make the File type autorequire its nearest ancestor directory

commit 1b12b55b6a2d3581f9643bf09d55727ba1213580
Merge: ced9f55 361d6a3
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Apr 27 13:25:35 2011 -0700

    Merge branch '2.6.next' into 2.7.next
    
    * 2.6.next:
      (#3420) Nagios "name" attribute does not output correctly
      (#4487) When setting environment on a host, ensure it is a string.
      add test for ticket 7101
      (#6487) Add some testing for OS X version support in DirectoryService provider
      (#6487) Directoryservice provider will fail in future OS releases

commit 32b13dad06195b37f0e10d13c6d2a9d958be00a7
Merge: 74498af ac0581f
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Apr 27 13:14:26 2011 -0700

    Merge branch 'ticket/next/7101-template-compilation' into next
    
    * ticket/next/7101-template-compilation:
      (#7101) Fix template error messages in Ruby 1.8.5

commit ac0581f16ca17962a23c244424d83dbd6e721479
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Apr 27 13:09:30 2011 -0700

    (#7101) Fix template error messages in Ruby 1.8.5
    
    lib/puppet/parser/templatewrapper.rb#script_line was calling .first on a
    String object, which in Ruby > 1.8.5 will return the entire string, but
    in 1.8.5 will cause an exception. This change (proposed by Markus
    Roberts) removes the call to .first and adds a condition for when the
    template error involves the file not being found.
    
    Reviewed-by: Jesse Wolfe

commit a80ff1ad0d25cc7cfa98cd6f425e6230787950fb
Merge: 89e9a21 9d2500e
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Apr 27 12:52:35 2011 -0700

    Merge branch 'ticket/master/7101-template-compilation'
    
    * ticket/master/7101-template-compilation:
      (#7101) Fix template error messages in Ruby 1.8.5

commit 9d2500e7169bc8eba58d9157db49586be24d6ded
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Apr 27 12:45:47 2011 -0700

    (#7101) Fix template error messages in Ruby 1.8.5
    
    lib/puppet/parser/templatewrapper.rb#script_line was calling .first on a
    String object, which in Ruby > 1.8.5 will return the entire string, but
    in 1.8.5 will cause an exception. This change (proposed by Markus
    Roberts) removes the call to .first and adds a condition for when the
    template error involves the file not being found.
    
    Reviewed-by: Jesse Wolfe

commit ebf49f98357f93b33e09c0ecbdee1c5c2db87569
Merge: 1aaf5fd 0256d67
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 27 12:12:05 2011 -0700

    Merge branch 'feature/2.7.x/6962-finish-documentation-api-for-faces' into 2.7.x

commit 0256d67e1a51a37f2c87ec197bdff6ef3a6b269f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 27 10:38:41 2011 -0700

    (#6962) Add integration tests on Face documentation.
    
    We now run all the faces, and their actions, as well as global help through
    the wringer in this test: this way we can be confident that we have, at least,
    the ability to generate the help without a user-visible failure.
    
    We also check that we have set copyright and license terms in our own faces.
    Theoretically this might fail if the end user has extra faces on LOAD_PATH,
    but my hope is that we won't hit that...

commit e8eb290a1681baa19ef0b035af7cf17daadc6069
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 27 10:05:48 2011 -0700

    (#6962) Finish documentation API on Face options.
    
    This extends the last of the documentation support, down into options, so they
    can be described as expected.  In the process we split out the modular docs
    API into a full and short version   options only want short docs, but the
    behaviours are identical to the full version.

commit 6e152ad1d0bb34f6d24fd818b2b020d5a8dd385b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 26 17:30:41 2011 -0700

    (#6962) Give copyright and license for all faces.
    
    Now we have the capability, mark all our faces copyright the company and under
    the Apache 2 license, which indeed they are.

commit b8525c9f032cfa9ac621509ba8e332803a99a120
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 26 17:26:39 2011 -0700

    (#6962) Fill out documentation on Faces and Actions
    
    This uses the documentation we had written, wiring it into the existing faces
    and actions.  This helps fill out the need to document these things before
    they ship.

commit 59e7ef15507de48f6504ef21a8e0e775104961c6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 26 23:30:08 2011 -0700

    (#6962) Move documentation support into a module.
    
    Given that we have identical documentation behaviour in the face and action
    code, it should properly be written once.  So, move it into a module, extend
    the other classes with it, and have done.

commit 092ab09d00474d69361ee757efde2b28c89b39eb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 26 17:18:09 2011 -0700

    (#6962) Extend documentation API for Faces.
    
    This adds the remaining documentation mechanisms to the Face instances,
    allowing them to build and report correct documentation, licensing and
    ownership for the help face to build on.

commit 1aaf5fdc51e165c7d0f377450016cd4fb3767c02
Merge: cd03542 c627fad
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue Apr 26 16:47:55 2011 -0700

    Merge branch 'tickets/2.7.x/7251' into 2.7.x

commit c627fad08c4866fbef300e887750c29963985635
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue Apr 26 16:34:25 2011 -0700

    (#7251) Let exceptions raised in decorators rise.
    
    This allows users to write before_action advice that does basic
    option validation very easily.
    
    Reviewed-By: Daniel Pittman

commit cd035426848154e8d11db5c59657d1b74258c9a0
Merge: 95ed9aa bbf777f
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue Apr 26 16:07:59 2011 -0700

    Merge branch 'tickets/2.7.x/7249' into 2.7.x

commit bbf777f5f47b98d35fbbc7b8e3983d79af559017
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue Apr 26 16:07:21 2011 -0700

    (#7249) Publicize ActionBuilder DSL methods.
    
    This change permits users to call functions with a reference to
    `self` that can augment the in-progress action declaration, which can
    be helpful in some more involved cases.
    
    Reviewed-By: Max Martin
    Reviewed-By: Daniel Pittman

commit 361d6a3a6917fd9515a2180590fb671024132da7
Merge: ddc4e14 0352402
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Apr 26 15:45:04 2011 -0700

    Merge branch 'tickets/2.6.next/3420' into 2.6.next

commit 035240241d38e8872e4b67a6baaa43db4db64f96
Author: Jim Pirzyk <jim+puppet@pirzyk.org>
Date:   Tue Apr 26 15:43:24 2011 -0700

    (#3420) Nagios "name" attribute does not output correctly

commit ddc4e148689233058827f32832195daa935a99e2
Merge: 2cce326 f656818
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Apr 26 14:16:17 2011 -0700

    Merge branch 'tickets/2.6.next/4487' into 2.6.next

commit f656818bcd7cb88f24f6c578790771952120b1cc
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Apr 26 14:02:48 2011 -0700

    (#4487) When setting environment on a host, ensure it is a string.
    
    Before this change when environment strings were read out of the storeconfigs
    database, they were eventually converted up to Puppet::Node::Environment
    objects. When these objects are returned to the storeconfigs database,
    ActiveRecord dumps them as YAML, which begins the death-spiral of YAML.
    
    This change makes it so the host will always store the environment as a string,
    preventing the Puppet::Node::Environment object from being YAMLized, and stored
    as such in the database.
    
    This change was based on one by Richard Crowley.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>
    Signed-off-by: Richard Crowley <r@rcrowley.org>

commit 89e9a212e7c2426fa89f65e57a3d225a73ae0613
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Tue Apr 26 13:57:20 2011 -0700

    add test for ticket 7101

commit 74498afecdc0a64f9435ef20065e08d549a510c9
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Tue Apr 26 13:54:53 2011 -0700

    add test for ticket 7101

commit 2cce3265885578910154854cf80ceb4d48ac631f
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Tue Apr 26 13:53:47 2011 -0700

    add test for ticket 7101

commit c1edcb2c3fddc2ffd6a8addf151db815b3bd43a8
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Tue Apr 26 13:52:30 2011 -0700

    add test for ticket 7101

commit 95ed9aadad1e694614fd47a6d56888b26ded08ed
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Tue Apr 26 13:46:58 2011 -0700

    add test for ticket 7101

commit 439cf57cf3ccf8150bab4c3883e2b0e818f960a4
Merge: 67a8655 6064e8e
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Apr 26 11:51:21 2011 -0700

    Merge branch 'ticket/2.7.x/7101-template-compilation' into 2.7.x
    
    * ticket/2.7.x/7101-template-compilation:
      (#7101) Fix template error messages in Ruby 1.8.5

commit 6064e8e37b0d6f9996921bfa598d5401a1f98537
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Apr 26 11:44:16 2011 -0700

    (#7101) Fix template error messages in Ruby 1.8.5
    
    lib/puppet/parser/templatewrapper.rb#script_line was calling .first on a
    String object, which in Ruby > 1.8.5 will return the entire string, but
    in 1.8.5 will cause an exception. This change (proposed by Markus
    Roberts) removes the call to .first and adds a condition for when the
    template error involves the file not being found.
    
    Reviewed-by: Jesse Wolfe

commit 67a86554fff18cd75744ea987ea2361f495efc4c
Merge: 349bd96 49c5152
Author: Max Martin <max@puppetlabs.com>
Date:   Mon Apr 25 14:00:05 2011 -0700

    Merge branch 'ticket/2.7.x/7137-spurious-warnings' into 2.7.x
    
    * ticket/2.7.x/7137-spurious-warnings:
      (#7137) Get rid of spurious info messages in useradd

commit 49c5152d64bb2d73a2751e9844bb2b92b14b88eb
Author: Max Martin <max@puppetlabs.com>
Date:   Mon Apr 25 13:44:48 2011 -0700

    (#7137) Get rid of spurious info messages in useradd
    
    Usage of the useradd provider was leading to spurious log messages of
    this form:
    
    info: /User[nigel]: Provider useradd does not support features
    manages_aix_lam; not managing attribute ia_load_module
    
    This was due to the ia_load_module parameter requiring manages_aix_lam
    and additionally having a defaultto value of "compat."
    
    Paired-with: Matt Robinson <matt@puppetlabs.com>

commit ced9f553772d6fb786e620fada1c23427bd269bf
Merge: 89620ab 9329a1f
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Apr 25 12:20:34 2011 -0700

    Merge branch 'tickets/2.7.next/7220' into 2.7.next

commit 9329a1f33b4d7df81ad8661de74f8a3656428570
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Apr 25 12:12:24 2011 -0700

    (#7220) Add the ability to "inherit" options.
    
    Reviewed-By: Matt Robinson

commit 349bd96c0fd59f8c7c1a83b7d40000d703136a87
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Mon Apr 25 11:14:04 2011 -0700

    Fix test ticket_6928_puppet_master_parse_fails
    
    Output for error conditions changed causing a regex to fail

commit f25acf9aea1e72459a8c3e81e3f825bafec24979
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 24 10:46:08 2011 -0700

    maint: add the 'to', 'not_to', and 'to_not' aliases to rspec...
    
    Specifically, add them if they are not already added by rspec itself, which
    means that we can use them without blowing up older installations.

commit b000d3575951cb93b01bb76e7b1b24b52e23ca5c
Merge: 1e9cc2c f77304b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 22 15:39:32 2011 -0700

    Merge branch 'feature/2.7.x/7157-automatic-non-zero-exit-codes' into 2.7.x

commit f77304b703cbaaf5b46b974a0c80b73cece4a2aa
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 22 11:53:30 2011 -0700

    (#7157) Return a non-zero exit code on face failure.
    
    When a face or action fails we should exit non-zero on the CLI to signal this
    to our caller.  "Fails" is defined as "raises an exception"; we don't treat
    any return value as a significant failure.
    
    Reviewed-By: Jesse Wolf <jesse@puppetlabs.com>

commit 435c826ead5c81c3eb7c47efe9c52e2e77c14666
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 22 14:40:56 2011 -0700

    maint: use the exit_with helper everywhere...
    
    Now we have the exit_with matcher, we should use it everywhere that we
    previously stubbed, expected, or caught the exit status in an ad-hoc way.
    
    Reviewed-By: Jesse Wolf <jesse@puppetlabs.com>

commit 96195c1dc2fea6262523fcc1726c6dfd7fea274a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 22 14:08:59 2011 -0700

    maint: add an "exit was called" matcher for rspec.
    
    We have a bunch of places that want to test if exit was called in a block of
    code or not, which we did in a whole pile of ad-hoc ways.  Instead, better to
    have a custom matcher that tests specifically for the correct exit exception
    being thrown, and the right error code in it.
    
    Reviewed-By: Jesse Wolf <jesse@puppetlabs.com>

commit 822d5303f01b42cb074db52e6ee2c05e913ba9c5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 22 14:09:44 2011 -0700

    maint: clean up test headers on face spec files.
    
    A whole pile of spec files for faces were not pulling in the regular
    spec_helper, or the puppet/face library before they used it.  This worked fine
    by coincidence when they ran together, but blew up if run separately.
    
    Reviewed-By: Jesse Wolf <jesse@puppetlabs.com>

commit 1ee6f949416a269cc7103dc1ae863fc0f91c7a8b
Merge: 0b9c7ad c306db2
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Apr 22 15:19:54 2011 -0700

    Merge branch 'tickets/2.6.x/6487-help-directoryservice-provider-work-on-future-OSX-versions' into 2.6.next
    
    * tickets/2.6.x/6487-help-directoryservice-provider-work-on-future-OSX-versions:
      (#6487) Add some testing for OS X version support in DirectoryService provider
      (#6487) Directoryservice provider will fail in future OS releases

commit c306db2037a12fcf5064ab496b96eaa3011d5e71
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Apr 22 15:03:17 2011 -0700

    (#6487) Add some testing for OS X version support in DirectoryService provider
    
    This adds some basic testing around whether url, or plist data is used
    for the various versions of OS X.  Unfortunately this involves
    stubbing larger sections of the implementation than we'd like, but
    this did not attempt to re-structure the implementation at all.
    
    Paired-with: Josh Cooper <josh@puppetlabs.com>

commit 0008b630f8bd6c5dbeb96fd0f097dd15c22ffaf4
Author: Gary Larizza <ccshots@gmail.com>
Date:   Sun Feb 27 11:30:11 2011 +0000

    (#6487) Directoryservice provider will fail in future OS releases
    
    This commit removes a case statement in the get_exec_pramble and
    single_report methods.  In its place is an if statement that will
    cause Puppet to fail if its being run on an OS X system with a version
    < 10.4.  This if-statement will also allow Puppet to run in 10.7.
    
    Signed-off-by: Gary Larizza <ccshots@gmail.com>

commit 89620ab51997e032ccde218de13acab9f55da4b8
Merge: 2591a53 f21162b
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Apr 22 11:14:36 2011 -0700

    Merge branch 'tickets/2.7.next/6368-files-autorequire-nearest-ancestor-directory' into 2.7.next
    
    * tickets/2.7.next/6368-files-autorequire-nearest-ancestor-directory:
      (#6368) Make the File type autorequire its nearest ancestor directory

commit f21162bdbae516d2613052d35a2f8bbd34d0bf86
Author: Ian Ward Comfort <icomfort@stanford.edu>
Date:   Thu Feb 17 17:23:29 2011 -0800

    (#6368) Make the File type autorequire its nearest ancestor directory
    
    The File type will now autorequire the nearest ancestor directory found in the
    catalog, not just the file's parent directory. This is useful for setting up
    transitive relationships in cases when a package or other resource creates a
    large directory hierarchy, e.g.
    
      package { 'foo': ensure => present }
      file { '/var/lib/foo': require => Package['foo'] }
    
    This will make File resources at arbitrarily deep levels under /var/lib/foo
    automatically (transitively) require the foo package.
    
    Only the nearest ancestor is autorequired, to prevent explosion of the
    relationship graph.

commit 25593abbb044aca86c71cd60e91665eca0ce1bd1
Merge: 01f610b e4b31b4
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 21 19:04:39 2011 -0700

    Merge branch 'next'
    
    * next:
      (#6928) Don't blow up when the method is undefined...
      (#6928) backport Symbol#to_proc for Ruby < 1.8.7
      (#7183) Implement "invisible glob" version matching for faces
      maint: better disabling of Signal#trap in our tests.
      maint: more robust listing of valid faces.
      maint: clean up testing code a fraction...
      maint: better error report for a missing version of a face.
      maint: handle face clear/reset sanely in the interface spec.
      maint: stop stubbing log level setting.
      Move tests from Puppet-acceptance repo
      (#7116) Handle application-level options in parse_options
      maint: fix gratuitous whitespace in the code.
      maint: remove redundant context from the test.
      (#7062) better argument handling in the action wrapper methods
      maint: move method comments outside the comment.
      Fixed #7166 - Replaced deprecated stomp "send" method with "publish"
      maint: Remove unused faces code

commit 1e9cc2cbf984633ab7ac63d466b3e4db8bca1445
Merge: e185be0 2a2226c
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 21 19:04:04 2011 -0700

    Merge branch 'ticket/2.7.x/7080-reverts' into 2.7.x
    
    * ticket/2.7.x/7080-reverts:
      Revert "Fixing Facts pson methods more resilient"
      Revert "(7080) Adding json support to Indirector Request"
      Revert "Adding json support to Puppet::Node"

commit e185be0a6d35c84a60b940f233f87c0908547dee
Merge: dc378c0 5c24541
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Apr 21 18:12:22 2011 -0700

    Merge branch 'ticket/2.7.x/7084' into 2.7.x

commit 5c245418115396df655f86065d2d1d3af62e39ee
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Apr 19 14:58:22 2011 -0700

    Fix #7084 Make the log messages produced by whits less confusing
    
    This patch changes the logging behavior of Whits so that instead of
    talking about whits directly, we refer to the Class, Stage, or recursive
    resource that they are sentinals for.
    In the case where a "completion" Whit is notified by a resource, getting
    a notification at all is counterinutitive, so I've changed the output to
    a "debug"-priority message that describes what's happening.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit dc378c024a08c2b989297ad2f8ed50830baf0dcf
Merge: 7591de7 c7a0270
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 17:36:52 2011 -0700

    Merge branch 'bug/2.7.x/7121-the-'configurer'-face-should-download-plugins-and-send-reports' into 2.7.x

commit c7a0270b872f533c5ba6187b9202a23f9ae8ab23
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 17:36:35 2011 -0700

    (#7121) Download plugins and upload reports in secret agent!
    
    This adds a plugin face, able to download plugins, and wires both that and the
    report face in to upload the result of the catalog run.  This fills out the
    standard, boring agent behaviour and makes this a semi-credible replacement.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 2a2226c0b71aafcda953057d3ecc8df5638447f2
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 21 16:56:03 2011 -0700

    Revert "Fixing Facts pson methods more resilient"
    
    This reverts commit 07a7a68a25eb9b21189751c27f90f972224ea533.
    The JSON patch series has caused problems with the inventory service,
    and further discussion is needed to decide how to serialize objects to
    PSON with regards to future compatibility.
    
    Conflicts:
    
    	spec/unit/node/facts_spec.rb
    
    Paired-with:Matt Robinson <matt@puppetlabs.com>

commit 7591de7e4ef20726a9a174ec8728bec4119d751c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 17:08:54 2011 -0700

    maint: fix a race in catalog compilation versioning.
    
    The implementation has a whole pile of time dependencies in our comparisons,
    we had a whole pile of races across the code.
    
    We could try and fix the comparisons to work better, but that is actually
    harder than it sounds thanks to the architecture.
    
    Instead, freeze time for each test, ensuring that we consistently get the
    result expected.

commit aaf7e2300b12a0ef03b620efc5eea7af0dc6f71b
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 21 16:53:26 2011 -0700

    Revert "(7080) Adding json support to Indirector Request"
    
    This reverts commit e0615cbc1eea67ef8caf4edbc8b7b3d3ce618f4d.
    The JSON patch series has caused problems with the inventory service,
    and further discussion is needed to decide how to serialize objects to
    PSON with regards to future compatibility.
    
    Conflicts:
    
    	spec/unit/indirector/request_spec.rb
    
    Paired-with:Matt Robinson <matt@puppetlabs.com>

commit 17d176b9a9be0d85f74b61d67ab6ad0f76013dbc
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 21 16:47:44 2011 -0700

    Revert "Adding json support to Puppet::Node"
    
    This reverts commit d3c94e62386ec03617015f6e6269b1de805954ea.
    The JSON patch series has caused problems with the inventory service,
    and further discussion is needed to decide how to serialize objects to
    PSON with regards to future compatibility.
    
    Conflicts (Manually resolved):
    
    	spec/unit/node_spec.rb
    
    Paired-with: Matt Robinson <matt@puppetlabs.com>

commit 3c22e770625f3cc788b0d138c8101e259a534736
Merge: 681edda ff08ba2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 16:33:59 2011 -0700

    Merge remote-tracking branch 'remotes/lak/tickets/next/7118-summaries_for_all_faces' into 2.7.x
    
    Fix conflicts due to version drift in:
    	lib/puppet/face/certificate.rb
    	lib/puppet/face/facts.rb
    	lib/puppet/face/node.rb
    	lib/puppet/face/secret_agent.rb
    	spec/lib/puppet/face/basetest.rb
    	spec/unit/face/help_spec.rb
    
    Reviewed-By: Markus Roberts <markus@puppetlabs.com>

commit 681edda370ec3d33aca0ca61864ec4352cafe567
Merge: 3c2f66d 27e0831
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 16:12:01 2011 -0700

    Merge branch 'feature/2.7.x/7181-rename-configurer-face' into 2.7.x

commit 27e083151bfd1e167f810ceb38199ded3d8d8be5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 15:45:28 2011 -0700

    (#7181) Rename configurer face to secret_agent.
    
    This is a much more useful public name, especially given the code is aimed to
    eventually replace the agent entirely.  Until then this is pleasant enough to
    talk about.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit e4b31b411a4b3d7cce7f45197491eebc36d047aa
Merge: 01f610b 2591a53
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 21 15:26:29 2011 -0700

    Merge branch '2.7.next' into next
    
    * 2.7.next:
      (#6928) Don't blow up when the method is undefined...
      (#6928) backport Symbol#to_proc for Ruby < 1.8.7
      (#7183) Implement "invisible glob" version matching for faces
      maint: better disabling of Signal#trap in our tests.
      maint: more robust listing of valid faces.
      maint: clean up testing code a fraction...
      maint: better error report for a missing version of a face.
      maint: handle face clear/reset sanely in the interface spec.
      maint: stop stubbing log level setting.
      Move tests from Puppet-acceptance repo
      (#7116) Handle application-level options in parse_options
      maint: fix gratuitous whitespace in the code.
      maint: remove redundant context from the test.
      (#7062) better argument handling in the action wrapper methods
      maint: move method comments outside the comment.
      Fixed #7166 - Replaced deprecated stomp "send" method with "publish"
      maint: Remove unused faces code

commit 2591a539481710e228e96c57b85434c1b9951c15
Merge: e396d80 3c2f66d
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 21 15:25:47 2011 -0700

    Merge branch '2.7.x' into 2.7.next
    
    * 2.7.x:
      (#6928) Don't blow up when the method is undefined...
      (#6928) backport Symbol#to_proc for Ruby < 1.8.7
      (#7183) Implement "invisible glob" version matching for faces
      maint: better disabling of Signal#trap in our tests.
      maint: more robust listing of valid faces.
      maint: clean up testing code a fraction...
      maint: better error report for a missing version of a face.
      maint: handle face clear/reset sanely in the interface spec.
      maint: stop stubbing log level setting.
      Move tests from Puppet-acceptance repo
      (#7116) Handle application-level options in parse_options
      maint: fix gratuitous whitespace in the code.
      maint: remove redundant context from the test.
      (#7062) better argument handling in the action wrapper methods
      maint: move method comments outside the comment.
      Fixed #7166 - Replaced deprecated stomp "send" method with "publish"
      maint: Remove unused faces code

commit 3c2f66d56c000d3c28d7752aa74a3574a1f6dc50
Merge: 7004a3a de2199f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 15:02:37 2011 -0700

    Merge branch 'bug/2.7.x/6928-backport-symbol-to_proc' into 2.7.x

commit de2199f3666ca9e26a0a36ec17b176300a4fa599
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 15:01:38 2011 -0700

    (#6928) Don't blow up when the method is undefined...
    
    Use the same model for testing instance methods as the rest of the code.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 7004a3a7fedde756077501ef011e44afc897e254
Merge: c5ba77e a0de328
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 14:47:20 2011 -0700

    Merge branch 'bug/2.7.x/6928-backport-symbol-to_proc' into 2.7.x

commit a0de3288bad113c9be1190095b03e892e17000d2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 14:46:36 2011 -0700

    (#6928) backport Symbol#to_proc for Ruby < 1.8.7
    
    We use the &:foo symbol-to-proc syntax in some of our code, so to avoid
    problems on Ruby earlier than 1.8.7 we should backport the support in our
    monkey-patch file.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 01f610bb223b435dc52f491260af3ea002930102
Merge: ac428b9 fc66e98
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Apr 21 14:37:50 2011 -0700

    Merge branch 'next'

commit fc66e98b84b9a16728af054485883334a5887cca
Merge: 06b8e76 e396d80
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Apr 21 14:26:29 2011 -0700

    Merge branch '2.7.next' into next

commit e396d8042c83ab0f02a4ad159f47db0003959393
Merge: 7b0cf6d 0b9c7ad
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Thu Apr 21 14:23:38 2011 -0700

    Merge branch '2.6.next' into 2.7.next
    
    Manually resolved conflicts:
    	lib/puppet/parser/resource.rb
    	lib/puppet/parser/scope.rb
    	spec/unit/parser/scope_spec.rb

commit c5ba77eff86ffedb4979b6968db0e2520dd1da25
Merge: 7b3744c f17f6bb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 12:37:59 2011 -0700

    Merge branch 'feature/2.7.x/7183-implement-invisible-glob-version-matching-for-faces' into 2.7.x

commit f17f6bba87519db888854acf7017ddff61f635be
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 20 15:51:39 2011 -0700

    (#7183) Implement "invisible glob" version matching for faces
    
    "Invisible glob", or "prefix", version matching means that when you specify a
    version string to use you can specify as little as one version number out of
    the semantic versioning spec.
    
    Matching is done on the prefix; an omitted number is treated as "anything" in
    that slot, and we return the highest matching versioned face by that spec.
    
    For example, given the set of versions: 1.0.0, 1.0.1, 1.1.0, 1.1.1, 2.0.0
    The following would be matched:
    
      input    matched
      1        1.1.1
      1.0      1.0.1
      1.0.1    1.0.1
      1.0.2    fail - no match
      1.1      1.1.1
      1.1.1    1.1.1
      1.2      fail - no match

commit 7414ee7ebda1052f4c52f3e5565726f20de5a20b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 12:03:13 2011 -0700

    maint: better disabling of Signal#trap in our tests.
    
    We tried to stub out the trap method on signal to stop our application level
    signal handlers getting in the way, but it kept not sticking.
    
    Now, instead, we just stub it out globally at the module level in our spec
    helper.  Less fun, but more effective.  Until rspec starts installing a signal
    handler, at least. :)

commit 03bd5595365b7d541d20ed614e9c8be6a7cba9c9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 21 10:38:25 2011 -0700

    maint: more robust listing of valid faces.
    
    We used to treat anything with a top level key in the faces hash as a valid
    face; it makes more sense to filter that only to things that have at least one
    implementation.
    
    Previously we had to be super-careful not to accidentally touch the top level
    for an invalid face, which set us up for future failure when someone wasn't
    careful enough; now we can cope with that.
    
    Paired-With: Max Martin <max@puppetlabs.com>

commit 7b0cf6dc3e4165733195b1645e2c4542c340feb6
Merge: cdcff98 c3a76a9
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Apr 21 11:39:25 2011 -0700

    Merge branch 'ticket/2.7.next/7021-order_dependent_test_failure' into 2.7.next
    
    * ticket/2.7.next/7021-order_dependent_test_failure:
      (#7021) Fix order dependent spec failures
      maint: Remove unused code

commit c3a76a98226866fe691d0c6cb3995ec08af799e5
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Apr 21 11:29:05 2011 -0700

    (#7021) Fix order dependent spec failures
    
    Running:
    
        rspec spec/unit/util/network_device_spec.rb spec/integration/transaction_spec.rb
    
    Caused
    
         Mocha::ExpectationError:
           unexpected invocation: #<Mock:device>.command()
    
    The NetworkDevice class had a current reader that once set, never got
    unset and lived between tests.
    
    Paired-with: Josh Cooper <josh@puppetlabs.com>

commit 7bd6a2f37beda001c83b666900df436a33cfccb1
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Apr 21 11:10:44 2011 -0700

    maint: Remove unused code
    
    While looking through code related to dealing with teardown on class
    state variables we found some code that was never called in the unit
    tests.
    
    Paired-with: Josh Cooper <josh@puppetlabs.com>

commit 7db4793eac52cbbf9c5919597e8e3a6b0a7bbd38
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 20 19:04:50 2011 -0700

    maint: clean up testing code a fraction...
    
    This rewrites a block of identical tests down to a little table, then applies
    the test over that.

commit eeb82361de00f86f0840c2fcdd30a5e84c49232d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 20 16:56:45 2011 -0700

    maint: better error report for a missing version of a face.
    
    We would report this:
    
      Could not find version 1.0.0 of Puppet::Face[:version_matching, "2.0.0"]
    
    That is not actually so helpful, not least because people wonder why it
    reports a version number they didn't ask for.  Instead, we just report the
    requested name now.

commit 677752d44e180d7293fbae6594f51fe7d41fb3fc
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 20 16:26:02 2011 -0700

    maint: handle face clear/reset sanely in the interface spec.
    
    We used to flush the loaded face cache, but not the list of 'require' things,
    which meant that these tests couldn't work with anything outside their own
    setup, which is actually pretty undesirable.
    
    Instead, port the code from the face_collection spec that handles this in a
    way that makes me less inclined to weep, and which lets the surrounding code
    work as designed.

commit 0b9c7adce13cad4325d514f9d97562364042319c
Merge: 6b18f8f 34f9f41
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Apr 20 15:55:29 2011 -0700

    Merge branch 'maint/2.6.next/defined_type_has_two_parents' into 2.6.next

commit 34f9f41628273d1554760f85414eb326aaea605e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Apr 20 15:41:52 2011 -0700

    Maint: Fix a #4655 introduced log inconsistency
    
    When we moved code from the compiler to parser/resource, we lost
    a conditional that prevented defined resources from gaining containment
    edges to stages. Adding a stage to a defined resource was usually
    harmless, but it violated the invariant of "resources should only have
    exactly one container as their direct parent", producing a 50% chance of
    a malformed containment path in log messages.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 06b8e7608eb8526396728020cd31f5c8052e21a3
Merge: cb43cfc 6981ee5
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Apr 20 15:51:13 2011 -0700

    Merge branch 'maint/defined_type_has_two_parents' into next

commit 6981ee5f526e00f46f6b5460662bf09cddf832ef
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Apr 20 15:41:52 2011 -0700

    Maint: Fix a #4655 introduced log inconsistency
    
    When we moved code from the compiler to parser/resource, we lost
    a conditional that prevented defined resources from gaining containment
    edges to stages. Adding a stage to a defined resource was usually
    harmless, but it violated the invariant of "resources should only have
    exactly one container as their direct parent", producing a 50% chance of
    a malformed containment path in log messages.
    
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit 7b3744cd363c817c515f865ccdf45bdfbdb5796b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 20 15:22:57 2011 -0700

    maint: stop stubbing log level setting.
    
    The underlying problem turned up when another test (as a side effect) changed
    the logging level to be more verbose, and a very distant test broke.  This
    revealed that we didn't preserve that global state around tests.
    
    Fixing that further revealed that we stubbed setting that log level all over
    the place, as a point fix for the same problem, and to assert the operation of
    various tools.
    
    So, additionally, we strip out all that stubbing, and assert on the desired
    effect rather than the mechanism for achieving it.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit cb43cfc853249015ebea9e5be2091235c1e38b89
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Wed Apr 20 14:56:34 2011 -0700

    Moving tests from Puppet-acceptance repo

commit ac428b9557e2da251e4b51e48de844833ca0aa2a
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Wed Apr 20 14:58:26 2011 -0700

    Move tests from Puppet-acceptance repo

commit 220f3086e0254fb681a8dfece5238d0dff861f6f
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Wed Apr 20 14:54:48 2011 -0700

    Move tests from Puppet-acceptance repo

commit db26326364103ed2f7fbd56d246d700cc2d9a0f9
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Wed Apr 20 14:51:55 2011 -0700

    Move tests from puppet-acceptance repo

commit 6b18f8f01f12b6123f3c7eae58817b10d41b2391
Author: Dominic Maraglia <dmaraglia@gmail.com>
Date:   Wed Apr 20 14:47:08 2011 -0700

    Move acceptance tests from puppet-acceptance repo

commit 06d5af8dcced82d4611783d1c5fa03995d84d19c
Merge: 8172060 379b46d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 20 14:12:59 2011 -0700

    Merge branch 'bug/2.7.x/7116-cannot-use-faces-with---debug' into 2.7.x

commit 379b46d4b9e2a57f954ff178956ca6850c3c56f7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 19 21:08:05 2011 -0700

    (#7116) Handle application-level options in parse_options
    
    We hid another layer of per-application option in the class backing the
    application, which wasn't correctly handled in the parse_options method.
    
    They are now found and handled, so that global flags like --debug work as
    expected on the left of the action, not just the right.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit a1db58528f2baf7867202058d80e66f23fb447e0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 19 20:52:52 2011 -0700

    maint: fix gratuitous whitespace in the code.
    
    We had some stray spacing between variables and the '=' sign from when there
    was another variable in place; it got deleted, but the code wasn't closed up.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 601baf1f25e5f62b5f501635cf49721187045f29
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 19 20:43:47 2011 -0700

    maint: remove redundant context from the test.
    
    We had a block of tests in a describe block inside a describe block; they were
    literally one hundred percent overlap.  Eliminate that and just keep the
    outer.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 8172060684e532eaba234eb992ed739511abbe59
Merge: 8a3071c 5d7ef5c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 20 13:49:05 2011 -0700

    Merge branch 'bug/2.7.x/7062-improve-cloudpack-option-parsing-errors' into 2.7.x

commit 5d7ef5caf30a0c5b3253340c5f2722e51c56c75e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 19 20:23:27 2011 -0700

    (#7062) better argument handling in the action wrapper methods
    
    We previously used *args to collect all arguments to the action when_invoked
    block, then tried vaguely to massage some little bits of them into the right
    shape.
    
    Methods defined with blocks, in Ruby 1.8, also have some fun behaviours.  The
    most special is that if you pass more than one argument to a block defined
    with only one Ruby will automatically coerce the arguments into an array – and
    this is preserved when it is bound to a method.
    
    This led to routine situations where we would pass the wrong number of
    arguments to the block because, say, the user gave an extra argument on the
    command line.
    
    Instead of failing this would transmogrify the arguments in counterintuitive
    ways, and end up with horrible stack traces when that interacted badly with
    the code as written.
    
    Now, instead, we work out the right argument format based on the arguments
    that the when_invoked block takes.  This gives much better (albeit perhaps not
    so user friendly) behaviour at the interface level.  Which is, at least,
    consistent with other Ruby API.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 33b5580ef6b6c851beb6852e56659afea8bb0b04
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 19 18:22:03 2011 -0700

    maint: move method comments outside the comment.
    
    The comment discussing the purpose of the wrapper and related details rightly
    belongs outside the method; move it there so it doesn't perturb the functional
    changes that follow.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit f6afa8722a588a38e54f0c999abba350e638e5f9
Merge: 72cd6fb 9a5bf6e
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Wed Apr 20 09:47:27 2011 -0700

    Merge branch 'ticket/2.6.next/7166' into 2.6.next

commit 9a5bf6e25d5871bda3252028c02846bfb2d8708b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Apr 20 02:35:40 2011 +1000

    Fixed #7166 - Replaced deprecated stomp "send" method with "publish"
    
    The "send" method in the stomp gem has been deprecated since:
    
    http://gitorious.org/stomp/mainline/commit/d542a976028cb4c5badcbb69e3383e746721e44c
    
    It's been replaced with the "publish" method.
    
    Also renamed the send_message method to publish_message more in
    keeping with language used in queuing.

commit 8a3071caf4e470ca9dcb9d3a0f80218ee9a8ebb7
Merge: 40a5bca c87d6c9
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Apr 19 15:34:31 2011 -0700

    Merge branch 'ticket/2.7.x/7166' into 2.7.x

commit c87d6c98ec1a315d435be38e7eb2258984c7d88c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Apr 20 02:35:40 2011 +1000

    Fixed #7166 - Replaced deprecated stomp "send" method with "publish"
    
    The "send" method in the stomp gem has been deprecated since:
    
    http://gitorious.org/stomp/mainline/commit/d542a976028cb4c5badcbb69e3383e746721e44c
    
    It's been replaced with the "publish" method.
    
    Also renamed the send_message method to publish_message more in
    keeping with language used in queuing.

commit cdcff98b6ba4de967ecab0d6de9f1dd527e1f9c6
Merge: 0d1e819 a18ac78
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Apr 19 14:41:51 2011 -0700

    Merge branch 'ticket/next/pson-ordering' into next
    
    * ticket/next/pson-ordering:
      maint: Fix PSON order dependency in test

commit a18ac7813c7f49be9611680f80a00b1b54f625ba
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Apr 19 14:11:01 2011 -0700

    maint: Fix PSON order dependency in test
    
    Testing of the to_pson method relied on order dependency that was
    causing failures in ruby 1.8.6 (though not 1.8.7). Fixed this by parsing
    the resulting PSON and testing the parsed object's properties instead of
    doing string matching.
    
    Reviewed-by:Matt Robinson <matt@puppetlabs.com>

commit 0d1e81948fb4c5430714d63a2e3ef66b32f98fad
Merge: 485501a 7d3c303
Author: Josh Cooper <josh@puppetlabs.com>
Date:   Tue Apr 19 13:46:33 2011 -0700

    Merge remote-tracking branch 'jamtur01/tickets/master/7166' into next

commit 40a5bca736a31784d341aef389edfdde915938ec
Merge: 311e3ec 557767b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Apr 19 13:00:41 2011 -0700

    Merge branch 'ticket/2.7.x/maint-remove_duplicate_faces_code' into 2.7.x
    
    * ticket/2.7.x/maint-remove_duplicate_faces_code:
      maint: Remove unused faces code

commit 557767b164376d0e61875646715d3ec96401b96c
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Apr 19 12:53:16 2011 -0700

    maint: Remove unused faces code
    
    Looks like in renaming faces to face we just missed some files.  They
    got copied, not moved.
    
    Paired-with: Max Martin <max@puppetlabs.com>

commit 485501a55e99b51cf8c9affa07a9f873a6cbc951
Merge: 05fb225 311e3ec
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Apr 19 11:28:26 2011 -0700

    Merge branch '2.7.x' into next

commit 05fb2257c1f047b652abea9682718943b18e325b
Merge: 7438723 b3ab0d9
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Apr 19 11:14:56 2011 -0700

    Merge branch 'tickets/2.7.x/4655-parameterized-classes-default-stages' into next
    
    * tickets/2.7.x/4655-parameterized-classes-default-stages:
      (#4655) Allow stage to be set using a default class parameter

commit 72cd6fb383335a62d2d1ab656cdff39c34de0f19
Merge: 16d1f78 656eff8
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Apr 19 11:11:34 2011 -0700

    Merge branch 'tickets/2.6.x/4655-parameterized-classes-default-stages' into 2.6.next
    
    * tickets/2.6.x/4655-parameterized-classes-default-stages:
      (#4655) Allow stage to be set using a default class parameter
      Updated CHANGELOG for 2.6.8rc1

commit 311e3ec762bc6863367d5d6ac6548d02a2d78e03
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 19 11:04:31 2011 -0700

    maint: mangle grammer in rspec to avoid Jenkins fail...
    
    Apparently 'expect { ... } .not_to' is considered unnecessary contortion by
    the rspec authors, so we only have 'expect { ... } .to_not' in some versions
    of rspec.
    
    This updates the test code to reflect that bit of annoyance.

commit 656eff821bec534a23e3e81e86ddbe3fc28f10ed
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Apr 15 09:52:56 2011 -0700

    (#4655) Allow stage to be set using a default class parameter
    
    For example:
      stage{ pre: before => Stage[main] }
      class someclass ($stage=pre ) { ... }
      class { someclass: }
    
    This transplants adding the edge from the resource to the stage from
    the compiler into when the resource is evaluated.  This moves adding
    the stage edges to after when the defaults are copied into the
    resources, making them available.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 7438723f6ae13605a48c5db63839a829a19f5127
Merge: a594563 0fed94f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 19 10:59:29 2011 -0700

    Merge branch 'bug/2.7.x/6752-allow-action-specific-render-methods'
    
    Fix the conflicts over changes in my previous commit.

commit 0fed94fbbad45388c1f9d2451d946681d80643f8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 18 17:29:21 2011 -0700

    (#7013) Wire up rendering hooks on the CLI.
    
    We now find, and call, the appropriate rendering hooks on actions during the
    rendering phase.  This allows the user to intercept and replace the result
    object that passes through the rest of the rendering system on the fly.
    
    Example usage:
    
      action :foo do
        when_rendering :pson do |result|
          { :whatever => result[a],
            :foobar   => result[b],
          }
        end
      end
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 12098f2d54e8e00a687f42837deeef65c7759389
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 18 17:21:28 2011 -0700

    (#7013) Handle rendering modes out in the application layer.
    
    We no longer establish the rendering mode in the actions; they just default to
    "nothing", and let that flow on out to the application layer.  That lets the
    facade we put before the face determine the default behaviour.
    
    This is mostly a no-op down in the CLI side, but it makes it much easier to
    integrate into MCollective, HTTP-API, and for other non-CLI users of Faces.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 5938452dccc8c925bc6275a62ae96f50916cc239
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 18 15:23:03 2011 -0700

    (#7013) Strip out old face-wide rendering defaults.
    
    Now we want to support action-based rendering, it is super-hard to define the
    semantics around defaulting where things are unspecified: the execution
    context (CLI, HTTP, etc) vs the face, vs the action all have different
    semantics.
    
    Without solving the problem of how we express all that context and those
    semantics down in the action, especially one written by a third party, this
    just becomes a box of counter-intuitive and annoying semantics and edge-cases.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 5258e06a39e11c2cc1951af9235605a29a155c36
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 18 14:41:01 2011 -0700

    (#7013) Return bound methods for when_rendering hooks.
    
    We can return a method bound to the current face instance when we access the
    'when_rendering' hook, which allows us to directly call them.  Make that
    change, and add appropriate testing.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 86801b580101315706b1b02a00a36840eabd75cd
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 18 13:29:47 2011 -0700

    (#7013) Support 'when_rendering' and 'render_as' in actions.
    
    These define the API used by folks writing actions that supports their
    rendering hooks.  'when_rendering' defines a helper method on the interface,
    which runs the users code in their expected context.
    
    'render_as' just sets the default rendering format; by default this is
    :for_humans.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit be23b8423ba77a5935586e277bf543cd54b9dec7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 18 13:27:17 2011 -0700

    (#7013) better default rendering support for faces
    
    We have some specific requirements around rendering, including the ability of
    authors of actions to add nice, custom rendering.  To support that we want
    solid "basic" rendering for human-focused output.
    
    This implements that generic rendering correctly and to spec, to give a sound
    basis that we can build on for extensible rendering.
    (#7013) better default rendering support for faces
    
    We have some specific requirements around rendering, including the ability of
    authors of actions to add nice, custom rendering.  To support that we want
    solid "basic" rendering for human-focused output.
    
    This implements that generic rendering correctly and to spec, to give a sound
    basis that we can build on for extensible rendering.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit e6caa2459a75cdfb015e7f4754dd5b44d166b0b5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 18 13:27:10 2011 -0700

    maint: make sure we don't ever default to being default...
    
    We tested that we could make something a default action, but we also want to
    assert that we never accidentally make everything the default action.
    
    Paired-With: Max Martin <max@puppetlabs.com>

commit 36b100a9cffdfcfe6cb661e0f41bb5cb05b19adf
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 18 13:22:35 2011 -0700

    maint: print 'false' in the default render method.
    
    We used to skip printing if the return value from an action was false; this
    made it impossible to display "false" to the user, which was a more meaningful
    output in some cases than nothing.
    maint: print 'false' in the default render method.
    
    We used to skip printing if the return value from an action was false; this
    made it impossible to display "false" to the user, which was a more meaningful
    output in some cases than nothing.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 2cf692c878741fa92c18dcf2062b2a0ba96e3ca8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 18 14:31:29 2011 -0700

    maint: delete README.strings, which is out of date.
    
    This documentation has not been kept up to date with changes in the product,
    since it originated way back in the prototype of interfaces.
    
    Reviewed-By: Randall Hansen <randall@puppetlabs.com>

commit 22355dc01a7cab82427b43987f2bf542c281305c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 18 15:25:19 2011 -0700

    maint: test the 'help' face has the default action 'help'
    
    We had a pending test for this, but forgot to write it way back when we were
    implementing the feature.  Add it now.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit a594563919a2342e1ea542f8f18ed187ab9ecad3
Merge: 9adcb19 4efba71
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 19 10:34:05 2011 -0700

    Merge branch 'bug/2.7.x/7132-a-summary-with-a-newline-is-accepted' into 2.7.x

commit 4efba7148a79fcd099b4eb9bd17cbb2d785f5fb8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 17 19:28:07 2011 -0700

    maint: drop multi-version support from action loading.
    
    Right now we have no other support for multi-version loading in the code; we
    should strip out support from the action loading to mirror.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 266f937ed7d859fb2aee94c76e1a20539357c1eb
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 17 19:20:49 2011 -0700

    (#6962) Add 'description' to faces and action.
    
    This adds the 'description' method to the faces and actions, as well as
    structured testing to ensure that the DSL works as expected.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 32c667c79bc0d5151580ea79719f28739945bfb1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 17 18:51:09 2011 -0700

    (#7132) Reject 'summary' text with newlines embedded.
    
    Our summary documentation is used to provide single-line context to faces,
    actions, and other items.  To support this we hard-fail if someone tries to
    use the summary to embed the long documentation, and point them to the right
    place to add the extended text.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit b3ab0d94cb592189b3c553512dafe221775a0626
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Apr 15 09:52:56 2011 -0700

    (#4655) Allow stage to be set using a default class parameter
    
    For example:
      stage{ pre: before => Stage[main] }
      class someclass ($stage=pre ) { ... }
      class { someclass: }
    
    This transplants adding the edge from the resource to the stage from
    the compiler into when the resource is evaluated.  This moves adding
    the stage edges to after when the defaults are copied into the
    resources, making them available.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 7d3c30323efa5c2de2282395bc4105fef8b19e50
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Apr 20 02:35:40 2011 +1000

    Fixed #7166 - Replaced deprecated stomp "send" method with "publish"
    
    The "send" method in the stomp gem has been deprecated since:
    
    http://gitorious.org/stomp/mainline/commit/d542a976028cb4c5badcbb69e3383e746721e44c
    
    It's been replaced with the "publish" method.
    
    Also renamed the send_message method to publish_message more in
    keeping with language used in queuing.

commit 9adcb194a75df4e0f0570c20bfa90686ed078265
Merge: 5a10093 1251311
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Apr 18 16:55:00 2011 -0700

    Merge branch 'ticket/2.7.x/7108' into 2.7.x

commit 125131121a88c972d27f6e45ffd21aa0369e2df9
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Apr 18 16:51:56 2011 -0700

    (#7108) Update help/man text for puppet kick
    
    Puppet kick's help referred only to the outdated authconfig (namespaceauth.conf) file, rather than
    the modern rest_authconfig (auth.conf).

commit eeb1b60dceda1af79ed40662d8cc52299e75157f
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Apr 18 16:06:31 2011 -0700

    (#7108) Modernize description of --listen in defaults.rb
    
    --listen's description referred to the older XMLRPC authorization path.

commit 3ec9526b84bbee760e7040fde439c577727ca915
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Apr 18 15:30:18 2011 -0700

    Maint: puppetmaster -> puppet master in defaults.rb

commit 5a100937d70d3a151153b958f92f3907d4547cd2
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Apr 18 14:37:21 2011 -0700

    (Maint) Fix a leaking spec, patching intermittent failures.
    
    Reviewed-By: Matt Robinson.

commit 07b677c5f6af8def03c5c30393fd83bc3986239a
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Apr 18 13:40:31 2011 -0700

    Merge remote-tracking branch 'community/feature/puppet-device' into 2.7.x
    
    Reviewed-By: Mike Stahnke

commit b142973a94ced6c0ff43da882189abe806c18c68
Merge: 977684e 13e64fe
Author: Max Martin <max@puppetlabs.com>
Date:   Mon Apr 18 11:44:29 2011 -0700

    Merge branch 'ticket/2.7.x/7131-optional-arguments' into 2.7.x
    
    * ticket/2.7.x/7131-optional-arguments:
      (#7131) Remove support for optional arguments to options

commit 13e64fe9d72a0207ff65a35242d855cd3c55dd43
Author: Max Martin <max@puppetlabs.com>
Date:   Mon Apr 18 11:06:39 2011 -0700

    (#7131) Remove support for optional arguments to options
    
    As per the design decision documented in #7131, optional arguments to
    options will no longer be supported. This patch causes such optional
    arguments to raise an error, and tests for this behavior. Also cleaned
    up some confusing use of the term "subject" in specs.
    
    Paired-with: Daniel Pittman

commit 977684ee83627194c78c81e30c001f3d9062f6f3
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Apr 18 11:10:00 2011 -0700

    (Maint) Fixing an order-dependent failure.
    
    Running spec/unit/option_spec.rb before requiring puppet/interface
    caused a circular require, and a failure.
    
    Paired-With: Max Martin

commit 7e9b45d604148d48b90e84bb091d751f3d393874
Merge: eeb82f8 9d2ec21
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 17 22:25:06 2011 -0700

    Merge branch 'bug/2.7.x/7013-interfaces-should-be-able-to-mark-options-as-required' into 2.7.x

commit 9d2ec219bbd77bfca48a72b52fe5d0d3fcc0dcf7
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Sun Apr 17 22:23:44 2011 -0700

    (#7013) Add support for required options.
    
    This adds another hook into the generated wrapper, which invokes a method to
    validate arguments.  This is used to raise an exception when required options
    have not been passed to the method.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>

commit eeb82f8b2d5c5a3e98d54d7a23ad3e5dbcbae39d
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Fri Apr 15 16:38:31 2011 -0700

    (Maint) Code cleanup.
    
    Reviewed-By: Daniel Pittman

commit 2e2ef4a8923f0bd89d52199107bf1214f3f4d3f5
Merge: cedbd5a d85c2a8
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Apr 15 16:12:57 2011 -0700

    Merge branch 'maint/2.7.x/fix-spec' into 2.7.x

commit d85c2a8ed1423f11b2c91e084765a81aebfeb2fc
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Apr 15 16:10:01 2011 -0700

    maint: Fix the missed failure from the previous commit
    
    There were two times being used, and the previous fix only fixed one of them.
    
    Reviewed-By: Jacob Helwig

commit cedbd5a1bd24f548f888ef8e45afd352c234be56
Merge: 0d0318f e946a17
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Apr 15 15:57:26 2011 -0700

    Merge branch 'maint/2.7.x/fix-spec' into 2.7.x

commit e946a17bf7d8c728adc8ab8868d67ebb2832b703
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Apr 15 15:53:51 2011 -0700

    maint: Fix a broken Puppet::Node::Facts spec
    
    This was breaking in other timezones because it was comparing to a string
    literal representation of a time, which really varies between timezones.

commit 0d0318f9f0eadff7f9934d3d02a7081bba05164c
Merge: 3fe01a3 d80500f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 15 15:34:24 2011 -0700

    Merge branch 'feature/2.7.x/6978-face-and-action-options-should-have-hooks-for-various-actions' into 2.7.x

commit d80500f42367fa30a00dc12ef4b32b55b350b1ca
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 15 15:34:06 2011 -0700

    maint: speed up testing output of the help face.
    
    We were generating the help output multiple times and testing it for multiple
    properties; now we generate it once and test it multiple times.  This makes
    for less clear error reporting, but saving dozens of calls at ~ 1/3rd a second
    each is worth it.
    
    Paired-With: Max Martin <max@puppetlabs.com>

commit 3fe01a34e8397c30a00e7d47b4ac0b93198e1fcf
Merge: 64bc834 9264526
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Fri Apr 15 15:31:46 2011 -0700

    Merge branch 'tickets/2.7.x/7115' into 2.7.x

commit 9264526a7cd45c9ff5767bc6c85585eb19f01f63
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Fri Apr 15 15:31:19 2011 -0700

    (#7115) Enable default actions.
    
    This also enables the 'help' action on the 'help'
    face to serve as a default action.
    
    Reviewed-By: Daniel Pittman
    Reviewed-By: Nick Lewis

commit ab541fa0976bdce395a072bf0c391146b99d4219
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 15 15:18:13 2011 -0700

    (#7059) Use option hooks for the indirector terminus option.
    
    We used to open-code terminus setting, which had a bunch of duplicate code.
    Now, instead, we use the option hooks, resulting in the same behaviour with
    much less code.
    
    Paired-With: Max Martin <max@puppetlabs.com>

commit f770325884ebef493cb8ca6060a65355211125b9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 15 15:06:53 2011 -0700

    (#6978) Enforce the calling convention of option hooks.
    
    We require that hooks take exactly three arguments; now we enforce that in the
    DSL, to ensure we give good, and early, errors to users who do the wrong
    thing.
    
    Paired-With: Max Martin <max@puppetlabs.com>

commit c00e03d41b0bd1174b51eddf5e593aec3bbdd84d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 15 13:19:11 2011 -0700

    (#7059) Set the CA location using option hooks.
    
    Now that we support option hooks, we can use those to set the CA location
    rather than open-coding each chunk of support.  As a side benefit we also set
    the CA location for inherited actions, as we should.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit dca1f077dd7a818aee447222a7649742f2b1575f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 14 15:20:38 2011 -0700

    (#6978) Add before and after decorators to actions from options.
    
    Options can now add before_action and after_action blocks; these are invoked
    before or after any action is invoked on the face.  This allows these options
    to declare common behaviour and have it automatically applied to the actions
    invoked.
    
    Option hooks have no defined order of invocation: they will run in a
    completely random order.  Where there are dependencies they should be on the
    value of the options hash passed to the invocation, not on side-effects of the
    other invocations.
    
    You are not able to influence the arguments, options, or calling of the action
    body in a before or after decorator.  This is by design.
    
    The invocation passes to the hook:
    
     1. The action object representing this action.
     2. The arguments to the action, as an array.
     3. The options for the action, as a hash.
    
    Paired-With: Max Martin <max@puppetlabs.com>

commit 0c60aa28d2d15e7e718792871af3350c3a1fa5c7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 14 19:48:48 2011 -0700

    maint: delete an empty describe block containing no tests.
    
    Reviewed-By: Max Martin <max@puppetlabs.com>

commit 64bc8345fd29f17ce7be53187d0acf3fc61d2b58
Merge: d53c84d a509821
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Apr 15 10:07:08 2011 -0700

    Merge branch 'tickets/2.7.x/7111-deprecation-warning-wordsmithing' into 2.7.x
    
    * tickets/2.7.x/7111-deprecation-warning-wordsmithing:
      Cleanup trailing whitespace
      (#7111) Clarify scoping deprecation warning

commit d53c84de9985421e6c667f095a10574171ece159
Merge: e945cea e424740
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Apr 14 17:08:17 2011 -0700

    Merge branch 'tickets/next/7080-serializable_indirector_requests' into 2.7.x

commit e424740d78b8b72dc6bd7ebbbe27b237347d67f5
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Apr 12 23:54:08 2011 -0700

    Adding json-specific matchers
    
    These make the JSON tests much easier to read and
    write.  They're the first custom matchers that I can
    find, so they're breaking a bit of new ground,
    but the JSON tests were pretty hard to read
    and there was a lot of duplication, so it seemed
    worth it.
    
    Note that for some reason they're not working on
    Facts - it seems to get immediately turned into
    a full instance by the JSON parsing subsystem,
    and I've no idea why.
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit f37b2e106ed171042c94a1a0b8fd31a254a69588
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Apr 12 23:54:03 2011 -0700

    Making watchr resilient to syntax errors in tests
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit d3c94e62386ec03617015f6e6269b1de805954ea
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Apr 12 21:41:06 2011 -0700

    Adding json support to Puppet::Node
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 155b16d8de26e5b672202522ef194c6571ec7610
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Apr 14 17:05:36 2011 -0700

    Fixing a failing test resulting from a fixed bug
    
    We were not correctly pulling request attributes out in all
    cases, but now we do, which caused this test to start failing.
    We special case the 'ip' attribute in the test now.
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit e0615cbc1eea67ef8caf4edbc8b7b3d3ce618f4d
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Apr 12 21:08:57 2011 -0700

    (7080) Adding json support to Indirector Request
    
    We'll be using this to do RPC over mcollective.
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 07a7a68a25eb9b21189751c27f90f972224ea533
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Apr 12 21:01:09 2011 -0700

    Fixing Facts pson methods more resilient
    
    They were currently failing if any values were nil,
    which happened a lot.
    
    We also prefer not to include nil values, since it muddies
    the json unnecessarily.
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit ff08ba2abc8a59caa2bae0cde0a84ded99337e1c
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Apr 14 16:48:40 2011 -0700

    (7118) Adding summaries for all faces
    
    It's usually just a one-liner, but when I saw an
    obvious opportunity for longer docs, I've added a
    @longdocs variable that can be converted to longer
    forms when ready.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit a509821f6c2da0a07bc63af433f6e36061d4f241
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Apr 14 15:56:49 2011 -0700

    Cleanup trailing whitespace

commit 5528911bd6fd784ed9550ed475f240a64c7a56fb
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Apr 14 15:53:51 2011 -0700

    (#7111) Clarify scoping deprecation warning
    
    This modifies the deprecation warning to explicitly point out that the
    specified behavior is deprecated, when it is slated to be removed,
    along with what the user can do to prepare for its removal.
    
    Paired-with: Randall Hansen <randall@puppetlabs.com>

commit e945cea00512d33c3d9d262b8285896febf946a3
Merge: d88b376 ca9d68f
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Apr 14 15:42:00 2011 -0700

    Merge branch 'ticket/2.7.x/6408' into 2.7.x

commit ca9d68f2aa846d4d8c57f272e990115c9642e9e1
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Apr 14 15:33:33 2011 -0700

    (#6408) Update puppet cert help for new subcommand action syntax.
    
    Puppet cert now allows bareword actions, which brings it more in-line with the
    Faces subcommands. Updating the help text accordingly.

commit d88b3763cea9e116c8abf45ca2aa4ec80fa20349
Merge: 97e9e5f 174e87a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Apr 14 11:55:08 2011 -0700

    Merge branch 'feature/master/4258-pkgutil' into 2.7.x
    
    * feature/master/4258-pkgutil: (29 commits)
      (#4258) Fix pkgutil spec test to have the correct provider
      (#4258) Remove superfluous command check that called pkgutil
      (#4258) Fix fd leak opening pkgutil config files
      (#4258) Permit variations of -nv in both pkgutil.conf files
      (#4258) Stop file and config checks from breaking spec
      (#4258) Check wgetopts in pkgutil.conf
      (#4258) Fix hash duplication affecting canonical provider instance
      (#4258) Use pkgutil -a to reliably determine package common names/aliases
      (#4258) Update pkgutil spec for recent impl changes
      (#4258) pkgutil: bug fix: if shortname is not equal to package name
      (#4258) pkgutil provider: better handling of short package names
      (#4258) pkgutil provider: misc enhancements
      Add spec tests for pkgutil package provider
      * Fix exception on parse failure of pkgutil output * Fix exception when querying latest version for unknown package
      Fixing indentation
      Removing blastwave references and unused PAGER
      Changing indentation to 2-spaces as per 2.6+ style
      Single package queries made more robust when dealing with pkgutil noise
      Fixing wget verbose regex
      These regular expressions will not match anything.  pkgutil doesn't output anything that can be matched.
      ...

commit 174e87a9b150a06a4ff9d696a6008fc08b05568b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Apr 14 11:33:03 2011 -0700

    (#4258) Fix pkgutil spec test to have the correct provider
    
    The resource being used for testing didn't explicitly set the provider,
    so it ended up using whatever the default provider was on the system on
    which it was run.  This was problematic when running the specs on a Mac
    since the default provider is pkgdmg and that provider doesn't seem to
    be upgradeable.  So when you tried:
    
        @resource[:ensure] = :latest
    
    You got the error:
    
        1) Puppet::Type::Package::ProviderPkgutil when installing should use a command without versioned package
         Failure/Error: @resource[:ensure] = :latest
         Puppet::Error: Parameter ensure failed: Provider must have features 'upgradeable' to set 'ensure' to 'latest'
         # ./lib/puppet/parameter.rb:171:in `fail'     # ./lib/puppet/parameter.rb:257:in `validate'
         # ./lib/puppet/property.rb:300:in `should='     # ./lib/puppet/property.rb:300:in `each'
         # ./lib/puppet/property.rb:300:in `should='     # ./lib/puppet/property.rb:337:in `value='
         # ./lib/puppet/type.rb:416:in `[]='     # ./spec/unit/provider/package/pkgutil_spec.rb:35
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit ba9bd88b8b60ebe567a6d78d70782610cc281213
Merge: c7ae6bd e119739
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Apr 14 11:31:52 2011 -0700

    Merge branch 'ticket/next/6928' into next

commit e119739de80a2a09593dbc69aee6049b723d4e06
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Apr 14 11:30:17 2011 -0700

    (#6928) Add a notice to Parser#validate action when using default
    
    It was unclear what the action was validating when no arguments were specified,
    so now it notifies the user.
    
    Paired-With: Jesse Wolfe

commit 16d1f784cd00f8b3c3381caede44159c309487d7
Merge: 6a8068b ccbe9f3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 14 17:22:04 2011 +1000

    Merge remote branch 'james/tickets/2.6.x/6681' into 2.6.next
    
    * james/tickets/2.6.x/6681:
      Fixed #6681 - Remove --force-yes option from aptitude is used

commit c7ae6bde57fd3ab8380cd5804fd87283bb708755
Merge: 3ab44c7 9bc4bce
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Apr 13 19:20:40 2011 -0700

    Merge branch 'ticket/next/7103' into next

commit 9bc4bcefb1a9f2545b4828dcea7a41ef450e7d52
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Apr 13 18:46:55 2011 -0700

    (#7103) Fix HEAD requests in the HTTP handler
    
    HEAD request support was implemented in 2.6.x, and the internal API in the HTTP
    handler changed in 2.7.x. So when the branches were merged together, HEAD
    requests ended up using the wrong API without any visible merge conflicts or
    spec failures. This fixes them to use the correct API.
    
    Reviewed-By: Matt Robinson

commit 97e9e5f223cb7baefd52456e2324c592fe415dca
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Apr 13 17:47:07 2011 -0700

    Updated CHANGELOG & version for 2.7.0rc1

commit 3dde838ac992571e13262ea29ba3a0eb8152e753
Merge: fe45c24 3ab44c7
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Apr 13 17:30:44 2011 -0700

    Merge branch 'next'
    
    * next: (204 commits)
      Revert "(#6928) Removed --ignoreimport"
      Updated CHANGELOG for 2.6.8rc1
      (#6928) Removed --ignoreimport
      (#6928) Remove --parseonly
      (#6928) Add a Parser face with Validate action
      (#6830) Fix sha1 to digest/sha1 require issue for Ruby 1.9
      (#6830) Fix UTF-8 encoding issue for Ruby 1.9
      (#6830) Fix string method sub call on a symbol for Ruby 1.9
      (#2331) Remove darwinports pkg provider, replace with rewritten macports provider
      (#7059) handle inherited action binding scope
      maint: ensure we handle '-foo=' options correctly in faces.
      (#2150) Fix File const lookup when configuring routes
      Fixed #7082 - Added system support for groups
      maint: install erb templates under lib/
      maint: clean up the spec test headers in bulk.
      (#7056) Use 'face' rather than 'faces' in the production code.
      maint: eliminate deprecated since 2008 code from Puppet.
      (#6117) Add POST support to indirector requests
      (#6962) Move option handling into #parse_options, not #preinit.
      maint: whitespace cleanup for puppet/util/command_line.
      ...

commit 3ab44c7ce01ab86a995deb66228f5be95239c92a
Merge: 7817ccb bee1ef7
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Apr 13 17:20:24 2011 -0700

    Merge branch '2.6.x' into next
    
    * 2.6.x:
      Updated CHANGELOG for 2.6.8rc1
      (#2331) Remove darwinports pkg provider, replace with rewritten macports provider
      Fixed #7082 - Added system support for groups
      (#7018) Give more context on the service type's assumptions. Wording tweaks.
      (#7018) explain internals better in service provider documentation
      maint: Fix sqlite3 require to really be optional
      maint: Fix sporadic sqlite error
      (#6818) Stop from getting Rails 3 named_scope deprecation warning
      (#6856) Copy dangling symlinks with 'links => manage' File resource.
    
    Conflicts (Resolved manually):
    	lib/puppet/type/group.rb
    	spec/unit/indirector/facts/inventory_active_record_spec.rb

commit 7817ccb3438ad2742a98694373e42b65df86eda7
Merge: 0269163 5915814
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Apr 13 17:02:05 2011 -0700

    Merge branch 'ticket/next/6928' into next

commit 5915814c47649bb4b957b4be4fcee5919b859451
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Apr 13 16:57:11 2011 -0700

    Revert "(#6928) Removed --ignoreimport"
    
    This reverts commit 24a277c5e805ce16e0b86e17e6cb2fbe1945ae07.
    
    Despite not needing --ignoreimport as an option anymore, it's still used
    internally and has to stay.

commit bee1ef73e5c83541edcf1249f062ba832618da48
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Apr 13 16:55:31 2011 -0700

    Updated CHANGELOG for 2.6.8rc1

commit d9d9709c1eac46a94160dd75de34eafeb6c6de0c
Merge: da4457b 6a8068b
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Apr 13 16:52:20 2011 -0700

    Merge branch '2.6.next' into 2.6.x
    
    * 2.6.next:
      (#2331) Remove darwinports pkg provider, replace with rewritten macports provider
      Fixed #7082 - Added system support for groups
      (#7018) Give more context on the service type's assumptions. Wording tweaks.
      (#7018) explain internals better in service provider documentation
      maint: Fix sqlite3 require to really be optional
      maint: Fix sporadic sqlite error
      (#6818) Stop from getting Rails 3 named_scope deprecation warning
      (#6856) Copy dangling symlinks with 'links => manage' File resource.

commit 6a8068b3912d6275efe4005258a06d03363c8944
Merge: d078882 65c4e14
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Apr 13 16:37:13 2011 -0700

    Merge branch 'ticket/2.6.x/7082' into 2.6.next

commit 02691637553d5637ee01a433a516b5d8cc9768a9
Merge: 008770d 24a277c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Apr 13 15:51:43 2011 -0700

    Merge branch 'ticket/next/6928' into next

commit 24a277c5e805ce16e0b86e17e6cb2fbe1945ae07
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Apr 13 14:38:23 2011 -0700

    (#6928) Removed --ignoreimport
    
    This was only used with --parseonly, which is gone.
    
    Paired-With: Jesse Wolfe

commit fc36e8de8cdf32ae13b9241f9a9eef4c2727056e
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Apr 13 14:25:41 2011 -0700

    (#6928) Remove --parseonly
    
    This has been removed in favor of 'puppet parser validate <manifest>'.
    
    Paired-With: Jesse Wolfe

commit a688461100150d3f4e102e669ece839f8571e14c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Apr 13 15:35:47 2011 -0700

    (#6928) Add a Parser face with Validate action
    
    This will accept a number of manifests as arguments and check their syntax. If
    no filenames are specified, it will check the default 'manifest' setting.
    
    Paired-With: Jesse Wolfe

commit 008770dba7946b67f252561fecd967c7fe67fd17
Merge: 175803b 4ef622e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Apr 13 15:04:46 2011 -0700

    Merge branch 'ticket/next/6830-more_ruby19_fixes' into next
    
    * ticket/next/6830-more_ruby19_fixes:
      (#6830) Fix sha1 to digest/sha1 require issue for Ruby 1.9
      (#6830) Fix UTF-8 encoding issue for Ruby 1.9
      (#6830) Fix string method sub call on a symbol for Ruby 1.9

commit 4ef622e0874c53c8060531d43da06f0fd6fddc36
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Apr 13 15:00:56 2011 -0700

    (#6830) Fix sha1 to digest/sha1 require issue for Ruby 1.9
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit 64c12bd7ef38979ff756f97fc72adc737fe7b608
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Apr 13 15:00:00 2011 -0700

    (#6830) Fix UTF-8 encoding issue for Ruby 1.9
    
    If you're going to use special characters in a file and use Ruby 1.9 you
    need to specify the character encoding at the top of the file.
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit 2d459fc5dcf13a0aadf4556a80d7bb6c57dad033
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Apr 13 14:58:34 2011 -0700

    (#6830) Fix string method sub call on a symbol for Ruby 1.9
    
    Ruby 1.9 is less forgiving about treating symbols like strings.
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit d0788823c2fa19f5723e80eba985ee88432923de
Merge: 35b4c4a 8b7444d
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Wed Apr 13 14:24:53 2011 -0700

    Merge branch 'tickets/2.6.x/2331-macports-provider' into 2.6.next

commit 8b7444dc5cebd73c5494a7908101bda3213f5711
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Sun Mar 13 15:05:58 2011 -0700

    (#2331) Remove darwinports pkg provider, replace with rewritten macports provider
    
      * Employs port -q installed, much faster than port list installed
      * Handles upgrades correctly now
      * Makes use of internal port revision for ensure => latest upgrades
      * Versionable, now works with ensure => specified_version
      * Does not handle port variants at all yet.
      * Does not allow manual specification of revision, only version
      * Test coverage expanded using newer syntax
    
    Paired-With: Daniel Pittman

commit 175803b7d27d7ab1be758dd779ca1568e429d096
Merge: aa41b27 78e181e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 13 14:06:46 2011 -0700

    Merge branch 'bug/next/7059-the-ca-location-option-does-not-work-for-inherited' into next

commit 78e181e83d53a83a5c4e297d557b33f70a344039
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 12 20:51:16 2011 -0700

    (#7059) handle inherited action binding scope
    
    We implemented the naive version of inheritance in the faces, in which an
    action declared on a superclass remains bound to that even when accessed
    from a subclass.
    
    As a consequence our visibility of options on inherited classes is actually
    much more limited than it should be, and the actions we inherit would never
    see the options they should correctly have.
    
    To fix this we correct the binding bug and handle lookup correctly over
    inheritance in our code.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit cc0f4141e17939bdfa4e8e6f84921161041507ef
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 12 20:49:18 2011 -0700

    maint: ensure we handle '-foo=' options correctly in faces.
    
    This is legal, and defines an option with an argument for optparse; we want to
    make sure that we stay consistent with that in our code handling the same sort
    of inputs.
    
    This also adds a framework for later testing any other strange naming bits and
    bobs we find around option handling.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit aa41b27b8687d15c468a343a6e513de8c524139a
Merge: e852580 f78ab09
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Apr 13 12:34:45 2011 -0700

    Merge branch 'ticket/next/2150' into next

commit f78ab095a50dc1f0c49cc8a8067b8f43623695b6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Apr 13 12:32:51 2011 -0700

    (#2150) Fix File const lookup when configuring routes
    
    In some cases, this was incorrectly finding the new Puppet::Application::File
    application rather than the top-level File class.
    
    Reviewed-By: Jesse Wolfe

commit 65c4e14621786e51c6eb3621098abbbadd7aa89d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 14 02:05:10 2011 +1000

    Fixed #7082 - Added system support for groups

commit cb552af357763310ca4a16bf514dd39fcbd203bf
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Wed Apr 13 13:10:40 2011 +0100

    (#4258) Remove superfluous command check that called pkgutil

commit fd983410d841fec2408ded0700c841bf201eafbb
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Wed Apr 13 10:34:40 2011 +0100

    (#4258) Fix fd leak opening pkgutil config files

commit 7726dc3f7d9fa45e94e748fe5679e89d96dd817f
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Wed Apr 13 09:50:41 2011 +0100

    (#4258) Permit variations of -nv in both pkgutil.conf files

commit f8c2f1afa4a9ef71681a96b83b2abdc303a4b0bf
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Wed Apr 13 09:44:04 2011 +0100

    (#4258) Stop file and config checks from breaking spec
    
    Moved all file and config checks into healthcheck method which is then stubbed
    in the spec.

commit ef86105215a00f428e9cdc251b6a29b8e11487bb
Author: Juerg Walz <jwalz@pobox.com>
Date:   Tue Apr 5 10:35:42 2011 +0800

    (#4258) Check wgetopts in pkgutil.conf

commit e852580cc09ebead2ef1f8d385338ebea645308a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 13 00:41:21 2011 -0700

    maint: install erb templates under lib/
    
    We now use a handful of erb templates to generate help, so it matters that we
    install them into the right destination.  This extends install.rb to reflect
    that change.

commit b060ca7e1594a6ecfd6b1e32933e6a531b08bcf4
Merge: 941c56a db11770
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 13 00:38:53 2011 -0700

    Merge branch 'bug/next/7056-use-face-rather-than-faces' into next

commit db11770718c61f9ee3d5fcd703c5c0c7c05227ca
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 13 00:35:11 2011 -0700

    maint: clean up the spec test headers in bulk.
    
    We now use a shebang of: #!/usr/bin/env rspec
    
    This enables the direct execution of spec tests again, which was lost earlier
    during the transition to more directly using the rspec2 runtime environment.

commit 4dd6a77481400b7eeac3377267d092d4c6d22da3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 13 00:17:57 2011 -0700

    (#7056) Use 'face' rather than 'faces' in the production code.
    
    After some discussion we decided that most uses of the Puppet Face
    infrastructure were about single faces on their own, not about the collection,
    and so we were better referring to Puppet::Face[...] in code.
    
    This implements that by translating names and references in the Ruby code to
    the new, s-less, name.

commit 941c56a283265cdf5a951ecaae63580b60486c52
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 12 17:21:58 2011 -0700

    maint: eliminate deprecated since 2008 code from Puppet.
    
    We had some code that had been deprecated back in '08, and is unused in our
    code.  For this next release that is past due to be removed from the product
    entirely.
    
    Reviewed-By: Luke Kaines <lak@puppetlabs.com>

commit d748338e69b705585f9ac6bf2fd8da1e9163839b
Merge: 40adee4 4672141
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Apr 12 17:11:02 2011 -0700

    Merge branch 'ticket/next/6117' into next

commit 46721411066926aff3a7d5bb6470d3b8aec1b47d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Apr 12 17:08:36 2011 -0700

    (#6117) Add POST support to indirector requests
    
    POST with a singular indirection is turned into a find in the indirector.
    
    When making a large find request from a REST terminus, POST is used, and for
    small requests, GET is used for backward compatibility.
    
    Paired-With: Jesse Wolfe

commit 40adee4ade3a447a7397a71d76e042091bbbfbff
Merge: 8778307 7b4d936
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 12 16:14:02 2011 -0700

    Merge branch 'feature/next/6962-self-documenting-strings-actions-and-options' into next

commit 7b4d9367b391f75983868046d30928ebc8411f50
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 12 11:45:05 2011 -0700

    (#6962) Move option handling into #parse_options, not #preinit.
    
    Logically, the extra work around option parsing for faces belongs in the
    application parse_options method, not hidden in the step before.  This commit
    moves that to the right place and fixes the fallout from that strange early
    design decision.
    
    Along the way we unify error reporting for invalid options so that all the
    code paths result in the same externally detected failures.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 7899462b2ec1114907844907c77b1742193467b9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 23:11:35 2011 -0700

    maint: whitespace cleanup for puppet/util/command_line.
    
    This brings bracket spacing in line with our usual coding conventions.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 826d5dff531eb624fef91a7298932e9ec5a46231
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 23:09:18 2011 -0700

    (#6962) delegate global usage to the help face.
    
    The global --help handler (also invoked when puppet is run without any other
    command line options at all) used to spit out a brief and generally not so
    helpful message.
    
    Now that we have a help face that can provide the same information in a much
    more user-friendly form, we should delegate the function to that when
    required.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 9496067f5644972def823cf8c3318aca137b86fe
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 22:25:58 2011 -0700

    maint: avoid making temporary dirs during testing.
    
    We used to create temporary directories to have some support files on disk
    during testing of faces; we don't really need that most of the time, and this
    updates a test to reflect that reality.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit fe6d59528d18e9aa989f48d364868a5a105017a5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 22:04:28 2011 -0700

    (#6962) Integrate legacy subcommands into the help face.
    
    Previously we would only emit help for a face; now we fully integrate legacy
    subcommands in the sense that asking for face-level help will emit their
    entire help text.
    
    Asking for any action subsequent will raise an error: this is an annoyingly
    inconsistent behaviour, but there isn't a saner definition of the change.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit acbbd52e0e876afa62f9c6098f0f40504b993dce
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 17:24:38 2011 -0700

    (#6962) Clean up testing further.
    
    This refactors common code in the tests out, and takes advantage of the
    implicit and explicit subject support in rspec2 to make the testing more
    expressive and more efficient.
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit 648e3c0dd0fb671b01e54cc0bca202bafc5ae934
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 17:11:25 2011 -0700

    (#6962) Better argument checking for help.
    
    We used to blink and miss the fact that we failed to load an action or face in
    the past; now we test for that, and fail with a clear error message when the
    user asks for something we can't deliver.
    
    Additionally, fix a couple of tests that were silently broken because they
    passed the wrong arguments, but still got some output.
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit 217c1561a86a76b9570bcc4ab0db31eb25d120fa
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 17:04:42 2011 -0700

    (#6962) Report the template filename for help render errors.
    
    We now set the filename attribute of the ERB instance, which results in any
    error messages showing up with the right attribution: to the file they are
    defined in, rather than just '(erb)'.
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit ec988e24ce3713a4c4a31918489136f88b6945e6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 16:47:16 2011 -0700

    (#6962) Move the logic for help layout into erb templates.
    
    Rather than hard-coding the layout of help output in the code, push it out
    into external templates.  At the moment overriding that would require
    changing the ERB code next to puppet/faces/help.rb file on disk.
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit 2a87f410eae84a0a7c4f39d9c1ef742c3e7ba8fc
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 16:43:56 2011 -0700

    (#6962) Override 'render' in help to just return the string.
    
    The default behaviour is to serialize the result somehow, defaulting to
    displayed, render should be a no-op.  This means overriding the parent method.
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit 657082755a20da801b4c679eff296053380c61b6
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 16:19:21 2011 -0700

    (#6962) Add summary help for actions on an individual face.
    
    We now emit the summary of actions for an individual face, in the same format
    as the summary of available faces.  This moves forward through the feature set
    defined for the help subcommand.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit cdc5fec3640108ad01e0285b1039dae222590339
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 15:50:24 2011 -0700

    (#6962) Implement 'summary' for actions.
    
    This extends the summary function down through the actions themselves,
    allowing us to display a useful summary to the user.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 91c29a72e2b728e2d9ba495cd34b7354faa3852b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 12:00:06 2011 -0700

    (#6962) Extract summary from legacy applications for help.
    
    We use a dubious, but effective, regexp match on the existing man(1) style
    help string for the application to extract the summary data.  This should
    properly be implemented as a summary method down in the applications
    themselves...
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit d13a938b0abc604a7802cf41ff75a30ad6ccd192
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 10:46:08 2011 -0700

    (#6962) Initial support for legacy applications in help.
    
    We now enumerate and print the list of legacy applications in the unadorned
    help action; this allows us a path to migrating forward smoothly while still
    providing a good user experience.
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit 26db6456d22b95486646ae5b8b001acb2051c4da
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 11:26:25 2011 -0700

    (#6962) render prints the rval; fix help subcommand.
    
    The face application base uses render to transform the returned object to a
    form where #to_s produces the output intended for the end user; we were
    actually printing in the method instead, leading to an extraneous 'nil' at the
    end of the output...
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit 36021021b4cb11aea0a5acd35d051db52d8fc99f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 11:19:33 2011 -0700

    (#6770) Don't pollute valid face list when #face? is called.
    
    We had two conflicting uses of the list of available faces: in the #face?
    method we were perfectly happy to create a top level key on any request, but
    didn't populate the version set.
    
    Meanwhile, in #faces we treated the set of top level keys as the absolute and
    correct list of all *valid* faces, leading to pain and suffering when people
    queried for an invalid face, but then expected to enumerate only valid faces.
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit 14b1e008c1368e6c56d68f83999472351fd3327a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 10:57:06 2011 -0700

    (#6992) Expose available_subcommands as a class method.
    
    We previously treated the list of legacy commands as an instance property of
    Puppet::Util::CommandLine.  This made it difficult to obtain that information
    outside the context of the instantiated application.
    
    In the longer term this should wither and die as we eliminate the legacy
    applications entirely, but until then exposing that on the class is the
    lightest mechanism for making that useful.
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit 4eccd53da90593fad1b929eeea3b5d7d252c553e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 10 19:58:43 2011 -0700

    (#6962) Implement Face#summary support for the help face.
    
    We now use the summary information available in other faces as part of
    emitting a list our list of available subcommands.  This is seldom used in
    faces, but enough emit the information to prove the concept.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 1b4d7a51d10b217c7f67f3876242fff6dc694faa
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 4 16:46:09 2011 -0700

    (#6962) Create the basic shape of the help face.
    
    This implements the basic help face, along with the start of the support
    structures; we include the basic application, and the default help action that
    just emits a listing of faces and other discovered stuff...
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit d8dfb1f143ba3e602bec387508c8dad7aab00062
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 10 18:59:23 2011 -0700

    (#6962) Implement 'summary' for faces.
    
    This adds the methods to the summary builder and runtime instance to support
    setting and getting a summary of the face.  This is a short description used
    to summarize the purpose of the face in help output.
    
    For example, from the help face:
    
        "Displays help about puppet subcommands"
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit dc2675df2805d1e2dbf3c50a49152bcfd78f922f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 10 17:50:36 2011 -0700

    (#6770) Improve test robustness against 'require'
    
    We hit another situation where we crudely flushed the internal set of faces,
    but require thought we had already loaded the file defining one.  This fooled
    our autoloader and raised more annoying problems.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 7228f580a22cc13dc66a93d81bf57a5bad80a73f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 11 11:42:25 2011 -0700

    maint: finish transition of application help to return strings.
    
    Jesse made a change, in e1191f33defcaffec5900c7122a89ca75d3a9673, to
    transition from printing and exiting in the help method up to returning the
    help data to the caller.  This was part of eliminating rdoc usage from the
    display of help to the user.
    
    The cert application was missed, and still used the legacy "print and exit"
    model; this cleans that up so it matches the rest of the code.
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit a20810e6a822dca3a69a1abf903dfea55aa166c8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 10 19:01:02 2011 -0700

    maint: direct people to the expected spec file...
    
    Because the implementation is directly an alias to another file, the spec here
    is empty.  Instead, direct people over to the spec file they should be looking
    in.  Makes it easier for new developers at pretty much zero cast.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 8b13e2b586af60bdef73ac8119b19233c60903ac
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 10 16:56:59 2011 -0700

    maint: watchr should respect personal account-wide defaults.
    
    Previously the rspec.opts file would override any other options configured for
    rspec and, by virtue of being on the command-line, would win against
    configuration files.
    
    Now, where a user configuration file exists in ~/.rspec we ignore the shipped
    set of options.  This allows advanced users to customize without using the
    default (and relatively nasty) default rpsec UI.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 6fcf03c52f98c6e4bcce85548d783a832eaa387b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 10 16:47:33 2011 -0700

    maint: added testing for Puppet::Faces#[]
    
    We didn't do much testing here, which was vaguely reasonable when we didn't
    distinguish it from the #define method.  Now they are split out we need to be
    more careful about testing the right things.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 20d9ac1a5b71cd52c3edea107c1cef08562641fd
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sun Apr 10 15:57:33 2011 -0700

    maint: fix indentation in the watchr script.
    
    Whitespace changes, no functional changes.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 8778307ca33a637fe10b601ee737628f2e5f9fbf
Merge: 789aad8 0c6f50c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Apr 12 15:28:57 2011 -0700

    Merge branch 'ticket/next/775' into next

commit 0c6f50cbc1409cb9e31f4f512a7ff27d4b4c5167
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Apr 12 15:23:26 2011 -0700

    (#775) Don't require command when removing cron entries
    
    Previously, if a cron entry had "ensure => absent" with no command specified
    and the crontab contained unmanaged entries, the entry would fail to be removed
    and every other cron entry in the catalog after it would be duplicated.
    
    Paired-With: Jesse Wolfe

commit 789aad8dd692e1bac5748e16e0acdfada2d197c7
Merge: 2dfa0af b2831e1
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Apr 12 14:52:14 2011 -0700

    Merge branch 'ticket/next/2150' into next

commit b2831e102f4cc57d6e0101f55e208695188d426a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Apr 12 14:40:12 2011 -0700

    (#2150) Add routes file for indirector
    
    Puppet[:route_file] is a YAML file specifying the termini to use for various
    indirections, in the format:
    
    agent:
      catalog:
        terminus: rest
        cache: yaml
    master:
      catalog:
        terminus: compiler
        cache: active_record
    
    This file is optional, and will override application defaults set in "setup",
    as well as terminus settings, ie. facts_terminus.
    
    Paired-With: Jesse Wolfe

commit 2dfa0afb57ec80f451a54ef96341d413819c14c7
Merge: 665fabd e569f3b
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Apr 12 13:13:30 2011 -0700

    Merge branch 'ticket/next/5027' into next

commit e569f3baec68b9f53b37ac07984b7a858b155991
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Apr 12 13:08:08 2011 -0700

    (#5027) Use Puppet#warning for deprecation_wanring instead of Kernel#warn
    
    Using warning, the deprecation warnings will appear in logs and in color.
    
    Paired-With: Jesse Wolfe

commit f6fb193078c497476326ee80827e1585ae26603c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Apr 12 13:05:54 2011 -0700

    (#5027) Spell deprecation correctly
    
    Paired-With: Jesse Wolfe

commit d0a56522f9c574b4a6db81caf4589175c901b09e
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Oct 25 09:59:57 2010 -0700

    Fix for #5027 -- generate a deprication warning for dynamic lookup
    
    This fix implements the same logic as Nick & Paul's patch in a different way.
    There aren't any tests yet and I'm still working out if I agree with the
    handling of some edge cases, so this should be considered premliminary.

commit 739260b28d7c09bacbb34cd4f4d4a32cfee01385
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Oct 24 23:29:38 2010 -0700

    Towards 5027 -- add options hash to lookupvar as with setvar
    
    This patch adds an options hash to lookupvar analogous to the one taken by
    setvar and uses it to pass in source location for error reporting.  It also
    fixes the mechanism used by setvar (file was not being passed correctly), adds
    line and file information to errors in templates, and extends/corrects tests.
    
    As presently written it does not gather userful line numbers from inline
    templates and there are no tests for the template line number generation.

commit d7201ed38929f867d31bc9b916e90679606dc9f8
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Oct 24 15:37:31 2010 -0700

    Refactor for 5027 -- get rid of lookup_qualified_var
    
    Scope#lookup_qualified_var was a "magic bag" that took a qualified variable
    name apart and called back in to lookupvar with a new scope.  This commit is
    a semantically neutral refactor that replaces it with a function to find the
    desired scope as a pure function (with error detection).

commit 10230cfc28e77dde127c157b7238fee2fc378969
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Oct 24 14:08:14 2010 -0700

    Step towards #5027 -- scopes should know if they are dynamic
    
    The logic for distinguishing dynamic / static scopes was borrowed from Nick &
    Paul's patch, the main differences here being 1) calling it "dynamic" (true/
    false) rather than "parent_relationship" (:inherited/:dynamic) 2) aligning the
    default so that it only needs to get set in one place (the one that will
    eventually go away) and 3) setting it on createion rather than with a setter.
    
    Setting it in one place, on creation, also makes it easier to see that anytime
    we access a scope it will have the correct setting of Scope#dynamic and that
    this does not change.
    
    This commit also contains a minor refactor (removing Type#subscope) that is not
    strictly tied to the main purpose but lies in the direction we are needing to
    go and it simplified things to do it now.

commit e5609ffefb4132049a969d88f74138058fe78694
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Oct 22 07:09:30 2010 -0700

    Step towards #5027 -- add Logging#deprication_warning facility
    
    This commit adds a method analogous to Puppet.warn which 1) only logs each
    message the first time it is received and 2) only logs the first 100 messages
    it receives.  Messages are logged via warn.
    
    This could easily be made more flexible by making the hard limit and effective
    log level user settable, if desired.

commit 1954bbfe175ae7f18316e57af43362eb4ed73553
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Oct 21 20:39:33 2010 -0700

    Refactor on the road to #5027 -- remove unused Scope#strinterp
    
    One of the uses of lookupvar was in the method Scope#strinterp; this method
    is no longer used (string interpolation is now handled by the parser (for
    the syntax) and AST nodes (for the semantics)) so this use of lookupvar can
    be excised, along with a fair amount of surrounding code.

commit 31f8e660c8f4c0ec01f140322cf7c585144a0888
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Oct 21 17:24:09 2010 -0700

    Refactor en route to #5027 -- remove usestring parameter from lookupvar
    
    The usestring parameter to lookupvar was objectionable for several reasons;
    first, it performed a function orthogonal to the main purpose of the method,
    second its default was the least common value, and third it was causing other
    code to work for reasons that were not obvious (extlookup).
    
    This refactor breaks the value-transforming function out into a seperate
    method which allows the user to specify the value to be used in lieu of :undef
    and removes the parameter.  The function, Scope#undef_as(default,exp) is
    written so that it can be used in user code (templates, functions, etc.) if
    needed.
    
    This refactor will introduce a user-visible behaviour change in the case where
    users were counting on lookupvar to return "" for undefined variables.  The
    best solution is to have them use undef_as, replacing:
    
        lookupvar('myvar')
    
    with
    
        undef_as('',lookupvar('myvar'))
    
    (with the option to specify another default value if desired).  If this is too
    objectionable, we could rename the existing lookupvar as raw_lookupvar and
    define
    
        def lookupvar(v)
          undef_as('',raw_lookupvar(v))
        end
    
    to restore the present behaviour.

commit d5dc3036eda210f318160e2442f7b65e0995ee23
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Oct 21 14:23:32 2010 -0700

    Fix for #5063 -- explicitly scope internal variable lookups
    
    When we lookup a global variable / fact from code we should explicitly look
    in the global scope.

commit b3baee8c625d1a8d8fb8be20d1534ed71188a5f2
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Oct 21 14:02:12 2010 -0700

    Refactor on the way to #5063 -- removing unused Scope#level
    
    This attribute is apparently no longer set or accessed.

commit dd33eac61c4d0baed62eb88bb18dc59e474ba68d
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Oct 21 12:48:50 2010 -0700

    Refactor prior to #5063 -- remove dead "topscope?" code
    
    The Scope#topscope? method was never called anywhere (including tests) and
    so far as I can tell was incorrect as the Scope#level is never being set.

commit 665fabdb3e468d1ef38d689b9cb0d75b9d788f88
Merge: dce851c cb01221
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Apr 12 10:46:12 2011 -0700

    Merge branch 'ticket/next/3360' into next

commit cb01221a0f7221dba60bc23c5a0be2a70466bcdc
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Apr 8 16:20:43 2011 -0700

    (#3360) Add an allow_duplicate_certs option
    
    If this option is true, a certificate request with the same CN as an existing
    certificate will override the existing certificate when signed. With the option
    false, the new certificate request will be rejected. This option will default
    to false.
    
    Paired-With: Max Martin

commit 35b4c4a1004de1d6284198f8d41e267ad131a6d5
Merge: 4f7ad86 b7f4ff7
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Apr 11 16:24:31 2011 -0700

    Merge branch 'ticket/2.6.next/7018-clarify_service_type_behavior' into 2.6.next

commit b7f4ff7c17f1314fab08662c7082500ecfc1e5a8
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Apr 11 16:01:08 2011 -0700

    (#7018) Give more context on the service type's assumptions. Wording tweaks.
    
    Refactoring the @doc string for clarity.

commit bb19dea3912610c652d55c1de00c8e8e9f7698b5
Author: Ben Hughes <ben@puppetlabs.com>
Date:   Fri Apr 8 11:33:45 2011 +1000

    (#7018) explain internals better in service provider documentation
    
    Add explicit reasoning for hasstatus in the documentation with certain
    "virtual" services.
    
    Just to clear up why notify => Service["something_virtual"] requires
    hasstatus defining for it to function.

commit 4f7ad86adaa3a359761fac2aacf88f56461395bb
Merge: 229d111 23c9663
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Apr 11 15:50:43 2011 -0700

    Merge branch 'ticket/2.6.next/maint-fix_sqlite_test' into 2.6.next
    
    * ticket/2.6.next/maint-fix_sqlite_test:
      maint: Fix sqlite3 require to really be optional
      maint: Fix sporadic sqlite error

commit 23c9663d2142b9c674257fd47952d5e58c8ca7a7
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Apr 8 16:05:41 2011 -0700

    maint: Fix sqlite3 require to really be optional
    
    You need to specifically rescue LoadError if you want requires to be
    optional.
    
    Paired-with: Nick Lewis

commit 4b73d41be6436e3eb92d86340aed08dbce1f63cf
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Apr 8 16:06:31 2011 -0700

    maint: Fix sporadic sqlite error
    
    ActiveRecord::StatementInvalid: SQLite3::IOException: disk I/O error
    
    This happened if you ran these tests in the following order since Rails
    wasn't disconnecting between tests.
    
    rspec spec/unit/indirector/facts/inventory_active_record_spec.rb
    spec/unit/indirector/node/active_record_spec.rb
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 229d11118f06d7daa7ba3fe6278268cbd1a12534
Merge: 7b23e59 54b9f5d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Apr 11 15:29:42 2011 -0700

    Merge branch 'ticket/2.6.next/6818-named_scope_deprecation' into 2.6.next
    
    * ticket/2.6.next/6818-named_scope_deprecation:
      (#6818) Stop from getting Rails 3 named_scope deprecation warning

commit 54b9f5d9afcb102b33f7f604eb6da15d8b75f6e9
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Mar 24 03:22:20 2011 +1100

    (#6818) Stop from getting Rails 3 named_scope deprecation warning
    
    We want our Rails models in Puppet to work under Rails 2 or 3, but we
    don't want the deprecation warnings since we can't control what version
    of Rails the client is running.
    
    DEPRECATION WARNING: Base.named_scope has been deprecated, please use
    Base.scope instead
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit dce851cac79393f86950f4ebfc48b9ac67dcd8f7
Merge: 46d67fd 49dcc24
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Apr 12 05:15:00 2011 +1000

    Merge branch 'tickets/master/7021' into next
    
    * tickets/master/7021:
      Updated confine in Spec test for RSpec 2
      Add management of router/switchs global vlans
      Cisco Switch/Router Interface management
      Base class for network device based providers
      Ssh transport for network device management
      Telnet transport to connect to remote network device
      Remote Network Device transport system
      Introduce a module for some IP computations

commit 46d67fd86819d1dfe4813f22b192213985e3a587
Merge: 5075658 d2145d9
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 11 07:57:05 2011 +1000

    Merge branch 'tickets/master/5684' into next
    
    * tickets/master/5684:
      Fixed #5684 - Move to Apache 2.0 license

commit d2145d9a02ce1802ceb44f0cf99090af62cc4b71
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Dec 28 04:43:16 2010 +1100

    Fixed #5684 - Move to Apache 2.0 license
    
    For details of why we're moving please see:
    
    https://groups.google.com/d/topic/puppet-users/NuspYhMpE5o/discussion
    
    Removed explicit GPL licenses where appropriate
    
    Replaced selected GPL licenses with Apache 2.0
    
    Replaced LICENSE with Apache 2.0
    
    Updated README

commit 50756588baad21d9b399051153274a89857433ef
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sat Apr 9 15:15:52 2011 -0700

    Fixing Indirector::Facts::Couch loading
    
    It was previously failing to load at all if couch was missing,
    but now it only fails on initialization.
    
    This means that you can tell that the terminus is there when
    you're missing couch, but you just can't use it.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit 26b6b37556aea219f972235e11e5118a54ef3d27
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sat Apr 9 15:15:49 2011 -0700

    Fixing dependency loading in Rails::FactName
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit 379a3794c4ea3409ba4b1b36dea9a3d35510eb65
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sat Apr 9 15:05:14 2011 -0700

    Fixing 'puppet faces' application
    
    It only had one available method, and the errors incorrectly
    specified what it was.
    
    This just defaults to listing all the time, and I've updated
    the docs to be correct, too.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit 69db81746fee54e14ee3e46f2fc31e93c096d529
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sat Apr 9 15:04:23 2011 -0700

    Fixing the watchr script
    
    It had not been updated for quite a while.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit 8ec9d13b7e6885c2d18bc3b7c69a83ce5bf2f353
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sat Apr 9 14:55:02 2011 -0700

    Fixing FaceCollection#faces
    
    We were still looking for faces in version
    directories.
    
    No changes to testing because the current test is pending.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit ab4050d73cc735f4d2c48f90d103291f7caa7703
Merge: 270e179 7e9707a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Apr 8 16:24:05 2011 -0700

    Merge branch 'ticket/next/maint-fix_sqlite_test' into next
    
    * ticket/next/maint-fix_sqlite_test:
      maint: Fix sporadic sqlite error
      maint: Fix sqlite3 require to really be optional

commit 7e9707a7d7b357d9b5167c6dd0dd250ab207f6ac
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Apr 8 16:06:31 2011 -0700

    maint: Fix sporadic sqlite error
    
    ActiveRecord::StatementInvalid: SQLite3::IOException: disk I/O error
    
    This happened if you ran these tests in the following order since Rails
    wasn't disconnecting between tests.
    
    rspec spec/unit/indirector/facts/inventory_active_record_spec.rb
    spec/unit/indirector/node/active_record_spec.rb
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 64be97bdfe029e0fa5f33a06963f4c18ca3968d4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Apr 8 16:05:41 2011 -0700

    maint: Fix sqlite3 require to really be optional
    
    You need to specifically rescue LoadError if you want requires to be
    optional.
    
    Paired-with: Nick Lewis

commit 270e179a183b4432dc82958bd002eecd605bc079
Merge: ab5f1e8 6ed0051
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 8 16:08:08 2011 -0700

    Merge branch 'maint/next/clean-up-spec_helper-require' into next

commit 6ed00515e8614233160d74b1c32b75fab27ac722
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 8 16:06:57 2011 -0700

    maint: just require 'spec_helper', thanks rspec2
    
    rspec2 automatically sets a bunch of load-path stuff we were by hand, so we
    can just stop. As a side-effect we can now avoid a whole pile of stupid things
    to try and include the spec_helper.rb file...
    
    ...and then we can stop protecting spec_helper from evaluating twice, since we
    now require it with a consistent name.  Yay.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit ab5f1e8ffbe6503687c6f46bcaed9316da0151b9
Merge: 87f4e0a f9271b9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 8 15:24:38 2011 -0700

    Merge branch 'maint/next/improve-test-suite-performance' into next

commit f9271b918833b250da304efa8efdd0fdb64e89ca
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 8 15:24:26 2011 -0700

    maint: delete dead darwinport package provider
    
    The DarwinPorts package provider was actually entirely broken; we are not
    shipping or supporting it with the 2.7 release.  Plans exist to introduce a
    newer, functional MacPorts provider, but this dead code can be removed early.
    
    Paired-With: Nigel Kersten <nigel@puppetlabs.com>

commit a19fbb417b54f0456b02bea295efd310761f6b86
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 8 15:06:37 2011 -0700

    maint: don't take over signal handling in tests...
    
    We had a problem where we installed a signal handler during a :before block,
    which wasn't stubbed, so ended up leaving that in place forever.  Which bites.
    
    We stub it out locally, which is ugly but functional.
    
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit f9a2ffd53054b67924790b0386cf74435497c3f1
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 8 13:57:31 2011 -0700

    maint: use FileUtil to remove files, not exec
    
    We used to shell out to chmod and rm to clean up temporary files; this lead to
    the cleanup method here being one of the largest consumers of walltime.
    Replacing that with FileUtil calls is as, or more, secure, and performs
    sufficiently well that we can just delegate.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 78cb48cea0b14eabdfd728c2f9fc183f587faded
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 8 13:39:37 2011 -0700

    maint: disable garbage collector during individual test cases.
    
    This reduced overhead of garbage collection from 50 percent to 20 percent in
    my test runs, and reduced wall-time to match.  This seems to be a reasonable
    win: we allow the GC to run on demand, but only outside the testing.
    
    Memory use went from ~ 300MB to ~550MB between runs, which suggests that we
    are generating a *lot* of garbage at times, but that we also benefit from
    cleaning it automatically on a regular basis.
    
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 7b23e59f64d75158e067fa41f9d41c257aa0bc4b
Merge: da4457b e493f8a
Author: Max Martin <max@puppetlabs.com>
Date:   Fri Apr 8 14:47:01 2011 -0700

    Merge branch 'ticket/2.6.next/6856-dangling-symlinks' into 2.6.next
    
    * ticket/2.6.next/6856-dangling-symlinks:
      (#6856) Copy dangling symlinks with 'links => manage' File resource.

commit 87f4e0a1ce60ddb443a5eda459793c5acb7fce1e
Merge: 89327e9 d43f850
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Apr 8 14:38:12 2011 -0700

    Merge branch 'ticket/next/maint-fix_tests_for_old_rubies' into next
    
    * ticket/next/maint-fix_tests_for_old_rubies:
      maint: Ruby < 1.8.7 knows size but not count
      maint: Get tests passing on Ruby < 1.8.7

commit e493f8acf9fe40baadf4fcd4e1176afa6264d768
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 7 16:17:04 2011 -0700

    (#6856) Copy dangling symlinks with 'links => manage' File resource.
    
    When copying symlinks with 'links => manage', there is no need to
    examine the content of the link target, since the link is supposed to be
    copied as-is.  Skip copying this value to the resource from the metadata
    (source), since the content will be nil in the dangling symlink case.
    
    Paired-with: Jacob Helwig

commit d43f85063a0e40fdb5d02fb63d82639f2ca278f5
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Apr 8 14:13:48 2011 -0700

    maint: Ruby < 1.8.7 knows size but not count
    
    Reviewd-by: Nick Lewis

commit 101c6ede6185aec5833787c0d7bb0ce1e96bb656
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Apr 8 13:43:35 2011 -0700

    maint: Get tests passing on Ruby < 1.8.7
    
    Fixing test errors:
    wrong argument type Symbol (expected Proc)
    undefined method `lines' for #<Array:0x1020823e0>
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 89327e9b956fd806418d548b25c458b9ebeac141
Merge: 08a53bd 9490cc9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Apr 8 12:23:44 2011 -0700

    Merge branch 'ticket/next/7026' into next

commit 9490cc9ecba28360c58173ec2eeb0dd1d3198960
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Apr 8 12:17:10 2011 -0700

    (#7026) Remove whits from reports when finalizing
    
    Resource statuses and metrics for Whits were being added to reports. Since they
    are transient internal data, they shouldn't be included in the report. This
    change adds a Puppet::Transaction::Report#prune_internal_data method, called by
    Puppet::Transaction::Report#finalize_report, providing a central place for this
    sort of pruning in the future.
    
    Paired-With: Max Martin

commit 08a53bd452ca095df0d44a8d6b41e7088f6c449e
Merge: e0a2e91 3094d42
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Apr 8 12:06:17 2011 -0700

    Merge branch 'ticket/next/maint-backport_array_combination' into next
    
    * ticket/next/maint-backport_array_combination:
      maint: Add Array combinations method

commit 3094d423c498640f01d267ca7589533f862e9ac4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Apr 8 11:55:33 2011 -0700

    maint: Add Array combinations method
    
    Ruby < 1.8.7 doesn't have this method and we're using it in a test, so
    tests won't run on 1.8.6 until this is in place.
    
    It's probably a good thing to use much in implementation since it's
    written in pure Ruby when using < 1.8.7 and in C when in > 1.8.7, but
    then if you're using older Rubies you're probably not expecting much for
    performance anyway.
    
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit e0a2e9180c20b664900586d7dedacd4172c24f6a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 8 11:02:07 2011 -0700

    maint: mark tests pending for a discovered bug...
    
    Changes elsewhere in the tree break these two tests, but getting the merge in
    is worth marking them pending. :/
    
    Paired-With: Nick Lewis <nick@puppetlabs.com>

commit 49dcc24195d262437cc35997a811eb724d65b48b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Apr 8 18:20:32 2011 +1000

    Updated confine in Spec test for RSpec 2

commit 28e3db87a105eba5eddbb11167d0a6c33b18f8ce
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jan 2 19:26:19 2011 +0100

    Add management of router/switchs global vlans
    
    This allows to manage the global device list of vlans.
    Currently supports only cisco IOS devices.
    
    This is as easy as:
    
    Vlan {
     device_url => "ssh://user:pass@switch.domain.com/"
    }
    
    vlan {
     "200": description => "R&D";
     "99":  description => "Management";
    }
    
    The device_url conforms to the same specs as for the interface
    type.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 1cb18410732a4b51efa0a106d4a1437daef08fc5
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Jan 3 19:47:03 2011 +0100

    Cisco Switch/Router Interface management
    
    This patch introduces managing remotely cisco IOS network devices
    through ssh or telnet with a puppet type/provider.
    
    This patch allows to manage router/switch interface
    with the interface type:
    
    interface {
    	"FastEthernet 0/1":
    		device_url => "ssh://user:pass@cisco2960.domain.com/",
    		mode => trunk,
    		encapsulation => dot1q,
    		trunk_allowed_vlans => "1-99,200,253",
    		description => "to back bone router"
    }
    
    It is possible with this patch to set interface:
     * mode (access or trunk)
     * native vlan (only for access mode)
     * speed (auto or a given speed)
     * duplex (auto, half or full)
     * trunk encapsulation
     * allowed trunk vlan
     * ipv4 addresses
     * ipv6 addresses
     * etherchannel membership
    
    The interface name (at least for the cisco provider) can be any
    shorthand interface name a switch or router can use.
    
    The device url should conform to:
     * scheme: either telnet or ssh
     * user: can be absent depending on switch/router line config
     * pass: must be present
     * port: optional
     * an optional enable password can be mentioned in the url query string
    
    Ex:
    To connect to a switch with a line password and an enable password:
    "telnet://:letmein@cisco29224XL.domain.com/?enable=letmeinagain"
    
    To connect to a switch/router through ssh and a privileged user:
    "ssh://brice:letmein@cisco1841L.domain.com/"
    
    Note:
    This patch only includes a Cisco IOS provider. Also terminology adopted
    in the various types are mostly the ones used in Cisco devices.
    This patch was tested against:
    * (really old) Cisco switch 2924XL with ios 12.0(5)WC10
    * Cisco router 1841 with ios 12.4(15)T8
    * Cisco router 877 with ios 12.4(11)XJ4
    * Cisco switch 2960G with ios 12.2(44)SE
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 596571fd2b03957e7ed185856ee649c1e610716c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Jan 3 19:45:51 2011 +0100

    Base class for network device based providers
    
    This is the common bits of all future network device providers
    that are using prefetching/flushing to limit the number of
    calls to the remote network device.
    
    The idea is that we need one transaction to prefetch and one
    to flush each instance.
    
    Implementors needs to implement lookup which returns a hash
    of the found entity, and flush to update the remote device.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 6560da52674dfce10a622b633a9ed511f75b0a89
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Jan 3 19:50:20 2011 +0100

    Ssh transport for network device management
    
    It is an adapatation of net-ssh-telnet, so that net-ssh conforms to
    a saner interface for consumer.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 358245a823c1e2ed6fa2351130cf98678bd02e0d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Jan 3 19:49:12 2011 +0100

    Telnet transport to connect to remote network device
    
    It is based on net/telnet.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit c947a6dee2134964e04146d6da7b1d1c4f814169
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Jan 3 19:48:18 2011 +0100

    Remote Network Device transport system
    
    This is the base for upcoming telnet and ssh transport mechanism
    to send commands to network devices.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit aa34b72f9873c52bb02eb748dbdf40c51592dab9
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Jan 3 19:45:25 2011 +0100

    Introduce a module for some IP computations
    
    Those will be used to parse IPs, compute netmaks or prefix length.
    Unfortunately ruby IPAddr doesn't support those directly.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 0f24db1c3fd0aa6601ba032aedbe25be36010954
Merge: af79235 79f4774
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 7 17:58:07 2011 -0700

    Merge puppet-interfaces into puppet.
    
    This joins the two repositories, including full history, into a single run, as
    well as landing the interfaces work on the next branch ready for release.

commit 79f4774182046d2fdf392c1eb27ee78505659199
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 7 16:28:09 2011 -0700

    maint: mocking 'require' causes random stack-overflow failures.
    
    It turns out that mocking require on objects can cause random "stack depth
    exceeded" failures, usually triggered by otherwise innocent changes to load
    order or the use of require in the rest of the code.
    
    Disable the currently failing test, which needs rewriting, and let it go for
    now.  We need to systematically purge these problems once the build is stable.
    
    Paired-With: Dan Bode <dan@puppetlabs.com>

commit d9f23c0801d7d40809326face37463aeb67a3cdd
Author: Dan Bode <dan@puppetlabs.com>
Date:   Thu Apr 7 16:18:27 2011 -0700

    (#6969) String failures differentiate between invalid string/version
    
    This patch does two things:
    
    1. splits out the string lookup functionality from define into a seperate
    method []
    2. Tries to both load the specific version of a string as well as the
    current version so that specific error messages can be returned
    differentiating between an invalid version/string.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>

commit 292a8b92c74c8d9392348ef6e9718934471a0ac1
Author: Dan Bode <dan@puppetlabs.com>
Date:   Wed Apr 6 21:14:06 2011 -0400

    (#6985) Allows indirectors to accept a hash as an argument.
    
    Many indirectors need to take a hash as the last argument.
    This was not allowed b/c the last hash argument was assumed to
    be the options hash.
    I resolved this by assuming that the hash needed by an indirector
    would be the same as the options hash.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>

commit d04567ff8e6a060e505293d099303dceb9a73096
Author: Dan Bode <dan@puppetlabs.com>
Date:   Wed Apr 6 21:09:03 2011 -0400

    (#7005) added require 'tmpdir' to spec helper.
    
    Source files should resolve their own deps.
    This is required for the spec tests to run individually.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>

commit a35fa519c85a761ac8bed3be8fde2d6523cae474
Merge: 3d5ec4f 87ed318
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 7 15:53:17 2011 -0700

    Merge branch 'refactor/master/7012-rename-strings-to-interfaces-and-faces'

commit 87ed3188e65d3f5f9c2c32a409b271d1b39684b9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 7 15:44:28 2011 -0700

    (#7012) Split plumbing into Puppet::Interface
    
    This splits out the plumbing into the Puppet::Interface namespace, and uses
    Puppet::Faces for all the public-facing code.
    
    The fault line is "what you care about if you are using or writing a face",
    which is public, against "what you care about to enable either of those two",
    which is the plumbing.

commit 8d144d0bf5116c5f04522f2b4cd75699f6480f8e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 7 14:20:35 2011 -0700

    (#7012) Update references in code to use face(s)
    
    The codebase is now using the new name, faces, uniformly to reference the
    objects contained.  All tests pass.

commit 5592034fdb8bf3a72ab3133d69443490f9ad7b78
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 7 13:18:26 2011 -0700

    (#7012) global rename of strings to faces.
    
    This just changes filenames and directories; files are exact copies rather
    than having additional modifications to make clearer each step of this
    process.
    
    This does leave a currently broken build. :/

commit af792351a62399f8bbeba0d2425f2b88eabb3dff
Merge: fe45c24 6be1eb8
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Apr 7 14:14:57 2011 -0700

    Merge branch 'maint/next/load-order-bug-with-component' into next

commit 6be1eb89750593c63668827fcc6230747a03a3c0
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Apr 7 14:06:18 2011 -0700

    Maint: fix a load order problem with type(:component)
    
    Puppet's autoloader has an incompatibility with ruby's native 'require'
    statement that makes it possible to reach the same code multiple times,
    which can cause genclass to create multiple classes with the same name.
    This patch fixes the uses of some puppet types so that they are loaded
    using the autoloader instead of using 'require'.
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit fe45c2417af580597cd39adec96a30a05a7cd66a
Merge: 9c06fbd 20bff91
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 7 12:22:30 2011 -0700

    Merge branch 'next'
    
    * next: (23 commits)
      (maint) Indentation fixes
      (#6490) Add plugin initialization callback system to core
      (Maint) Fix uninitialized constant.
      (5200) -- replace containers with sentinals
      (#5528) Add REST API for signing, revoking, retrieving, cleaning certs
      Fix #4339 - Locally save the last report to $lastrunreport
      Fix #4339 - Save a last run report summary to $statedir/last_run_summary.yaml
      Fixed #3127 - removed legacy debug code
      Fixed #3127 - Fixed gem selection regex
      (6911) Cleanup and renaming of transaction internals
      (6911) Core change -- replace topsort with frontier ordered by salted SHA1
      (6911) Add bookkeeping facade around Transaction#relationship_graph
      (#5437) Invalidate cached TypeCollection when there was an error parsing
      (#6937) Adjust formatting of recurse's desc
      (#6937) Document the recurse parameter of File type.
      (#6937) Document the recurse parameter of File type.
      (6911) Cleanup of generate_additional_resources
      (6911) Refactor to localize eval_generate dependency assumptions
      (#6893) Document the cron type in the case of specials.
      (maint) Fix for require order issue
      ...

commit 20bff91c8b8e450d913deeb1750a00a14f1b1061
Merge: e17cc65 da4457b
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 7 12:21:42 2011 -0700

    Merge branch '2.6.x' into next
    
    * 2.6.x:
      (maint) Indentation fixes
      (#6490) Add plugin initialization callback system to core
      Fix #4339 - Locally save the last report to $lastrunreport
      Fix #4339 - Save a last run report summary to $statedir/last_run_summary.yaml
      Fixed #3127 - removed legacy debug code
      Fixed #3127 - Fixed gem selection regex
      (#5437) Invalidate cached TypeCollection when there was an error parsing
      (#6937) Adjust formatting of recurse's desc
      (#6937) Document the recurse parameter of File type.
      (#6893) Document the cron type in the case of specials.
      (#5670) Don't trigger refresh from a failed resource
      Fixed #6554 - Missing $haveftool if/else conditional in install.rb breaking Ruby 1.9
    
    Conflicts (Manually resolved):
    	lib/puppet/application/agent.rb
    	lib/puppet/application/apply.rb
    	lib/puppet/configurer.rb
    	lib/puppet/resource/type_collection.rb
    	lib/puppet/type/file.rb
    	spec/integration/configurer_spec.rb
    	spec/unit/application/agent_spec.rb
    	spec/unit/application/apply_spec.rb
    	spec/unit/configurer_spec.rb
    	spec/unit/indirector/report/yaml_spec.rb
    	spec/unit/resource/type_collection_spec.rb
    
    Paired-with: Nick Lewis

commit da4457be4dedaed5368bacf81a08f0429e21cd45
Merge: 1e4968e f7c6db9
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Apr 7 11:29:54 2011 -0700

    Merge branch '2.6.next' into 2.6.x
    
    * 2.6.next:
      Fix #4339 - Locally save the last report to $lastrunreport
      Fix #4339 - Save a last run report summary to $statedir/last_run_summary.yaml
      Fixed #3127 - removed legacy debug code
      Fixed #3127 - Fixed gem selection regex
      (#5437) Invalidate cached TypeCollection when there was an error parsing
      (#6937) Adjust formatting of recurse's desc
      (#6937) Document the recurse parameter of File type.
      (#6893) Document the cron type in the case of specials.
      (#5670) Don't trigger refresh from a failed resource
      Fixed #6554 - Missing $haveftool if/else conditional in install.rb breaking Ruby 1.9

commit 3d5ec4f61fee08552767e950ac021752c202a599
Merge: 91069f3 03afbad
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 7 11:19:23 2011 -0700

    Merge branch 'bug/master/7006-missing-require'

commit 03afbad012b6054797111ddd6e4ad8db8df45406
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Apr 7 11:18:46 2011 -0700

    (#7006) Add a missing require to puppet/string/option.rb
    
    This was causing failure in some cases, based on load order; we should always
    satisfy our external dependencies.
    
    Reviewed-By: Dan Bode <dan@puppetlabs.com>

commit f7c6db9409e479ec1b54cfa85daa1ee51e5a7ad0
Merge: 356cb8b 647a640
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Apr 7 11:13:58 2011 -0700

    Merge commit '647a640fcac281e3a8cda05b92b51c44c93f1d19' into 2.6.next

commit 1e4968e82a65b21ad5d075015830ef3f54efee05
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Apr 6 20:25:45 2011 -0700

    (maint) Indentation fixes

commit 99d78f2c15b6ccf543466d3fa2cdeda7eb3f9987
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Mar 25 12:00:39 2011 -0700

    (#6490) Add plugin initialization callback system to core
    
    The recurring pattern "drop-in code needs to have something done at startup"
    is presently being solved with a variety of ad-hock mechanism.  This commit
    adds a general, extensible, centralized system for adding such hooks and
    manages an extensible set of metadata about plugins which it collects by
    searching for files named "plugin_init.rb" in a series of directories.
    
    Initially, these are simply the $LOAD_PATH.  Applications can add more places
    to look for plugins without risk of adding duplicates or changing the order of
    ones that have already been found with:
    
        Puppet::Plugins.look_in(*paths)
    
    The contents of each file found is executed in the context of a Puppet::Plugins
    object (and thus scoped).  An example file might contain:
    
     -------------------------------------------------------
          @name = "Greet the CA"
    
          @description = %q{
            This plugin causes a friendly greeting to print out on a master
            that is operating as the CA, after it has been set up but before
            it does anything.
          }
    
          def after_application_setup(options)
            if options[:application_object].is_a?(Puppet::Application::Master) && Puppet::SSL::CertificateAuthority.ca?
              puts "Hey, this is the CA!  Hi everyone!!!"
            end
          end
     -------------------------------------------------------
    
    Note that the instance variables are local to this Puppet::Plugin (and so may be
    used for maintaining state, etc.) but the plugin system does not provide any
    thread safety assurances, so they may not be adequate for some complex use cases.
    
    Presently supported hooks:
    
        before_application_preinit( :application_object => ... )
        after_application_preinit( :application_object => ... )
    
        before_application_parse_options( :application_object => ... )
        after_application_parse_options( :application_object => ... )
    
        before_application_setup( :application_object => ... )
        after_application_setup( :application_object => ... )
    
        before_application_run_command( :application_object => ... )
        after_application_run_command( :application_object => ... )
    
        on_commandline_initialization(:command_line_object => ... )
        on_application_initialization(:appliation_object => ... )
    
    Paired-with: Daniel Pitman

commit e17cc651a9625576aa79af428bbaec702e216ac8
Merge: cab5672 2a6c6cb
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Apr 6 16:43:15 2011 -0700

    Merge branch 'feature/next/resource_application_order' into next

commit cab567274691e0f39e88d49eb503efbe58d5042c
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed Apr 6 16:37:34 2011 -0700

    (Maint) Fix uninitialized constant.
    
    err: Could not apply complete catalog: Could not autoload group: uninitialized constant Puppet::Property::KeyValue
    
    Encountered this while generating certificate requests via
    Puppet Strings/Faces, which doesn't load the full Puppet stack
    by default.
    
    Paired-With: Matt Robinson

commit 91069f36bcfe5b67f2ef0189360d55b607438c92
Merge: f732d69 27bd1ad
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 6 16:37:29 2011 -0700

    Merge branch 'bug/master/6972-setting-CA-location-for-cert-string-no-longer-works'

commit 27bd1adb7cc43bfdeb8fb941418cfce3a7f694ef
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 5 19:08:54 2011 -0700

    (#6983) mark test pending until string is fixed...
    
    The certificate string is broken, and won't allow you to either search or save
    certificates.  Given that, mark the test on it broken until that is completed.
    
    Reviewed-By: Dan Bode <dan@puppetlabs.com>

commit a03790d82a2c190d6f00ee7677617a7be04aa85d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 5 18:39:19 2011 -0700

    (#6972) Handle ca-location in the certificate string.
    
    This ports the existing certificate location configuration to be a string
    option, and then uses that to change the configuration.  This will leak state
    between calls, which is somewhat unavoidable, but should at least get the
    basic stuff right for the CLI.
    
    We eventually need the CA string to be supported by a stateless internal CA
    implementation that allows us to do the right thing  overall.
    
    Reviewed-By: Dan Bode <dan@puppetlabs.com>

commit 7e7d246bf46349c904c76a31951d4a40c200790b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 5 11:37:51 2011 -0700

    (#6972) Recognize puppet global options in pre-parse.
    
    This extends the CLI pre-parse phase to identify both string *and* global
    options out of the Puppet settings/defaults system.  This makes the regular
    CLI support for setting Puppet configuration globals work as expected.
    
    This moves us along the line of supporting these options more fully.
    
    Reviewed-By: Dan Bode <dan@puppetlabs.com>

commit 0b97bd0df57dd6732db5f52fc7360f61e74dba2e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Apr 5 11:36:18 2011 -0700

    (#6972) Clean up OptParse name extraction a little.
    
    During testing, an obvious cleanup showed up for the name extraction here, so
    we implement it.  This extends the regexp to better extract the data we want
    rather than hacking it up post-match and having to do extra validation to make
    sure it actually worked.
    
    Reviewed-By: Dan Bode <dan@puppetlabs.com>

commit f732d69552969698fdae7905284f01682bfd3441
Merge: e4f869d d4012db
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 6 16:30:27 2011 -0700

    Merge branch 'bug/master/6995-current-is-not-always-calculated-correctly'

commit d4012dbf2e7e041e8e24eda6cd896b6f6e4fac4d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 6 16:28:56 2011 -0700

    (#6995) Fix indexing of :current on string load.
    
    We do this by implementing a standard mechanism for finding the current
    version out of the default file, and only supporting that one file.  This
    implements our decision to lazy-evaluate the extra version support stuff as
    much as possible.
    
    Reviewed-By: Dan Bode <dan@puppetlabs.com>

commit 07a79cf4f2b62250049fb9b52d7d310d3e0ab5d2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 6 16:23:28 2011 -0700

    maint: add `write_scratch_string` helper for testing...
    
    We had a pattern where we wanted to routinely write scratch strings to disk,
    on the load path, so we could reference them later.  This extracts that into a
    helper, and starts to use it in tests that should follow that pattern.
    
    Reviewed-By: Dan Bode <dan@puppetlabs.com>

commit a1a09b086dc19ad5257599f24ef8d92bfcabc11e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 6 14:37:07 2011 -0700

    maint: whitespace cleanup for spec_helper.
    
    We had some incorrect indentation in the file; we fix that up now before we
    make any substantive changes.
    
    Paired-With: Dan Bode <dan@puppetlabs.com>

commit a125536350880ef886de843b8106e2422eabe0d5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Apr 6 11:08:40 2011 -0700

    (#6995) more robust testing of string loading
    
    We were flushing loaded string versions in the test suite, but were not
    clearing out the $" array used to determine if we had previously loaded that
    file.
    
    This lead to situations where tests cross-polluted because require though the
    code was in memory, but the effects of loading that code had all been rolled
    back.
    
    Reviewed-By: Dan Bode <dan@puppetlabs.com>

commit 2a6c6cb8fabf82d2f2127c90db670c1a856427c5
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Apr 4 12:13:53 2011 -0700

    (5200) -- replace containers with sentinals
    
    This commit removes the last remaining use of topsort (in SimpleGraph#splice!) by
    fixing #5200 in a way that is compatible with graph fontiers.  Instead of replacing
    containers with many-to-many relationships, we now replace them with a pair of
    sentinals (whits) that bracket them.
    
    Thus a graph consisting of two containers, each containing ten resources, and a
    dependency between the containers, which would have gone from 21 edges to 100
    edges will instead have only 43, and a graph consisting of two containers (e.g.
    stages) each containing a similar graph, which would have gone from 45 edges to
    400 will only go to 95.
    
    This change had minor consequences on many parts of the system and required lots
    of small changes for consistancy, but the core of it is in Catelog#splice! (which
    replaces SimpleGraph#splice!) and Transaction#eval_generate.  Everything else is
    just adjustments to the fact that some one-step edges are now two-step edges and
    tests, event propagation, etc. need to reflect that.
    
    Paired-with: Jesse Wolfe

commit e4f869d3ed9422eeb46c25f532f693c7d0811684
Merge: da47d85 8ddd994
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue Apr 5 16:42:55 2011 -0700

    Merge branch 'tickets/master/6982'

commit 8ddd9947382579082cc4554b332ca1ec62d94942
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue Apr 5 16:41:14 2011 -0700

    (#6982) Patch the Certificate String against (#5528).
    
    Reviewed-By: Matt Robinson

commit ff9b24fa7d60e7a224c78904ab451c4c39cb231f
Merge: b82bf9f e20e618
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Apr 5 15:56:29 2011 -0700

    Merge branch 'feature/master/5528-certificates_signing_api' into next
    
    * feature/master/5528-certificates_signing_api:
      (#5528) Add REST API for signing, revoking, retrieving, cleaning certs

commit e20e6185f7f26d02c7ea275f8adf43c088169129
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Mar 22 18:36:01 2011 -0700

    (#5528) Add REST API for signing, revoking, retrieving, cleaning certs
    
    This commit introduces a new Indirector terminus, certificate_status,
    which allows for signing, revoking, listing, and cleaning
    SSL certificates over HTTP via REST. Documentation for these new
    features can be found in our REST API documentation on the docs site:
    
    http://docs.puppetlabs.com/guides/rest_api.html
    
    This documentation has not been updated as of the writing of this
    commit, but will be very soon. Puppet::SSL::Host is now fully integrated
    into the Indirector.
    
    Paired-with:Matt Robinson, Jacob Helwig, Jesse Wolfe, Richard Crowley,
    Luke Kanies

commit 356cb8bbd05421346839520f978d4a8ba1b59338
Merge: cc7f072 5d1cb02
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Apr 5 15:34:27 2011 -0700

    Merge branch 'tickets/2.6.x/4339' into 2.6.next
    
    * tickets/2.6.x/4339:
      Fix #4339 - Locally save the last report to $lastrunreport
      Fix #4339 - Save a last run report summary to $statedir/last_run_summary.yaml

commit 5d1cb02cd1ee509647a6dbe157152bd74d5e24ae
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 13 11:41:18 2010 +0100

    Fix #4339 - Locally save the last report to $lastrunreport
    
    Using the cache terminus system, when --report is on, we are now
    caching the last report as a yaml file in the $lastrunreport file
    (which by default is $statedir/last_run_report.yaml).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 306aa3032a3770c0d668907ae08042be88ec725e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Nov 12 13:39:41 2010 +0100

    Fix #4339 - Save a last run report summary to $statedir/last_run_summary.yaml
    
    Once a configuration run is done, puppetd will save on the node a
    yaml summary report roughly akin to:
    
    ---
      time:
        notify: 0.001025
        last_run: 1289561427
        schedule: 0.00071
        config_retrieval: 0.039518
        filebucket: 0.000126
      resources:
        changed: 1
        total: 8
        out_of_sync: 1
      events:
        total: 1
        success: 1
      changes:
        total: 1
    
    This is almost an hash version of the current --summarize output, with
    the notable exception that the time section includes the last run unix
    timestamp.
    
    The whole idea is to be able to monitor locally if a puppetd does its job.
    For instance this could be used in a nagios check or to send an SNMP trap.
    The last_run information might help detect staleness, and this summary
    can also be used for performance monitoring (ie time section).
    The resource section can also show the number of failed resources.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit da47d853f9fdd0bd7c74775c65bf193cdf9fd23e
Merge: a2537dc 0950d09
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 4 14:47:58 2011 -0700

    Merge branch 'feature/master/6749-actions-need-to-support-options'

commit 0950d09d12ec06e97915d264e8724e736c84e36a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 4 14:46:21 2011 -0700

    (#6949) Fix passing positional arguments to actions.
    
    We had a logic failure that didn't pass positional arguments at all, but which
    our testing didn't verify.  This entirely broke things.  Now fixed, and a test
    added to ensure we don't bug out further...
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit a2537dc52724386b8f05240e9b18bff437141e79
Merge: 75ef3af 4d2a367
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 4 14:35:50 2011 -0700

    Merge branch 'refactor/master/6964-when_invoked-rather-than-invoke-in-actions'

commit 4d2a367b0cf5bf03588b1e6bbfafdf437bea249e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 4 14:34:51 2011 -0700

    (#6964) use 'when_invoked' rather than 'invoke' for actions.
    
    In the DSL we want to use 'when_invoked do' because it reads much more
    naturally for users.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit cc7f0728df96fd36a7ddda9cea3c4db274533f68
Merge: ea13fbc 3e7ebbb
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Apr 4 14:22:38 2011 -0700

    Merge branch 'ticket/2.6.x/6554' of git://github.com/jamtur01/puppet into 2.6.next
    
    * 'ticket/2.6.x/6554' of git://github.com/jamtur01/puppet:
      Fixed #6554 - Missing $haveftool if/else conditional in install.rb breaking Ruby 1.9

commit 75ef3af26fcd205f316358b2f23abe5e200f6eaf
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 4 13:52:59 2011 -0700

    maint: added testing to ensure we inherit options correctly.

commit 9ce031d300738c778254358792ee295c08252cff
Merge: 505a48c 0c74495
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 4 13:33:03 2011 -0700

    Merge branch 'feature/master/6749-actions-need-to-support-options'

commit 0c74495529bd697cdc42986882fc3efb4cdc9903
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 4 11:35:46 2011 -0700

    (#6749) Handle options with inline arguments.
    
    We didn't correctly handle '--foo=bar' as having supplied an argument during
    the pre-parse phase.  Now we have a test for it, and a fix in the code.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit cec3b6e2627ea2340e46c2e498f4d41522140094
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 4 11:19:26 2011 -0700

    (#6749) Extract the action from the arguments cleanly.
    
    This adds a test to verify that we are correctly removing the action name from
    the set of arguments passed to the string action, then cleans up the previous
    code so we don't need to mutilate the command line arguments: we can just
    extract it from the resultant set of information.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 5a0b547f3289cb8e13b197d021322e03d05bee8e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Apr 4 11:04:17 2011 -0700

    (#6749) Fix optional vs mandatory argument handling.
    
    optparse will treat '--foo --bar' as "foo with the argument --bar" when foo
    takes a mandatory argument.  We need to emulate that behaviour in our
    pre-parse of the command line.
    
    Incidentally, fix up a bug in boolean options, and improve our testing.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 8b37d7038c89bd830b076e838686419ff0068b56
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 1 15:16:55 2011 -0700

    (#6749) Polish the CLI option pre-parse implementation
    
    This improves handling of the pre-parse of the command line to be
    non-destructive, which cuts down the volume of garbage generated in the
    process.
    
    It also improves testing to verify that we get the darn thing right...
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 37c97cdca07fd8c446e924547239c8f09eda8810
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 1 12:47:32 2011 -0700

    (#6749) clean up various testing bits...
    
    This cleans up a whole bunch of bits of the testing code around the place;
    nothing revolutionary, just nicer and more robust code.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit d328af73e688df136ee6fe10340adf7ba72b951e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 1 12:46:12 2011 -0700

    (#6760) set terminus in indirector string base class.
    
    We now accept a terminus option to each invocation, and set the terminus based
    on that call.  This is probably incomplete, because it only sets the terminus
    when given, and doesn't try to reset it to the default afterwards.
    
    This also resets the terminus class after every invocation, to stop it leaking
    state across calls.  This make, sadly, have some effects if you are not just
    using the strings to invoke the terminus, but it beats having the strings
    broken as well...
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 4d23d60fc331220418d4502930bd2fad7ee44b84
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 1 10:48:07 2011 -0700

    (#6749) add a shim around the action implementation.
    
    To present a pleasant Ruby API to folks invoking actions we want to have
    default values for the trailing 'options' argument, and to be able to pass a
    block to the code to allow yield to work.
    
    Given limitations of Ruby 1.8 regarding blocks, we can't use either of those
    because the block slot is bound at declaration time, and you can't give
    optional arguments.
    
    To work around this we inject, using eval, a full regular Ruby method into the
    final block of code.  This can provide the default argument at the end in an
    intelligent way (albeit by emulating what the interpreter would do).
    
    This doesn't solve the yield problem, but the same method can pass the block
    explicitly, and allows other hooks to be injected, which makes it easier to do
    smarter things in future...
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit eb4c4fbdc3951c220a76ec01abc33a7654d89e53
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 1 10:44:35 2011 -0700

    (#6749) Start porting existing strings to the options API.
    
    This provides a solid test of the new code, by migrating the existing strings
    to match.  This also gives us a chance to determine any weak points in the
    code as written.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 8723b1c2102a181d23c9fe4ede7d58294f7c18ba
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 31 16:48:50 2011 -0700

    (#6749) code and test cleanup of Application/StringBase.
    
    This removes dead code now we have terminus in the base string, and disables
    some tests on StringBase app until they can be rewritten.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 3d88808270e9a0cb848a66825c66676598559dc3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 31 16:46:43 2011 -0700

    (#6749) base indirector string should fail on invalid terminus.
    
    We used to generate an info-level message, then carry on, which typically
    resulted in raising because 'nil' doesn't implement the expected method that
    we immediately try to call.
    
    So, instead, raise a clear error at the time we fail to load, which gives a
    pleasant rather than confusing error to the user.  Which at least means they
    know why things have gone wrong...
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit c52261c7aa86e7e75f215ba0f6b8c140003c4ead
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 31 13:36:19 2011 -0700

    (#6749) disable Action#invoke for this release.
    
    So, we have Action#invoke, but it binds to the declaring class, not to the
    correct instance.  Solving all the subtle issues around threads, global state,
    and bindings without causing us too much pain is actually pretty hard, so
    instead we pull the feature.
    
    It can be enabled again in a future release and, being a strict extension
    feature, we can do that without overly hurting anyone.  We still have full
    access to the invocation through a marginally less pleasant syntax, but one
    that people MUST be able to arrange to allow invoke to work, so on that front
    we are clean.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 1635454755fa8fdc0dedf032c543d3f4006aa568
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 31 10:45:33 2011 -0700

    (#6749) Remove "save does not work" language from strings.
    
    Now we are pushing into production we can eliminate this language, which was a
    legacy from the prototype that is no longer relevant globally.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 423fe1f6b7c5bc0ca9b53a87f636668514802ad7
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Mar 30 16:58:17 2011 -0700

    (#6749) string cli base: implement preinit CLI parsing
    
    In order to identify the full set of options we need to know the action that
    is being invoked; that actually requires a pre-processing step to identify
    that out of the global options.
    
    Notably, our spec is that options can be to the right of their declaration
    point, but not to the left: that means that we can now extract the full set of
    options, and interact with the standard Puppet option handling code, resulting
    in at least vaguely saner behaviour...
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 512778f95058a423a3d2e08d1803eb4a90fb975a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Mar 30 16:56:40 2011 -0700

    (#6749) detect duplicate aliases in a single option statement.
    
    This ensures that an option declaration that shadows itself is found, and
    reported to the user, rather than silently eating one of the two.
    
    This could have actually lost, for example, the distinction between an
    argument-requiring and an argument-missing variant of the same thing.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 3bb614525f625a688baf8d67c5a580f8a51f4cad
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Mar 30 16:56:08 2011 -0700

    (#6749) fix an inheritance bug in ActionManager
    
    When we wrote class inheritance of actions for strings we didn't implement
    method (ahem, action) lookup correctly.  This changes that, by providing the
    implementation to our standards, along with appropriate tests.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit a113e8f03d257375bf4eb2416a6ad7e1958d7868
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Mar 29 15:34:23 2011 -0700

    (#6749) implementing option handling in CLI string wrapper
    
    The purpose of this is to adapt the generic option support in our strings to
    the command line; we adapt the generic option information to optparse, and
    establish our environment early in the process to ensure that we can play nice
    with Puppet::Application for the moment.
    
    In the process we ensure that we detect, and report, conflicts in option
    naming across the board.  Additionally, when an option is declared with
    multiple aliases, we insist that either all, or none, of them take an
    argument.
    
    To support this we support introspecting options having an optional argument,
    as well as documentation and all.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 5bba1a26140cd3326739b00c2d60dff9321d4044
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 24 13:10:27 2011 -0700

    (#6749) Implement support for options on strings and actions.
    
    We want to support both strings and actions specifying options, to support
    generic wrappers that present strings to the user across multiple distinct
    front-ends.
    
    At the moment we focus on implementation of a generic CLI providing full
    control to all the strings, but we aim to support other programmatic
    interfaces including Ruby and RPC invocation as part of the overall change.
    
    We also detect, at the time they are declared, duplicate options.  They are
    reported, like any duplicate, with an error thrown.  Specifically:
    
    It is illegal to declare a duplicate option in the same scope, such as within
    the same string, or within the same action.  This is unchanged.
    
    It is illegal to declare an option in an action that duplicates an option in
    the string, or vice-versa.  This is reported when the duplicate is declared,
    so may report on either the string or action depending on sequence.
    
    It remains legal to duplicate the same option across multiple actions, with
    different meanings.  There is no conflict, as the same option can't be passed
    to both simultaneously.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit ea13fbc107aa96b55066178d07584115a2034b7d
Merge: 6986104 9bb3018
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Apr 5 01:49:13 2011 +1000

    Merge branch 'tickets/2.6.x/3127' into 2.6.next
    
    * tickets/2.6.x/3127:
      Fixed #3127 - removed legacy debug code

commit 9bb301814865db25a43b97869f0261f3bea9faf7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Apr 5 01:48:23 2011 +1000

    Fixed #3127 - removed legacy debug code

commit 69861040c8481e8f7090e0231905c025326b47fa
Merge: 59559a3 d2bacd3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 4 05:02:48 2011 +1000

    Merge branch 'tickets/2.6.x/3127' into 2.6.next
    
    * tickets/2.6.x/3127:
      Fixed #3127 - Fixed gem selection regex

commit d2bacd308ea214151f5c1f43ec62aad8075da41b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 4 04:50:38 2011 +1000

    Fixed #3127 - Fixed gem selection regex
    
    Previously if the gem json_pure was installed and you requested the
    gem json then the regex matched too soon and falshly indicated that
    the json gem was already installed.
    
    Also updated to add the --no-ri and no-rdoc options and fix tests.

commit 1400fec62e4e692badc5b68eb7d6d947997d7204
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 1 13:10:42 2011 -0700

    MAINT: nicer to_s for actions, for user-focused rendering.
    
    This makes it possible for us to just print the Action object directly and get
    a human-focused output string.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 05b434dca10bbc18d794358a9d08db89a46424f9
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Mar 28 21:37:05 2011 -0700

    (#6758) Pass options as an argument to string actions.
    
    Earlier in their implementation the String prototype would set global state on
    a String object to reflect options set on the command line.  As we move
    strings away from a CLI-only prototype, this becomes troublesome because we
    can easily have, for example, HTTP access to a string, which means load
    balancers can really make this confusing.
    
    It also encourages global state pollution, where one invocation can adversely
    influence another.  A better approach is that we pass options to the string
    action invocation directly; this makes the interaction stateless.
    
    Changes required to your code to adapt to the new world:
    
    -    action(:foo) do |some, args|
    +    action(:foo) do |some, args, options={}|
           if options[:whatever] then
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit a3f5f974251e14f02e8f83e12f4589581dd21828
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Mar 29 11:56:43 2011 -0700

    MAINT: fix error reporting when you set terminus incorrectly.
    
    Previously we tried to invoke a class method on an instance, and threw another
    exception, which wasn't the most helpful behaviour.  This fixes that to
    correctly report the array of available terminus classes to the user.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 6554fd3b895c704e8e025c5bb9d71863fff4c338
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 1 13:11:18 2011 -0700

    MAINT: delete a test that can't work on 2.6.
    
    The methods being tested are not available in the 2.6 series, and the test
    itself is relatively weak, so rather than try to fix it we eliminate it in
    favour of other testing of the same behaviour.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 56ba0a25753c7d6a736efa0c58fa0bb664e219c2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Mar 23 17:52:52 2011 -0700

    MAINT: implement a pending test for code we wrote...
    
    We had an outstanding pending test for code we wrote, and which we were not
    actually testing stand-alone.  This implements the test for that.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 76760db5f59ed3ba6b8e3a39f54a3289ccf7c5f4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Mar 23 17:30:59 2011 -0700

    MAINT: use a table for table-style tests...
    
    We had a series of tests that vary only on one input, and which wanted to
    validate that the same failure happened after every instance; reducing this
    to a set of input data lets us reduce code duplication in the tests.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 0e834afaa191c0a314e730416e34f44b10efda96
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Apr 1 11:29:40 2011 -0700

    MAINT: fix up tests that depend on the LoadError message to work.
    
    We depend on require throwing about a specific file on disk, rather than just
    generically, to ensure that we don't consume load errors from existing files.
    
    This means our tests need to be updated to reflect that, by raising with
    appropriate text when they stub require.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 7f658e6a19e43856ebc6aafe4f3a6e94cb765e73
Author: Todd Zullinger <tmz@pobox.com>
Date:   Wed Aug 19 23:44:44 2009 -0400

    vim: Initial ftplugin and indent support
    
    Vim's indent support makes it easier to automatically indent puppet
    manifests.

commit 5dc994c594680203a4bbbbaa3d6f3b00640c1530
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Apr 1 22:53:44 2011 -0700

    (6911) Cleanup and renaming of transaction internals
    
    The preceeding changes left some rough edges in the Transactions (a short,
    badly named method that was only used in one place and would be clearer in-
    line, a return value that was carfully retained and never used, etc.) This
    commit clears some of that up.

commit 8af29c8f9a4da0d9e4a1c15f032f9c0bb9348d62
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Apr 1 17:49:37 2011 -0700

    (6911) Core change -- replace topsort with frontier ordered by salted SHA1
    
    This is the core change of the ticket; rather than using a topological sort to statically
    determine the order in which resources should be applied, we use the graph wrapper
    introduced in the prior commit to dynamically determine the order in which to apply
    resources based on 1) the status of the resource (ready, done) 2) the explicit &
    implied dependencies, 3) the salted SHA1 of the title (for stability).
    
    Further work is needed:
    
    1) Resolving the handling of failed resources
    2) Tests of the new behavior, to the extent posible
    3) Newly-dead-code removal in simple_graph & transaction
    4) Fix the name-prefix ordering hack in eval_generate by either:
        a) Moving the logic into file
        b) Refactoring Type#eval_generate to return a tree
        c) ....?
    5) Rough performace testing to look for hotspots
    6) Investigation of possible interaction with #3788, #5351, #5414, #5876, #6020, #6810,
       and #6944 which may simplify or complicate their resolution.
    
    Paired-with: Jesse Wolfe

commit 8b5ffde9c4464d942aa0e2cae35220b933b7e3a6
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Apr 1 15:12:54 2011 -0700

    (6911) Add bookkeeping facade around Transaction#relationship_graph
    
    To implement graph frontiers transactions need to track information about the
    catalog's relationship graph.  For various reasons (serialzation, lifetime,
    etc.) the data belongs with the transaction rather than the catalog or its
    relationship graph.  This commit introduces a facade around the property used
    to cheat Demeter which has the apropriate lifetime and can be used to hold the
    state information durring a traversal.
    
    Paired-with: Jesse Wolfe

commit 59559a31b8c28535d740267914de711b92870d08
Merge: 0675c9a 1b66c28
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Apr 1 11:24:18 2011 -0700

    Merge branch 'ticket/2.6.x/5437-report-manifest-errors-on-agent' into 2.6.next
    
    * ticket/2.6.x/5437-report-manifest-errors-on-agent:
      (#5437) Invalidate cached TypeCollection when there was an error parsing

commit 1b66c28fb2ac5f5f10ce32b87ec459a480dcf161
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Apr 1 11:15:47 2011 -0700

    (#5437) Invalidate cached TypeCollection when there was an error parsing
    
    The caching of the TypeCollection in Puppet::Node::Environment would cause
    parse errors to occur (and be reported) only once and never again, until
    the file had changed on disk.  This would also cause empty catalogs to be
    sent down to the agents further hiding the problem.
    
    Now, when a file fails to parse, it will be re-parsed every time on every
    following compilation, causing the parse error to be reported every time,
    and preventing sending down empty catalogs to agents.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 0675c9a7ae90b25e1d723c19a7691b12eac9becd
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Apr 1 10:35:41 2011 -0700

    (#6937) Adjust formatting of recurse's desc
    
    Prevous formatting would result in broken Markdown after the docs were generated,
    as Markdown does not recognize a two-space tab as a syntactical element.
    This patch also changes the list of values to a bulleted list instead of a code block.

commit 2cdadf9b7fa7a4a1b826150549e5faffc4e494f3
Author: Ben Hughes <ben@puppetlabs.com>
Date:   Fri Apr 1 12:48:38 2011 +1100

    (#6937) Document the recurse parameter of File type.
    
    Update the desc block with information gleaned from #1469 and the code
    about recurse => remote and other types of recursion.
    
    The auto generated documentation was sparse and this is an area that often
    comes up on the mailing list/IRC.

commit b82bf9faa84447ac13b09d9d2db310fb3a35bd12
Merge: 9c06fbd ee1df78
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Apr 1 17:38:06 2011 +1100

    Merge commit 'ee1df783ddd4b72bd959735443b5dbdfea69e323' into next
    
    * commit 'ee1df783ddd4b72bd959735443b5dbdfea69e323':
      (#6937) Document the recurse parameter of File type.

commit ee1df783ddd4b72bd959735443b5dbdfea69e323
Author: Ben Hughes <ben@puppetlabs.com>
Date:   Fri Apr 1 12:48:38 2011 +1100

    (#6937) Document the recurse parameter of File type.
    
    Update the desc block with information gleaned from #1469 and the code
    about recurse => remote and other types of recursion.
    
    The auto generated documentation was sparse and this is an area that often
    comes up on the mailing list/IRC.

commit fa5c2b1b1494cc760f95c95e6e50a304c2651c7b
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Mar 31 16:41:11 2011 -0700

    (6911) Cleanup of generate_additional_resources
    
    The previous commit left only one meaningful value for the method parameter
    of generate_additional_resources, making it a constant not a parameter.  This
    commit removes it.
    
    Paired-with: Jesse Wolfe

commit 7b83cd9ff9f2e2b61ce4c99057ec0697140a5a5e
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Mar 31 16:30:17 2011 -0700

    (6911) Refactor to localize eval_generate dependency assumptions
    
    To implement #6911 we will need to be able to make incremental descisions about
    order of application based only on the contents of the resource graph and local
    "working data."  This commit begins to pull the needed structure into a method
    (visit_resources) while, for the moment, maintaining the original semantic.
    
    Paired-with: Jesse Wolfe

commit 647a640fcac281e3a8cda05b92b51c44c93f1d19
Author: Ben Hughes <git@mumble.org.uk>
Date:   Wed Mar 30 16:43:56 2011 +1100

    (#6893) Document the cron type in the case of specials.
    
    Add in a better desc block for "specials" in cron provider, and outline
    it's limitations.
    
    The previous text was purely a placeholder.

commit f76db9e8ce98dde154cbee971dcaecd9f8e73510
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Mar 30 17:55:49 2011 -0700

    (maint) Fix for require order issue
    
    The recent AIX work added a dependency on Puppet::Parameter::Keyvalue in
    the group type, but didn't add the requisite require, causing failures
    under some load orders.

commit d7a1424fa9b4626a2faa96d4673308ff91e5deb8
Merge: 9d17809 87ca313
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Mar 30 16:09:41 2011 -0700

    Merge branch 'ticket/2.6.next/5670' into 2.6.next

commit 87ca3130c570df65ab1296cc18de697afa6a55f5
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Mar 30 16:08:22 2011 -0700

    (#5670) Don't trigger refresh from a failed resource
    
    Resources were triggering their subscribing/notified resources when they
    failed, which is incorrect. Now, events are only queued if the resource was
    successful.
    
    Paired-With: Max Martin

commit 127501e11bf89894ca01681259e54de45821aacd
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Mar 30 15:32:59 2011 -0700

    (6911) Use normal methods to implement "depthfirst?" test
    
    There was a class instance variable that was used to determine if a resource
    types's children should be processed before or after the parent, to support
    the one type (tidy) which did this.  Instead, we define a normal function in
    Type to return false and override it in Tidy to return true.
    
    Paired-with: Jesse Wolfe

commit 505a48c0d316aad7ff26ae2c0ade294707ca081e
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed Mar 30 15:27:59 2011 -0700

    (Maint) Bugfix for failing requires inside Puppet Strings.
    
    Paired-With: Matt Robinson

commit 9c06fbd762cddcc41a7185a36f2a8e72879125eb
Merge: 4196699 11309a2
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Mar 30 13:02:19 2011 -0700

    Merge branch 'next'
    
    * next: (39 commits)
      (#5908) Add support for new update-rc.d disable API
      (#6830) Fix tests that depended on special inherited behavior
      (#6830) Fix overly stubbed tests
      (#6830) Fix instance_variables now comes back as symbols
      (#6830) Fix badly stubbed Time object in test
      (#6830) Fix MD5 handling to work with Ruby 1.9
      (#6830) Fix File class scoping
      (#6830) Handle case where array is actually a string
      (#6830) Fix case where instance_variables returns symbols in Ruby 1.9
      (#6862) Add a default subject for the mail_patches rake task
      Fixed #6256 - Creation of rrd directory.
      (#6855) ResourceType#search now accepts a regex
      (#5477) Allow watch_file to watch non-existent files, especially site.pp
      (#5477) Allow watch_file to watch non-existent files, especially site.pp
      Fixing #6851 - ResourceType#find/search loads types
      Fixing Module#path detection
      Fixed #6850 - Clean up ResourceType#to_pson
      (#6830) Fix stat method calls to not use an unneeded argument
      (#4576) Raise an error when a node is classified into a non-existent class
      Update CHANGELOG for 2.6.7
      ...

commit 11309a214148abb2167c1bd0adba0e035b2d8384
Merge: 9290b2f 9d17809
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Mar 30 13:01:46 2011 -0700

    Merge branch '2.6.x' into next
    
    * 2.6.x:
      (#5908) Add support for new update-rc.d disable API
      (#6862) Add a default subject for the mail_patches rake task
      Fixed #6256 - Creation of rrd directory.

commit 9d17809e5b240aa80d2c30f4d9625d4812802b8f
Merge: 76b3ee6 f5170fc
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Mar 30 13:00:56 2011 -0700

    Merge branch '2.6.next' into 2.6.x
    
    * 2.6.next: (23 commits)
      (#5908) Add support for new update-rc.d disable API
      (#6862) Add a default subject for the mail_patches rake task
      Fixed #6256 - Creation of rrd directory.
      (#5477) Allow watch_file to watch non-existent files, especially site.pp
      (#5221) Add test for fix to fileset with trailing separator
      (#5221) Fix fileset path absoluteness checking with trailing slash
      (#4769) Fix negative timeout support for newer rubies
      Fixed #6562 - Minor kick documentation fix
      (#6658) Propagate ENC connection errors to the agent
      (#4884) Remove typo from spec test
      (#4884) Modify tests to pass on non-OS X systems
      (#4884) Revise new exec tests, add a few more
      (4576) - if ENC declares invalid class, it is logged at warning.
      (#4884) Add an shell provider for execs
      (#4884) Fix Test::Unit exec tests
      (#4884) Break the exec type out to have a posix provider
      (#4884) Add consistent path validation and behavior
      (#4884) Add expand_path to requiring the spec_helper
      (#4884) Autorequire shared behaviors and method to silence warnings
      (#4884) Fix whitespace
      ...

commit f5170fc2dbcbb4202b9b08e8944aa35f7a7bf7b8
Merge: ec3178f f5aabf5
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Mar 30 12:57:50 2011 -0700

    Merge branch 'ticket/2.6.next/5908-update-rc' into 2.6.next
    
    * ticket/2.6.next/5908-update-rc:
      (#5908) Add support for new update-rc.d disable API

commit f5aabf52631afbda92dca1b5a90a3198bc4baf99
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Mar 22 16:54:53 2011 -0700

    (#5908) Add support for new update-rc.d disable API
    
    Added support for the new disable API to update-rc.d and
    added spec tests to check this functionality. This change was made
    because in versions of sysv-rc >= 2.88, 'update-rc.d stop' is broken and
    actually enables the service.
    
    We only changed the disable case as the enable case still works on
    systems which use sysv-rc 2.88 or greater (atm, only Debian Lenny). We
    wanted to change as little as possible because update-rc.d prints a
    message stating that the new enable/disable API is unstable and may
    change in the future.
    
    Paired-with:Matt Robinson, Jacob Helwig

commit 9290b2f990fd4b267b2eb0da719b8f320484c4d7
Merge: 12f5a15 f0d7684
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 29 16:30:27 2011 -0700

    Merge branch 'tickets/master/6494' of https://github.com/domcleal/puppet into next

commit 12f5a15305ce7dc86dbd21f4f77162cae637cbfd
Merge: b9982b6 7639d5f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 29 15:59:40 2011 -0700

    Merge branch 'tickets/master/6324' of https://github.com/domcleal/puppet into next

commit b9982b600871d1df5902935f7415e0eb7416104f
Merge: 4413c3e 7a325fe
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 29 15:30:23 2011 -0700

    Merge branch 'feature/master/6144' of https://github.com/ghoneycutt/puppet into next

commit 4413c3e6787deb947daf2e40887ebe39f91bc1ab
Merge: 1a7f0dc 4905956
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 29 15:07:05 2011 -0700

    Merge branch 'feature/2.6.next/5909' of https://github.com/bodepd/puppet into next

commit 1a7f0dc6c4bfe4ce716ddfd918be181c8d682229
Merge: 54f15b6 fb339cb
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 29 14:38:17 2011 -0700

    Merge branch 'feature/master/5432' of https://github.com/keymon/puppet into next

commit 23248285648b39ca771fc93988420d93d80506e5
Merge: b53cf84 5a90355
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 29 13:51:27 2011 -0700

    Merge branch 'maint/master/use-bracket-notation-in-specs'

commit 5a9035551d730c1121a2a6634f4b591d404f8aa1
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 29 13:49:00 2011 -0700

    maint: Use bracket notation instead of define in specs
    
    The intent of these specs is to find the String rather than to actually define
    it. Thus, the bracket notation is more semantically accurate than using
    Puppet::String#define.
    
    Reviewed-By: Pieter van de Bruggen

commit b53cf84b76d9cbe60c2aa29eed167b05cf7b6a35
Merge: 2ad8c96 f7f1e58
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue Mar 29 13:29:24 2011 -0700

    Merge branch 'tickets/master/6770'

commit f7f1e5822f3921336872956fe07c4da4406ce8eb
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue Mar 29 13:29:01 2011 -0700

    (#6770) Fix Puppet::String#load_actions.
    
    Reviewed-By: Nick Lewis

commit 54f15b6eae233c291ef14c4224ee1280aa09761e
Merge: 6985cc0 1ac7f63
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 29 11:06:58 2011 -0700

    Merge branch 'ticket/next/6830-ready_to_merge' into next
    
    * ticket/next/6830-ready_to_merge:
      (#6830) Fix tests that depended on special inherited behavior
      (#6830) Fix overly stubbed tests
      (#6830) Fix instance_variables now comes back as symbols
      (#6830) Fix badly stubbed Time object in test
      (#6830) Fix MD5 handling to work with Ruby 1.9
      (#6830) Fix File class scoping
      (#6830) Handle case where array is actually a string
      (#6830) Fix case where instance_variables returns symbols in Ruby 1.9

commit 1ac7f63f00c517c6dff67be8d927b968c7bcb6ea
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Mar 28 15:48:32 2011 -0700

    (#6830) Fix tests that depended on special inherited behavior
    
      class Foo
        def self.inherited(subclass)
          puts "#{subclass.inspect} inherited from #{self}"
        end
      end
    
      class Bar < Foo
      end
    
      a = Class.new(Bar) do
        def self.to_s
          "some other class"
        end
      end
    
    In Ruby 1.9 this prints
    
      Bar inherited from Foo
      #<Class:0x0000010086c198> inherited from Bar
    
    In Ruby 1.8 the to_s override used to be in effect so printed:
    
      Bar inherited from Foo
      some other class inherited from Bar
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit 29f3dda2aaa4a6225baaa5819ebad32909b01f93
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Mar 28 21:35:34 2011 -0700

    (#6830) Fix overly stubbed tests
    
    In Ruby 1.9 calling .each on a stub calls to_a, and if you're not
    stubbing to_a you get:
    
      unexpected invocation: #<Mock:option1>.to_a()
    
    Could have stubbed to_a also, but less stubbing is better in these cases
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit 5e9dfdcec4a3579e8d88a243b608c280c494c3be
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Mar 28 15:54:28 2011 -0700

    (#6830) Fix instance_variables now comes back as symbols
    
    YAML_ATTRIBUTES was being declared as strings and then intersected with
    the list of instance_variables, which in Ruby 1.9 comes back as symbols,
    so results in an empty list every time.
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit 893817f763131b62778a54378f3897cadf50bd45
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Mar 28 12:10:22 2011 -0700

    (#6830) Fix badly stubbed Time object in test
    
    Ruby 1.9 won't allow to_i to be called on a symbol.  It results in the
    error:
    
        undefined method `to_i' for :now:Symbol
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit ade4efea6d2d4dbee7ccfec62114df0c5dcf33e2
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Mar 28 11:52:11 2011 -0700

    (#6830) Fix MD5 handling to work with Ruby 1.9
    
    In Ruby 1.9 you have to require 'digest/md5' instead of just 'md5'.  The
    following irb sessions from each version of Ruby should explain the changes in
    how MD5 is used between Ruby versions and why this patch was made.
    
    ruby-1.9.2-p136 :001 > require 'md5'
    LoadError: no such file to load -- md5
    ruby-1.9.2-p136 :002 > require 'digest/md5'
     => true
    ruby-1.9.2-p136 :003 > Digest::MD5.hexdigest('mystring')
     => "169319501261c644a58610f967e8f9d0"
    ruby-1.9.2-p136 :004 > Digest::MD5.new('mystring')
     => #<Digest::MD5: d41d8cd98f00b204e9800998ecf8427e>
    
    ruby-1.8.7-p330 :001 > require 'digest/md5'
     => []
    ruby-1.8.7-p330 :002 > require 'md5'
     => ["MD5"]
    ruby-1.8.7-p330 :003 > Digest::MD5.hexdigest('mystring')
     => "169319501261c644a58610f967e8f9d0"
    ruby-1.8.7-p330 :004 > MD5.new('mystring')
     => #<MD5: 169319501261c644a58610f967e8f9d0>
    ruby-1.8.7-p330 :005 > MD5.new('mystring').to_s
     => "169319501261c644a58610f967e8f9d0"
    ruby-1.8.7-p330 :006 > Digest::MD5.new('mystring')
    ArgumentError: wrong number of arguments (1 for 0)
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit bfac57a0e5e12f92c92182adae1595d4a49ca5a7
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Sat Mar 26 10:03:51 2011 -0700

    (#6830) Fix File class scoping
    
    As seen in other Ruby 1.9 compatibility patches already.  Fixes errors
    like:
    
      undefined method `dirname' for Puppet::Type::File:Class
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit a520c5e3f6cbb06b5902b3021db6b024b085408a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Sat Mar 26 10:01:26 2011 -0700

    (#6830) Handle case where array is actually a string
    
    Another case where in Ruby 1.8 you can call enumerable methods on
    strings that you can't in Ruby 1.9.
    
        undefined method `collect' for "dev2 dev1":String
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit 85f3b767e8279188e5a0a594a21b7677126ed664
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Sat Mar 26 09:30:48 2011 -0700

    (#6830) Fix case where instance_variables returns symbols in Ruby 1.9
    
      class Foo
        def initialize
          @a = 2
          @b = "two"
        end
      end
    
      p Foo.new.instance_variables
    
    In Ruby 1.8 this prints
    
      ["@a", "@b"]
    
    In Ruby 1.9 this prints
    
      [:@a, :@b]
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit 4609e203fd47f8159118bb74a8308f9c6aee179f
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Fri Mar 25 14:52:48 2011 -0700

    (#6770) Change versioning; adopt :current over :latest.
    
    As per discussion with Luke, versions of an interface are first looked up by
    requiring 'puppet/interface/{name}', and secondarily looked up by requiring
    '{name}@{version}/puppet/interface/{name}' if the first failed.
    
    A version of `:current` can be used to represent the version living in
    'puppet/interface/{name}'.
    
    Paired-With: Nick Lewis

commit ec3178f7f3e7d4afd167089bc78ec99b88a0b664
Merge: 5693e41 37f9ca0
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Mar 28 10:59:16 2011 -0700

    Merge branch 'tickets/2.6.x/6862' into 2.6.next
    
    * tickets/2.6.x/6862:
      (#6862) Add a default subject for the mail_patches rake task

commit 2ad8c96935ec53c2d98201ad77fd070dc40dadb6
Merge: 88aeb04 b859baa
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Mar 28 10:47:09 2011 -0700

    Merge branch 'maint/master/puppet-strings-is-the-official-api-name'

commit b859baa04737644e40002f511c5941d002a956e3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Mar 26 00:12:17 2011 -0700

    MAINT: the API is officially named "string" as of this moment.
    
    Now that we have settled on the final public name for the API,
    "Puppet::String", mass-rename and mass-edit all the files to follow.
    
    Reviewed-By: Randall Hansen <randall@puppetlabs.com>

commit 37f9ca09135330ed180fb68d9295a4967a5cc857
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Mar 26 16:14:15 2011 +0100

    (#6862) Add a default subject for the mail_patches rake task
    
    This will prevent committers to forget to write cover letter subject
    when rake mail_patches needs to send multiple e-mails.
    It defaults to the "type" and "branch name" of the patch-set.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 5693e41291593cd69888fdb0536f616c4f5e3d10
Merge: a2ac367 9a4de12
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Mar 26 17:48:05 2011 +1100

    Merge branch 'tickets/2.6.x/6256' into 2.6.next
    
    * tickets/2.6.x/6256:
      Fixed #6256 - Creation of rrd directory.

commit 9a4de12bc4a7568b3adb9e514124edc69535ad1c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 2 17:32:21 2011 +1100

    Fixed #6256 - Creation of rrd directory.
    
    Added :metrics to the settings used by the master

commit 6985cc0f898d71dbd2ffbb353a2a482d9783cb42
Merge: cc53969 daaa048
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Mar 25 16:25:09 2011 -0700

    Merge branch 'ticket/next/5477' into next

commit cc53969290512b15819fbd72021f342fee2f28f5
Merge: cc43dd7 7c60db5
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Mar 25 16:24:49 2011 -0700

    Merge branch 'ticket/2.6.next/5477' into next

commit cc43dd79ad8d40b5b7bf3f4480ff794e99f733a4
Merge: c0236aa 0fec21f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Mar 25 16:24:01 2011 -0700

    Merge commit '2.6.next^1' into next
    
    These changes were superseded by existing commits in next:
    	lib/puppet/parser/compiler.rb
    	spec/unit/parser/compiler_spec.rb

commit a2ac367c2bea2b94b88f739250edb828da0091d4
Merge: 0fec21f 7c60db5
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Mar 25 16:10:03 2011 -0700

    Merge branch 'ticket/2.6.next/5477' into 2.6.next

commit c0236aab1145e01e26f59cf1d823dc6966ba567b
Merge: de2e84e 076de13
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Mar 25 16:07:25 2011 -0700

    Merge branch 'tickets/next/6855-searching_in_resource_type' into next

commit 076de13a24163f485a5dea2469c4b958f73a7d1e
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Mar 25 15:54:09 2011 -0700

    (#6855) ResourceType#search now accepts a regex
    
    We treat the regex relatively plainly, but this is
    more reasonable than just '*'.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 7c60db5d9db8eeda46f7041100759e69aed120a8
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Mar 24 17:51:59 2011 -0700

    (#5477) Allow watch_file to watch non-existent files, especially site.pp
    
    The watch_file mechanism would refuse to monitor paths to files that
    didn't exist. This patch makes it possible to watch a file that hasn't
    been created yet, so when it is created, you manifests will get
    reparsed.
    
    Backported this change to 2.6.x
    
    Paired-With: Jacob Helwig <jacob@puppetlabs.com>

commit daaa048a8d8829ad509b4a456826cc8a33cf6444
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Mar 24 17:51:59 2011 -0700

    (#5477) Allow watch_file to watch non-existent files, especially site.pp
    
    The watch_file mechanism would refuse to monitor paths to files that
    didn't exist. This patch makes it possible to watch a file that hasn't
    been created yet, so when it is created, you manifests will get
    reparsed.
    
    Paired-With: Max Martin <max@puppetlabs.com>
    Reviewed-By: Jacob Helwig <jacob@puppetlabs.com>

commit de2e84eb93416cebe6d5a92ee88ba9c98cd52661
Merge: 072baff e16a383
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Mar 25 14:34:18 2011 -0700

    Merge branch 'tickets/master/6850-resource_type_listing_and_converting' into next

commit e16a38349c596c4a6ea682173e0cc704dedc98a7
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Mar 25 14:15:12 2011 -0700

    Fixing #6851 - ResourceType#find/search loads types
    
    Previously we could only find types from site.pp, but
    we now automatically load the specified type (for find)
    or all types.
    
    This also adds a TypeLoader#import_all capable of importing
    all manifests (ruby or puppet) on a given system.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit 29268f3fda3c6e29f60d05e5aa387ff0424e7b1e
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Mar 25 12:39:13 2011 -0700

    Fixing Module#path detection
    
    For some reason FileTest.exist? was returning false,
    and FileTest.directory? returns true.
    
    I've also added much better tests for this behavior.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit da082d500e1f1192dbc987483d753d93b5698094
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Mar 25 11:28:13 2011 -0700

    Fixed #6850 - Clean up ResourceType#to_pson
    
    There's no value in including the code when we convert a resource
    type to JSON, since you can't convert it back again, so this removes
    it.
    
    I also cleaned up a few of the other attributes which were
    producing unnecessary information.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    Reviewed-by: Daniel Pittman <daniel@puppetlabs.com>

commit 88aeb04a50d8997b5e1e0ed7a5a2239508b174ee
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Mar 25 10:38:40 2011 -0700

    MAINT: fix the misordered invocations in action.
    
    When initializing we need to set the name and interface before we do anything
    else, since the reasonable assumption for users is that those invariants are
    there when their setter is called.
    
    This allows someone to override the interface or name by misusing the call to
    new, but they could already screw up by passing the wrong values, so whatever.

commit 072baff5b5cec91d31a581d416225b70f425b2f0
Merge: c7f6e5e b42c57d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Mar 25 10:36:01 2011 -0700

    Merge branch 'ticket/next/6830_stat_calls' into next
    
    * ticket/next/6830_stat_calls:
      (#6830) Fix stat method calls to not use an unneeded argument

commit b42c57ddf618284f69f13c0a5aa48aff9c6d549f
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Mar 24 17:59:56 2011 -0700

    (#6830) Fix stat method calls to not use an unneeded argument
    
    With this change under ruby 1.9.2 the number of failing specs goes from
    2003 to 635.  Also, puppet apply and master both seem to work.  Agent
    still has OpenSSL issues.
    
    Ruby 1.8 doesn't complain if you pass arguments to a runtime defined
    method that doesn't take arguments.  Ruby 1.9 does
    
        class Foo
          define_method('bar') do
            puts 'baz'
          end
        end
    
        Foo.new.bar("idonttakearguments")
    
    In Ruby 1.8 this prints: baz
    
    In Ruby 1.9 this errors with: 19_test.rb:3:in `block in <class:Foo>': wrong
    number of arguments (1 for 0) (ArgumentError)
    
    Reviewed-by:

commit 4c320cc482a33892a688d3a5072081e6d63a8310
Merge: 53b0656 6aea116
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Fri Mar 25 08:59:29 2011 -0700

    Merge branch 'tickets/master/6770'

commit 6aea116701b8e03558ef7a5a15766b267af14281
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Thu Mar 24 18:55:32 2011 -0700

    (#6770) Add support for version :latest.
    
    Specifying a version of `:latest` will find the most recent version of the
    named interface installed in your RUBYLIB, and attempt to load that.  This is
    unlikely to provide a stable dependency in the future, so should be used
    sparingly, acknowledging the dangers.
    
    Reviewed-By: Daniel Pittman

commit 1af9bb232ed73f16789f465e89a0d498c39e1b78
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Thu Mar 24 15:06:21 2011 -0700

    (#6770) Add version lookup and comparison.
    
    Reviewed-By: Jacob Helwig

commit 78371a739bcf1b1d76496e9038fa4b076a27032f
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Thu Mar 24 09:25:33 2011 -0700

    (#6770) Refactor Puppet::Interface#initialize.
    
    P::I#initialize now takes a name and a version (and an optional block).  The
    options hash has been removed, though it may be reintroduced if a legitimate
    use case can be made for it (so far, it's only been used for the version
    number).
    
    Reviewed-By: Jacob Helwig

commit 53b0656048c3227048bdc317c5e917ad0c39e850
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Mar 25 08:55:24 2011 -0700

    Config#print action always returns nil
    
    We were returning 'true', which was getting printed
    unnecessarily.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit c7f6e5ee743c061c020521651360bba240ae4519
Merge: 4196699 8124f8e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Mar 24 17:02:43 2011 -0700

    Merge branch 'ticket/next/4576' into next

commit 8124f8e725148be2556285629171d4964973c424
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Mar 24 16:56:19 2011 -0700

    (#4576) Raise an error when a node is classified into a non-existent class
    
    In 2.6.x, this was upgraded from "info" to "warning". This change for
    Statler escalates the warning to an exception which will abort the
    compile. This makes compiling fail consistently when you try to use an
    undefined class from any of: node classifiers, the class keyword, and the
    include function.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>

commit 0fec21fcd887685cf8421fdc309b878088f9fc48
Merge: 0f3e537 7761acb
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Mar 24 16:44:44 2011 -0700

    Merge branch 'ticket/2.6.next/5221' into 2.6.next

commit 0f3e537a127ff0a55e25e0eea4b7513529867df3
Merge: 99201ff 196294a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Mar 24 16:17:38 2011 -0700

    Merge branch 'feature/2.6.next/4576' of https://github.com/bodepd/puppet into 2.6.next

commit 99201ff662e8d2b5e16815843df22cbcad3e2ec2
Merge: 9f1a016 76b3ee6
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Mar 24 15:46:40 2011 -0700

    Merge branch '2.6.x' into 2.6.next
    
    * 2.6.x:
      Update CHANGELOG for 2.6.7

commit 76b3ee6822f52b100c45cd8921f13739f12ddf38
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Mar 24 15:33:35 2011 -0700

    Update CHANGELOG for 2.6.7

commit 7761acb5acd998d172b04adb8368a6a672fcde25
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Mar 24 14:04:04 2011 -0700

    (#5221) Add test for fix to fileset with trailing separator
    
    Reviewed-By: Pieter van de Bruggen

commit 357514ceec94df18abf98e5b906b50cb0dcf4cbd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jan 22 04:32:10 2011 +1100

    (#5221) Fix fileset path absoluteness checking with trailing slash
    
    Reviewed-By: Nick Lewis
    Reviewed-By: Pieter van de Bruggen

commit 1f59c7781ddeb9e1f73d2a901a71f6f827998451
Merge: b3c059e 633f63c
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 24 13:41:37 2011 -0700

    Merge branch 'feature/master/6833-support-'script'-as-"short-form"-action-creation-mechanism'

commit 633f63cdbc1d5630e546041bb0c1e714216158d0
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 24 13:33:30 2011 -0700

    (#6833) support 'script' as a short form of 'action'
    
    At the moment the action method is a fairly heavy tool: it provides a DSL, and
    is designed to allow substantial metadata to be added to the action.
    
    For some users this is low on value, since they just want to write a little
    script that drives things a bit differently. Which there is substantial value
    in the metadata, adding the capability to do these light-weight things quickly
    is valid.
    
    To meet this we add a script action; the contrast is:
    
      action :foo do
        # other metadata goes here
        invoke do |args|
          # method body goes here
        end
      end
    
      script :bar do |args|
        # method body goes here
      end
      # ...and if you want metadata, you have to add it in more ugly, procedural
      # ways, which we are not going to encourage.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 9f1a01653f97c55cb4be8ab560a726a130042b35
Merge: 3875b5b f8941b8
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Mar 24 12:02:51 2011 -0700

    Merge branch 'ticket/2.6.next/4769' into 2.6.next

commit f8941b80bb8ba6042dddce02d132abe252756162
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Mar 24 11:38:42 2011 -0700

    (#4769) Fix negative timeout support for newer rubies
    
    In new versions of Ruby, negative timeouts are unsupported. So munge negatives
    to zero in the parameter.
    
    Reviewed-By: Jacob Helwig

commit b3c059e74b1900c80c0fb875b696b7c5e2b5448b
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed Mar 23 17:28:51 2011 -0700

    (Maint.) Require 'puppet/interface' in spec_helper.rb
    
    Paired-With: Nick Lewis

commit 0bdbe18b3f3981c1e1f661e211e20ccab1278f81
Merge: 635751d c25fb94
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed Mar 23 16:39:42 2011 -0700

    Merge branch 'tickets/master/6770'
    
    Conflicts:
    	lib/puppet/interface/certificate.rb
    	spec/unit/application/interface_base_spec.rb
    	spec/unit/interface/interface_collection_spec.rb

commit c25fb94725c9abfb36e67938356f97823f8b605e
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed Mar 23 16:28:28 2011 -0700

    (#6770) Rename Puppet::Interface::interface method.
    
    Puppet::Interface::interface is now Puppet::Interface::define, also aliased to
    Puppet::Interface::[] for convenience.
    
    Paired-With: Nick Lewis

commit 7aa8f2252c7b0512c929fb87a6c3a09a952a142a
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed Mar 23 16:10:45 2011 -0700

    (#6770) Changing versioning to semver.
    
    More information about the versioning scheme can be found at http://semver.org.
    
    Paired-With: Nick Lewis

commit 635751d809af309c7c36c0c9d7a94a731ef8bd1c
Author: Richard Crowley <r@rcrowley.org>
Date:   Wed Mar 23 22:41:21 2011 +0000

    Propagating an argument to search out of core.
    
    Puppet::SSL::Host.search (which will proxy to the new indirection) accepts an array of classes (now also class names) to limit the search.  Currently, `puppet certificate list` limits itself to certificate requests to mimic the behavior of `puppet cert -l`.

commit 4196699f5fbb90ceecbb709c8502622eaad39062
Merge: 7e71840 66d0b16
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Mar 23 14:43:29 2011 -0700

    Merge branch 'next'
    
    * next: (34 commits)
      (#6820) Fix File class lookup in the file type for Ruby 1.9
      (#6820) Fix nagios parser to use proper hash syntax for Ruby 1.9
      (#6820) Fix Invalid multibyte character
      (#6820) Fix RDOC parser to work with Ruby 1.9
      (#6820) Fix invalid next that should be a return
      (#2782) Fix constant_defined?
      (#6527) Fix pip tests
      (#6527) Fix uninstall problem and refactor
      (#6527) Added pip package provider.
      maint: Change code for finding spec_helper to work with Ruby 1.9
      Fix error "invalid multibyte char (US-ASCII)" under Ruby 1.9
      Fixed #6562 - Minor kick documentation fix
      (#6566) Replace tabs with spaces
      (#6566) Fix ruby 1.9 incompatible case statement
      Fixed #6566 Replace ftools with filetuils in rake gem task
      (#6555) Fix another ruby 1.9 incompatible case statement
      Fixed #6555 - Fixed two more when then colon issues
      Fixed #6555 - Ruby 1.9.x returning Invalid next (SyntaxError)
      Fixed #6555 - Ruby 1.9.x warning: class variable access from toplevel
      (#6658) Propagate ENC connection errors to the agent
      ...

commit 66d0b16c8a0a55dd79b1b0f0e639f107e552d9ab
Merge: 36f4dc5 3875b5b
Author: Max Martin <max@puppetlabs.com>
Date:   Wed Mar 23 14:32:59 2011 -0700

    Merge branch '2.6.next' into next
    
    * 2.6.next:
      Fixed #6562 - Minor kick documentation fix
      (#6658) Propagate ENC connection errors to the agent
      (#4884) Remove typo from spec test
      (#4884) Modify tests to pass on non-OS X systems
      (#4884) Revise new exec tests, add a few more
      (#4884) Add an shell provider for execs
      (#4884) Fix Test::Unit exec tests
      (#4884) Break the exec type out to have a posix provider
      (#4884) Add consistent path validation and behavior
      (#4884) Add expand_path to requiring the spec_helper
      (#4884) Autorequire shared behaviors and method to silence warnings
      (#4884) Fix whitespace
      (#4884) Get rid of open3 require since it wasn't being used
      (#5814) Improved cron type specs
      (#5814) cron_spec shouldn't depend on cron provider
    
    Manually Resolved Conflicts:
    	lib/puppet/util/command_line/puppetrun
    	spec/spec_helper.rb
    	spec/unit/type/exec_spec.rb
    	spec/unit/type_spec.rb
    	test/ral/type/exec.rb

commit 1187a0eb2550f04d9b6c3dcfdcacdfbb32de0e56
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Wed Mar 23 13:59:44 2011 -0700

    (#6770) Add basic versioning for interfaces.
    
    Reviewed-By: Nick Lewis

commit 36f4dc5e1527fc46f097080c12bb1ee5c3d46714
Merge: ad85b67 36a5665
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Mar 23 13:19:53 2011 -0700

    Merge branch 'ticket/next/6820_ruby19_fixes' into next
    
    * ticket/next/6820_ruby19_fixes:
      (#6820) Fix File class lookup in the file type for Ruby 1.9
      (#6820) Fix nagios parser to use proper hash syntax for Ruby 1.9
      (#6820) Fix Invalid multibyte character
      (#6820) Fix RDOC parser to work with Ruby 1.9
      (#6820) Fix invalid next that should be a return
      (#2782) Fix constant_defined?

commit 36a5665f3e0aeb8b9141cb8be2f69f8568078986
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 23:07:56 2011 -0700

    (#6820) Fix File class lookup in the file type for Ruby 1.9
    
    Was getting the following error when we simply called File.dirname
    
    err: Got an uncaught exception of type NoMethodError: undefined method
    `dirname' for Puppet::Type::File:Class
    
    The constant lookup has changed in Ruby 1.9 to look at local scopes
    first, so we need to make it clearer that File is the Ruby File class
    and not something scoped in Puppet.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 8c32db76f68148b2e58ba744b965a3c8cd8f1663
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 22:56:46 2011 -0700

    (#6820) Fix nagios parser to use proper hash syntax for Ruby 1.9
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 054eac6a66113eca3704f26a341aa873162782bb
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 22:51:34 2011 -0700

    (#6820) Fix Invalid multibyte character
    
    puppet/spec/unit/network/authstore_spec.rb:89:
    invalid multibyte char (US-ASCII)
    puppet/spec/unit/network/authstore_spec.rb:89:
    syntax error, unexpected $end, expecting ']'
        " 2001:0000:1234:0000:0000:C1C0:ABCD:0876  0",
                                                       ^
    
    There was a non-breaking space (HEX A0) in that line because according
    to Markus (who made the original commit), these test lines were copy
    pasted from a web page.  The intent wasn't to test non-breaking speace
    chacters for IPV6.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 7a4fcf2835ac414fe3c5b1b4e4b16c13a2c92d09
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 22:48:17 2011 -0700

    (#6820) Fix RDOC parser to work with Ruby 1.9
    
    Lovely RDOC changed where it put everything in Ruby 1.9.  Now there's
    some conditional logic depending on Ruby version to determine which
    files to requrie. The tests still fail, but at least they run now.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 341654ea16e662e31bb97ca260397939ac34692e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 22:31:47 2011 -0700

    (#6820) Fix invalid next that should be a return
    
    The old code under ruby 1.8.7 if it was hit would result in:
    
    unexpected next (LocalJumpError)
    
    In Ruby 1.9 it doesn't even give you the chance to run the code since
    you get:
    
    compile error (SyntaxError)
    
    The code isn't tested so the intented behavior isn't clear, but in
    context this looks like the right change.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 3d43d866d6629863d91861f29638c1a31750ba57
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 22:28:27 2011 -0700

    (#2782) Fix constant_defined?
    
    Thanks to Al Hoang for the bit of code for choosing how to use
    constant_defined? depending on the version of Ruby.
    
    In Ruby 1.9 const_defined? has a new parameter for inherit (from Ruby docs)
    
    mod.const_defined?(sym, inherit=true) -> true or false
    Returns true if a constant with the given name is defined by mod, or its
    ancestors if inherit is not false.
    
    Unfortunately, the documentation isn't terribly clear about the behavior
    if inherit=false.  In Ruby 1.8 the inherit parameter doesn't exist.  It
    appears that setting inherit=false makes it behave like it used to in
    Ruby 1.8, but there may be sublties of autoloading that prove this wrong
    or ways in which were setting constants that changed and cause problems
    regardless of the behavior of const_defined?
    
    Ruby 1.8.7:
    irb(main):001:0> module Foo
    irb(main):002:1>   end
    => nil
    irb(main):003:0> A = 'find_me?'
    => "find_me?"
    irb(main):004:0> Foo.const_defined?('A')
    => false
    
    Ruby 1.9.2:
    ruby-1.9.2-p136 :001 > module Foo
    ruby-1.9.2-p136 :002?>   end
    => nil
    ruby-1.9.2-p136 :003 > A = 'find_me?'
    => "find_me?"
    ruby-1.9.2-p136 :004 > Foo.const_defined?('A')
    => true
    ruby-1.9.2-p136 :005 > Foo.const_defined?('A', false)
    => false
    
    Also noteworthy is that something about constants behavior changed
    between 1.9.1 and 1.9.2, though not in regard to the little test above,
    but we should only be testing against 1.9.2 anyway.
    
    At least with this change in we'll be able to start debugging test
    failures instead of just getting failures at the level of syntax errors.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 961c7163f336c0dd96f7f72122af9155e1a2260a
Author: Richard Crowley <r@rcrowley.org>
Date:   Wed Mar 23 17:45:46 2011 +0000

    Added list action.
    
    The common tasks of checking the --ca-location argument and becoming a CA process if necessary (that is, acting like a master) have been abstracted into the Application where they belong.

commit a7a9e125018c7a3fd0f0afc543f7aeaea1c19525
Author: Richard Crowley <r@rcrowley.org>
Date:   Wed Mar 23 17:44:58 2011 +0000

    Alter generate action to work on CSRs only.

commit a1ce253d5896c6923165b5c00edef87003b16d7b
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Mar 22 19:17:57 2011 -0700

    Adding Certficate#generate
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 562ae5fb9d78b1a6d46e79bb41d8498f29246f41
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Mar 22 19:10:35 2011 -0700

    WIP - all tests fail
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 562bd0f10be966bef725896af9ec3cdc30771ac6
Author: Richard Crowley <r@rcrowley.org>
Date:   Wed Mar 23 00:14:59 2011 +0000

    Use the new name for the terminus.

commit 5d7715b0c56c6f06d916126e8470d7edb66d7687
Author: Richard Crowley <r@rcrowley.org>
Date:   Tue Mar 22 23:46:21 2011 +0000

    Factoring cert status app back into certificate.

commit 6dd629cb79e56d0bbf4670b84a73b0a7e3eef919
Merge: f7db675 af79d3c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 22 18:12:06 2011 -0700

    Merge branch 'maint/master/fix-order-dependent-spec-failures'

commit af79d3c63479a77278e174f370b4b3d156bec1a1
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 22 18:05:51 2011 -0700

    maint: Fix order-dependent spec failures
    
    The specs for InterfaceCollection were clearing the list of interfaces at the
    end of the spec run, which caused later specs to fail because they couldn't
    re-require interfaces they needed. This fixes the InterfaceCollection specs to
    save and restore the interfaces at the end of the file.
    
    Reviewed-By: Matt Robinson

commit f7db67513cace1efaf054406dae040dab2c44efd
Merge: 01ce918 847ac20
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 22 17:19:58 2011 -0700

    Merge branch 'maint/master/always-use-interface-method'

commit 847ac203f9c0b5fce299e87a63b0de5d3ef416f6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 22 16:44:01 2011 -0700

    maint: Implement an InterfaceCollection class to manage interfaces
    
    Having an instance variable on class Interface is insufficient for
    Interface::Indirector. This also changes the semantics of "Interface.interface"
    to handle registration and loading actions, and for "Interface.new" to only
    instantiate an Interface. Thus, consumers of the API should typically use
    "Interface.interface", unless they have reasons to not want an interface
    automatically registered.
    
    Paired-With: Pieter van de Bruggen

commit ad85b67ade99a3ec4ed4a8e578c9d288706b567d
Merge: 8542160 6180397
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 16:42:06 2011 -0700

    Merge branch 'feature/next/6527-pip_package_provider' into next
    
    * feature/next/6527-pip_package_provider:
      (#6527) Fix pip tests

commit 61803976a835a039784cb199fe1e3957fd9cb64a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 16:40:51 2011 -0700

    (#6527) Fix pip tests
    
    The testing of lazypip forgot to stub which, so they worked when pip was
    installed, but didn't work when it wasn't.  Appropriate stubbing has
    been put in place, and stubs changed to expects for some stronger
    assertions about what's happening.
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit 557ed85fd4c03cf3a5c48dce25000db6e71021a9
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Tue Mar 22 22:48:39 2011 +0000

    (#4258) Fix hash duplication affecting canonical provider instance

commit 8542160479538fe6575475c2dccf5d4696fa3e5d
Merge: 6bf5b7f 0170ceb
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 15:46:26 2011 -0700

    Merge branch 'feature/next/6257-pip_package_provider' into next
    
    * feature/next/6257-pip_package_provider:
      (#6527) Fix uninstall problem and refactor
      (#6527) Added pip package provider.

commit 0170cebba039378597fdf9f0086339c2766df408
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 15:28:52 2011 -0700

    (#6527) Fix uninstall problem and refactor
    
    Uninstall wasn't working properly because the instances method relied on
    the pip command having been defined by calling lazy_pip.  This lazy_pip
    pattern is a nice way of getting around Puppet's problem of
    disqualifying providers at the beginning of a run because the command
    doesn't yet exist even though part way through the run the command might
    exist.
    
    Really, we need to fix puppet to lazily evaluate a provider
    command for validity only at the time the provider is needed.
    
    The refactoring also pointed out that query could just reuse the logic
    from instances.
    
    The tests were also refactored to use real resources instead of stubbed
    ones, and they reflect the implementation changes to instances.
    
    Paired-with: Richard Crowley <r@rcrowley.org>

commit af42367dce6ab1ad18a1a8d10e4d54b5accae449
Author: Richard Crowley <r@rcrowley.org>
Date:   Tue Mar 1 20:44:11 2011 +0000

    (#6527) Added pip package provider.
    
    Python's pip package manager is analogous to RubyGems and should be included in Puppet.
    
    Reviewed-by: Matt Robinson <matt@puppetlabs.com>

commit 01ce91816fe061267e9821c07fefb8aa14af4a14
Merge: 379ae07 ee66f36
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 22 14:34:46 2011 -0700

    Merge branch 'ticket/master/6814'

commit ee66f36aa3c730819bd81d8352914628a811e516
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 22 14:33:59 2011 -0700

    (#6814) Add missing require for specs

commit 379ae0733b2850991a2bff2d5b253cab93b52356
Merge: 0af36f4 50ba62d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 22 14:31:15 2011 -0700

    Merge branch 'maint/master/make-catalog-select-args-explicit'

commit 50ba62d68ef3a6a81e00581dd7d74f6387bd73fc
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 22 14:29:52 2011 -0700

    maint: Make args to Catalog.select explicit
    
    No other args are used, so passing *args and shifting is unnecessary.

commit 0af36f44643a59f5137b617afae16019b485ee05
Merge: b639c69 e3d2486
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 22 14:26:11 2011 -0700

    Merge branch 'ticket/master/6814'
    
    Conflicts:
    	lib/puppet/interface/catalog.rb
    	lib/puppet/interface/catalog/select.rb
    	lib/puppet/interface/configurer.rb

commit e3d24865c89bccd0221f3d6d475d350f577ed3fb
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 22 12:54:52 2011 -0700

    (#6814) Create a dedicated Action class
    
    This class will represents an action, and allows us to store metadata for an
    action, and programmatically introspect and invoke them. A helper class
    ActionBuilder represents the DSL for defining an action.
    
    Also defined an "invoke" DSL method to handle the functionality of defining the
    method for an action.
    
    Reviewed-By: Daniel Pittman

commit b639c69c67a15110c65919b1cab281dc30549220
Merge: 45613e0 a58bf95
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue Mar 22 14:08:46 2011 -0700

    Merge branch 'tickets/master/6786'

commit a58bf959ec49c033e0498916a09e77e303c5792e
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Tue Mar 22 13:19:25 2011 -0700

    (#6786) Change interface storage and access.
    
    Ruby's namespace mechanism introduced a number of problems, including
    incorrect name resolution for common and simple cases.  Given that,
    we've refactored back to class-level data structures with accessor
    methods available.
    
    The current method names are unlikely to be the final UI.
    
    Reviewed-By: Daniel Pittman

commit 6bf5b7fea8ef4d04809e78eef84029a0773d4747
Merge: e800634 f6da333
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 11:41:53 2011 -0700

    Merge branch 'ticket/next/maint-fix_require_spec_helper_for_ruby_19' into next
    
    * ticket/next/maint-fix_require_spec_helper_for_ruby_19:
      maint: Change code for finding spec_helper to work with Ruby 1.9
      Fix error "invalid multibyte char (US-ASCII)" under Ruby 1.9

commit f6da3339f59bbd9243a03dc1e417b1fed7955c7e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 11:31:14 2011 -0700

    maint: Change code for finding spec_helper to work with Ruby 1.9
    
    Running the specs under Ruby 1.9 didn't work using the lambda to recurse
    down directories to find the spec_helper.  Standardizing the way to find
    spec_helper like the rest of specs seemed like the way to go.
    
    Here's the command line perl I used to make the change:
    
    perl -p -i -e "s/Dir.chdir.*lambda.*spec_helper.*$/require
    File.expand_path(File.dirname(__FILE__) + '\/..\/..\/spec_helper')/"
    `find spec -name "*_spec.rb"`
    
    Then I fixed the number of dots for files that weren't two levels from
    the spec dir and whose tests failed.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 307df20d7dfd4f5a2a3b67fc2587491560ee951c
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 01:28:45 2011 -0700

    Fix error "invalid multibyte char (US-ASCII)" under Ruby 1.9
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 3875b5ba9014a6ba540e51e0ffb411d58aa521e4
Merge: 696ba50 a29c7fd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Mar 22 19:23:32 2011 +1100

    Merge branch 'tickets/2.6.x/6562' into 2.6.next
    
    * tickets/2.6.x/6562:
      Fixed #6562 - Minor kick documentation fix

commit a29c7fd408b8b1e00410f5bbd82ff5e626381667
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Mar 3 07:03:51 2011 +1100

    Fixed #6562 - Minor kick documentation fix

commit e80063468e404a6827ea6ec458ae34ca84619eed
Merge: dfb2c0f 4156edc
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 00:57:31 2011 -0700

    Merge branch 'ticket/next/6566' into next
    
    * ticket/next/6566:
      (#6566) Replace tabs with spaces
      (#6566) Fix ruby 1.9 incompatible case statement
      Fixed #6566 Replace ftools with filetuils in rake gem task

commit 4156edc25b3ad95df6ed0eaa302ec06db2ba303b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 00:55:31 2011 -0700

    (#6566) Replace tabs with spaces

commit d448763f6e94709b688e12f2a0edc589cf38e6fa
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 00:54:09 2011 -0700

    (#6566) Fix ruby 1.9 incompatible case statement
    
    Once the futils area of the Rakefile was fixed, running `rake spec`
    turned up this problem.

commit 517fd2f3d354fb2c411d872187de12a92c992456
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Mar 3 09:25:01 2011 +1100

    Fixed #6566 Replace ftools with filetuils in rake gem task
    
    ftools is used in the rake gem rasks. It is deprecated in
    Ruby 1.9.x and so we've replaced it with FileUtils.

commit dfb2c0ff8c075f2641134772b693316135252388
Merge: 335ce03 ad8cc54
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 00:42:35 2011 -0700

    Merge branch 'ticket/next/6555' into next
    
    * ticket/next/6555:
      (#6555) Fix another ruby 1.9 incompatible case statement
      Fixed #6555 - Fixed two more when then colon issues
      Fixed #6555 - Ruby 1.9.x returning Invalid next (SyntaxError)
      Fixed #6555 - Ruby 1.9.x warning: class variable access from toplevel

commit ad8cc54d8022de6213a4141d4c8ba9387ce4c62e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 22 00:11:38 2011 -0700

    (#6555) Fix another ruby 1.9 incompatible case statement

commit 0844a17f695b7db098f7a9e59da6f4559dc9131e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Mar 3 10:30:02 2011 +1100

    Fixed #6555 - Fixed two more when then colon issues
    
    Ruby 1.9.x doesn't support when foo:
    
    Replaced in the launchd provider and the Oracle rails ORM

commit 923d613bb5d96b1898a718bc37842531124b9b89
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Mar 3 06:57:17 2011 +1100

    Fixed #6555 - Ruby 1.9.x returning Invalid next (SyntaxError)
    
    The kick application has the option to ping hosts. On 1.9.x this
    code was returning "Invalid next". The next in this code has been
    replaced with an exit. Testing has confirmed this doesn't change the
    behavior of puppet kick.

commit 66a4f361502864e8ea6ca3a11181851b7c313664
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Mar 3 06:54:19 2011 +1100

    Fixed #6555 - Ruby 1.9.x warning: class variable access from toplevel
    
    This came from the use of the @@colormap class variable.
    
    The variables has been changed to a constant.

commit 45613e0f192778cd16f945d5d1eb109e6c8dee2d
Merge: 0f4a430 c2627a3
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Mar 21 16:55:50 2011 -0700

    Merge branch 'tickets/master/maint'

commit c2627a3229577685a5baef1796f7f5b525fed667
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Mar 21 16:53:49 2011 -0700

    (Maint.) Remove Puppet::Interface#unload_interface
    
    Reviewed-By: Nick Lewis

commit 0f4a4300f18da04fc672475645c0d2ba9721d1d5
Merge: 84ba21e 63f33d0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Mar 21 16:15:33 2011 -0700

    Merge branch 'ticket/master/6805'

commit 63f33d078429a9f589474f9c0778b21d82f38682
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Mar 21 14:21:53 2011 -0700

    (#6805) Add a "configurer" application
    
    This application is similar in basic functionality to the "agent" application,
    but implemented in terms of interfaces. It currently will retrieve facts,
    retrieve a catalog, apply the catalog, and submit a report. Options such
    as noop and daemonize are still to come.
    
    Reviewed-By: Pieter van de Bruggen

commit 84ba21e66660a67e20c1194780138317e6a39d49
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Mar 21 15:51:21 2011 -0700

    Fixing a load-order issue in Puppet::Interface
    
    The application classes were having issues loading
    the Interface class in certain circumstances because of
    load order.  This just pushes the loading as late as possible.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 23f4ff338949e085e42d778809a97f39be021da9
Merge: 9f379b6 072becf
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Mar 21 15:44:43 2011 -0700

    Merge branch 'bug/master/6806-improve-error-checking-and-testing-of-interface-naming'

commit 072becf6b51cb359d18b30d7eb01391f641dd840
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Mar 21 14:31:18 2011 -0700

    (#6806) Improve error checking and reporting for interface naming.
    
    We didn't do enough input checking and sanitization, and missed some
    edge-cases for naming interfaces.  This adds testing, and cleans up some edge
    cases to handle things better.
    
    Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>

commit 9f379b641c05d7e25b4ae92ee449ca66512eff90
Merge: 55877dd ba67cc8
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Mar 21 15:06:27 2011 -0700

    Merge branch 'tickets/master/6785'

commit ba67cc8a39012a9c28a509d797f46decfdeb32d5
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Mar 21 15:04:42 2011 -0700

    (#6785) Internal consistency for `--terminus`.
    
    Paired-With: Richard Crowley

commit 29ba159414c5bab3c14c98b9c5f097e8ef68fcee
Merge: 9c85d70 55877dd
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Mar 21 15:03:59 2011 -0700

    Merge branch 'master' into tickets/master/6785

commit 55877dd42da11ffa3cf00fb49db8cfd558ec0641
Merge: 3a22334 a7173dc
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Mar 21 15:02:20 2011 -0700

    Merge branch 'tickets/master/6786'

commit a7173dc2054c4167c71a23fb70e3ca54d07c7447
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Mar 21 15:00:17 2011 -0700

    (#6786) Fixing a number of failing tests.
    
    The initial merge of this branch hadn't actually been run against the full
    suite of specs; a number of specs began failing shortly afterward.
    
    Reviewed-By: Daniel Pittman

commit 3a22334cc0041b39ce4289e957a0d49e53418560
Merge: 3c3c689 9c85d70
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Mar 21 11:49:15 2011 -0700

    Merge branch 'tickets/master/6785'

commit 9c85d70c74d4eab64c5024c3858f30e6fe32dba9
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Mar 21 11:47:51 2011 -0700

    (#6785) Rename the --from option to --terminus.
    
    Paired-With: Richard Crowley

commit 3c3c689fd5749d29b78a88af5855e8f2faf7898a
Merge: f67e7fa b187e07
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Mon Mar 21 11:39:59 2011 -0700

    Merge branch 'tickets/master/6786'

commit b187e071ac1b334878498d52ee6c18f8c0e6a5d9
Author: Pieter van de Bruggen <pieter@puppetlabs.com>
Date:   Fri Mar 18 20:53:00 2011 -0700

    (#6786) Removing the #interface method.
    
    Since constants are already being defined for each
    interface, the #interface method does little but
    provide another way to access the same data.
    
    Reviewed-By: Nick Lewis

commit 7c99dd966845fde026178a50b62c52735b2e5a1b
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Mar 19 00:07:30 2011 +0000

    (#4258) Use pkgutil -a to reliably determine package common names/aliases
    
    Populate instances with both the real package name ("CSWsvn") and the alias
    name ("subversion") from separate "pkgutil -a" call.
    
    Fixed cases where pkgutil noise was parsed as aliased package names and also
    breaking "not in catalog" detection.
    
    Updated pkgutil_spec test to show various edge cases.

commit ab5bc35eac89001f1c8c8358f4489efda8315e9c
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Mar 18 23:18:41 2011 +0000

    (#4258) Update pkgutil spec for recent impl changes
    
    Fix test output of pkgutil for commands using --single
    Fix expected upgrade command to match impl

commit 696ba50accc6a5b99180d5284ea729107daec080
Merge: fa2010b df20513
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Mar 18 16:18:04 2011 -0700

    Merge branch 'ticket/2.6.next/6658' into 2.6.next
    
    * ticket/2.6.next/6658:
      (#6658) Propagate ENC connection errors to the agent

commit df20513122354deccd4ee4477a15cb70c5d605c6
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Mar 18 16:04:42 2011 -0700

    (#6658) Propagate ENC connection errors to the agent
    
    When the master failed to run the External Node Classifier script it
    would log an error on the master, but the agent didn't get back the full
    error or the stack trace for it's logs.  By raising when there's an ENC
    script problem on the master, this causes the error messages to
    propagate to the agent.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>

commit fa2010b13835e6d0a4a624def24dcf1f22f6a411
Merge: 137f1ea fddc165
Author: Max Martin <max@puppetlabs.com>
Date:   Fri Mar 18 15:09:15 2011 -0700

    Merge branch 'ticket/2.6.x/5814' into 2.6.next
    
    * ticket/2.6.x/5814:
      (#5814) Improved cron type specs
      (#5814) cron_spec shouldn't depend on cron provider

commit 335ce03ecc1fb9be2a2c5f59aaa7032a2d492c29
Merge: 7e71840 cf873c6
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Mar 18 14:56:54 2011 -0700

    Merge branch 'ticket/next/maint-silence_false_test_output' into next
    
    * ticket/next/maint-silence_false_test_output:
      maint: Silence test output in the spec run

commit cf873c63f8aad942776d27900dc35470d2508ae8
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Mar 16 20:37:46 2011 -0700

    maint: Silence test output in the spec run
    
    There was a test that output 'false' in the middle of the spec run.
    This fixes that and makes the test a little stronger, because we
    actually assert what puts is writing to standard out.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 7e71840e29cb09c772668a51ada3cab1e319e50f
Merge: ea34876 2ae8806
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Mar 18 14:41:30 2011 -0700

    Merge branch 'next'
    
    * next: (198 commits)
      (#6722) load all functions before testing...
      Updated CHANGELOG for 2.6.7rc1
      (#5073) Download plugins even if you're filtering on tags
      Fix #5610: Prevent unnecessary RAL lookups
      Revert "Merge branch 'ticket/2.6.x/5605' of git://github.com/stschulte/puppet into 2.6.next"
      (#6723) Fix withenv environment restoration bug
      (#6689) Remove extraneous include of Puppet::Util in InventoryActiveRecord
      Remove extra trailing whitespace from lib/puppet/resource.rb
      (#5428) More fully "stub" Puppet::Resource::Reference for use with storedconfigs
      (#6707) Fix typo in rest_authconfig.rb
      (#6689) Make inventory_active_record terminus search quickly
      (#5479) Test that we auto-require the zone dataset.
      (#5479) Autorequire zfs filesystem when zone dataset is configured
      (#5392) Give a better error when realizing a non-existant resource
      (#2645) Adding a less-stubby test to verify the "system" attribute's behavior
      Update CHANGELOG for 2.6.6
      maint: Remove serialization of InventoryFact values
      maint: Rename InventoryHost to InventoryNode
      (#6441) Add mount fixture for AIX's /etc/filesystems
      Fixed #2645 - Added support for creating system users
      ...

commit 2ae88067492f7922a3c4d53b6fa8c849b193f76a
Merge: 4899427 17f673d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Mar 18 14:10:24 2011 -0700

        Merge branch '2.6.x' into next
    
        * 2.6.x: (36 commits)
          Updated CHANGELOG for 2.6.7rc1
          (#5073) Download plugins even if you're filtering on tags
          Fix #5610: Prevent unnecessary RAL lookups
          Revert "Merge branch 'ticket/2.6.x/5605' of git://github.com/stschulte/puppet into 2.6.next"
          (#6723) Fix withenv environment restoration bug
          (#6689) Remove extraneous include of Puppet::Util in InventoryActiveRecord
          Remove extra trailing whitespace from lib/puppet/resource.rb
          (#5428) More fully "stub" Puppet::Resource::Reference for use with storedconfigs
          (#6707) Fix typo in rest_authconfig.rb
          (#6689) Make inventory_active_record terminus search quickly
          (#5392) Give a better error when realizing a non-existant resource
          (#2645) Adding a less-stubby test to verify the "system" attribute's behavior
          Update CHANGELOG for 2.6.6
          maint: Remove serialization of InventoryFact values
          maint: Rename InventoryHost to InventoryNode
          Fixed #2645 - Added support for creating system users
          maint: Remove spec run noise
          maint:Refactor of mount provider integration tests
          (#6338) Support searching on metadata in InventoryActiveRecord terminus
          (#6338) Implement search for InventoryActiveRecord facts terminus
          ...
    
        This merge includes essentially reverting #4904's change to the mount
        type since tests that came in from 2.6.x specified different
        behavior and what's correct is not clear to me.  I've reopened #4904 and
        added it to our backlog, and talked to Nigel about the RFC that's
        currently out on the puppet-users mailing list for a bigger refactor of
        how the mount provider works.
    
        Manually Resolved Conflicts:
            spec/spec_helper.rb
            spec/unit/indirector/queue_spec.rb

commit 137f1eacb2cd65a8833efa03871aa7a7a711f0bb
Merge: a1d32fb 08115c0
Author: Max Martin <max@puppetlabs.com>
Date:   Fri Mar 18 11:14:52 2011 -0700

    Merge branch 'ticket/2.6.next/maint-more-exec-testing' into 2.6.next
    
    * ticket/2.6.next/maint-more-exec-testing:
      (#4884) Remove typo from spec test

commit 08115c0742024426cd7570742868915694eea61a
Author: Max Martin <max@puppetlabs.com>
Date:   Fri Mar 18 11:04:27 2011 -0700

    (#4884) Remove typo from spec test
    
    One of the stubs was accidentally stubbing for /bin/foo instead of
    /bin/true.
    
    Reviewed-by:Nick Lewis

commit a1d32fb0e29d94f29f882fead6ce4de40af862cf
Merge: 462a560 f2c771b
Author: Max Martin <max@puppetlabs.com>
Date:   Fri Mar 18 10:42:05 2011 -0700

    Merge branch 'ticket/2.6.next/maint-fix-exec-tests' into 2.6.next
    
    * ticket/2.6.next/maint-fix-exec-tests:
      (#4884) Modify tests to pass on non-OS X systems

commit f2c771be399713e5288ad58ba7c7ac128f7b4902
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Mar 17 15:04:21 2011 -0700

    (#4884) Modify tests to pass on non-OS X systems
    
    Fixed problems with the spec tests for the new exec type and
    providers that were causing failures on non-OS X systems. This
    involved rearranging some of the tests and their describe blocks,
    which makes the diff look more dramatic than it really is.
    
    Paired-with:Matt Robinson, Jacob Helwig

commit 462a56060f0fffc7b8577f252000195e9384fb7a
Merge: 17f673d ec1aa19
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Mar 17 13:42:46 2011 -0700

    Merge branch 'feature/2.6.next/4884-an-exec-provider-that-executes-unfiltered-bash-code' into 2.6.next
    
    * feature/2.6.next/4884-an-exec-provider-that-executes-unfiltered-bash-code:
      (#4884) Revise new exec tests, add a few more
      (#4884) Add an shell provider for execs
      (#4884) Fix Test::Unit exec tests
      (#4884) Break the exec type out to have a posix provider
      (#4884) Add consistent path validation and behavior
      (#4884) Add expand_path to requiring the spec_helper
      (#4884) Autorequire shared behaviors and method to silence warnings
      (#4884) Fix whitespace
      (#4884) Get rid of open3 require since it wasn't being used

commit ec1aa192825f17afbe4dc12be1e0f2d644d74155
Author: Max Martin <max@puppetlabs.com>
Date:   Thu Mar 17 12:14:49 2011 -0700

    (#4884) Revise new exec tests, add a few more
    
    Revised a few of the new tests for the exec type and provider to
    ensure that they were testing what they meant to, and added in a
    couple of new tests.
    
    Reviewed-by:Daniel Pittman

commit 489942706726629fe0d477ebb2692c2b0b05c43e
Merge: b40021b f4401d3
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Mar 16 17:22:50 2011 -0700

    Merge branch 'feature/next/6722-it-should-be-possible-to-run-parser-function-rspec-tests-individually' into next

commit f4401d34c106654d8af1f774d0b0bba27c5d4445
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Mar 16 14:25:10 2011 -0700

    (#6722) load all functions before testing...
    
    We historically had a state-dependency across tests in the parser function
    support area; the first test caused the function to be loaded, and other tests
    would then fail as a consequence of that.
    
    We now autoload all functions at the top of each test suite, allowing us to
    correctly and sensibly test on them as we should.
    
    This theoretically prevents us from testing the autoloader implicitly in these
    tests, but that should be tested independently.
    
    Paired-With: Nick Lewis <nick@puppetlabs.com>

commit 196294a73e32f5f1cd511a8c23006d23839c7e57
Author: Dan Bode <bodepd@gmail.com>
Date:   Wed Mar 16 15:32:23 2011 -0500

    (4576) - if ENC declares invalid class, it is logged at warning.
    
    used to be at info, so you had to run the master on verbose to
    see it an ENC was trying to declare a class that could not be loaded.

commit 49059568d0e4e00bbc35d6f9b2a6cd23e7d00f46
Author: Dan Bode <bodepd@gmail.com>
Date:   Wed Mar 16 14:26:04 2011 -0500

    (5909) Function to dyncamically generate resources.
    
    This function allows you to dynamically generate resources,
    passing them as a hash to the create_resources function.
    
    This was originally written to be used together with an ENC.
    
    Resources can be programitally generated as yaml and passed to a class.
    
    classes:
      webserver::instances:
        instances:
          instance1:
            foo: bar
          instance2:
            foo: blah
    
    Then puppet code can consume the hash parameters and convert then into resources
    
    class webserver::instances (
      $instances = {}
    ) {
      create_resources('webserver::instance', $instances)
    }
    
    Now I can dynamically determine how webserver instances are deployed to nodes
    by updating the YAML files.

commit 17f673dd6fee08309970f8ff721855cf1644b45f
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Mar 16 11:38:36 2011 -0700

    Updated CHANGELOG for 2.6.7rc1

commit de8fea8ac8b25f45ffb07a2ef63a6da0cbaf0c41
Merge: 86c6035 c60c6ca
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Mar 16 11:19:10 2011 -0700

    Merge branch '2.6.next' into 2.6.x
    
    * 2.6.next: (102 commits)
      (#5073) Download plugins even if you're filtering on tags
      Fix #5610: Prevent unnecessary RAL lookups
      Revert "Merge branch 'ticket/2.6.x/5605' of git://github.com/stschulte/puppet into 2.6.next"
      (#6723) Fix withenv environment restoration bug
      (#6689) Remove extraneous include of Puppet::Util in InventoryActiveRecord
      Remove extra trailing whitespace from lib/puppet/resource.rb
      (#5428) More fully "stub" Puppet::Resource::Reference for use with storedconfigs
      (#6707) Fix typo in rest_authconfig.rb
      (#6689) Make inventory_active_record terminus search quickly
      (#5392) Give a better error when realizing a non-existant resource
      (#2645) Adding a less-stubby test to verify the "system" attribute's behavior
      maint: Remove serialization of InventoryFact values
      maint: Rename InventoryHost to InventoryNode
      Fixed #2645 - Added support for creating system users
      maint: Remove spec run noise
      maint:Refactor of mount provider integration tests
      (#6338) Support searching on metadata in InventoryActiveRecord terminus
      (#6338) Implement search for InventoryActiveRecord facts terminus
      (#6338) Add an InventoryActiveRecord terminus for Facts
      Added integration tests for the mount provider
      ...

commit c60c6cacaca6b8e34c29835f9e5749fc380b8e0b
Merge: 4cb2f01 852fb97
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Mar 16 10:25:02 2011 -0700

    Merge branch 'ticket/2.6.next/5073' into 2.6.next
    
    * ticket/2.6.next/5073:
      (#5073) Download plugins even if you're filtering on tags

commit 852fb9744320c253772c85e52b262b0290fb7dd4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 15 16:13:15 2011 -0700

    (#5073) Download plugins even if you're filtering on tags
    
    When we eval a resource in transaction.rb it was being skipped when
    filtering on tags and downloading the plugins.  There's a lot of
    complicated conditions for whether to skip a resource, but this is a
    condensed version of the path that was causing plugins not to be
    downloaded.
    
      skip?
        missing_tags?
          !ignore_tags?
            !host_config
    
    The Puppet::Configurer::Downloader creates separate catalogs and applies them
    to get custom facts and plugins, so should be setting host_config to false.
    Puppet::Util::Settings also sets host_config to false when you call use on
    settings, while normal catalog application defaults to true.
    
    Thanks to Stefan Schulte <stefan.schulte@taunusstein.net> for suggesting
    the implementation fix.

commit 4cb2f01884e04a8e08fb4eee18232412d4194b6c
Merge: 9781032 4f34dbf
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 15 17:49:31 2011 -0700

    Merge branch 'ticket/2.6.next/5610' into 2.6.next

commit 4f34dbf206e591614c2fc06ce9bed1628ee85715
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 15 15:29:01 2011 -0700

    Fix #5610: Prevent unnecessary RAL lookups
    
    Reviewed-By: Paul Berry <paul@puppetlabs.com>

commit 9781032736a34f577241828bcf812a648b4f42e9
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 15 17:28:52 2011 -0700

    Revert "Merge branch 'ticket/2.6.x/5605' of git://github.com/stschulte/puppet into 2.6.next"
    
    This reverts commit 658bdb72bee3ad664627a71793213e6540afd5cb, reversing
    changes made to 4c9bd43bc2f5fde9d86196e8689dced929d39aad.
    
    See comment at http://projects.puppetlabs.com/issues/5605#note-9

commit 658bdb72bee3ad664627a71793213e6540afd5cb
Merge: 4c9bd43 02b3111
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 15 17:04:49 2011 -0700

    Merge branch 'ticket/2.6.x/5605' of git://github.com/stschulte/puppet into 2.6.next

commit 4c9bd43bc2f5fde9d86196e8689dced929d39aad
Merge: 9016662 25926d1
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Mar 15 16:12:49 2011 -0700

    Merge branch 'ticket/2.6.next/6723-withenv-bug' into 2.6.next
    
    * ticket/2.6.next/6723-withenv-bug:
      (#6723) Fix withenv environment restoration bug

commit 25926d1922a9b75bc87ed7feed30693a69cdea9a
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Mar 15 15:52:37 2011 -0700

    (#6723) Fix withenv environment restoration bug
    
    Ensured that withenv properly restores the environment after it runs a block and added testing for the method.
    
    Reviewed-by: Matt Robinson and Daniel Pittman

commit 9016662cc108dbcced5ad9c9a33f4ecd61cac178
Merge: c0712d3 a6d0e99
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Mar 15 15:57:27 2011 -0700

    Merge branch '2.6.next' of github.com:puppetlabs/puppet into 2.6.next
    
    * '2.6.next' of github.com:puppetlabs/puppet:
      (#6689) Remove extraneous include of Puppet::Util in InventoryActiveRecord
      Remove extra trailing whitespace from lib/puppet/resource.rb
      (#5428) More fully "stub" Puppet::Resource::Reference for use with storedconfigs
      (#6707) Fix typo in rest_authconfig.rb
      (#6689) Make inventory_active_record terminus search quickly
      (#5662) Fixed tests that didnt stub key_attributes
      (#5662) Parsedfile doesnt work with mult keyattr
      (#5661) Creating types dont work with >1 namevar

commit 0d2d6f3f005ee99658ff86b79749f0ba7949beab
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 15 11:52:10 2011 -0700

    (#4884) Add an shell provider for execs
    
    This makes it possible to use shell builtins when the exec is inline
    bash commands.
    
    Paired-with: Max Martin

commit d2e911a1f9dae2cda025bc0f2cbc973cdcff309b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 15 11:39:18 2011 -0700

    (#4884) Fix Test::Unit exec tests
    
    Mostly this is whitespace cleanup, but other than that it's changing a
    couple method names and calling run on the new exec providers instead of
    the types.
    
    We started moving these tests into spec, but they weren't very self
    contained so were hard to map over cleanly.  For now leaving them since
    they serve as a more integration level set of tests.
    
    Paired-with: Max Martin

commit fa0cfc60ccf43fcf9b4339b63b748b5f177c1e75
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Mar 15 11:50:29 2011 -0700

    (#4884) Break the exec type out to have a posix provider
    
    This is in preparation for allowing other new providers to handle exec
    commands differently.
    
    Reviewed-by: Max Martin and Matt Robinson

commit c86a980fe9b2f2e109fe7956a1be2705f3fc2ade
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Mar 15 11:45:02 2011 -0700

    (#4884) Add consistent path validation and behavior
    
    Many path parameters were implementing their own inconsistent validation
    and behavior.  Now those parameters can have a parent class that makes
    things a lot more consistent.
    
    Reviewed-by: Matt Robinson and Max Martin

commit 77fbf7fdd3d17c169057a17e8d5829907975d169
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 15 11:38:07 2011 -0700

    (#4884) Add expand_path to requiring the spec_helper
    
    Paired-with: Max Martin

commit 7ec90576d396392a1005808136842cd8e0bfc961
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Mar 15 11:30:27 2011 -0700

    (#4884) Autorequire shared behaviors and method to silence warnings
    
    with_verbose_disabled allows you to run tests that muck with constans
    without getting spammy warnings.
    
    Reviewed-by: Max Martin and Matt Robinson

commit acc99ba8f87cc3731102f8d3ad33c25e2aa0c65b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 15 11:25:07 2011 -0700

    (#4884) Fix whitespace
    
    Paired-with: Max Martin

commit 6a4d291fa72a3f37f88e3c18c97f919830761863
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 15 11:22:23 2011 -0700

    (#4884) Get rid of open3 require since it wasn't being used
    
    Paired-with: Max Martin

commit a6d0e99e97d18b622793a807e985580cb65a8c7c
Merge: 5d3aa54 4c19299
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Mar 15 11:25:01 2011 -0700

    Merge branch 'ticket/2.6.next/5428-handle-0.25.x-storedconfig-data' into 2.6.next
    
    * ticket/2.6.next/5428-handle-0.25.x-storedconfig-data:
      Remove extra trailing whitespace from lib/puppet/resource.rb
      (#5428) More fully "stub" Puppet::Resource::Reference for use with storedconfigs
    
    Conflicts:
    	lib/puppet/resource.rb

commit 5d3aa54d86a7b9a2c089b2dbff0778d928853666
Merge: 6260687 093f162
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 15 10:30:52 2011 -0700

    Merge branch 'ticket/2.6.next/6689' into 2.6.next

commit 093f1627025a69f1c0a1b570139147e6fc843d2c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Mar 11 16:36:07 2011 -0800

    (#6689) Remove extraneous include of Puppet::Util in InventoryActiveRecord
    
    This was added while developing in order to benchmark, but wasn't removed
    before committing.
    
    Reviewed-By: Jacob Helwig

commit 4c1929952e7239f14aa1ab6a317d445a05d770c3
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Feb 25 18:11:47 2011 -0800

    Remove extra trailing whitespace from lib/puppet/resource.rb
    
    Paired-with: Daniel Pittman <daniel@puppetlabs.com>

commit ff9e2425a58bb2b1ab836e440c3344b4012623c5
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Feb 25 17:03:56 2011 -0800

    (#5428) More fully "stub" Puppet::Resource::Reference for use with storedconfigs
    
    The Puppet::Resource::Reference class wasn't stubbing enough of the 0.25.x
    behavior to satisfy the needs of storedconfigs.  Since P::R::Reference,
    and Puppet::Resource were merged as part of 2.6.x, we can pretend that
    P::Resource is P::R::Reference for the purposes of loading data from
    storedconfigs.  This should still satisfy the over-the-wire serialization
    needs of 0.25.x.
    
    This also changes internal references to @parameters in
    Puppet::Resource(::Reference) to go through a parameters method.  This
    allows us to "initialize" this instance variable lazily, since loading via
    YAML bypasses the normal initialize method.
    
    Paired-with: Daniel Pittman <daniel@puppetlabs.com>
    Reviewed-by: Markus Roberts <markus@puppetlabs.com>

commit 6260687ee00f409c4b718f7e6f244ae844dab7d3
Merge: 626aae7 8b98526
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Mar 14 14:05:13 2011 -0700

    Merge branch 'ticket/2.6.x/5662' of https://github.com/stschulte/puppet into 2.6.next
    
    Manually Resolved Conflicts:
    	spec/unit/provider/mount/parsed_spec.rb

commit 626aae793bae373d277c0ac07b07c3bacf462785
Merge: 25944ed 35dd070
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Mar 14 13:28:59 2011 -0700

    Merge branch 'ticket/2.6.x/5661' of https://github.com/stschulte/puppet into 2.6.next

commit 25944edd1e2dae351a75682fffdd1ae1682e498e
Merge: 37e988d 0262633
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Mar 14 13:20:57 2011 -0700

    Merge branch 'ticket/2.6.next/6707' into 2.6.next

commit 02626335b5e7fdbecf46639e4a4efe8e18ead982
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Mar 14 13:19:17 2011 -0700

    (#6707) Fix typo in rest_authconfig.rb
    
    "Where" -> "were." Capitalize "ACL."

commit 37e988df4870723e66e6961fd17bff19c70e9f30
Merge: 8cfc8f1 8858e40
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Mar 11 16:30:46 2011 -0800

    Merge branch 'ticket/2.6.next/6689' into 2.6.next

commit 8858e40839bd693420ddc791df6b51de79356d2a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Mar 11 15:22:23 2011 -0800

    (#6689) Make inventory_active_record terminus search quickly
    
    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

commit c0712d367583c5a1a6c68cd469a5e42a90685f56
Merge: dfe1743 8cfc8f1
Author: Max Martin <max@puppetlabs.com>
Date:   Fri Mar 11 10:27:52 2011 -0800

    Merge branch '2.6.next' of github.com:puppetlabs/puppet into 2.6.next
    
    * '2.6.next' of github.com:puppetlabs/puppet:
      (#5392) Give a better error when realizing a non-existant resource
      (#2645) Adding a less-stubby test to verify the "system" attribute's behavior
      maint: Remove serialization of InventoryFact values
      maint: Rename InventoryHost to InventoryNode
      Fixed #2645 - Added support for creating system users
      maint: Remove spec run noise
      (#6338) Support searching on metadata in InventoryActiveRecord terminus
      (#6338) Implement search for InventoryActiveRecord facts terminus
      (#6338) Add an InventoryActiveRecord terminus for Facts

commit ccbe9f399a5c9f6b853c6a3bb0b004b2d73ac5af
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Mar 11 21:23:29 2011 +1100

    Fixed #6681 - Remove --force-yes option from aptitude is used

commit b40021ba4bb1bc328abd54eb2eb7cae7ee82f7cf
Merge: 6ff2e5c 1a55c7a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 10 17:05:19 2011 -0800

    Merge branch 'feature/next/5479-add-autorequire-for-solaris-zone-dataset' into next

commit 1a55c7a4c225dc022fa640bf46f7bc940013151d
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 10 16:08:26 2011 -0800

    (#5479) Test that we auto-require the zone dataset.
    
    This adds a test at the catalog level to ensure that we generate the right
    graph relationships; this indirectly tests that the underlying code does the
    right thing, but importantly also makes us fairly immune to low level changes.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit 0a2a58c8650e8956a4ae464d364310ced244303b
Author: Derek Olsen <derek.olsen@e-hps.com>
Date:   Thu Jan 13 14:07:00 2011 -0800

    (#5479) Autorequire zfs filesystem when zone dataset is configured
    
     A zone dataset is just a zfs filesystem in the global zone.
    
    This zfs filesystem needs to exist before it can be given to a zone as a
    dataset.  It seemed to make sense to autorequire the zfs filesystem.  This
    patch just autorequires the zfs filesystem which will be the dataset and let's
    the zfs type manage autorequiring the parent zfs filesystems and zpool.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>
    Reviewed-By: Matt Robinson <matt@puppetlabs.com>

commit e5827098b11fd8f9922a3e9f80c8c573d302a4d4
Author: Juerg Walz <jwalz@pobox.com>
Date:   Thu Mar 10 15:44:28 2011 +0800

    (#4258) pkgutil: bug fix: if shortname is not equal to package name

commit 8cfc8f195481bbca7c38a415ef8ba11bd20503a6
Merge: 05f2cfa 285c4cc
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Mar 9 16:53:37 2011 -0800

    Merge branch 'ticket/2.6.next/5392' into 2.6.next
    
    * ticket/2.6.next/5392:
      (#5392) Give a better error when realizing a non-existant resource

commit 285c4cc4b056b9c4990738c3d479d1a8993cf959
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Mar 9 16:17:17 2011 -0800

    (#5392) Give a better error when realizing a non-existant resource
    
    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>

commit 05f2cfa4c7179183c2e721ec4ebe3854782817c3
Merge: 40e8b48 cd5deda
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Mar 9 16:42:50 2011 -0800

    Merge branch 'tickets/2.6.x/2645' into 2.6.next

commit cd5deda8f9eefbe55c63c97c81293d01ca05c110
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Mar 9 16:00:17 2011 -0800

    (#2645) Adding a less-stubby test to verify the "system" attribute's behavior
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>

commit 86c60354da1d5a2a54baf6dbd92677a12701423d
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Mar 9 14:35:19 2011 -0800

    Update CHANGELOG for 2.6.6

commit 40e8b48eb19973ec413518be656249e134344ee0
Merge: eae17c3 531e258
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Mar 9 13:43:57 2011 -0800

    Merge branch 'maint/2.6.next/6338' into 2.6.next

commit 531e25836e1313cd508ab8394e16cf438a62ac7b
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Mar 9 12:55:52 2011 -0800

    maint: Remove serialization of InventoryFact values
    
    This is not necessary because fact values are always strings, and it wasn't
    doing the unnecessary job it was expected to do anyway.

commit 3489412a03fec009bc42222f449077e6f14998a4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Mar 9 12:55:03 2011 -0800

    maint: Rename InventoryHost to InventoryNode
    
    This had been conflating hosts and nodes, when nodes is the most accurate.

commit 6ff2e5cd775c5802113d27f85ed518e25365d563
Merge: 9bc8743 682686f
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Mar 9 10:58:44 2011 -0800

    Merge branch 'ticket/next/6441-add-mount-fixture-for-AIX' into next
    
    * ticket/next/6441-add-mount-fixture-for-AIX:
      (#6441) Add mount fixture for AIX's /etc/filesystems

commit 682686f7cb6c1b400f04297ebf606d3b555858ce
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Mar 9 10:51:01 2011 -0800

    (#6441) Add mount fixture for AIX's /etc/filesystems
    
    This fixture is currently unused, largely due to the mount type being
    based on parsedfile, which is incapable of parsing /etc/filesystems.
    
    Paired-with: Daniel Pittman <daniel@puppetlabs.com>

commit 4bd54939ceb4c588b1633117d88472fe48e9dfdf
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 9 17:56:37 2011 +1100

    Fixed #2645 - Added support for creating system users
    
    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.

commit eae17c3cba159d895e5ec2e87e4abe8c125a9562
Merge: e876341 a3f2357
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 8 17:22:06 2011 -0800

    Merge branch 'ticket/2.6.next/maint-cleanup_spec_output' into 2.6.next
    
    * ticket/2.6.next/maint-cleanup_spec_output:
      maint: Remove spec run noise

commit a3f2357215b15f318500d6637f393dad0d4a4181
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 8 16:59:12 2011 -0800

    maint: Remove spec run noise
    
    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>

commit 9bc87438f61158acd33161690e159c7d264d3f80
Merge: ed16ffb 349f6f2
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Mar 8 17:19:28 2011 -0800

    Merge branch 'bug/next/6641-fix-mount-tests' into next

commit 349f6f2f25f4e13c2bf7c16a54f2d1c3ae85ac5f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Mar 8 17:05:01 2011 -0800

    (#6641) Make it easier to add future platforms to the suite.
    
    When a new fstab fixture is added, we also want to try to test mount output.
    If that fixture is missing, we would have failed a test, but now mark it
    pending.
    
    This is more correct when, for example, we don't yet have that fixture: it
    isn't technically a failure, just an incomplete set of test data.

commit 6a96584ea92afc83383dad85d1a2db956a58c323
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Mar 8 16:38:02 2011 -0800

    (#6441) Mark solaris tests pending, because we can't stub it.
    
    In the final combination test we need to mark Solaris pending, because we
    genuinely have a bug where we can't test due to stubbing order.

commit b4f1b9891fead7c79f13e639df433e65340c950b
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Mar 8 15:43:56 2011 -0800

    (#6641) fix mount provider tests broken in the 2.6 merge.
    
    A number of fixture-related changes were made in next, but not 2.6, which
    resulted in extra tests added during 2.6 being broken.  The main thrust of
    this change is to fix those tests by porting the fixture support code to the
    newer helpers.
    
    This also highlighted some shortfalls in our platform fixtures, which we
    extend to add a bunch of additional fixtures, and to uniformly walk those to
    perform fstab vs mount testing.

commit dfe1743ebfd0f63896337864221d8a18421f65a5
Merge: 7c768c4 7764412
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Mar 8 16:27:01 2011 -0800

    Merge branch 'ticket/2.6.next/6309-mount-proper-device' into 2.6.next
    
    * ticket/2.6.next/6309-mount-proper-device:
      maint:Refactor of mount provider integration tests

commit 7764412aacb4132d40561e2ba47d52f5e333c16e
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Mar 8 16:20:53 2011 -0800

    maint:Refactor of mount provider integration tests
    
    When adding a test for #6309, decided to refactor mount provider
    integration tests by adding return value to check_fstab method.
    
    Paired-with:Paul Berry <paul@puppetlabs.com>

commit e8763415627cf41cefece00bf4dbc48e9be81d1d
Merge: 7c768c4 880d0c6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 8 16:06:03 2011 -0800

    Merge branch 'ticket/2.6.next/6338' into 2.6.next

commit 880d0c6cbd20758e02848d1fa61966402dc44dc0
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Mar 7 17:28:43 2011 -0800

    (#6338) Support searching on metadata in InventoryActiveRecord terminus
    
    Timestamps are currently the only supported metadata for searching.
    
    Paired-With: Max Martin
    Reviewed-By: Jacob Helwig

commit f83636698229241b2ab35849437f3e515f6ac5c1
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Mar 7 16:42:53 2011 -0800

    (#6338) Implement search for InventoryActiveRecord facts terminus
    
    Paired-With: Max Martin
    Reviewed-By: Jacob Helwig

commit 8ce30c83ddba87ba7e2622a46f27143159132789
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Mar 7 15:19:20 2011 -0800

    (#6338) Add an InventoryActiveRecord terminus for Facts
    
    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

commit 7c768c4a6b85788aabc431e01febee00d4c3d3e5
Merge: 4bd45db 1ef83cb
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Mar 8 15:14:38 2011 -0800

    Merge branch 'maint/2.6.next/test_mount' into 2.6.next
    
    * maint/2.6.next/test_mount:
      Added integration tests for the mount provider

commit 1ef83cb750896f997a347a144e20aa6c96daf171
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Mar 8 13:26:43 2011 -0800

    Added integration tests for the mount provider
    
    Paired-with: Max Martin <max@puppetlabs.com>

commit ed16ffb974bad9e6911727e1154215988b4e4699
Merge: 9d551be 3b89f32
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Mar 8 15:04:22 2011 -0800

    Merge branch 'maint/refs/heads/next/MAINT-win32-unit-test-support' into next

commit 3b89f32693d3d58d27eeebb33ba8a39f87ab4135
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Mar 8 15:03:57 2011 -0800

    maint: use chdir rather than depend on bash for win32
    
    We used to depend on a Unix shell, but with Win32 support this doesn't work so
    well.  Thankfully, all we really wanted to do was change directory down into
    'test', which Ruby can do natively, saving us the platform headache.

commit 4bd45db0215e70129bf5b2a8ee4424e4e8699549
Merge: 2092e61 455a891
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Mar 8 13:44:33 2011 -0800

    Merge branch 'tickets/2.6.next/5794-create-report-parentdir' of 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

commit 2092e61264899c742924a30148ebe1e079b60d38
Merge: 4a8c631 64440e5
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Mar 8 13:41:48 2011 -0800

    Merge branch 'ticket/2.6.x/6513-propigate-environment-in-settings-values' into 2.6.next
    
    * ticket/2.6.x/6513-propigate-environment-in-settings-values:
      (#6513) Propagate the environment when doing variable lookup in settings
      (#6513) Adjust P::U::Settings test name to reflect what it tests

commit 64440e58967667426e7294ed38ad16e19812d8c4
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Sat Mar 5 12:39:14 2011 -0600

    (#6513) Propagate the environment when doing variable lookup in settings
    
    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>

commit 92dffb29b50160e429b93f941054e5b74df8c598
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Sat Mar 5 12:35:25 2011 -0600

    (#6513) Adjust P::U::Settings test name to reflect what it tests
    
    The 'should interpolate found values using the current environment' wasn't
    actually testing what it was describing, since the environment variable is
    special cased.
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit 4a8c631a5f909c3e482e087f88cf618e1b44ee4e
Merge: a1fbe9f 1b1e803
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Mar 8 13:34:00 2011 -0800

    Merge branch 'ticket/2.6.next/5724-deprecate_DESTDIR_for_install.rb' of git://github.com/elutfall/puppet into 2.6.next
    
    * 'ticket/2.6.next/5724-deprecate_DESTDIR_for_install.rb' of git://github.com/elutfall/puppet:
      (5724) Prep for deprecation of DESTDIR
      Refactoring duplicate code and logic in prep for DESTDIR deprecation.

commit 9d551be70ab2a5d64a75a5c497534b0413cd3d81
Merge: c3ec3d1 2a91572
Author: Max Martin <max@puppetlabs.com>
Date:   Tue Mar 8 13:32:25 2011 -0800

    Merge branch 'ticket/next/4798-rdoc-fixes' into next
    
    * ticket/next/4798-rdoc-fixes:
      (#4798) Make rdoc work if moduledir & manifestdir overlap
      maint: Fix rdoc when documenting manifest files
      maint: Move puppetdoc settings to defaults so we can use them in tests

commit 2a915725adf0ccefcc28653cbba2219925194594
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Mar 7 17:51:09 2011 -0800

    (#4798) Make rdoc work if moduledir & manifestdir overlap
    
    Merging 2.6.next into next caused a regression; this commit fixes that
    regression.
    
    Paired-with:Max Martin <max@puppetlabs.com>

commit 28ce355be0a16caa8e1cc0b6f531d2be070ca6f2
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Mar 7 16:48:09 2011 -0800

    maint: Fix rdoc when documenting manifest files
    
    The structure of the AST has changed from 2.6.x to master, so the code
    to generate documentation from the AST had to change.
    
    Generating documentation for resources other than classes, nodes and
    defines is still broken, see ticket #6634
    
    Paired-with: Daniel Pittman <daniel@puppetlabs.com>

commit a1fbe9f007b5f099d6303ed496c83290938a77c8
Merge: bd5517d 5ef1031
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Mar 8 13:07:01 2011 -0800

    Merge branch 'ticket/2.6.next/6632' into 2.6.next
    
    * ticket/2.6.next/6632:
      (#6632) Adding a new mount no longer causes error with umount

commit 5ef10315705b8e4d69d13b8df86b9585f2bcc29a
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Mar 8 11:35:58 2011 -0800

    (#6632) Adding a new mount no longer causes error with umount
    
    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>

commit 58ac7d385ebaa8755fe44df5a3d2db98b4bf4693
Author: Juerg Walz <jwalz@pobox.com>
Date:   Tue Mar 8 12:39:25 2011 +0800

    (#4258) pkgutil provider: better handling of short package names

commit c3ec3d100fb27211bf86c12bdc759d1fa1afce25
Merge: 28095d7 9a1c3b5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Mar 7 18:44:59 2011 -0800

    Merge branch 'maint/refs/heads/next/MAINT-spec-integration-configurer-has-races-in-time-checking' into next

commit 9a1c3b5ad48a254ff2a6becc72f54feb37bb3de1
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Mar 7 18:44:28 2011 -0800

    maint: spec/integration/configurer has races in time checking.
    
    This code depended on the time written by the configurer, and Time.now about
    half a dozen lines later, being the same integer value.  This would work
    almost all the time, because our code is pretty fast, but can race.
    
    We now capture the time on both sides of the call, and verify that the emitted
    time was in that range; this actually tests the whole purpose much better, and
    more thoroughly.
    
    Reviewed-by: Paul Berry <paul@puppetlabs.com>

commit bd5517dd9cd8e10f488713d9654957746e687378
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Mar 7 17:56:41 2011 -0800

    Adjust Darwin mount provider tests to pass on Linux
    
    mount, and umount are located under /bin, instead of /sbin on Linux, so we
    adjust the ExecutionStub to accept either location.
    
    Paired-with: Jacob Helwig <jacob@puppetlabs.com>

commit 79dd501c6a71e61ce936acced30349db50ade70c
Merge: 8dbdcb0 9d2fceb
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Mar 7 17:01:24 2011 -0800

    Merge branch 'maint/2.6.next/test_mount' into 2.6.next
    
    * maint/2.6.next/test_mount:
      Maint: Begin adding integration tests for the mount provider

commit 9d2fceb7141e4cc7a6215aa2529239eb2eb6c8fd
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Mar 1 14:06:42 2011 -0800

    Maint: Begin adding integration tests for the mount provider
    
    These tests form a starting point for integration testing the mount
    provider, using the new Puppet::Util::ExecutionStub mechanism to
    simulate the state of the machine in response to the execution of
    "mount" and "umount" commands.  The tests currently work around some
    known bugs (6628, 6632, and 6633).
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 8dbdcb057115bb2abdca22230d819303ff18ed6d
Merge: 609ddcf 23d1c03
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Mar 7 16:52:19 2011 -0800

    Merge branch 'maint/2.6.next/make_execute_stubbable' into 2.6.next
    
    * maint/2.6.next/make_execute_stubbable:
      Maint: Added the ability to replace the behavior of Puppet::Util.execute with an arbitrary code block for ease in spec testing.

commit 23d1c0346a609369b457da876714c6671fcf3d44
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Feb 24 12:43:45 2011 -0800

    Maint: Added the ability to replace the behavior of
    Puppet::Util.execute with an arbitrary code block for ease in spec
    testing.
    
    Reviewed-by: Max Martin <max@puppetlabs.com>

commit 75af5827b68774d0300499fab969239bb8ae6d30
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Mar 7 16:46:24 2011 -0800

    maint: Move puppetdoc settings to defaults so we can use them in tests
    
    Paired-with: Daniel Pittman <daniel@puppetlabs.com>

commit 28095d7435bcab15b76ddfa4435d61653f2f890d
Merge: 6869385 e8145f9
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Sun Mar 6 20:42:39 2011 -0800

    Merge branch '2.6.next' into next
    
    This was a particularly nasty merge, so rather than hold up merges into
    next any longer, I'm going to push this merge with a few outstanding
    problems.  The tests that were failing in the following areas have been
    marked pending, and will be addressed separately, immediately following
    this push.
    
    TODO:
    Verify that brice's rdoc change is still valid: tests to show that line
      numbers from class, define and node get into the ast
    Fix mount parsed_spec spec/unit/provider/mount/parsed_spec.rb
    
    * 2.6.next: (85 commits)
      (#5148) Fix failing spec due to timezone
      (#5148) Add support for PSON to facts
      (#6338) Remove inventory indirection, and move to facts indirection
      (#6445) Fix inline docs: puppet agent does not accept --mkusers
      Update CHANGELOG and version for 2.6.6rc1
      (#6541) Fix content with checksum truncation bug
      (#6418) Recursive files shouldn't be audited
      (#6541) maint: whitespace cleanup on the file integration spec
      (#6541) Fix content with checksum truncation bug
      (#5466) Write specs for output of puppet resource
      (#5466) Monkey patch Symbol so that you can sort them
      (#5466) Fixed puppet resource bug with trailing ,
      Update CHANGELOG for 2.6.5
      (#4922) Don't truncate remotely-sourced files on 404
      (#6338) Remove unused version control tags
      Maint: Align tabs in a code block in the Augeas type.
      (#6509) Inline docs: Fix erroneous code block in directoryservice provider for computer type
      Maint: Rewrite comments about symlinks to reflect best practice.
      (#6509) Inline docs: Fix broken lists in Launchd provider.
      (#6509) Inline docs: Fix broken code blocks in zpool type
      ...
    
    Manually Resolved Conflicts:
      lib/puppet/application/inspect.rb
      lib/puppet/defaults.rb
      lib/puppet/file_bucket/dipper.rb
      lib/puppet/network/http/handler.rb
      lib/puppet/node/facts.rb
      lib/puppet/parser/parser.rb
      lib/puppet/parser/parser_support.rb
      lib/puppet/util/command_line/puppet
      lib/puppet/util/command_line/puppetd
      lib/puppet/util/command_line/puppetmasterd
      lib/puppet/util/monkey_patches.rb
      lib/puppet/util/rdoc/parser.rb
      spec/unit/application/agent_spec.rb
      spec/unit/file_bucket/file_spec.rb
      spec/unit/indirector/file_bucket_file/file_spec.rb
      spec/unit/network/http/handler_spec.rb
      spec/unit/parser/parser_spec.rb
      spec/unit/provider/mount/parsed_spec.rb

commit 455a89129a6860215d8e79972f720eaa7564e625
Author: Valdis Victor Vitayaudom <valdis.vitayaudom@gmail.com>
Date:   Sat Mar 5 13:36:02 2011 -0800

    (#5794) create reports directory when creating host specific directory

commit 1b1e803b4d2bf1e87b8796556439e3c0bada57ea
Author: Elias Lutfallah <elias.lutfallah@orbitz.com>
Date:   Sat Mar 5 15:23:06 2011 -0600

    (5724) Prep for deprecation of DESTDIR
    
    In preparation of deprecating the DESTDIR env variable, I've added a
    warning when the DESTDIR variable is being used.

commit f4a0af16eaa30571662017cab7e106a96b99988d
Author: Elias Lutfallah <elias.lutfallah@orbitz.com>
Date:   Sat Mar 5 15:07:39 2011 -0600

    Refactoring duplicate code and logic in prep for DESTDIR deprecation.
    
    DESTDIR is slated to be deprecated. The block of code that checks for
    DESTDIR contained duplicate code as the block that checks for --destdir.
    
    The dupe code has been moved out of the destdir checks.
    
    I have also flipped the order of checking. Previously, if the DESTDIR env was set
    it would be used regardless of whether or not the --destdir flag was set.
    
    No env, no flag:
    ./install.rb
    destdir = nil
    
    Env only:
    DESTDIR="foo" ./install.rb
    destdir = foo
    
    Flag only:
    ./install.rb --destdir="bar"
    destdir = bar
    
    Both (uses flag):
    DESTDIR="foo" ./install.rb --destdir="bar"
    destdir = bar

commit 609ddcf2b1ae0c835973a584ac20796d962334f6
Merge: e8145f9 7a00d6b
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Mar 4 18:03:30 2011 -0800

    Merge branch 'ticket/2.6.next/6606' into 2.6.next

commit 7a00d6b4b7428145ab774f76c7433bda07c81f99
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Mar 4 17:46:25 2011 -0800

    (#6606) Inline docs: Document all autorequire relationships
    
    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.

commit e8145f91debc863b341a270e1d8cff6c43d93ef5
Merge: a75d4fa e3aec14
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Mar 4 14:25:07 2011 -0800

    Merge branch 'ticket/2.6.next/6602' into 2.6.next

commit e3aec14c2ede8ea9b6b1c1684755c715b9923295
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Oct 28 14:30:02 2010 -0700

    (#5148) Fix failing spec due to timezone
    
    Time.parse(...) will yield a string in the local timezone. So when
    this spec was run in a non -0700 timezone, it was failing, because
    it was comparing a string in local time to a string in -0700. This
    fixes it to compare to the local string representation of the time.

commit a75d4fab5260b7cbef78a5b352d10e29bbfe7796
Merge: c65ef89 8bd80a9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Mar 4 13:52:43 2011 -0800

    Merge branch 'ticket/2.6.next/6602' into 2.6.next

commit 8bd80a99a259e6409a9ac0a8a60325f94b5c5e9d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Oct 28 12:49:19 2010 -0700

    (#5148) Add support for PSON to facts
    
    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.

commit 6869385300dc694c4f087e134949dff9e1e43df9
Merge: 919dd9b 124ff3c
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Mar 3 18:39:44 2011 -0800

    Merge branch 'ticket/next/maint-fix_test_randomization_problem' into next
    
    * ticket/next/maint-fix_test_randomization_problem:
      maint: Fix a randomization test failure

commit 124ff3c17c6c6b1ac1b1b6af21e269d5b4f9f222
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Mar 3 18:28:35 2011 -0800

    maint: Fix a randomization test failure
    
    The commit for #2597 included a test that asserted the text resulting
    from detecting a cycle.  However, the cycle detection could start
    randomly from any node, resulting in different text in the error.  I'm
    not sure what the randomization key would be based on since the test
    failed consistently over dozens of runs for me, and didn't for Daniel.
    
    Paired-with: Daniel Pittman <daniel@puppetlabs.com>

commit 919dd9bde52c2d1d302a0924fb6822b5c0db1656
Merge: 0cc5c7b 455d197
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 3 18:12:13 2011 -0800

    Merge branch 'refactor/next/6582-stop-using-'test-lib-'-for-'spec-'-tests' into next

commit 455d1978c31c56ad95dd8289552c99891d09bdee
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 3 18:11:22 2011 -0800

    (#6582) Don't demand the checkout be named 'puppet'.
    
    As part of implementing the fixture support I hard-coded the assumption that
    the git checkout was a directory named 'puppet'; this broke on our CI server,
    and would break for anyone else who didn't follow that default.
    
    This commit eliminates that assumption and depends only on the appropriate
    part of the input filename.
    
    Reviewed-By: Paul Berry <paul@puppetlabs.com>

commit c65ef89e533e73d0f9ec34244be630bae00b53d5
Merge: f519899 c3baa28
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Mar 3 16:58:07 2011 -0800

    Merge branch 'ticket/2.6.next/6581' into 2.6.next

commit c3baa2899d88fadd4bbe94e008015e33f98132c7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Mar 3 14:12:44 2011 -0800

    (#6338) Remove inventory indirection, and move to facts indirection
    
    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

commit 0cc5c7b763ee9b4a35a8c44611b895a52999f120
Merge: af2c85b 85a743b
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Mar 3 16:43:43 2011 -0800

    Merge branch 'refactor/next/6582-stop-using-'test-lib-'-for-'spec-'-tests' into next

commit 85a743b7e87649c149c9914b6e0909472d059517
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 3 11:09:25 2011 -0800

    (#6582) stub puts to prevent screen output when testing help.
    
    We only really want to verify that the code exits, but the current
    implementation emits text directly; this results in messing up the tests,
    which we can avoid with this tiny shim.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit ec23d96ebb165c05ffb7c4f68f08da47d530ee92
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 3 11:04:44 2011 -0800

    (#6582) eliminate a backtrace from mismatched block arguments.
    
    This was tightly coupled to the code implementation; it mostly still is, but
    now allows argument extension without needing to adjust the test   which is
    only focused on the first argument anyhow.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 93082e4a683d417603aeb3bffb73b45d007315a7
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 3 10:56:00 2011 -0800

    (#6582) unstub Puppet settings to improve indirector queue tests.
    
    This code was stubbing Puppet settings, which is no longer required now we
    reset them between tests.  Using the real thing reduces points that the rest
    of the code can break, too.
    
    As a side effect this caused Puppet[:trace] to be "true", which meant that we
    emitted a huge, nasty backtrace during the testing of a specific internal
    failure handling case.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 92499c86bc7fcc4c7b7d5de838973868a5e0aba2
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 3 00:41:04 2011 -0800

    (#6582) Eliminate the last vestige of the unit tests from the specs.
    
    This eliminates a stub module in spec_helper, which was used for compatibility
    with code that didn't bother to require the right files out of the unit tests.
    
    It also removes test/lib from LOAD_PATH when running specs, since we don't run
    with that code, and now we detect that as a larger scale test failure.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 3954576bca044e4fa9c3d74047fdd0833be0c5b6
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 3 00:40:50 2011 -0800

    (#6582) eliminate fakeresource use in ssh_authorized_key spec.
    
    We replace it with an instance of the actual resource we are testing, which
    reduces the number of ways this code is tied to the specific implementation.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 53b6df3781fe67a3e7fd686cb93cad50c40c6ce3
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 3 00:05:38 2011 -0800

    (#6582) eliminate fakeparsefile helper method.
    
    This was a helper that implemented rspec style "shared behaviour" for
    Test::Unit; now that we have moved on we can use the upstream implementation
    instead.  This eliminates a whole bit of code we have to maintain.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 0f6faf5e138e6d11e79b2430b4e6fa6139442509
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Mar 2 19:06:57 2011 -0800

    (#6582) Eliminate the old fakedata helper method.
    
    This is replaced with the new my_fixture{,s} methods; old fixture data is
    ported into the spec tests at the same time, but left where it was against
    unit tests that require it.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit f490526726a5f35437cda11652ae9977d89279e5
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Mar 3 10:35:27 2011 -0800

    (#6582) move more helper code into methods, out of RSpec#configure
    
    We move the tempfile cleanup support off into the module that uses it, which
    removes some of the dependency on magic globals from configure.  It still
    exists, but is hidden in the same module that uses it, which helps.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 6b8f1b724d08e62af6fcf6a2ea55d72b74876de3
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Mar 2 21:54:40 2011 -0800

    (#6582) add fixture helper methods to replace unit test code.
    
    We validate that fixtures exist, when requested, or that they match something
    when they use a glob.  This catches internal errors where we don't match any
    fixtures with a glob; this can reveal problems that would otherwise avoid all
    assertions and result in internal failures.
    
    The code is hidden out in a module, included in the main RSpec namespace.
    This doesn't clean up the API any, but it isolates the code more effectively
    and keeps the configuration file cleaner.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit 7c9f1b803d86ead714ff90770e0ccc87ab29efbc
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Mar 2 19:08:24 2011 -0800

    (#6582) order RSpec global :before and :after hooks naturally.
    
    Specifically, reverse the order of the two in spec_helper so that they make
    more sense; the inverted order was confusing.  There are no functional
    changes, only code movement, in this patchset.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit f519899dacab51c23db3ecf043feb481d1aa4bc1
Merge: 63d8a1f 6c53eb3
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Mar 3 16:27:14 2011 -0800

    Merge branch 'ticket/2.6.next/6445' into 2.6.next

commit 6c53eb3967a1d0c3a31f65356515f07f90524f98
Author: Ben Hughes <ben@puppetlabs.com>
Date:   Thu Mar 3 16:23:08 2011 -0800

    (#6445) Fix inline docs: puppet agent does not accept --mkusers
    
    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.

commit b311651526c7c9448bdd9a77a111302fd0c0efa4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Feb 22 14:18:57 2011 -0800

    (#6407) Fix spec test hang with Mocha >= 0.9.11 in zlib testing
    
    We had a combination of bad logic, and bad testing, and a nasty behaviour of
    Mocha <= 0.9.10 that would result in a false pass for one of our tests.
    
    This not only falsely passed, but hid an infinite loop retrying decompression
    on an invalid data stream; it could be triggered by anything that sent an HTTP
    request with an invalid compressed body, resulting in a livelock.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit af2c85b5a98ba062a9a58c6c92279f3371d59bb4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Mar 1 20:33:56 2011 -0800

    (#6551) remove deprecated 'env' parameter to the 'exec' type
    
    We deprecated this back in 0.24, so we can eliminate it in the next release.
    We ran through our deprecation period full of constant complaints to the
    users.  Now we just fail.

commit f67e7fa39479751a7c5268bd32e503e35602ce4f
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Mar 2 18:16:41 2011 -0800

    Modifying Facts.upload a bit
    
    The functionality is basically the same, but we're
    no longer using caching, and we log that
    it happened.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit ece0c8e8defeec7af5aa28bb583bbb69aaba79a9
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Mar 2 17:32:07 2011 -0800

    Fixing #16 - nodes default to yaml
    
    We don't have json support for node output yet.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 63263a41ab361985845ef514a3d1247a41f46475
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Mar 2 17:19:36 2011 -0800

    Fixing #13 - showconfig moved to indirector
    
    I renamed it to 'info', too.
    
    It only showed indirector-related info, so this
    makes sense.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 23064bb601622f8a0efaf47c66a9fefec6e62f95
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Mar 2 17:13:44 2011 -0800

    Adding a test for fix to #14
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 63d8a1f83f4ad109817990354f05879f44419137
Merge: 9571c99 d24e32a
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Mar 2 16:10:40 2011 -0800

    Merge branch '2.6.x' into 2.6.next
    
    * 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

commit d24e32a19648d7a97c329fc3a5c4277f05cc5b04
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Mar 2 16:09:42 2011 -0800

    Update CHANGELOG and version for 2.6.6rc1

commit 7c2a980212055dc41f0ab163857b8a91316d8185
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 1 16:04:36 2011 -0800

    (#6541) Fix content with checksum truncation bug
    
    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>

commit 63e911f90c0ab9e796b11cd42cc8d339e6c312b3
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Feb 22 16:51:39 2011 -0800

    (#6418) Recursive files shouldn't be audited
    
    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>

commit 9571c99b6c8a1244e0cdda416a2e9ca0c52b25cb
Merge: e5cfac3 4e29f43
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Mar 2 10:45:53 2011 -0800

    Merge branch 'ticket/2.6.next/6541-md5_in_content_truncates' into 2.6.next
    
    * ticket/2.6.next/6541-md5_in_content_truncates:
      (#6541) maint: whitespace cleanup on the file integration spec
      (#6541) Fix content with checksum truncation bug

commit 4e29f439189e0a40364724f50971c83652463085
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 1 21:45:07 2011 -0800

    (#6541) maint: whitespace cleanup on the file integration spec

commit b907ba3156cdc273e220a1fc00deb500843d19e5
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Mar 1 16:04:36 2011 -0800

    (#6541) Fix content with checksum truncation bug
    
    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>

commit 3e7ebbbb08120243f7e982f34b8256ec58af67b0
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 2 16:49:13 2011 +1100

    Fixed #6554 - Missing $haveftool if/else conditional in install.rb breaking Ruby 1.9

commit 353b9145e465a002f1b66f2a616cce3a8647d370
Author: Dan Bode <bodepd@gmail.com>
Date:   Tue Mar 1 19:09:20 2011 -0600

    (14) updated interface_base to support multiple command line arguments

commit c1d7881c9255d6470fda7c27e800b4caa061b7c0
Merge: 026eba3 9c0e55b
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Mar 1 12:32:31 2011 -0800

    Merge branch 'ticket/next/5496' into next

commit 9c0e55b43f6db69f060d54c894f2303ecbbe04e3
Author: Devon Peters <devon.peters@e-hps.com>
Date:   Wed Feb 2 09:29:53 2011 -0800

    (#5496) Added tests for the new zpool output format
    
    Reviewed-By: Nick Lewis

commit b1d97284d0fea1cbcc52bc55117a4b1ad3cf385b
Author: Devon Peters <devon.peters@e-hps.com>
Date:   Tue Dec 14 14:05:55 2010 -0800

    (#5496) zpool provider supports new 'zpool status' format
    
    The "Solaris 10 9/10 release (Update 9)" update changed the output from
    the "zpool status" command, which breaks the zpool provider.  The format
    basically changed from "vdev" to "vdev-n" (ex: "mirror" to "mirror-0"),
    which the current provider doesn't recognize.
    
    This fix changes the way vdev's are checked by the zpool provider, to
    support either format.
    
    Reviewed-By: Nick Lewis

commit 026eba3a7b568e6ef7c8ea8032ea49c65dfd8295
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 1 11:38:02 2011 -0800

    Revert #5691 "Merge remote branch 'brice/feature/process-instrumentation' into next"
    
    This reverts commit 448a439f5abc3d51accececb678e9c5f547f7615, reversing
    changes made to 06939c51a3f675137b53fac8a521132a4c9cfcbe.
    As per discussion in http://projects.puppetlabs.com/issues/5691#note-5

commit e5cfac3cb90cbea688afdef4943d4f9dd49d8058
Merge: 395831e 0eeeb51
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Mon Feb 28 17:39:54 2011 -0800

    Merge branch '2.6.x' into 2.6.next

commit 395831ef58f1ea323919a0a87093919e3526da6c
Merge: 43c79b7 422399b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Feb 28 17:11:14 2011 -0800

    Merge branch 'ticket/2.6.next/5466' into 2.6.next
    
    * ticket/2.6.next/5466:
      (#5466) Write specs for output of puppet resource
      (#5466) Monkey patch Symbol so that you can sort them
      (#5466) Fixed puppet resource bug with trailing ,

commit 422399b47764e29055974ff5bad5dfcb982a8b74
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Feb 28 16:55:18 2011 -0800

    (#5466) Write specs for output of puppet resource
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>

commit 8cc390caa18e3b536869f0591d529d8ade76fc49
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Feb 28 16:37:22 2011 -0800

    (#5466) Monkey patch Symbol so that you can sort them
    
    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>

commit 24eacb7fe6696a8c049b08ec382c5d1ab114ce67
Author: Nan Liu <nan@puppetlabs.com>
Date:   Tue Feb 1 18:34:23 2011 -0800

    (#5466) Fixed puppet resource bug with trailing ,

commit 0eeeb5159f8c5130ce5090203283cb8ef5d68b94
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Mon Feb 28 15:56:19 2011 -0800

    Update CHANGELOG for 2.6.5

commit 43c79b744d0af0c5a1221addc74cc36eb68071a6
Merge: 7cf2919 2ecf913
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Feb 28 14:16:50 2011 -0800

    Merge branch 'maint/2.6.next/revert-5935' into 2.6.next

commit 7cf291944ad28532ccf31393e36ecf4bcd805868
Merge: 721ace5 743e039
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Feb 28 14:09:00 2011 -0800

    Merge branch 'ticket/2.6.next/4922' into 2.6.next

commit 743e03930758d17ed35fc6b73f7c2c68d8212137
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Feb 28 13:40:18 2011 -0800

    (#4922) Don't truncate remotely-sourced files on 404
    
    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

commit 721ace5007eb670651acb3b49f3e5b84a1a4f15c
Merge: a0abd8d ecb9536
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Feb 28 13:30:54 2011 -0800

    Merge branch 'ticket/2.6.next/4914' into 2.6.next
    
    * 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

commit ecb953646b2defbab3bbc53a58ce7ba98d560b50
Merge: a949a83 23a510a
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Feb 28 13:13:52 2011 -0800

    Merge branch 'ticket/2.6.x/4914' into maint/2.6.next/revert-6309
    
    * 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

commit a0abd8d5db6a756a585259467db5547d193de238
Merge: 4583b9a bb69011
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Feb 28 12:20:59 2011 -0800

    Merge branch 'ticket/2.6.next/maint-remove_version_control_tags' into 2.6.next
    
    * ticket/2.6.next/maint-remove_version_control_tags:
      (#6338) Remove unused version control tags

commit bb69011d7042454f6a2ee668a036ac373b4ff1eb
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Feb 24 11:43:02 2011 -0800

    (#6338) Remove unused version control tags
    
    Older version control systems like CVS and SVN used to use these $Id$
    tags for version information.
    
    Paired-with: Nick Lewis

commit 4583b9ae344451da4316e7db2ee549d10066fae9
Merge: fb02430 e2a5085
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 28 11:23:50 2011 -0800

    Merge branch 'ticket/2.6.next/6509' into 2.6.next

commit e2a50858aa05b63a6573ed534f18942cea47e44d
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 28 11:09:15 2011 -0800

    Maint: Align tabs in a code block in the Augeas type.

commit 65a5496754fcdf938bda96a42b83255a310d193b
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 28 11:05:37 2011 -0800

    (#6509) Inline docs: Fix erroneous code block in directoryservice provider for computer type

commit ea9f1f05934403b8d70e903efbb941ce74961b86
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 28 10:58:53 2011 -0800

    Maint: Rewrite comments about symlinks to reflect best practice.
    
    Don't use ensure => 'path/to/file', because it's hard to read. Use
    ensure => link and specify a target =>.

commit 94f8ead4efbd5909f1bb4f7e62cb5d705d55d381
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 28 10:37:46 2011 -0800

    (#6509) Inline docs: Fix broken lists in Launchd provider.
    
    Lists need a leading linebreak.

commit c80a77d0d141cd933db3f4b124b992d767577f08
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 28 10:30:19 2011 -0800

    (#6509) Inline docs: Fix broken code blocks in zpool type
    
    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.

commit 27863c3ab6d54bfa5d647770f35ef7ce10e1ac20
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 28 10:21:03 2011 -0800

    (#6509) Inline docs: Fix code blocks in service type.

commit f4034f76892b25b4a2e162f9229f2871c0a9d37c
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 28 09:58:58 2011 -0800

    (#6509) Inline docs: fix broken code blocks in schedule.rb.

commit 6f6c4b5f55d00df370f7d00a2499551e36aa880b
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Feb 28 09:55:19 2011 -0800

    (#6509) Inline docs: Fix broken code block in file type (content attribute)

commit 905ff3aee31775e3fff3ebf8a2eaa6bb2cf0f431
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sun Feb 27 16:34:10 2011 -0800

    Pretty-printing json using "jj"
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit fb02430e3d3baaab74175236fb6dfc9e931b6a8e
Merge: 96e9f8f 9090507
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Feb 25 15:50:26 2011 -0800

    Merge remote branch 'brice/tickets/2.6.x/6267' into 2.6.next

commit f0d768465d011e01a4ce247130e3f139a23b4c54
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Feb 25 22:48:36 2011 +0000

    (#6494) Add setm command to Augeas provider
    
    The Augeas setm command can set the value of multiple nodes in a single
    operation.  Takes a base path, then a subnode path expression (relative
    to the base) and then the value itself.

commit 448a439f5abc3d51accececb678e9c5f547f7615
Merge: 06939c5 e27d208
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Feb 25 15:17:39 2011 -0800

    Merge remote branch 'brice/feature/process-instrumentation' into next

commit a949a83c4f100be0254fadcb915f418f73705861
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Feb 25 15:14:26 2011 -0800

    Revert "(#6309) Ensure the correct device is mounted when managing mounts"
    
    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.

commit 23a510a321e47a98768dc47f95cfa0bd8c1a314c
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Feb 25 14:56:58 2011 -0800

    (#4914) Improved stubbing in mount/parsed_spec tests.
    
    A few of the spec tests were attempting to stub
    Puppet::Type::Mount#default_target so that it pointed to a temporary
    file rather than /etc/fstab, but they were creating the stub after the
    first call to default_target, so both /etc/fstab and the temporary
    file were being read.  This caused errors when running spec tests on
    platforms where /etc/fstab is unreadable by non-privileged users.
    
    Fixed the problem by moving the stub declaration earlier in the test.

commit 0026e43ef99f411ac66e76b88bae2bf3c0cc3734
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Feb 25 22:22:04 2011 +0000

    (#6494) Add mv command to Augeas provider
    
    Moves the first node to the position of the second, deleting it and its
    children if it already exists.

commit 67ed16031c6f1695a5b9933169b1f8ec1a4cce53
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Feb 25 22:13:33 2011 +0000

    (#6494) Add defnode command to Augeas provider
    
    Uses Augeas' defnode command which creates a variable pointing to a node,
    creating it with 'set' if it doesn't already exist.

commit 45cba13ee6d67c9c48e6db7b810f2fc55b1b14b8
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Feb 25 22:06:28 2011 +0000

    (#6494) Add defvar command to Augeas provider
    
    Uses Augeas' native defvar command to define variables for certain expressions
    that can then be referenced later with $variable.

commit 96e9f8f4feab5d768fff304fdb129405596ba128
Merge: 1172a4e ac2262d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Feb 25 13:47:22 2011 -0800

    Merge branch 'ticket/2.6.next/3999' into 2.6.next

commit ac2262d071cc2c9841843354585980696c689ca3
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Feb 25 13:45:10 2011 -0800

    (#3999) Allow disabling of default SELinux context detection for files
    
    In most cases on a system with SELinux, it is preferred to use
    the SELinux matchpathcon call to determine the default context that
    a file should have to make sure that files Puppet modifies are
    labeled with the correct SELinux security context.
    
    In the event that you wanted to override some or all of the default
    context, you can use the SELinux attributes Puppet provides to do
    that. If left unspecified the defaults will apply if matchpathcon has
    defaults.
    
    This patch adds a new selinux_ignore_defaults parameter which
    will cause Puppet to assume no defaults, allowing the file's
    SELinux label to be left unmodified, if desired.
    
    Originally-by: Sean Millichamp <sean@bruenor.org>
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 1172a4ee50040843e0e4b5eef73183aaf50be855
Merge: 063a55e 23eb77d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Feb 25 13:19:19 2011 -0800

    Merge branch 'ticket/2.6.next/6322' into 2.6.next

commit 23eb77d999acb73021547c5ef86adf609e202605
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Feb 25 11:45:38 2011 -0800

    (#6322) --noop should not suppress error codes
    
    The noop option has been suppressing exit statuses. This is
    counterintuitive, as per discussion at http://projects.puppetlabs.com/issues/6322
    
    This patch causes noop runs to return the same exit codes as real runs.
    
    Reviewed-By: Daniel Pittman <daniel@puppetlabs.com>

commit 063a55eda926ab77aad856a0948da1cb85d4aa7a
Merge: a42e796 439115e
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Feb 25 11:23:00 2011 -0800

    Merge branch 'ticket/2.6.next/6499' into 2.6.next

commit 439115e34c16be27549ee9aa122c418ae6992d76
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Feb 25 11:19:34 2011 -0800

    (#6499) Make puppet respond identically to -h and --help
    
    lib/puppet/util/command_line.rb had a special case for puppet --help to return generic help instead of the puppet apply help, but it would return puppet apply help when you gave it -h.

commit 66c994ac43347c735f0ea4158b38557d32ec5747
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Feb 24 10:24:08 2011 -0800

    Attempting to skip loading of duplicate actions
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 21b541d6ca4b1b76a4e0cd525fa66192c0857a5e
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Feb 24 08:34:24 2011 -0800

    Fixing plugin usage
    
    I had broken some usages of plugins by incorrectly
    selecting command-line arguments.  The fix was
    to remove the #main method contained in the
    IndirectionBase subclass.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit a42e796fa88574ef97a99b034c4229b961bdac60
Merge: a767eb0 b5bae9f
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 23 18:18:45 2011 -0800

    Merge branch 'ticket/2.6.next/6331' into 2.6.next

commit a767eb03e7a01c047020763c0bfe3b500ac5044d
Merge: 7898345 23b7119
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Feb 23 15:19:41 2011 -0800

    Merge branch 'maint/2.6.next/assertions' into 2.6.next
    
    * maint/2.6.next/assertions:
      Maint: Add an assertion mechanism to Puppet

commit 23b711954b1c1ba8deb4035503797c2f38a8ce12
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Feb 23 14:59:13 2011 -0800

    Maint: Add an assertion mechanism to Puppet
    
    This patch allows us to make C-style "assertions" in Puppet code,
    e.g.:
    
    assert_that { condition }
    assert_that(message) { condition }
    
    These methods will raise an exception if the environment variable
    PUPPET_ENABLE_ASSERTIONS is set to a non-empty value, and the the
    condition evaluates to false.  If the environment variable
    PUPPET_ENABLE_ASSERTIONS is not set, then the condition is not even
    checked.
    
    Switching the assertions on with PUPPET_ENABLE_ASSERTIONS carries
    three advantages:
    
    1. It makes it possible to put potentially expensive checks in
    assertions without degrading the performance of the code in production
    environments.
    
    2. It allows strict assertions to catch Puppet bugs early in
    development, without increasing the risk of a crash in production
    environments.
    
    3. It allows a simple command-line mechanism to run any Puppet command
    with assertions enabled.

commit 7898345acef254ced9316e5a90104609ccb16c2e
Merge: 101527b e3dfe41
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Feb 23 13:40:28 2011 -0800

    Merge branch 'ticket/2.6.next/6418' into 2.6.next

commit e3dfe41ce7da108fc345e58c7df8c1576ea951a0
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Feb 22 16:51:39 2011 -0800

    (#6418) Recursive files shouldn't be audited
    
    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>

commit 59a648502a8f09948bd2d25a72a9099f7740e108
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Feb 23 00:20:15 2011 -0800

    Adding Application options to Interfaces
    
    This allows all of the actions to react to the CLI
    options.
    
    I've also removed the unnecessary 'name' variables I
    was using in various places - they were just the first
    of the arguments, and they weren't actually always
    names.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 4fa54d02a2806e8fde54da9bb7e4d6735b3cffe4
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Feb 22 23:49:01 2011 -0800

    Adding render and exit_code override support
    
    This is mostly in response to feature requests from
    Dan.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit bec807e5a12e24c11aedb40a997b154f1bed62c0
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Feb 22 23:04:45 2011 -0800

    Fixing 'puppet interface list'
    
    Also added a test to hopefully confirm it won't
    break again.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 368210e8a8a35cf2cae509b1d357337f9958cdff
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Feb 22 17:38:04 2011 -0800

    Adding a simple "config" app
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit c2715c0f20d916de0284e2d161eb5de32e508244
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Feb 22 17:13:52 2011 -0800

    Splitting the Application base class
    
    We now have an indirection_base class along
    with interface_base.
    
    I've also added some basic tests for most
    of the interfaces.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 101527b0231bcbad8a9d0d5f2b434c9fcb2b518c
Merge: ea7b9df 0e9858f
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Feb 22 14:44:35 2011 -0800

    Merge branch 'bug/2.6.next/6407-specs-hang-on-zlib-test' into 2.6.next

commit 0e9858f19d9d2e021a9d0aa43b69c6ddee229352
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Feb 22 14:18:57 2011 -0800

    (#6407) Fix spec test hang with Mocha >= 0.9.11 in zlib testing
    
    We had a combination of bad logic, and bad testing, and a nasty behaviour of
    Mocha <= 0.9.10 that would result in a false pass for one of our tests.
    
    This not only falsely passed, but hid an infinite loop retrying decompression
    on an invalid data stream; it could be triggered by anything that sent an HTTP
    request with an invalid compressed body, resulting in a livelock.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 7da0a26f1bd44ecfffe9f622ec9d560870506207
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Feb 22 13:36:18 2011 -0800

    Adding a string form to interfaces
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 04fb6de5e2108799e47a081e5331d932fcf53109
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Feb 22 11:59:19 2011 -0800

    Switching Interfaces to be instances
    
    They were previously classes, which made a lot of things stupider
    than they needed to be.
    
    This will likely involve some porting, but not much.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit ea7b9dfc19ed704bc3abbd9c955e8a40970ada1f
Merge: 079bf95 309b932
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Feb 22 11:34:33 2011 -0800

    Merge branch 'bug/2.6.next/5552-running-puppet-cert-without-options-results-in-failure' into 2.6.next

commit 309b9320feef3e1a9459c7a26d10955b4d6b549c
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Feb 22 11:25:03 2011 -0800

    (#5552) Display help when no subcommand is given.
    
    Previously, when the command line was empty we would try and invoke an empty
    method; this was less helpful than telling people what they could actually do,
    so we adapt our code to do precisely that.
    
    Paired-With: Jesse Wolfe <jesse@puppetlabs.com>
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit de6a2052c2aeda1cd76ba828936a9d6f0ac7e907
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Feb 22 11:18:19 2011 -0800

    (#5552) Clean up subcommand handling inside puppet cert.
    
    We now have a regular, testable mechanism for handling the legacy '--' version
    of subcommands, as well as a modern bareword subcommand pattern.  This makes
    it sensible to test command handling and avoid regressions.
    
    We identified a few quirks in the command line as part of this process.
    
    Pair-With: Jesse Wolfe <jesse@puppetlabs.com>
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>

commit 0cbdbce0f518d43f0d0160a58dd5ec7253a5af87
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Feb 22 09:25:21 2011 -0800

    Renaming 'data_baseclass' to 'interface_base'
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit ef289e5b036d7e9716d611af09d4414de42e31ed
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Feb 21 20:51:40 2011 -0800

    Fixing indentation
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit cf79349551984e0a1a5a2ccb0d4c3f8c744ffbd7
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Feb 21 20:50:03 2011 -0800

    Updating readme to reflect requirements
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 15a53f0ac79cb3f164750d53219d02ad6515f02c
Author: Juerg Walz <jwalz@pobox.com>
Date:   Tue Feb 22 09:24:03 2011 +0800

    (#4258) pkgutil provider: misc enhancements
    
    Several enhancements and bug-fixes for the pkgutil package
    provider:
    
    - handle "Not in catalog"
    - fix "SAME" version detection
    - allow short package name (w/o CSW) to match
      (-> no need to specify a different package name for different
      operating systems, ex. "ruby")
    - use the "-u" command line switch for updates

commit 079bf95504b2bc807c51c1b1f4202e47cd660356
Merge: 983c242 bb31c3d
Author: Max Martin <max@puppetlabs.com>
Date:   Mon Feb 21 16:44:26 2011 -0800

    Merge branch 'ticket/2.6.next/6376-_search-support' into 2.6.next

commit bb31c3d82f58ed192efa1bd8b85958ffa50d1d73
Author: Max Martin <max@puppetlabs.com>
Date:   Mon Feb 21 16:40:10 2011 -0800

    (#6376) Add test case for facts find request
    
    Added test case to ensure indirection name is not changed from "facts"
    when making an HTTP GET request.
    
    Reviewed-by:Paul Berry <paul@puppetlabs.com>

commit 983c2420d47c83922a4417ec2b85af0740468029
Merge: 7e61171 30fa41d
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Feb 21 14:41:12 2011 -0800

    Merge branch '2.6.x' into 2.6.next
    
    * 2.6.x:
      Updated CHANGELOG for 2.6.5rc5
      (#6337) Fix Ruby warning on 1.8.6 about "future compatibility"
      (#6353) Restore the ability to store paths in the filebucket
      (#6126) Puppet inspect now reports status after run completes.

commit 30fa41ddc3796e62a5bd1d0cf5116e14323992a3
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Feb 21 14:37:09 2011 -0800

    Updated CHANGELOG for 2.6.5rc5

commit a02b839c017fa4ceeebbfc8c11144199e3cfa0d1
Merge: cb40115 b481321
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Feb 21 14:12:17 2011 -0800

    Merge branch 'ticket/2.6.x/6337' into 2.6.x
    
    * ticket/2.6.x/6337:
      (#6337) Fix Ruby warning on 1.8.6 about "future compatibility"

commit b4813213afbe085b63317fbc2d1e37f799d21dd4
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 17 18:18:44 2011 -0800

    (#6337) Fix Ruby warning on 1.8.6 about "future compatibility"
    
    Ruby 1.8.6 (but not later versions) warn about requiring parenthesis on some
    function calls; having one of those in our network rights checking means that
    we emit ... quite a few of these, and annoy anything that tracks our logs.
    
    By using the more standard form of raise we can avoid the warning entirely,
    and keep consistent code style across the file.
    
    Reviewed-By: Paul Berry <paul@puppetlabs.com>

commit cb4011561f1bf096daa56b9ce48e6d91b70e0188
Merge: bca53bd dcce45c
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Feb 21 13:53:12 2011 -0800

    Merge branch 'ticket/2.6.x/6353' into 2.6.x
    
    * ticket/2.6.x/6353:
      (#6353) Restore the ability to store paths in the filebucket

commit dcce45cfcbf77d576237ae8ff0ffa6ef98dcb722
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Feb 21 12:50:53 2011 -0800

    (#6353) Restore the ability to store paths in the filebucket
    
    Commit 2274d5104f6e413a2b8899a3c3111a17bbb2f4d7 optimized network
    usage for the case where a file is already in the filebucket.
    However, it took away the ability to store paths.
    
    This change restores the ability to store paths while maintaining
    optimal network usage for the case where the file is already in the
    filebucket with the given path.  This is expected to be the most
    common case.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 2ecf91367c911a87dc5680108222dcc48ecca888
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Feb 21 09:39:19 2011 -0800

    Revert "(#5935) Allow functions to accept negated values"
    
    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.

commit cde1baa4a9a27ba95ad2a61bc8e46d43e708b081
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sun Feb 20 15:39:54 2011 -0800

    Fixing Interface listing
    
    It got broke when the Indirector base class was extracted.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit eff4eec9d53d4fb8270799458455fe4bdc47d1df
Author: Dan Bode <bodepd@gmail.com>
Date:   Sun Feb 13 02:53:23 2011 -0600

    (#3) Base application should catch SYSINT
    
    We should exit cleanly rather than throw traces.

commit a54ee1e292238145bb0def2af6cf9ac22f2acd68
Author: Dan Bode <bodepd@gmail.com>
Date:   Sun Feb 13 02:55:42 2011 -0600

    (#2) Should not assume interfaces have indirectors
    
    The initial work assumed that all interfaces were just
    skins on an indirected data type, but some interfaces will
    be more abstract than that.
    
    This commit removes that assumption by extracting all of
    the indirector work into a new Indirector subclass of
    Interface and then makes all of the new interfaces a subclass
    of that rather than of Interface itself.

commit 15e225b5ef80a92f1d9ec25ca518601519f6ffe9
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Feb 20 11:37:55 2011 +0000

    Add spec tests for pkgutil package provider

commit 8462acd0e8021d7ea11215bee1838d4b4beddbb5
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sun Feb 20 11:36:19 2011 +0000

    * Fix exception on parse failure of pkgutil output
    * Fix exception when querying latest version for unknown package

commit c57c508e938083115bbc00037901f652505288b0
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Feb 20 11:18:19 2011 +0100

    (#4914) Improved parsed_spec for mount
    
    Add specs for the new prefetching and the correct parsing of vfstab on
    Solaris and fstab on other systems

commit ec33a09cc4b2caf391e07f21603e86d81c861b78
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Feb 20 11:08:34 2011 +0100

    (#4914) Remove mount specs
    
    Remove mount specs that seem to only test if the parsedfile provider is
    working correctly or are obsolete specs.

commit c87ec2598700c4e5236452a016f0497ec848cb90
Merge: 3eace85 ea34876
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Feb 19 21:21:13 2011 +0000

    Merge branch 'master' into tickets/master/4258-dev

commit 7639d5f2de43a117796e91e36f6ac63c4ff05591
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Feb 19 19:00:36 2011 +0000

    Fix non-existent method called in SMF manifest import exception message, updated spec

commit f5e21f0796038f8635af0f826eab9d62b494ba49
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Feb 19 18:58:51 2011 +0000

    (#6324) Use real service resource object instead of a stub

commit bca53bd4dcaf39a09f91c32ff56ef3b0a60dc85c
Merge: 85e3174 0450197
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Feb 18 19:10:57 2011 -0800

    Merge branch 'bug/2.6.x/6126-puppet-inspect-has-no-status-messages' into 2.6.x

commit 04501976f898f886b81a67bdf0dabae1ba11571f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Feb 18 16:01:00 2011 -0800

    (#6126) Puppet inspect now reports status after run completes.
    
    We now emit timing and output a status message at the end of a successful
    inspect run.
    
    Paired-With: Nick Lewis <nick@puppetlabs.com>
    Signed-Off-By: Daniel Pittman <daniel@puppetlabs.com>

commit 7e611714c56e3e28ff2077a024498acd26da0604
Merge: 652971c e854205
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Feb 18 15:33:29 2011 -0800

    Merge branch 'tickets/2.6.x/6309-check-what-is-mounted' into 2.6.next
    
    * tickets/2.6.x/6309-check-what-is-mounted:
      Remove pending tests from parsed mount provider
      (#6309) Ensure the correct device is mounted when managing mounts
      Clean up whitespace, and commented out code in parsed mount provider

commit 652971c48f2f4fd8515bc1d34f1ac00aac8449a9
Merge: d1955e5 960890f
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Feb 18 15:33:17 2011 -0800

    Merge branch 'tickets/2.6.x/6364-fix-mount-provider-on-aix' into 2.6.next
    
    * tickets/2.6.x/6364-fix-mount-provider-on-aix:
      (#6364) Adjust mis-translated regex in mount provider for AIX

commit 85e3174c060bc3bcde352872c83c7183b296b011
Merge: 9e0f9c5 960890f
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Feb 18 15:32:26 2011 -0800

    Merge branch 'tickets/2.6.x/6364-fix-mount-provider-on-aix' into 2.6.x
    
    * tickets/2.6.x/6364-fix-mount-provider-on-aix:
      (#6364) Adjust mis-translated regex in mount provider for AIX

commit e85420585158ab1a74727efcff449190f6d84899
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Feb 18 15:26:58 2011 -0800

    Remove pending tests from parsed mount provider
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 6cb365a887d47606bdfae0ff540038b0c49b7451
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Feb 17 11:52:45 2011 -0800

    (#6309) Ensure the correct device is mounted when managing mounts
    
    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>

commit d1955e5c92bc5e2eaf25b28b5102b6f7d10922bb
Merge: 12fd75a d1f1858
Author: Max Martin <max@puppetlabs.com>
Date:   Fri Feb 18 15:24:52 2011 -0800

    Merge branch 'ticket/2.6.next/6376-_search-support' into 2.6.next

commit d1f1858ea52d3089fd2088994e80d6f49d7e0347
Author: Max Martin <max@puppetlabs.com>
Date:   Fri Feb 18 15:19:46 2011 -0800

    (#6376) Add support and testing for _search GET requests
    
    Added support for adding "_search" to the end of any indirection to
    'pluralize' it, and added tests to check this functionality and to test
    hidden side effect of plurality method unpluralizing indirections.
    
    Paired-With:Paul Berry <paul@puppetlabs.com>

commit 3b41d44812eed82d41e135375df15ae0bc3b4800
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Feb 18 15:16:12 2011 -0800

    Clean up whitespace, and commented out code in parsed mount provider
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 960890f6ac6bcf1d639c68d4fe807ac54bf3a1ba
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Fri Feb 18 10:52:02 2011 -0800

    (#6364) Adjust mis-translated regex in mount provider for AIX
    
    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>

commit ef9e929a8028272ef88903be50cdf42ea924163d
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Fri Feb 18 09:38:34 2011 +0000

    (#6324) Add spec for SMF service provider

commit 12fd75a7c575ea181f065b6aaffdcb65417aeb35
Merge: 6d5f1aa a7cebf8
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Feb 17 18:18:56 2011 -0800

    Merge branch 'bug/2.6.next/6337-parenthesize-arguments-for-future-versions' into 2.6.next

commit a7cebf80abc9e8b1b570ce7fd2e7b86cf1dd15b3
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 17 18:18:44 2011 -0800

    (#6337) Fix Ruby warning on 1.8.6 about "future compatibility"
    
    Ruby 1.8.6 (but not later versions) warn about requiring parenthesis on some
    function calls; having one of those in our network rights checking means that
    we emit ... quite a few of these, and annoy anything that tracks our logs.
    
    By using the more standard form of raise we can avoid the warning entirely,
    and keep consistent code style across the file.
    
    Reviewed-By: Paul Berry <paul@puppetlabs.com>

commit 6d5f1aa75c8c64033b56f49e87fc03258d5c158c
Merge: ab27da7 8a48560
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Feb 17 15:37:12 2011 -0800

    Merge branch 'ticket/2.6.next/6338' into 2.6.next
    
    * ticket/2.6.next/6338:
      (#5150) Make fact REST terminus configurable to connect to inventory service
      (#5166) Inventory service is now searchable by timestamp.
      Maint: backport timestamp accessor for facts from 2.7 branch
      Refactored Puppet::Node::Inventory::Yaml tests in preparation for adding freshness check
      Refactor Puppet::Node::Inventory::Yaml in preparation for adding freshness
      (#5132) Provide a query REST interface for inventory

commit 8a485608e2941ff8c7ecc706c21f906d59302dd6
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Nov 5 11:37:27 2010 -0700

    (#5150) Make fact REST terminus configurable to connect to inventory service
    
    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>

commit e6870f6d87b354e30a537eff4a8e98120c05d693
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 1 13:46:21 2010 -0700

    (#5166) Inventory service is now searchable by timestamp.
    
    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.

commit 2d2f9ab04d8d6964df99762f73d329b0e5e57d8a
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Feb 17 15:15:50 2011 -0800

    Maint: backport timestamp accessor for facts from 2.7 branch
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit fa0ed63c321819159f54621d7799ebc1eb2102f7
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 1 13:32:14 2010 -0700

    Refactored Puppet::Node::Inventory::Yaml tests in preparation for adding freshness check

commit 67f24e48fb100a2bd971e87669d4fb91486156dc
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 1 13:26:41 2010 -0700

    Refactor Puppet::Node::Inventory::Yaml in preparation for adding freshness

commit 23fc4db954c22bce2c6cc8996d5fafb175e2b747
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Feb 17 14:59:59 2011 -0800

    (#5132) Provide a query REST interface for inventory
    
    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.
    
    Conflicts:
    
    	spec/spec_helper.rb

commit ab27da7967e1e145d5fbc130e5fbcec6795ca775
Merge: ab1126e e3c59df
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Feb 17 14:06:22 2011 -0800

    Merge branch 'ticket/2.6.next/5935' into 2.6.next

commit e3c59df2b246fe5e764272f21b631a5d2f28687f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Feb 17 13:52:40 2011 -0800

    (#5935) Allow functions to accept negated values
    
    function(-1) was failing because the grammar wasn't allowing negated values in
    function calls. This fix makes the negation of any value which was previously
    legal as a function argument also now legal as a function argument.
    
    Paired-With: Max Martin
    Paired-With: Markus Roberts

commit 06939c51a3f675137b53fac8a521132a4c9cfcbe
Merge: fd0bfde b18f045
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Feb 17 12:10:18 2011 -0800

    Merge branch 'ticket/next/1204' into next

commit b18f045d6349e4edf5d1593285d6788203fe81ae
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Feb 17 11:56:55 2011 -0800

    (#1204) Make rake gen_manpages fail explicitly if ronn isn't present
    
    Entire series:
    paired-with: Daniel Pittman <daniel@puppetlabs.com>
    paired-with: Paul Berry <paul@puppetlabs.com>

commit ae4112b4ea9631d402ecd072322bce738161fbc4
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 18:40:42 2011 -0800

    (#1204) Add manpages for modern apps and update puppet.conf manpage

commit f6485d6eb8378e874ca22e67c2976835ab7601fa
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Feb 17 10:00:06 2011 -0800

    (#1204) Fix --param flag in puppet resource manpage
    
    Ronn doesn't like <param> for some reason.

commit dac032d589862a9f5c2f054aaf17686bf96f0c09
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 18:36:33 2011 -0800

    (#1204) Make rake gen_manpages output puppet-{application} manpages
    
    The manpage generator can now make manpages for the modern executable in
    addition to the legacy executables. The section for the legacy
    names should be deleted upon the release of 2.8.0.

commit a0cff49aaa6586347b77437137cfa57f8013c344
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 17:43:54 2011 -0800

    (#1204) Update all the manpages
    
    We got the rake task working! We're not done, but all the
    manpages look a lot better, so let's commit that.

commit c61952001509768faa7fa09e7ddc2e7d86f2981f
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 16:01:16 2011 -0800

    (#1204) Move man generation task from install.rb to a rake task
    
    Having this be commented-out code in the installer script doesn't really
    make sense for our workflow; we want to be able to regenerate these manpages at will
    and make sure they're always up-to-date. This will help us keep them in sync with the help text.
    
    This commit also changes the ronn invocation to specify a manual name and organization.

commit 9e19d2267dfd254a12f1fe5fc37a524af8e1efc7
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 15:36:44 2011 -0800

    (#1204) Edit content and formatting of puppet resource help
    
    Clarified how to modify the system state with puppet resource,
    and reformatted the markdown for compatibility with ronn.

commit f4c7e484dc1781567f55f80619d8a34def22f18d
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 15:26:15 2011 -0800

    (#1204) Edit content and formatting of puppet queue help
    
    Puppet queue had inadequate help, so I added to it while
    reformatting for ronn.

commit bd14ff5e1ea5bad3e1cba1fd19610f63158c5bc4
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 15:09:56 2011 -0800

    (#1204) Fix --compile and --apply options
    
    Forward-porting a fix from 2.6.x to the new help text locations.

commit 768d9a1a796b631de7ec4da2e75ec52211716c9a
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 15:06:42 2011 -0800

    (#1204) Reformat help text for puppet master
    
    Markdown changes for compatibility with ronn.

commit 3f1c26ff5699589e06f9fd48c0bd9ac3379a4c07
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 14:55:58 2011 -0800

    (#1204) Reformat help text for puppet kick and inspect
    
    Markdown changes for compatibility with ronn.

commit d198db2ee529dfdb74b7dee5c3f5def77b782b4a
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 14:40:02 2011 -0800

    (#1204) Reformat help text for puppet filebucket
    
    Markdown changes for compatibility with ronn.

commit c35aa609922704b72ea6517d90dc645da7177a5c
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 13:34:38 2011 -0800

    (#1204) Fix garbled help for puppet filebucket
    
    The actual text was somewhat disarrayed. No ronn fixes in this patch.

commit 1800d0026bfc6574495adc8275576468a36d9cb0
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 13:16:02 2011 -0800

    (#1204) Edit content of puppet describe help
    
    It's a simple tool, it doesn't need both synopsis and
    description. Especially when they're identical.

commit f653b8df5226e24bf2e89226ee6cd1e20684ff91
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 13:10:48 2011 -0800

    (#1204) Reformat help text for puppet cert and describe
    
    Markdown changes for compatibility with Ronn.

commit 969b8b0e039c37b78d3ce63035ac6bb823b1afbe
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 11:03:19 2011 -0800

    (#1204) Edit content and formatting of puppet apply help
    
    The puppet apply help was somewhat lacking, so I edited the content
    while making its formatting ronn-compatible.

commit 489b065b9e25b8dcb389ae63b73ba0c696f0ead5
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 16 10:26:22 2011 -0800

    (#1204) Reformat help text for puppet doc and puppet agent.
    
    Markdown changes for compatibility with Ronn, in the interest of
    better manpages.

commit ab1126e1c5931833299f06cb5977b1ca2d0badd0
Merge: 9b7b0f3 7cb884e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Feb 16 15:13:58 2011 -0800

    Merge branch 'ticket/2.6.next/6346-signal_int_trap' into 2.6.next
    
    * ticket/2.6.next/6346-signal_int_trap:
      (#6346) Move the trap calls onto Signal so they're easier to stub

commit 7cb884e44db412ed4cc19d9eb3e07d4b5b17f6b3
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Feb 15 17:10:42 2011 -0800

    (#6346) Move the trap calls onto Signal so they're easier to stub
    
    Once you stub signal traps in tests, you can hit ctrl+c in the middle of
    a spec run and it will stop the run instead of puppet catching the
    SIGINT.
    
    I had trouble easily tracking down all the places to stub traps when the
    trap was being called as a private method on applications and daemons,
    but calling trap on Signal is equivalent since Kernel calls Signal.trap
    and Object mixes in Kernel to provide trap as a private method on all
    objects.
    
    A bigger solution would be to refactor everywhere we call trap into a
    method that's called consistently since right now we sprinkle SIGINT and
    SIGTERM trap handling over applications and daemons in inconsistent
    ways, returning different error codes and using different messages.
    I've captured this info in ticket #6345.
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>

commit 7e3a02339a660a76019bf20243a7068325f1af68
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Feb 16 01:16:15 2011 -0800

    Only printing output if there is any
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit b3f903af34c0e27dccb1d043d84c35ea68f44830
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Feb 16 00:44:44 2011 -0800

    Enabling arbitrary interface names
    
    Previously the app, indirection, and interface names
    had to match exactly; now they can be arbitrary by
    just defining an overriding 'indirection_name' class
    method on the interface.
    
    I also renamed the file_bucket_file classes accordingly.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 782ca8df60c0adc6c264a196292032479d2c2f7c
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Feb 16 00:30:21 2011 -0800

    Fixing an error message
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit b5bae9f99fb2ab2bd2429d047db7e53aa8c90fbd
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Feb 15 16:58:27 2011 -0800

    (#6331) Remove final special :trac: link from the file content property
    
    The file content property had a weird garbage string in its doc variable
    which appeared to be part of our older reference generator code. Since
    the code to strip these odd links out no longer appears to exist, the
    nonsense would propagate to the generated types reference.

commit 4d25d90d5e77389eec81b3e6cd4a1e9919d601fa
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Feb 15 15:38:29 2011 -0800

    (#6331) Inline documentation: Fix rotted links pointing at the Trac wiki
    
    This patch updates links in three files and marks a link in a fourth
    file as unrecoverable.

commit 0b18cb63b866c8034968644b849c119e515a46c6
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Tue Feb 15 11:22:12 2011 +0000

    (#6324) Always fall back to svcadm enable except for the maintenance state
    
    If state is running, using svcadm enable is harmless and prevents errors with
    execute().

commit 9b7b0f3ad87abc3a6fbb7ad128e942571cd3e71a
Merge: c1dab76 9e0f9c5
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Feb 14 14:04:43 2011 -0800

    Merge branch '2.6.x' into 2.6.next
    
    * 2.6.x:
      Updated CHANGELOG for 2.6.5rc4
      (#3646) Fix the documentation fix for `puppet apply --apply`

commit 9e0f9c5cfecf4ff81724c048c5afe5a288fcc9b2
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Feb 14 14:04:18 2011 -0800

    Updated CHANGELOG for 2.6.5rc4

commit 28825ac5262374a20fac3e7bae0c2b4bb00e0e1b
Merge: 4b6519a 664ef67
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Feb 14 13:59:32 2011 -0800

    Merge branch 'tickets/2.6.x/3646-fix-documentation-fix-fix' into 2.6.x
    
    * tickets/2.6.x/3646-fix-documentation-fix-fix:
      (#3646) Fix the documentation fix for `puppet apply --apply`

commit 664ef670da62f9c3dd83d047dc9e575e9ffbb8a2
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Feb 14 13:57:51 2011 -0800

    (#3646) Fix the documentation fix for `puppet apply --apply`
    
    --apply is actually off of `puppet apply`, not off of `puppet agent` (nor
    `puppet master`), so move the documentation accordingly.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit c1dab76032c2bc6ef374ca1aa5f9cb49b76c7326
Merge: 90f53f4 4b6519a
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Feb 14 13:35:25 2011 -0800

    Merge branch '2.6.x' into 2.6.next
    
    * 2.6.x:
      Updated CHANGELOG for 2.6.5rc3
      Updated fix for #3646 - apply / compile documentation

commit 4b6519a84378006b99f9b7c2fbc395ac2f4994c3
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Mon Feb 14 11:42:23 2011 -0800

    Updated CHANGELOG for 2.6.5rc3

commit 7ef2fbf1ac217ef78181ffb41a9a226c7bb2b40f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Feb 14 06:08:50 2011 +1100

    Updated fix for #3646 - apply / compile documentation

commit 90f53f43e3bd263b37db673c08ba13c1b48b3ca6
Merge: e1b7db4 b25d9e4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Feb 14 11:36:23 2011 -0800

    Merge branch 'ticket/2.6.next/rspec_returns_1_when_failures' into 2.6.next
    
    * ticket/2.6.next/rspec_returns_1_when_failures:
      maint: make rspec exit with status 1 when there are failures

commit b25d9e42808112c6a0a3f5c6bbe7e8a05b02a6d2
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Feb 14 11:28:32 2011 -0800

    maint: make rspec exit with status 1 when there are failures
    
    Hudson wasn't notifying us when there was a test failure because
    fail_on_error was set to false.  This appears to be because of a
    misconception that setting this to true caused the specs to run slower.
    That is not the case.
    
    Paired-with: Nick Lewis

commit e1b7db490212b1bdf281cfbb3fa5b7e467995753
Merge: 9bd15b7 193016d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Feb 14 11:02:44 2011 -0800

    Merge branch '2.6.x' into 2.6.next
    
    * 2.6.x:
      (#5977) fix spec test failure when new applications are introduced.

commit 193016dd152ff17ba94867897656ddca41621b3e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Feb 12 12:09:27 2011 -0800

    (#5977) fix spec test failure when new applications are introduced.
    
    The test here was previously fragile, in that it would break when new
    applications were introduced, and in that it depended on the order of items
    returned from reading the directories on disk.
    
    It is now insensitive to those changes, and still verifies that the results we
    require occur, reducing long term maintenance cost.
    
    Reviewed-by: James Turnbull <james@puppetlabs.com>

commit 9bd15b77d4cc210249228ff628b6e7708124aca3
Merge: 98f79dc a0d3204
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Feb 12 15:51:57 2011 -0800

    Merge branch 'bug/2.6.next/6269-hashes-only-work-with-two-levels' into 2.6.next

commit a0d320439c72f7b7969cd51b33a8db141eb9a599
Merge: 98f79dc c373b62
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Feb 12 15:51:30 2011 -0800

    (Fixes #6269) merge changes from masterzen that resolve the issue.
    
    parser.rb manually rebuilt to resolve global grammer chances.

commit 98f79dc2e44502bf781dbce180762b892859d4e1
Merge: e512e3e 5c26f68
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Feb 12 15:25:17 2011 -0800

    Merge branch 'bug/2.6.next/5516-hashes-can't-be-used-in-selectors' into 2.6.next

commit 5c26f6828e0e2c1370966472d4d62b2e001c9f0b
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Feb 12 15:25:00 2011 -0800

    (#5516) Rebuild parser.rb after merge.
    
    The automatically generated parser.rb needed to be rebuilt to make the syntax
    changes functional; this commits only that rebuild.

commit d9b168b00a7c86489d8b1cf7c28d4e37205710f7
Merge: e512e3e 414e3a5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Feb 12 15:18:38 2011 -0800

    Merge branch 'masterzen/tickets/2.6.x/5516' into bug/2.6.next/5516-hashes-can't-be-used-in-selectors

commit e512e3effa134271564177e095c6afc19bebe62f
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Feb 12 12:09:27 2011 -0800

    (#5977) fix spec test failure when new applications are introduced.
    
    The test here was previously fragile, in that it would break when new
    applications were introduced, and in that it depended on the order of items
    returned from reading the directories on disk.
    
    It is now insensitive to those changes, and still verifies that the results we
    require occur, reducing long term maintenance cost.
    
    Reviewed-by: James Turnbull <james@puppetlabs.com>

commit 16e79f075622aa155a112d5a271c386f4ebc0241
Merge: 781601f b5b5923
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Feb 12 11:52:21 2011 -0800

    Merge branch 'bug/2.6.next/5720-puppetdoc-fails-on-parameterized-class' into 2.6.next

commit b5b5923bf41196f5e72a69bfa627120c75732fe5
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Feb 12 11:44:19 2011 -0800

    misc: ast_context has two arguments, not one.
    
    This updates the spec expectation to reflect that, eliminating a warning
    during the spec run.

commit 1abfd9c2e550be8cebdd94629d0f9759f14f7f34
Merge: 781601f b4a171e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Sat Feb 12 11:36:29 2011 -0800

    Merge branch 'masterzen/tickets/2.6/5720' into bug/2.6.next/5720-puppetdoc-fails-on-parameterized-class

commit 414e3a5989c4c1010af0c5d3f61af2608d91d9b8
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Feb 12 17:34:35 2011 +0100

    Fix #5516 - Hashes can't be used in selectors
    
    The following manifest was producing a parse error:
    $int = { 'eth0' => 'bla' }
    $foo = $int['eth0'] ? {
      'bla' => 'foo',
       default => 'bleh'
    }
    
    because selectors didn't support hash access.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit c373b6272ddd4daabf15d1b459ef3e86072e3f26
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Feb 12 16:58:20 2011 +0100

    Fix #6269 - Hashes only work with two levels of access
    
    The following manifest was failing:
      $hash = { 'a' => { 'b' => { 'c' => 'it works' } } }
      $out = $hash['a']['b']['c']
    
    because of a typo in the grammar.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 90905073a6e1136c80cd59dca1a9594f4a859126
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Feb 12 13:32:24 2011 +0100

    Fix #6267 - puppetdoc embedded links to puppet entities are not hyperlinked
    
    Puppetdoc was relying on RDoc to provide the puppet entity (class, definition
    node, etc...) hyperlinking in comments.
    Unfortunately, RDoc was assuming namespaces are capitalized like Ruby
    namespaces and that definition would use the # or . separator.
    
    This change adds on top of RDoc puppet namespace format for classes and
    definition.
    
    This will make sure the comment hyperlinking will work as intented.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b4a171e78c501208798220910352943331ceb9e0
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Feb 11 22:46:15 2011 +0100

    Fix #5720 - puppetdoc misses some class comments
    
    It appears that the fix for #5252 wasn't complete, and class, nodes and
    definition were still using the current lexer line number instead of
    the line number of the class/define/node token.
    This combined with some missing comments stack pushing/pop on parenthesis
    prevented puppetdoc to correctly get the documentation of some class (including
    parametrized ones).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit cfa0c32fc5149464af97235a7bb458950d19cc82
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Feb 11 20:34:22 2011 +0100

    Fix #6281 - Make sure puppetdoc analyzes all files
    
    It can happen that when parsing a file puppet parses other manifests
    if they get imported (this is at least true for site.pp, even in
    ignoreimport=true). Thus those files are now "watched".
    But puppetdoc needs to analyze all files, and since 99c101 we are now
    checking if the file was already parsed to not reparse it again.
    If that was the case, though, we weren't analyzing the produced code.
    Thus it was possible to not produce documentation for the site.pp content.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 48bc7d00ca87fa92cdde0b993529bba3827fa47e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Feb 11 20:18:14 2011 +0100

    Fix #6280 - puppetdoc crashing on string interpolation
    
    The following manifest was crashing puppetdoc:
      class test {
         include "test::$operatingsystem"
      }
    
    Because the quoted string is "rendered" as a concat AST, which in turn
    ended being an array when entering RDoc.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 9e124e1b3e3f3cd06db7ac58c3aefca3382cd870
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Feb 10 14:55:23 2011 -0800

    Fixing rendering to support arrays
    
    This isn't 100% - it will probably only work for Yaml and
    JSON - but it's a good start.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 781601f8e7a9c6aecc5c9de66b1597b1879450d2
Merge: e9ee621 0b7faa6
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 9 11:06:06 2011 -0800

    Merge branch 'ticket/2.6.next/6270' into 2.6.next

commit 0b7faa6c95dbb734019a6e659b838ef24103571a
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 9 10:41:32 2011 -0800

    (#6270) Fix formatting in split function's doc string
    
    * Repaired a 2-indent/4-indent issue that kept a code block from being recognized
    * Wrapped literal strings in backticks to format as code and protect from Markdown
    * Added note about backslashes for escaping metacharacters.

commit 637e139556d7a0fa37d9e7626cfedb23430177d6
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Feb 9 10:12:48 2011 -0800

    (#6270) Fix formatting in regsubst function's doc string
    
    * Fixed ULs being interpreted as code blocks
    * Changed an example for variety.
    * Turned set of paragraphs inside a LI into a nested list.

commit 3ffb9abd3a500f1fb3246e04f737b79d232c082d
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Feb 8 21:27:24 2011 -0800

    Moving 'format' support to the application
    
    This allows easier use of the Interfaces in ruby.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 7a325feb8aad7b67c80d57dc82bc9c8232bc7b53
Author: Garrett Honeycutt <puppet-dev@garretthoneycutt.com>
Date:   Tue Feb 8 16:47:55 2011 -0800

    (#6144) add missing zfs properties
    
    * Alphabetized properties
    
    * Added documentation for acceptable values
    
    * Added the following properties:
        atime
        canmount
        checksum
        devices
        exec
        logbias
        nbmand
        readonly
        refquota
        refreservation
        setuid
        shareiscsi
        sharesmb
        version
        volsize
        vscan
        xattr
        zoned
        vscan

commit 9cb594f898496e36c76f0717b73897f07e8aca5a
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Feb 8 16:46:47 2011 -0800

    Finishing the s/data/interface/ in the application
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 5190abaf47ab603dab2f9f8d2bbf7413656e25ff
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Feb 8 16:44:34 2011 -0800

    Adding to README
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit e9ee621e1f32a984ca4b18e814e7f3549612dcc5
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Feb 3 11:12:44 2011 -0800

    (6130) Change header level on metaparameter reference
    
    Individual metaparameters under the main H2 on the page should be H3s, not H4s.

commit 264a43c835a8131f3a2df5b5cf5c29c8bfcabb67
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Feb 8 16:26:10 2011 -0800

    Renaming "data" app to "interface"
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit efca35cbea836fac954fb655d76493f03b36e96f
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Feb 8 16:24:30 2011 -0800

    Finishing migration from puppet repo
    
    The whole system seems to work again, as long as
    you run it against 2.6.next.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit c08fc1bd31431012f20d2e2033debc2c409bb620
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 8 12:28:55 2011 -0800

    Updated CHANGELOG for 2.6.5rc2

commit 0971bda3d7b75a5292268b3a6acb1724fbb9852c
Merge: e0613d8 7b3b56e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Feb 8 12:18:31 2011 -0800

    Merge remote branch 'dan/ticket/2.6.4/5977' into 2.6.next

commit e0613d808f52d08bc1a2fb4e075749f486d7768b
Merge: 70a43c4 1f89906
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Feb 8 12:15:41 2011 -0800

    Merge branch 'ticket/2.6.next/6257' into 2.6.next

commit 1f89906fcb87690a688b4d7facf6af0e4c554d6d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Feb 8 12:02:06 2011 -0800

    (#6257) Speed up PUT and POST requests under rack
    
    This patch significantly speeds up reading the body of HTTP requests
    from Rack.
    
    Reviewed-by: Markus Roberts <markus@puppetlabs.com>

commit fd0bfdec4512ee0927be6c181e99b96be26363aa
Merge: d64f4a9 70a43c4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Feb 3 21:22:47 2011 -0800

    Merge branch '2.6.x' into next
    
    Conflicts:
    	lib/puppet/util/zaml.rb

commit 70a43c4b0d3018a39e29c50b1caf7dec38694323
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Feb 3 18:44:13 2011 -0800

    Updated CHANGELOG and version for 2.6.5rc1

commit ec4254dec20c8cc8ab9ef3065f4325ed52b9eacd
Merge: 876d050 e10ba1a
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Thu Feb 3 19:14:23 2011 -0800

    Merge branch '2.6.next' into 2.6.x
    
    * 2.6.next:
      (#6018) Nick F's --help text for puppet inspect.
      (#5823) document the not-an-API status of set_run_mode
      (#5823) run mode can now be set dynamically...
      (6114) Update the audit metaparameter for 2.6.5.
      Fix for #5755 -- making zaml serialization robust over projected objects
      (#4139) hook log autoflush into global defaults

commit e10ba1ab720cb62b39b430104a55a987f4c37f31
Merge: c469f99 ac8d316
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Feb 3 17:22:43 2011 -0800

    Merge branch 'bug/2.6.next/5755-gc-issue' into 2.6.next
    
    * bug/2.6.next/5755-gc-issue:
      Fix for #5755 -- making zaml serialization robust over projected objects

commit d64f4a9024d738d9184f822f1d26e404a403d256
Merge: dd68914 adc9244
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Feb 3 17:17:53 2011 -0800

    Merge branch 'feature/next/2597-better-cycle-reporting' into next

commit adc9244ecf4bfb59a98a2dd5472b03f685b6303e
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Jan 27 00:02:52 2011 -0800

    Feature #2597 -- generate a DOT graph of cycles on request.
    
    When the '--graph' option is specified, generate a new 'cycles.dot' file and
    report the location of that to the user.  This contains only the cycles, in
    dot format, allowing a visual representation of the cycle to be obtained
    quickly.
    
    This will include up to 10 paths through the cycle in the graph, and only one
    in the display to the user, to reduce information overload.

commit dd68914eb25d8dd9aac5c8ced39fa0d05136ed9f
Merge: ea34876 3f2f1c2
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 16:47:51 2011 -0800

    Merge branch 'maint/2.6.next/help' into next

commit 2cf45283d7eea90461f1c9606af710bf5645076a
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 24 22:23:41 2011 -0800

    Feature #2597 -- eliminate OpenStruct for performance...
    
    A bit of profiling shows that most of the time spent in clustering is spent
    trolling around through OpenStruct.  Replacing this with a hash or, where
    sane, an array for the stack frame in our non-recursive implementations makes
    performance significantly faster.  (3 seconds to .65 seconds faster.)
    
    I guess those developer niceties do have some cost after all.  Better to take
    the hit on readability and prefer performance here.

commit 9584cda2a529cdcf06d766692f5749c775ad7d14
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 24 21:56:18 2011 -0800

    Feature #2597 -- use O(1) methods as often as possible.
    
    This uses a separate hash and array to track the visited path and the seen
    vertex data; while that is less efficient than using a single data structure,
    it avoids on O(n) operation on the stack to determine if we have previously
    visited a vertex.

commit d302628f9dc5a5406acabb272ba13ad1b1efe7ff
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 24 21:40:49 2011 -0800

    Feature #2597 -- improve names and whitespace in the code.
    
    This renames a few cryptic variables to have more human-friendly names, and
    aligns a bit of whitespace; there are no functional changes in the code.

commit 9ea74ccd8c875f0d222874746f6b904883faf1d1
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sun Jan 23 23:31:44 2011 -0800

    Feature #2597 -- report all paths in each cycle found.
    
    Rather than reporting the cluster of vertexes in the dependency graph, which
    is interesting but not entirely informative, we now calculate and report the
    paths through the graph that form cycles.
    
    This returns the most useful information, which is the exact path that the
    dependency cycle has, allowing the user to (hopefully) immediately target it
    and start to work out why the cycle has formed there.
    
    We strongly prefer short paths through the dependency graph within the cycle,
    which should report the most useful loops to target first; extended loops
    involving more items will show up later if they are independently created.
    
    We also limit the number of paths reported (default: 10) to avoid overwhelming
    the error report with the combinatorial explosion that can easily result
    from a large scale cycle.  (eg: Package => User => Package or something.)

commit e30fd8f3a4179551abbd11456d937eaa7f816545
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sun Jan 23 09:51:48 2011 -0800

    Feature #2597 -- remove obsolete licensing comment...
    
    The header at the top of the file is long obsolete; simple_graph.rb is
    licensed under the GPLv2 like the rest of puppet.  Removed.

commit f547118462cac124dc826ad96d00574711f1d3cd
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sun Jan 23 00:05:11 2011 -0800

    Feature #2597 -- use iterative DFS in Tarjan clustering.
    
    In order to bypass the limitations of the C stack, which is also the Ruby
    stack, we replace the simple and clear recursive Trajan implementation with an
    iterative version that uses the heap as the stack.
    
    This is somewhat harder to read, but can now run a 10,000 vertex deep linear
    dependency relationship where, previously, 1,250 was about the limit on my
    machine.
    
    This should now be bounded by the size of the heap rather than the stack on
    all platforms -- though it would be nice to get rid of the magic and return to
    the recursive version if Ruby ever follows Perl down the sensible path of
    essentially unlimited recursion by writing that code for us in the
    interpreter...

commit 34a57b846319f2962f78b161cd80b15f491e1086
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Sat Jan 22 21:41:52 2011 -0800

    Feature #2597 -- really find and report cycles.
    
    This implements Tarjan's algorithm for finding strongly connected components
    in a directed graph, and leverages that to find cycles.
    
    This allows us to report the minimum set of nodes in each cycle, as well as
    reporting each cycle discretely if there are multiple of them.
    
    While this can still produce overwhelming and/or unhelpful output, it
    represents a large step forward in delivering useful information when a cycle
    is detected.
    
    This presently reports the set of nodes that contain the cycle, in no
    particular order, rather than the set of edges connecting those nodes.
    
    Sadly, it also suffers a limitation: the implementation of Tarjan's algorithm
    used to find strongly connected components is recursive, so is limited by the
    maximum Ruby stack depth to dependency chains less than 1,000 nodes deep.
    
    While this is probably not a limit in practice, it is a nasty limitation, and
    other considerations (like Ruby stack consumption across versions) could
    trigger this much sooner than is desirable.

commit 403adb8af42cc79701b5ff47b377e7dc1e192a34
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Jan 21 23:53:56 2011 -0800

    Feature #2597 -- nicer reporting of relationships.
    
    Split out the reporting from a single line (often with literally hundreds or
    thousands of items) into a multi-line report.  This is still nasty, but at
    least it is easier to use as input to other systems.
    
    This will also auto-join to a single line when sent to targets such as syslog
    that do not approve of newlines in messages; this preserves the utility of the
    message without needing to lose console utility.

commit 1ad6470e3df59caf67c484ef4e43274314c0bc40
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Jan 21 23:32:40 2011 -0800

    Feature #2597 -- fix cycle relationship notification format.
    
    The SimpleGraph class was reporting duplicate data when printing cycles:
    
        Notify[c]Notify[c] => Notify[d]
        Notify[a]Notify[a] => Notify[b]
    
    This was caused by throwing the array representation of the edge into a
    string, rather than just the relationship data; we only care about the later,
    so now we only emit that later and have the correct text in the error.

commit 3f2f1c2456cf5f08bd67ab5730ab970be5285711
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 16:02:46 2011 -0800

    Maint: move puppet resource --help

commit 82e004f810b0e578c39c605237e9a99fd7d2d3d1
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 15:52:16 2011 -0800

    Maint: move puppet kick --help

commit 95fc38c1a06cddbc8de9e308b6abc4ada65671c6
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 15:50:06 2011 -0800

    Maint: move puppet queue --help

commit a041e194c41febe752ee39ba5d26291a775ecb5f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 15:45:53 2011 -0800

    Maint: move puppet doc --help

commit 7568b780702d53beabc3fba3017c4c70179aafd7
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 15:43:54 2011 -0800

    Maint: move puppet cert --help

commit 9fdd66b3b481e658c8951530b90ca4dd4707fcf0
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 15:17:13 2011 -0800

    Maint: move puppet apply --help

commit c61d6d0c133ba185bf63884b9e513df5234211cf
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 15:14:51 2011 -0800

    Maint: move puppet describe --help

commit ae78264c8c3cd8ec38128b13c265a07faa0eaa84
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 15:12:55 2011 -0800

    Maint: move puppet filebucket --help

commit fc66e576b7bfc08ad9460d05702ad8750045fa07
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 15:00:46 2011 -0800

    Maint: move puppet master --help

commit 9b521d70695b32e251fa636a73dfbc9ce6942f7a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 14:58:38 2011 -0800

    Maint: move puppet agent --help

commit 8d569b36ec9ba30043b394a02e3f9fecf08068ce
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 14:48:54 2011 -0800

    Maint: remove puts and exit from inspect --help

commit e1191f33defcaffec5900c7122a89ca75d3a9673
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 16:10:49 2011 -0800

    Maint: remove rdoc/usage dependency

commit c469f99301563c899dcca43e81ae14a8580931fc
Merge: 69600be f108f03
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 16:39:48 2011 -0800

    Merge branch 'docs/2.6.next/inspect-help' into 2.6.next

commit f108f0330623f643343709b29921608b6c76874a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Feb 3 14:48:54 2011 -0800

    (#6018) Nick F's --help text for puppet inspect.

commit 69600bea8a5cc30162d6f07f5e2fc1b701081a8a
Merge: 7a06140 04ea826
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Feb 3 16:21:51 2011 -0800

    Merge branch 'bug/2.6.next/5823-allow-run-mode-to-cut-your-hand-off' into 2.6.next

commit 04ea8269e70e9c1f81394ac6da2b48dcfb49b1d5
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 3 16:19:03 2011 -0800

    (#5823) document the not-an-API status of set_run_mode
    
    Since this is totally not API, document that in big, threatening letters so
    that folks actually know what is going on.  Include promises so they don't
    feel too unhappy with us.
    
    Paired-with: matt@puppetlabs.com

commit 7a061409bd0490e5a9ef11a68260deb4f6e3b7ab
Merge: 81876a6 4ff5769
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Feb 3 15:42:10 2011 -0800

    Merge branch 'bug/2.6.next/5823-allow-run-mode-to-cut-your-hand-off' into 2.6.next

commit 4ff5769119aefafa33e05449ebcfac78ba0c0fe0
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 3 15:36:50 2011 -0800

    (#5823) run mode can now be set dynamically...
    
    Third party scripts, and complex command line tools, depend on being able to
    configure the run_mode value at runtime, not just when they fire up.
    
    For better or worse we used to allow this sort of thing to work, but stopped,
    and we have no sane, safe and consensual alternative, so we broke a bunch of
    client code.
    
    This enables the feature again, but does not add any safety catch; you can now
    happily slice off your own feet with this, if you really want to.

commit 81876a6afd75686ac7abde7cd9e519ef6de79d35
Merge: 0502c55 bddfa1e
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Feb 3 15:34:02 2011 -0800

    Merge branch 'ticket/2.6.next/6114' into 2.6.next

commit bddfa1e22d8db53a16f71759a2d9c690bfc00417
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Feb 3 13:42:46 2011 -0800

    (6114) Update the audit metaparameter for 2.6.5.
    
    The audit metaparameter has some new behavior, its old behavior has changed, and the previous description was incomplete at any rate. This patch replaces its description string.

commit ac8d316a08cffd951a883936a9966388ca3e54ee
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Feb 2 14:12:45 2011 -0800

    Fix for #5755 -- making zaml serialization robust over projected objects
    
    The core problem arose when the fix for #5048 in 31118fe85aca4 introduced a
    hook to replace objects dynamically durring serialization so that they could be
    projected / rewritten to a different form for backward compatability.  The
    serialization code assumed that all objects being serialized would remain valid
    until the serialization was complete, but nothing retained a copy of the
    temporary objects created in the hook.
    
    To resolve this, the serialization layer now maintains a ref to each such object
    and clears them (to allow GC) after serialization is complete.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>
    Paired-with: Paul Berry <paul@puppetlabs.com>

commit 0502c557cbe8dc0d039e05ff5940a9e3b7e5c150
Merge: 876d050 c912a2a
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Thu Feb 3 14:25:46 2011 -0800

    Merge branch 'bug/2.6.next/4139-autoflush-doesn't' into 2.6.next

commit c912a2af2f63f505a493137d4ff0b88bc3754cda
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Thu Feb 3 13:46:08 2011 -0800

    (#4139) hook log autoflush into global defaults
    
    We previously had an ordering dependency in the autoflush option, which was
    statically read from defaults when the log destination was configured.
    
    We add a hook in the defaults to update the log subsystem, which in turn
    updates log destinations, when autoflush is changed.
    
    This would work as desired:
      puppet agent --autoflush --logdest=file
    
    This would not work, as autoflush would be false:
      puppet agent --logdest=file --autoflush
    
    Now those changes propagate correctly.
    
    Paired-with: matt@puppetlabs.com

commit ea348761df0b5297dbac50c7f1c48d22746524fa
Merge: be40abf d4a4685
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Feb 2 16:48:43 2011 -0800

    Merge branch 'next'
    
    * next: (46 commits)
      Augmentation of tests for prior commit
      Fix to fix for #5755 -- backref serialization issues in zaml
      Fixed #5564 - Added some more fqdn_rand documentation
      Fixed #4968 - Updated list of options turned on by --test in documentation
      (#5061) - allow special hostclass/define variables to be evaluated as defaults.
      (#6107) Fix an error when auditing a file with empty content
      Remove already initialized constant warning from file_spec.rb tests
      (#5566) Treat source only File checksums as syntax errors when used with content
      Rename variable used in File type validation to be more clear
      Remove invalid "timestamp" and "time", and add missing "ctime" File checksum types.
      Remove order dependency when specifying source and checksum on File type
      Bug #5755 -- ZAML generates extra newline in some hash backreferences.
      bug #5681 -- code fix to handle AIX mount output
      Bug #5681 -- parse AIX mount command output.
      Spec for #5681 to allow parsing of AIX mount output in mount provider
      Fixed #6091 - Changed POSIX path matching to allow multiple leading slashes
      Bug #6091 -- test leading double-slash in filenames are allowed.
      Fixed #6071 - Fixed typo and improved exec path error message
      Fixed #6061 - Allowed -1 as password min/max age
      Bug #6061 -- verify that negative {min,max}_password_age are accepted.
      ...

commit d4a468543f1f06d44efdb7e375284b0e65260caf
Merge: 6d9cae2 876d050
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Feb 2 16:47:53 2011 -0800

    Merge branch '2.6.x' into next
    
    * 2.6.x: (46 commits)
      Augmentation of tests for prior commit
      Fix to fix for #5755 -- backref serialization issues in zaml
      Fixed #5564 - Added some more fqdn_rand documentation
      Fixed #4968 - Updated list of options turned on by --test in documentation
      (#5061) - allow special hostclass/define variables to be evaluated as defaults.
      (#6107) Fix an error when auditing a file with empty content
      Remove already initialized constant warning from file_spec.rb tests
      (#5566) Treat source only File checksums as syntax errors when used with content
      Rename variable used in File type validation to be more clear
      Remove invalid "timestamp" and "time", and add missing "ctime" File checksum types.
      Remove order dependency when specifying source and checksum on File type
      Bug #5755 -- ZAML generates extra newline in some hash backreferences.
      bug #5681 -- code fix to handle AIX mount output
      Bug #5681 -- parse AIX mount command output.
      Spec for #5681 to allow parsing of AIX mount output in mount provider
      Fixed #6091 - Changed POSIX path matching to allow multiple leading slashes
      Bug #6091 -- test leading double-slash in filenames are allowed.
      Fixed #6071 - Fixed typo and improved exec path error message
      Fixed #6061 - Allowed -1 as password min/max age
      Bug #6061 -- verify that negative {min,max}_password_age are accepted.
      ...
    
    Manually Resolved Conflicts:
    	lib/puppet/util/zaml.rb
    	spec/unit/util/zaml_spec.rb

commit 876d0503dd93329a73e7f335c10a47330d745293
Merge: 517c679 2a94c61
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Feb 2 16:18:22 2011 -0800

    Merge branch '2.6.next' into 2.6.x
    
    * 2.6.next: (46 commits)
      Augmentation of tests for prior commit
      Fix to fix for #5755 -- backref serialization issues in zaml
      Fixed #5564 - Added some more fqdn_rand documentation
      Fixed #4968 - Updated list of options turned on by --test in documentation
      (#5061) - allow special hostclass/define variables to be evaluated as defaults.
      (#6107) Fix an error when auditing a file with empty content
      Remove already initialized constant warning from file_spec.rb tests
      (#5566) Treat source only File checksums as syntax errors when used with content
      Rename variable used in File type validation to be more clear
      Remove invalid "timestamp" and "time", and add missing "ctime" File checksum types.
      Remove order dependency when specifying source and checksum on File type
      Bug #5755 -- ZAML generates extra newline in some hash backreferences.
      bug #5681 -- code fix to handle AIX mount output
      Bug #5681 -- parse AIX mount command output.
      Spec for #5681 to allow parsing of AIX mount output in mount provider
      Fixed #6091 - Changed POSIX path matching to allow multiple leading slashes
      Bug #6091 -- test leading double-slash in filenames are allowed.
      Fixed #6071 - Fixed typo and improved exec path error message
      Fixed #6061 - Allowed -1 as password min/max age
      Bug #6061 -- verify that negative {min,max}_password_age are accepted.
      ...

commit 2a94c61e6c94b1167ea7b858dc184f9f77a7bfc5
Merge: 07edcf7 ed13599
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Feb 1 17:57:06 2011 -0800

    Merge branch '2.6.next' of git://github.com/puppetlabs/puppet into 2.6.next

commit 07edcf716b2f90fb830053b207fe5dc7efcff1f3
Merge: adb8c79 f9e2e2b
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Feb 1 17:56:09 2011 -0800

    Merge branch 'bug/2.6.next/5755-yaml-backrefs' into 2.6.next

commit f9e2e2b7d76ec88d7ad2ed0ce663b4219b72bc96
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Feb 1 17:54:24 2011 -0800

    Augmentation of tests for prior commit
    
    There is no good answer to tests that depend on the order of itteration over hashes.

commit ed1359902d14a0ca89dac5debee756209b0bd433
Merge: 526335c 87c5c30
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Feb 1 17:23:23 2011 -0800

    Merge remote branch 'bodepd/feature/2.6.4/5910' into 2.6.next
    
    * bodepd/feature/2.6.4/5910:
      (#5910) Improved logging when declared classes cannot be found:

commit 526335cff0f47c1efc25ffda535e2ead10f10fac
Merge: c677f5b c1b5c7f
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 1 17:07:58 2011 -0800

    Merge branch 'ticket/2.6.x/5913' of git://github.com/mitchellh/puppet into 2.6.next
    
    * 'ticket/2.6.x/5913' of git://github.com/mitchellh/puppet:
      (#5913) Fix Puppet::Application.find constant lookup behavior

commit c677f5bd4bb18ec93b82d8f39f317dd40963c2cc
Merge: 9b064e6 66b442b
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Feb 1 16:59:23 2011 -0800

    Merge remote branch 'james/tickets/2.6.x/5916' into 2.6.next

commit 9b064e655f90bb5aa2f95e343e9c22765ddf4998
Merge: 9a7a39b ae48634
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Feb 1 16:55:40 2011 -0800

    Merge remote branch 'james/tickets/2.6.x/5914' into 2.6.next

commit 9a7a39b3f9302b912e15fd77b4e18662e83089e4
Merge: 9d45235 1bfc9a0
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 1 16:48:33 2011 -0800

    Merge remote branch 'jamtur01/tickets/2.6.x/6071' into 2.6.next
    
    * jamtur01/tickets/2.6.x/6071:
      Fixed #6071 - Fixed typo and improved exec path error message

commit 392504a1eb49820711fe605e795fff897b5f5fcf
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Feb 1 16:48:09 2011 -0800

    Fix to fix for #5755 -- backref serialization issues in zaml
    
    This commit addresses the original issue that the change reverted in the previous
    commit for #5755 was intended to fix by removing the special case on labels in
    emit (lables, even if they are never generated, are not "new lines" and thus
    @recent_nl should always be set to false when one is emitted).
    
    It also partially addresses a related issue wherein temporary strings generated
    when field names are constructed recycle their object_id (they are temporary)
    and thus cause incorrect back references.  This commit "fixes" the problem by
    never generating backrefs to strings (treating them as immutable).
    
    It does not address other suspected issues such as thread safety durring serialization
    due to the use of class variables to store the seen-object hash or the use of object
    ids as "permanently unique" identifiers.
    
    Paired with: Daniel Pittman
    Advice & Commiseration: Jesse Wolfe

commit 9d452353f887fcd3c916db970eda4a67971eb4f3
Merge: bc6a4ef a732a15
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Feb 1 16:47:10 2011 -0800

    Merge branch 'tickets/2.6.x/5564' into 2.6.next
    
    * tickets/2.6.x/5564:
      Fixed #5564 - Added some more fqdn_rand documentation

commit bc6a4ef9a15db4a1f01e3fe4770789e48b827608
Merge: 54f8698 dd332f6
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Feb 1 16:44:49 2011 -0800

    Merge remote branch 'james/tickets/2.6.x/6002' into 2.6.next

commit a732a15a0fd43ce983474cae4c298a9bbd86329f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Dec 15 23:39:12 2010 +1100

    Fixed #5564 - Added some more fqdn_rand documentation
    
    Reviewed-by: Paul Berry <paul@puppetlabs.com>

commit 54f8698fba2cc7643f7e5b196584a484615d8d28
Merge: c4da5fc 9b74968
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 1 16:34:32 2011 -0800

    Merge remote branch 'jamtur01/tickets/2.6.x/5736' into 2.6.next
    
    * jamtur01/tickets/2.6.x/5736:
      Modified rubydoc in lib/puppet/util/command_line/puppetca to fix inaccurate description of --clean.

commit c4da5fcb0ef75f2baaffad5c84b3cfe6889dc58c
Merge: f341414 4d1b51f
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Feb 1 16:31:54 2011 -0800

    Merge branch 'tickets/2.6.x/5167' into 2.6.next
    
    * tickets/2.6.x/5167:
      Fixed #5167 - misleading documentation in the defaults of [main]

commit adb8c7994ea7d2d30aaea698fbe08727ed553fef
Merge: 517c679 443eba9
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Feb 1 16:22:06 2011 -0800

    Merge branch '2.6.next' of git://github.com/puppetlabs/puppet into 2.6.next

commit f34141477244564f31edde503a19b9fb898d986f
Merge: 443eba9 e58f5dc
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Feb 1 16:21:55 2011 -0800

    Merge remote branch 'james/tickets/2.6.x/5742' into 2.6.next

commit 443eba9b7a85cffa6b8513a32a620c80917be768
Merge: 2d4fb3a 7e7f342
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 1 16:17:31 2011 -0800

    Merge remote branch 'jamtur01/tickets/2.6.x/1657' into 2.6.next
    
    * jamtur01/tickets/2.6.x/1657:
      Fixed #1657 - Added note about target file

commit 2d4fb3a609f30d3f974b169ff9428672dd96ddd0
Merge: 90f84fd 70630b9
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Feb 1 16:13:49 2011 -0800

    Merge branch 'ticket/2.6.next/3165' into 2.6.next
    
    * ticket/2.6.next/3165:
      Fix #3165 Ralsh (bin/puppet resource) can't manage files

commit 90f84fd613c6128ecc786fd40269f043474df1c5
Merge: b29f864 f279f2c
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 1 16:05:51 2011 -0800

    Merge commit 'f279f2c24ad1c87940eca3592f4c6e2f5676c694' into 2.6.next
    
    * commit 'f279f2c24ad1c87940eca3592f4c6e2f5676c694':
      Fixed #4968 - Updated list of options turned on by --test in documentation

commit f279f2c24ad1c87940eca3592f4c6e2f5676c694
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 17 11:21:02 2011 +1100

    Fixed #4968 - Updated list of options turned on by --test in documentation
    
    Reviewed-by: Jacob Helwig <jacob@puppetlabs.com>
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit b29f86487581d89016b63f5f7780b15d2ec8573e
Merge: 8460121 ce5a2bf
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Feb 1 16:00:17 2011 -0800

    Merge branch 'feature/master/5061' into 2.6.next
    
    * feature/master/5061:
      (#5061) - allow special hostclass/define variables to be evaluated as defaults.

commit 846012158d08fbfbfb83d66652788a46e4eaf2c6
Merge: 9550a88 3cfbd07
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Feb 1 15:53:49 2011 -0800

    Merge branch 'ticket/2.6.next/5045' into 2.6.next
    
    * ticket/2.6.next/5045:
      (#5045) Cleaning up some tests and code
      (#5045) External node classifiers should be able to specify params for classes
      (#5045) Adds support to resource/type to also accept a param hash

commit 9550a884b7910b9863a230bcb166b5d805cbb06f
Merge: 1ab9bd8 069f29b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Feb 1 15:51:30 2011 -0800

    Merge branch 'tickets/2.6.x/2096' into 2.6.next
    
    * tickets/2.6.x/2096:
      Fixed #2096 - clarified option modification and tested it is working

commit ce5a2bf3ba66d5ce723a6887580b008e8ba4104b
Author: Dan Bode <bodepd@gmail.com>
Date:   Sun Oct 24 00:49:03 2010 -0500

    (#5061) - allow special hostclass/define variables to be evaluated as defaults.
    
    I have always been annoyed that special variables for defines and hostclasses can not be evaluated as param defaults. Special variables are: $name, $title, $module_name.
    
    Code example:
    class x (
      foo = $name
      ) { notice($foo)}
    
    should print x, and with my patch, it does.
    
    Reviewed-by: Paul Berry <paul@puppetlabs.com>

commit 1ab9bd833237c7cf2036989a58a1b22d3cc49a5b
Merge: 8625dc9 fd73874
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Feb 1 15:36:34 2011 -0800

    Merge branch 'ticket/2.6.next/6107' into 2.6.next
    
    * ticket/2.6.next/6107:
      (#6107) Fix an error when auditing a file with empty content

commit fd73874147a1aaa3a047f904a0bc1ae67780a2e4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Feb 1 15:30:28 2011 -0800

    (#6107) Fix an error when auditing a file with empty content
    
    The manifest:
    
    file { "/tmp/foo" :
      ensure => present,
      audit => content,
    }
    
    produced the error:
    
    err: /Stage[main]//File[/tmp/foo]/ensure: change from absent to present
    failed: Could not retrieve content for from filebucket: private method `sub' called for nil:NilClass at
    /Users/matthewrobinson/work/puppet/test.pp:4
    
    This was due to logic in content assuming that if you didn't specify
    content while you were auditing it you must have specified a source.
    
    The code paths in the file type badly need a cleanup so that these sorts
    of errors aren't so difficult to track down and things are easier to
    test.
    
    Paired-with: Daniel Pittman

commit 8625dc960776bcf43e3c4910dcdf35fa39febea1
Merge: c78d5d1 530496b
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 1 15:23:52 2011 -0800

    Merge branch 'issues/2.6.next/5566' into 2.6.next
    
    * issues/2.6.next/5566:
      Remove already initialized constant warning from file_spec.rb tests

commit 530496b00d488da72b1e4e08806ccae27bee012a
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 1 15:18:00 2011 -0800

    Remove already initialized constant warning from file_spec.rb tests
    
    rspec pulls constants from the implementation into the test, so we don't
    need to redefine it.
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit c78d5d1f671167260753fc0ea6b1bbd3212c6f8b
Merge: 1a78484 76788f8
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 1 15:00:35 2011 -0800

    Merge branch 'issues/2.6.next/5566' into 2.6.next
    
    * issues/2.6.next/5566:
      (#5566) Treat source only File checksums as syntax errors when used with content
      Rename variable used in File type validation to be more clear
      Remove invalid "timestamp" and "time", and add missing "ctime" File checksum types.
      Remove order dependency when specifying source and checksum on File type

commit 76788f80aab15e5ef6487788132b87ecc6ddd9ac
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 1 14:43:47 2011 -0800

    (#5566) Treat source only File checksums as syntax errors when used with content
    
    Certain checksum types (ctime, mtime) only make sense when used with the
    'source' File parameter, since there is no way to check them on raw
    strings.
    
    Given the limitations of the current checksumming implementations, it is
    likely to introduce unexpected behavior when using the 'none' checksum
    type and either one of the 'source', and 'content' File parameters.
    Because of this, it is now a syntax error to use a checksum of 'none' with
    either parameter.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit d6572921832cc0df22e13d55c3bc090b74155b91
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 1 14:55:25 2011 -0800

    Rename variable used in File type validation to be more clear
    
    The 'count' variable is used to keep track of how many 'creator'
    parameters are set on the Type in order to raise an exception if this is
    greater than one.  Be explicit about this.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 3398139f29d26c337476ee36c63d07080c442058
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 1 14:40:21 2011 -0800

    Remove invalid "timestamp" and "time", and add missing "ctime" File checksum types.
    
    'timestamp', and 'time' have been invalid since well before 2.6.0, so do
    not add them to the list of valid checksum types.
    
    'ctime' was missing from the list of valid checksum types, so add it.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 6c93eb2c142e346077c49ef78a5fcf675eeb2698
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Feb 1 14:37:34 2011 -0800

    Remove order dependency when specifying source and checksum on File type
    
    If source was specified after setting the checksum, it would cause the
    checksum to be set back to :md5.  This was completely unnecessary, because
    the checksum has its own default of :md5.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 1a78484a0d687914c146456f79aad857c5d243a0
Merge: f135a64 1fd3600
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Feb 1 14:25:47 2011 -0800

    Merge remote branch 'jamtur01/tickets/2.6.x/3646' into 2.6.next
    
    * jamtur01/tickets/2.6.x/3646:
      Fixed #3646 - Added documentation for compile and apply to man page

commit f135a6436084629d47c6b3b590dadb14952e4d69
Merge: 5bba59a 3a125d4
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jan 31 17:08:29 2011 -0800

    Merge branch 'bug/2.6.next/5755' into 2.6.next

commit 3a125d486ba4555796840a93a01ca5055eb9e157
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 31 16:00:37 2011 -0800

    Bug #5755 -- ZAML generates extra newline in some hash backreferences.
    
    This data structure generates YAML with an extra newline that violates the
    syntax rules and all:
    
      list = [1]
      { :a => list, :b => list }.to_yaml
    
    This breaks real client use of the YAML catalogs, not to mention our own use
    of cached catalogs...

commit 5bba59a7126e150e0e1e671d331878f4a00e2b2b
Merge: 8de9b9a 50c12e5
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jan 31 14:06:10 2011 -0800

    Merge branch 'bug/2.6.next/5681-aix-mount-output' into 2.6.next

commit 50c12e55b6f8462f6904ae061e661d1d10c7590a
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Jan 31 14:03:16 2011 -0800

    bug #5681 -- code fix to handle AIX mount output
    
    Making a simplified fix to find mount name in AIX mount command output.

commit 139760bfa7d79464d5ee092ff4e952138a29b760
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 31 14:00:33 2011 -0800

    Bug #5681 -- parse AIX mount command output.
    
    - 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

commit 2f74d83f22e05564a136c08dd0cc73dcd700f214
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Jan 31 13:53:27 2011 -0800

    Spec for #5681 to allow parsing of AIX mount output in mount provider
    
    This also adds a fixture file containing the AIX mount output as submitted by the
    ticket author.

commit 8de9b9aeadcee490065aeb34663ca22c513fd2e4
Merge: 95ebc00 878f266
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Mon Jan 31 11:10:39 2011 -0800

    Merge branch 'bug/2.6.next/6091-multiple-slashes-in-path-are-legal' into 2.6.next

commit 878f266fbf8979bcfeab9faef308816fd4a54c50
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 1 04:55:26 2011 +1100

    Fixed #6091 - Changed POSIX path matching to allow multiple leading slashes
    
    According to
    http://pubs.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap03.html#tag_03_266:
    
    "Multiple successive slashes are considered to be the same as one
    slash.", so '//tmp/xxx' is a valid POSIX pathname.
    
    Thomas Bellman adds:
    
      You should probably read section 3.2 then as well:
    
         3.2 Absolute Pathname
    
         A pathname beginning with a single or more than two slashes;
         see also Pathname.
    
      Note that a pathname starting with exactly two slashes is *not*
      an absolute pathname according to Posix.  And 4.11 (Pathname
      Resolution) says:
    
         A pathname that begins with two successive slashes may be
         interpreted in an implementation-defined manner, although
         more than two leading slashes shall be treated as a single
         slash.
    
      Posix has this rule to accomodate DomainOS, which was a Unix-
      like OS from Apollo, where paths on the form "//foo/bar/gazonk"
      meant the file "/bar/gazonk" on the machine named "foo".  You may
      recognize this format from URLs, or MS Windows SMB paths (with
      backslashes instead of forward slashes).
    
    This ignores that complication, since none of our supported platforms treat
    the '//' form as significant.
    
    Signed-off-by: James Turnbull <james@lovedthanlost.net>
    Signed-off-by: Daniel Pittman <daniel@puppetlabs.com>
    Signed-off-by: Rick Bradley <rick@rickbradley.com>

commit eb97aa5f7cbf3800a22849f29fad555b0ca042d9
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Mon Jan 31 10:50:00 2011 -0800

    Bug #6091 -- test leading double-slash in filenames are allowed.
    
    They presently are not; this ensures that we verify that before merging a
    change that fixes bugs in the area.

commit 025768fc69de268b3c01526a138f54dc5778b9c8
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sun Jan 30 17:34:00 2011 -0800

    Adding license and readme file
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 809aebec7a54be90990b9ee5fea1f85204598f17
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sun Jan 30 17:33:28 2011 -0800

    Moving data executables to their own module
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit d6e4ffeb069686050b0ad1db544389be40e39b57
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jan 30 20:34:27 2011 +0100

    (#4914) Specs for mounted? match new behaviour
    
    The question if a filesystem is mounted or not can be answered without
    calling mount and the specs have to reflect that.

commit 1bfc9a0314c3b6247a3a1e4689c80997d343b2dc
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jan 30 03:32:49 2011 +1100

    Fixed #6071 - Fixed typo and improved exec path error message

commit 95ebc00c4a529c88301b26e1b0c6ecfc3a0cf67f
Merge: 1dc6b42 c50a48e
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Fri Jan 28 14:55:17 2011 -0800

    Merge branch 'bug/2.6.next/6061-password-max-age' into 2.6.next

commit c50a48edb19e80d48019b19d852665411d6222e7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jan 29 04:03:21 2011 +1100

    Fixed #6061 - Allowed -1 as password min/max age
    
    This allows setting disabling password aging on Linux and Solaris
    
    Signed-off-by: James Turnbull <james@lovedthanlost.net>

commit bf44e72b19187dbb4bc696ba8e1b3bc872c32d46
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Jan 28 14:52:04 2011 -0800

    Bug #6061 -- verify that negative {min,max}_password_age are accepted.
    
    Setting the age value to -1 will disable the specific aging value; we should
    accept that, but continue to reject null or empty values as invalid.
    
    Add tests to verify that this code enforces as expected.

commit 1dc6b42d5dbaf0ca2ad1b1e9dd2a5788bcdb643d
Merge: 3478190 af1c1fe
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Wed Jan 26 00:15:34 2011 -0800

    Merge branch 'bug/2.6.next/5855-freebsd-withenv' into 2.6.next

commit af1c1febd6ae4accf840279539855592705878bf
Author: fredrik-eriksson <fredrik.eriksson@loopia.se>
Date:   Tue Jan 25 09:27:54 2011 +0100

    Feature #5855 -- fix withenv call in freebsd package provider
    
    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>

commit d8716416746b4a88c05fa9583a08ba9b5b624787
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Wed Jan 26 00:13:47 2011 -0800

    Feature #5855 -- undefined method 'withenv' in FreeBSD package provider.
    
    The FreeBSD package provider fails to install when any source is given,
    yielding instead an 'undefined method' error.  This adds tests that prove the
    bug exists.

commit 3478190ce9b8f28c0e36c8102342471eda2ca446
Merge: 682f12a f1ab588
Author: Daniel Pittman <daniel@puppetlabs.com>
Date:   Tue Jan 25 22:17:21 2011 -0800

    Merge branch 'bug/2.6.next/6009' into 2.6.next

commit f1ab58839b5fc2d311b2c2656e480fb563acd03f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 26 08:54:55 2011 +1100

    Fixed #6009 - nested member list vs directory service group provider
    
    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>

commit 682f12a91fcfcf01a243e886e9ccad7f1f3780ee
Merge: e0eaf3a 86a2a00
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jan 25 17:57:13 2011 -0800

    Merge branch 'ticket/2.6.next/5944' into 2.6.next

commit 86a2a0031fdad032003d053244a3baa04c8f2b81
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jan 25 17:50:17 2011 -0800

    (#5944) Remove documentation of define() when used on nodes, as it is not a supported use of this function.
    
    Final patch in this series reviewed by Dan Bode.

commit 2b9f6535d46eecd60d8997e93dd2b7533b9e5e71
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jan 25 17:09:25 2011 -0800

    (#5944) Further edits of inline defined() documentation.
    
    Fixing use of define/declare; editing for clarity.

commit 5d108e8007b76ce62f13c99ed1caedcc0f69c37c
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Fri Jan 21 17:21:03 2011 -0800

    (#5944) Improve documentation of defined() function
    
    The differences in the way defined() handles different types of entities weren't well-explained. Documentation was also added for the behavior of defined(Node["somenode.domain.com"]).

commit e0eaf3a40d1c38ef22ccd4ed43f66f9936c71a88
Merge: f4e002e 7d38ab2
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jan 25 15:55:23 2011 -0800

    Merge branch 'ticket/2.6.next/5594' into 2.6.next

commit 7d38ab24fa3740ef53510db143f34ac271aced2d
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Wed Jan 19 16:59:53 2011 -0800

    (#5594) Update documentation of exec resource type.
    
    The exec resource doc referred to duplicate names being allowed, which stopped being true in 0.24.2.
    Reviewed by Matt Robinson.

commit f4e002eee99f23aa5da28e38a867daad3a56786b
Merge: 6075f8f 67e1bba
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Jan 25 15:17:12 2011 -0800

    Merge branch 'ticket/2.6.next/5931' into 2.6.next
    
    * ticket/2.6.next/5931:
      (#5931) Prevent errors when calling insync? on audited properties
      Maint: Removed dead code from resource harness.
      Maint: Rename misleading insync? method in file provider

commit 67e1bba154accd900b9690d96cec8b050f8082e7
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Jan 25 14:34:28 2011 -0800

    (#5931) Prevent errors when calling insync? on audited properties
    
    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>

commit 0f9d23617e4115166d6b9e004332dcdf5eccc924
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Jan 25 14:05:47 2011 -0800

    Maint: Removed dead code from resource harness.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 0765afbd2459a60f5ded89a4c34a3bcb3c560399
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Jan 25 14:03:14 2011 -0800

    Maint: Rename misleading insync? method in file provider
    
    This method actually checks whether the file owner is in sync.
    Renamed to is_owner_insync?
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 6075f8fd98b02810f86609566993c7eb182607f7
Merge: 41090d3 0084b08
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Tue Jan 25 15:06:18 2011 -0800

    Merge branch 'ticket/2.6.next/5548' into 2.6.next

commit 0084b082df016ad87752ef570cfe50bce0f6048e
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Mon Jan 24 13:47:53 2011 -0800

    (#5548) Specify return values of manual status commands in service type description.
    
    Reviewed by Matt Robinson.

commit f534470221fb97f2d25700f01c3f8c43aef73c26
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Tue Jan 25 20:45:54 2011 +0100

    (#4914) Add specs for modified mount provider
    
    Change specs
    - No need to call flush before mounting (explicitly),
      because the type and syncothers will to that for us
    - Add tests regarding the prefetched mount status

commit b7530389788effce9705e34c75aab5aad1ad5ee6
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jan 23 16:55:19 2011 +0100

    (#4914) Add specs for modified mount type

commit 9f4060860a3e8247d95696ffb9e0aaf4acdd539d
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jan 23 14:21:45 2011 +0100

    (#4914) Update property blocks
    
    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

commit fd111f26f17b3dbdd0de310d0a4b43877eef7e14
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jan 23 13:10:17 2011 +0100

    (#4914) Query property_hash for mountstate
    
    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)

commit 2884660768fbea22a91e3c5bab9595ce075e67a5
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jan 23 13:03:15 2011 +0100

    (#4914) Prefetch mountstate
    
    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.

commit ade951aa9d0017743059f282cbc1611a8b0b02f0
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jan 23 12:47:38 2011 +0100

    (#4914) Join lines for better readability

commit dd332f6e87dcd997a19060c94749740d31fcff24
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 25 21:44:25 2011 +1100

    Fixed #6002 - Added note about function execution

commit 3cfbd0722c5f64a3ef39a65f53fa4195135e90b4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Jan 21 14:07:32 2011 -0800

    (#5045) Cleaning up some tests and code
    
    Renamed some variables to be clearer, made tests use less stubbing,
    added some additional tests and got rid of some unecessary logic.
    
    Paired-with: Dan Bode

commit a2036ea693996cb6ba5eb9f8f52fefa843a320a6
Author: Dan Bode <bodepd@gmail.com>
Date:   Sat Jan 8 17:34:19 2011 -0600

    (#5045) External node classifiers should be able to specify params for classes
    
    It facilitates the support for param classes from the ENC. It adds
    support for classes to be passed as a hash to the evaluate_classes
    method. If a hash of classes is specified, it also evaluates duplicates.
    I also had to convert the hash to an array for tags to be applied
    correctly.
    
    Reviewed-by: Matt Robinson

commit 18ca97b0d16fae149a1eab04c520421b5eb38969
Author: Dan Bode <bodepd@gmail.com>
Date:   Sat Jan 8 17:18:25 2011 -0600

    (#5045) Adds support to resource/type to also accept a param hash
    
    The params are added as attributes when the resource is created.
    
    Also, even if the class already exists, if params are passed, we still try to create it.
    
    Reviewed-by: Matt Robinson

commit 70630b903b747db0148cd972b64e5162b8f459cc
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 18 15:24:37 2010 -0700

    Fix #3165 Ralsh (bin/puppet resource) can't manage files
    
    This is based on the patch submitted by Owen Smith.
    File management was being blocked by two problems: an obsolete, broken
    `instances` method for the file type,
    and a bug in the way resource/ral handled slashes in resource names.
    
    This patch makes two changes to Owen's version:
    
    1) our unit tests caught an
    unexpected ruby quirk:
    "text/".split("/")
    and
    "text/".split("/", 2)
    do not return the same values.
    
    2) File.instances now reproduces the old behavior of listing files in
    the root directory. This is now implemented in terms of the existing
    file recursion feature.

commit 1fd3600458b8561d33d34369d349ecefee04996b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jan 21 04:04:45 2011 +1100

    Fixed #3646 - Added documentation for compile and apply to man page

commit ae48634cec08bbb590110a38e4538a984186f1b7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 20 13:55:37 2011 +1100

    Fixed #5914 Removed genconfig = true from genconfig output

commit be40abfefd1ba5beb4d5b32e122476e43dd8a19c
Merge: 78e838a 6d9cae2
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Jan 19 17:38:22 2011 -0800

    Merge branch 'next'
    
    * next: (21 commits)
      (#5900) Include ResourceStatus#failed in serialized reports
      (#5882) Added error-handling for bucketing files in puppet inspect
      (#5882) Added error-handling to puppet inspect when auditing
      (#5171) Made "puppet inspect" upload audited files to a file bucket
      Prep for #5171: Added a missing require to inspect application.
      Locked Puppet license to GPLv2
      (#5838) Support paths as part of file bucket requests.
      (#5838) Improve the quality of file bucket specs.
      (#5838) Make file bucket dipper efficient when saving a file that already exists
      (#5838) Implemented the "head" method for FileBucketFile::File terminus.
      (#5838) Reworked file dipper spec to perform less stubbing.
      (#5838) Added support for HEAD requests to the indirector.
      (#5838) Refactored error handling logic into find_in_cache.
      (#5838) Refactored Puppet::Network::Rights#fail_on_deny
      maint: Remove unused Rakefile in spec directory
      (#5171) Made filebucket able to perform diffs
      (#5710) Removed unnecessary calls to insync?
      Prep for fixing #5710: Refactor stub provider in resource harness spec
      Maint: test partial resource failure
      maint: Inspect reports should have audited = true on events
      ...

commit 6d9cae2e9ca6a56506f679db02ba9abb30a4df91
Merge: 27abd84 517c679
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Jan 19 17:36:23 2011 -0800

    Merge branch '2.6.x' into next
    
    * 2.6.x: (21 commits)
      (#5900) Include ResourceStatus#failed in serialized reports
      (#5882) Added error-handling for bucketing files in puppet inspect
      (#5882) Added error-handling to puppet inspect when auditing
      (#5171) Made "puppet inspect" upload audited files to a file bucket
      Prep for #5171: Added a missing require to inspect application.
      Locked Puppet license to GPLv2
      (#5838) Support paths as part of file bucket requests.
      (#5838) Improve the quality of file bucket specs.
      (#5838) Make file bucket dipper efficient when saving a file that already exists
      (#5838) Implemented the "head" method for FileBucketFile::File terminus.
      (#5838) Reworked file dipper spec to perform less stubbing.
      (#5838) Added support for HEAD requests to the indirector.
      (#5838) Refactored error handling logic into find_in_cache.
      (#5838) Refactored Puppet::Network::Rights#fail_on_deny
      maint: Remove unused Rakefile in spec directory
      (#5171) Made filebucket able to perform diffs
      (#5710) Removed unnecessary calls to insync?
      Prep for fixing #5710: Refactor stub provider in resource harness spec
      Maint: test partial resource failure
      maint: Inspect reports should have audited = true on events
      ...
    
    Manually Resolved Conflicts:
    	lib/puppet/file_bucket/dipper.rb
    	lib/puppet/indirector.rb
    	lib/puppet/network/rest_authconfig.rb
    	spec/unit/file_bucket/dipper_spec.rb
    	spec/unit/file_bucket/file_spec.rb
    	spec/unit/indirector_spec.rb

commit 517c6794606e9adde7f2912d3b949cfcc18a446a
Merge: 76d1c2a 41090d3
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Jan 19 15:17:08 2011 -0800

    Merge branch '2.6.next' into 2.6.x
    
    * 2.6.next: (21 commits)
      (#5900) Include ResourceStatus#failed in serialized reports
      (#5882) Added error-handling for bucketing files in puppet inspect
      (#5882) Added error-handling to puppet inspect when auditing
      (#5171) Made "puppet inspect" upload audited files to a file bucket
      Prep for #5171: Added a missing require to inspect application.
      Locked Puppet license to GPLv2
      (#5838) Support paths as part of file bucket requests.
      (#5838) Improve the quality of file bucket specs.
      (#5838) Make file bucket dipper efficient when saving a file that already exists
      (#5838) Implemented the "head" method for FileBucketFile::File terminus.
      (#5838) Reworked file dipper spec to perform less stubbing.
      (#5838) Added support for HEAD requests to the indirector.
      (#5838) Refactored error handling logic into find_in_cache.
      (#5838) Refactored Puppet::Network::Rights#fail_on_deny
      maint: Remove unused Rakefile in spec directory
      (#5171) Made filebucket able to perform diffs
      (#5710) Removed unnecessary calls to insync?
      Prep for fixing #5710: Refactor stub provider in resource harness spec
      Maint: test partial resource failure
      maint: Inspect reports should have audited = true on events
      ...

commit 7e7f34237f67ad27534855d1df328c96e30285bf
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 17 12:23:29 2011 +1100

    Fixed #1657 - Added note about target file

commit 069f29bf2b348e540c63c12bc203838b02d8a0bf
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 17 12:01:13 2011 +1100

    Fixed #2096 - clarified option modification and tested it is working

commit 66b442b723f1e74b934381227955cc30d64f3636
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 17 11:45:55 2011 +1100

    Fixes #5916 - Cleanup of unused doc methods and documentation

commit 9b74968a42d9a6e53bc61f7e8e17822316d557e8
Author: nfagerlund <nick.fagerlund@gmail.com>
Date:   Thu Dec 30 16:37:46 2010 -0800

    Modified rubydoc in lib/puppet/util/command_line/puppetca to fix inaccurate description of --clean.

commit e58f5dc724c060d08e0ec4abdab6908442bcc0bc
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 17 10:44:57 2011 +1100

    Fixed #5742 - Removed legacy fqdn option from documentation
    
    Patch from: Nick Fagerlund

commit 4d1b51fbcd7d7e285e7e56242951fcc821972e11
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 17 10:38:03 2011 +1100

    Fixed #5167 - misleading documentation in the defaults of [main]

commit c1b5c7f515a0add663fb532859d91e28ef37a971
Author: Mitchell Hashimoto <mitchell.hashimoto@gmail.com>
Date:   Sun Jan 16 14:27:24 2011 -0800

    (#5913) Fix Puppet::Application.find constant lookup behavior
    
    Puppet::Application.find now only looks in the Puppet::Application
    namespace for the given constant.

commit 7b3b56ef7bfd32d7afb47fd71c2d9f606856d2e0
Author: Dan Bode <bodepd@gmail.com>
Date:   Fri Jan 14 18:21:57 2011 -0600

    (5977) Puppet::Applications can be loaded from multiple paths.
    
    - previously, Puppet would search $LOAD_PATH and just
    load applications in the first $LOAD_PATH to have
    the directory puppet/application. Now multiple paths
    can contain applications.

commit 41090d3617d99f9eaa58df32be93f3d16467bc50
Merge: adce308 f9bfb96
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jan 14 11:01:00 2011 -0800

    Merge branch 'ticket/2.6.next/5900' into 2.6.next

commit f9bfb968fac70eca9fe29bbd8afbcabfa1c27b9e
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jan 14 10:55:05 2011 -0800

    (#5900) Include ResourceStatus#failed in serialized reports
    
    This property was excluded from serialization because it was believed that its
    value could be determined by looking at the events of a ResourceStatus.
    However, if a resource can't be retrieved, it will have no events created, and
    will have no other way of determining its status.
    
    Reviewed-By: Paul Berry

commit adce308f9892887cc8c8a1c2b3af53e7cd034d51
Merge: 0b19744 71ac9cf
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Jan 14 10:15:07 2011 -0800

    Merge remote branch 'jamtur01/tickets/2.6.x/5875' into 2.6.next
    
    * jamtur01/tickets/2.6.x/5875:
      Locked Puppet license to GPLv2

commit 0b19744c5e01dacaff34e3348b77bcd6297f492e
Merge: 8c60ceb 79b6332
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 13 16:59:29 2011 -0800

    Merge branch 'ticket/2.6.next/5882' into 2.6.next

commit 79b633220376bf0503f926b9371283cece17a9e6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 13 16:57:01 2011 -0800

    (#5882) Added error-handling for bucketing files in puppet inspect
    
    Paired-With: Paul Berry

commit 17843d5e86a8841728a77c77d5f2ea4661c0f417
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 13 16:03:41 2011 -0800

    (#5882) Added error-handling to puppet inspect when auditing
    
    If auditing a resource fails, the report will contain failure events for every
    audited property of the resource. The report itself will also be marked as
    "failed".
    
    Paired-With: Paul Berry

commit 8c60cebababafbacf031a4ad842a615e82910cf0
Merge: 2274d51 1a6fab2
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Jan 13 14:33:40 2011 -0800

    Merge branch 'ticket/2.6.next/5171-upload-files-during-inspect' into 2.6.next
    
    * ticket/2.6.next/5171-upload-files-during-inspect:
      (#5171) Made "puppet inspect" upload audited files to a file bucket
      Prep for #5171: Added a missing require to inspect application.

commit 1a6fab2aacbc1499a00a9451654073181435afa1
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Jan 13 12:18:37 2011 -0800

    (#5171) Made "puppet inspect" upload audited files to a file bucket
    
    This only occurs if the new setting :archive_files is set.  Another
    new setting, :archive_file_server, can be used to specify the server
    that files should be uploaded to.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit a7cd1856f3347b6a00a260d1001252b56f54f7de
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Jan 13 14:31:51 2011 -0800

    Prep for #5171: Added a missing require to inspect application.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit 71ac9cfeeda5d41eb95f30e218d383c95c504455
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 13 15:00:58 2011 +1100

    Locked Puppet license to GPLv2

commit 2274d5104f6e413a2b8899a3c3111a17bbb2f4d7
Merge: 271faa2 abc6256
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Jan 12 16:33:21 2011 -0800

    Merge branch 'ticket/2.6.next/5838' into 2.6.next
    
    * ticket/2.6.next/5838:
      (#5838) Support paths as part of file bucket requests.
      (#5838) Improve the quality of file bucket specs.
      (#5838) Make file bucket dipper efficient when saving a file that already exists
      (#5838) Implemented the "head" method for FileBucketFile::File terminus.
      (#5838) Reworked file dipper spec to perform less stubbing.
      (#5838) Added support for HEAD requests to the indirector.
      (#5838) Refactored error handling logic into find_in_cache.
      (#5838) Refactored Puppet::Network::Rights#fail_on_deny

commit abc62560f78fa227d6ffd3263a095665609a15b5
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Jan 12 15:41:39 2011 -0800

    (#5838) Support paths as part of file bucket requests.
    
    In versions of Puppet 2.6.0-2.6.4, file bucket requests are of the
    form md5/<checksum>/<path>.  The path functionality has been removed,
    however we still need to support requests coming from older clients.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 002f9f1905b089ebca628a6b743c0659e30ff9bc
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Jan 12 15:18:21 2011 -0800

    (#5838) Improve the quality of file bucket specs.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 94d71799f1ee196186bc3a8a5a1b06ef2ae0806e
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Jan 11 13:45:55 2011 -0800

    (#5838) Make file bucket dipper efficient when saving a file that already exists
    
    Before saving to the file bucket, the file bucket dipper now checks to
    make sure that no file with the given checksum is already present.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 89f56920f26544f7c5aa97785567b193034db151
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Jan 11 15:24:10 2011 -0800

    (#5838) Implemented the "head" method for FileBucketFile::File terminus.
    
    In order to do this it was necessary to refactor FileBucketFile to
    untangle responsibilities for computing paths, reading files, etc.  In
    the process, removed speculative generalizations and unused
    functionality.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 9cfd3d58699b0d0c3ab53cb37226cade84d7ec64
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Jan 11 13:36:05 2011 -0800

    (#5838) Reworked file dipper spec to perform less stubbing.
    
    This is in preparation for adding more functionality to the file
    dipper.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit c514c641d0c0090be29252dcc773385248d3fe93
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Jan 10 17:05:38 2011 -0800

    (#5838) Added support for HEAD requests to the indirector.
    
    Added the ability for the indirector to handle REST HEAD requests.
    These are done using a new indirector method, head(), which should
    return true if find() would return a result and false if find() would
    return nil.
    
    Access control for the head method is the union of that for the find
    and save methods.  That is, if either find or save is allowed, then
    head is allowed.  This is necessary so that users will not have to
    change their authconfig to take advantage of the new feature.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 2b9b7a5f7fe4b673f0d1fba9fb523cc0e2e34fa5
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Jan 10 14:17:14 2011 -0800

    (#5838) Refactored error handling logic into find_in_cache.
    
    Moved the error handling logic surrounding the call to
    Puppet::Indirector::Indirection#find_in_cache() into the
    find_in_cache() method itself, so that won't need to be duplicated
    when find_in_cache() is called from elsewhere.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 08561b22920aa5eaa76addd8b0da8feb189e0d18
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Jan 11 14:56:14 2011 -0800

    (#5838) Refactored Puppet::Network::Rights#fail_on_deny
    
    Changed into a method that returns the exception to raised rather than
    raising it.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 87c5c30fe8d2bbc31dabeb7383f5e5703a732bc5
Author: Dan Bode <bodepd@gmail.com>
Date:   Tue Jan 11 20:00:32 2011 -0600

    (#5910) Improved logging when declared classes cannot be found:
    
    Previously, when a class could not be found, it was displaying the same error message as when a resource type could not be found. This resulted in confusing error message: Invalid resource type class, when really it should display the name of the class that could not be found.
    
    My patch changes the error message to:
    
    Could not find declared class #{title}

commit 271faa27c7906e87c2edee4bf2a3f3ca2143dadb
Merge: bf2b071 4efc98a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jan 11 15:53:15 2011 -0800

    Merge branch 'maint/2.6.next/remove_unused_rakefile' into 2.6.next
    
    * maint/2.6.next/remove_unused_rakefile:
      maint: Remove unused Rakefile in spec directory

commit 4efc98a88385815913c193615c5c50e2d0680411
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jan 11 15:50:13 2011 -0800

    maint: Remove unused Rakefile in spec directory
    
    The Rakefile just created rake tasks so that you could run all the specs
    in a subdirectory.  However, rspec already allows you to just give the
    subdirectory as an argument and does the same thing, so these rake tasks
    were unecessary.

commit bf2b07158f5e4e16e7a1a52e84257ae5d84d9e1c
Merge: e6e88e7 a002231
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Jan 11 11:45:58 2011 -0800

    Merge branch 'ticket/2.6.next/5171-filebucket-diff' into 2.6.next
    
    * ticket/2.6.next/5171-filebucket-diff:
      (#5171) Made filebucket able to perform diffs

commit a002231f45339da9b152162c2f48126d95e2e246
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Jan 10 18:30:42 2011 -0800

    (#5171) Made filebucket able to perform diffs
    
    It is now possible to ask the filebucket to diff two files using a URL
    of the form:
    
    https://puppet/production/file_bucket_file/md5/{first file hash}?diff_with={second file hash}
    
    The returned diff is a string, the output of the "diff" command.
    
    Paired-with: Paul Berry <paul@puppetlabs.com>

commit fb339cbbc17cd14ba34df624fe9a2b9c74640eb5
Author: Hector Rivas Gandara <keymon@gmail.com>
Date:   Mon Jan 10 08:30:28 2011 +0100

    (#5432) Use AIX native commands to manage users and groups
    
    More elegant Array|String => String conversion in AixObject.
    Fixed some bugs and code/comments cleaned.

commit aa8c09fbb0298adb48654a68778e46d9f68f9fb9
Author: Hector Rivas Gandara <keymon@gmail.com>
Date:   Tue Dec 28 14:46:38 2010 +0100

    (#5432) Use AIX native commands to manage users and groups
    
    Specific providers should be created for AIX to manage users and groups.
    
    AIX bases the authentication management on a set of commands: mkuser, rmuser, chuser, lsuser, mkgroup, rmgroup, chgroup, lsg
    
    This commit implements such providers.
    
    The types where extended with:
     - feature: :manages_aix_lam
     - newparam(ia_load_module): authentication module to use in user and group AIX providers.
     - newproperty("attributes"): AIX attributes that are not managed by puppet directely.
    
    Notes::
     - AIX users can have expiry date defined with minute granularity,
       but puppet does not allow it. There is a ticket open for that (#5431)
     - AIX maximum password age is in WEEKs, not days.
    
    Squashed commit of the following:
    
    commit dd9efff227f60dd7d11e33f754870f6344526097
    Author: Hector Rivas Gandara <keymon@gmail.com>
    Date:   Tue Dec 28 14:42:35 2010 +0100
    
        Added new property "attributes" in AIX group provider for AIX attributes
        that are not managed by puppet directely.
    
    commit cd23fff3a3a4963f12c0029d43db3c530a0e4fa3
    Author: Hector Rivas Gandara <keymon@gmail.com>
    Date:   Tue Dec 28 14:33:50 2010 +0100
    
        Converted file from Windows to Unix format
    
    commit c6929e9b557802fe908469ca51339ce249242c94
    Author: Hector Rivas Gandara <keymon@gmail.com>
    Date:   Tue Dec 28 14:32:29 2010 +0100
    
        Added new property "attributes" in AIX user provider for AIX attributes
        that are not managed by puppet directely.
    
    commit d2814dc9d7730635a17a9bdbbc6ef9518f23b39d
    Author: Hector Rivas Gandara <keymon@gmail.com>
    Date:   Tue Dec 28 12:48:07 2010 +0100
    
        Added feature :ia_load_module and new parameter
        (newparam) ia_load_module, to define authentication module to use
        in user and group AIX providers.
    
    commit 95a4e960a93c1b75a4a0053c07fa192bf552d63b
    Author: Hector Rivas Gandara <keymon@gmail.com>
    Date:   Tue Dec 28 12:46:20 2010 +0100
    
        Fixed typo in if sentence

commit d65e094c05739324b14a921152092e080aa32b4e
Author: Hector Rivas Gandara <keymon@gmail.com>
Date:   Mon Dec 27 14:20:24 2010 +0100

    (#5432) Use AIX native commands to manage users and groups
    
    Fixed providers for new aixobject.rb
    Fixed incorrect variable naming.

commit fddc16535b16f81665b4a07dc03325af7e51c087
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Jan 9 10:18:37 2011 +0100

    (#5814) Improved cron type specs
    
    Add specs to test value validation for minute, hour, weekday, month
    and monthday

commit f2dfee6e2f8731bb0b04a0dfc1e1b3b4146a4289
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sat Jan 8 22:15:32 2011 +0100

    (#5814) cron_spec shouldn't depend on cron provider
    
    if cron is not installed the specs will throw errors abould not finding
    a default provider. Because the spec doesn't test provider features it
    shouldn't depend on any providers.
    
    Add stubs to let cron_spec work with no suitable provider

commit e6e88e7df7fa1cbec1400d73cb7ba9428c420be0
Merge: a02e6b8 8f314f2
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Jan 7 15:47:19 2011 -0800

    Merge branch 'ticket/2.6.next/5710' into 2.6.next
    
    * ticket/2.6.next/5710:
      (#5710) Removed unnecessary calls to insync?
      Prep for fixing #5710: Refactor stub provider in resource harness spec

commit 8f314f2bb14d61a2a26b67d002d90f84349b25b5
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Jan 7 15:39:52 2011 -0800

    (#5710) Removed unnecessary calls to insync?
    
    In the resource harness, we were calling insync? on all properties of
    a resource, even if those properties weren't being managed.  This was
    unsafe.  Changed to only call insync? on properties that are mentioned
    in the manifest.
    
    In addition, we discovered that the resource harness's computation of
    desired_values was incorrect, and was consulting the current system
    state rather than the desired state.  Since this hash was
    (erroneously) only being consulted to see if it included :ensure, this
    didn't cause any obvious bugs.  However it is now fixed.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit e2700869a98ed769cea3d880a23e2f80330ea0fc
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Jan 7 15:21:20 2011 -0800

    Prep for fixing #5710: Refactor stub provider in resource harness spec
    
    Moved the stub provider to its own method so that it can be re-used in
    additional spec tests.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit a02e6b88754021b1552e99b0131d86fcfdd7329b
Merge: 814f56f c57a677
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Jan 7 14:45:29 2011 -0800

    Merge branch 'maint/2.6.next/test_partial_resource_failure' into 2.6.next
    
    * maint/2.6.next/test_partial_resource_failure:
      Maint: test partial resource failure

commit c57a677638db14a4d38144cc18e2055fedca8f5e
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Jan 7 14:43:57 2011 -0800

    Maint: test partial resource failure
    
    Added a resource harness test to verify that the correct events are
    generated if there is a failure while synchronizing a resource.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 78e838ad3cc08d8e155d895a478ee73f616440d7
Merge: 824907c 27abd84
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jan 7 13:58:44 2011 -0800

    Merge branch 'next'

commit 27abd84611564ac573c5fde8abb6b98e6bd3d9b7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jan 7 13:49:23 2011 -0800

    maint: Stop stubbing 'use' on any_instance of Puppet::Util::Settings
    
    This is because of the fix for #5799, which means there will only be a single
    instance of Puppet::Util::Settings throughout the lifetime of the spec run.
    
    Paired-With: Paul Berry

commit 04289febd5575ab2bb6aa0b1a121905b09cf227a
Merge: 0f0c70c 8aa8b9d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jan 7 13:24:54 2011 -0800

    Merge branch 'ticket/2.6.next/5799' into next

commit 76d1c2aefb32cc3688e3f7c0a5c8bbf713a123ed
Merge: dbfcefc 8aa8b9d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jan 7 13:19:34 2011 -0800

    Merge branch 'ticket/2.6.next/5799' into 2.6.x

commit 824907ce0abed0e8c332b873b88705fbccf0d24e
Merge: 03cc835 2d88844
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Jan 7 13:16:38 2011 -0800

    Merge branch 'maint/2.6.next/remove_rspec_options_from_rakefile'
    
    * maint/2.6.next/remove_rspec_options_from_rakefile:
      maint: Add vim swap files to .gitignore
      maint: Remove rspec options from the Rakefile
    
    Manually Resovled Conflicts:
    	Rakefile

commit 0f0c70cae2e022d7614b8d847fa42bf95f5c3d0d
Merge: f663182 2d88844
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Jan 7 12:18:18 2011 -0800

    Merge branch 'maint/2.6.next/remove_rspec_options_from_rakefile' into next
    
    * maint/2.6.next/remove_rspec_options_from_rakefile:
      maint: Add vim swap files to .gitignore
      maint: Remove rspec options from the Rakefile
    
    Manually Resolved Conflicts:
    	Rakefile

commit 814f56fdb3d360531bc2a2fc85ac71127a4c779d
Merge: 80c5f4c 8aa8b9d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jan 7 12:09:24 2011 -0800

    Merge branch 'ticket/2.6.next/5799' into 2.6.next

commit 8aa8b9dbc2437cea8109e4d272018437afe13794
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 6 17:39:03 2011 -0800

    (#5799) Simplify report dir creation
    
    This report processor was unnecessarily using Puppet to create a
    single directory. This was causing complex failures in any spec
    dealing with reports.
    
    Paired-With: Paul Berry

commit 03cc835eb04a5f9e5c1c5bcf6b988378f4bdab69
Merge: 9b2b4ae f663182
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 6 16:01:10 2011 -0800

    Merge branch 'next'

commit f663182c28c9d4533ad4c2f897e5fbbf78b16d8e
Merge: c776472 b16e10d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 6 15:56:31 2011 -0800

    Merge branch 'intermediate_merge_branch' into next

commit c7764723578ae64240db7bd2a64f8e6e9fa708ab
Merge: fb8509a 7ed5251
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 6 15:56:16 2011 -0800

    Merge branch 'maint/next/mocha_workaround' into next

commit 7ed5251f80b0e37caf6e255875860157f95ee935
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jan 6 15:24:13 2011 -0800

    maint: Work-around for a Mocha bug
    
    Mocha is leaving behind a copy of stubbed methods in the singleton class of the
    object on which the method is stubbed. So a later stub to any_instance of the
    class isn't seen by the original object.
    
    This change works around the problem by adding a follow-up "test" that removes
    the method from the singleton class.
    
    See: https://github.com/floehopper/mocha/issues#issue/20
    
    Paired-With: Paul Berry

commit dbfcefc53cbd0b33079aa85ef8ce3efce48643b9
Merge: 19eb1e7 2d88844
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jan 6 15:33:56 2011 -0800

    Merge branch 'maint/2.6.next/remove_rspec_options_from_rakefile' into 2.6.x
    
    * maint/2.6.next/remove_rspec_options_from_rakefile:
      maint: Add vim swap files to .gitignore
      maint: Remove rspec options from the Rakefile

commit 80c5f4c267b6008ba1c08c72753027cf85029b93
Merge: 0fc4b1a 2d88844
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jan 6 15:33:21 2011 -0800

    Merge branch 'maint/2.6.next/remove_rspec_options_from_rakefile' into 2.6.next
    
    * maint/2.6.next/remove_rspec_options_from_rakefile:
      maint: Add vim swap files to .gitignore
      maint: Remove rspec options from the Rakefile

commit 2d8884487159a29fa0a6b89379d5fc1b11c2652c
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jan 6 15:18:59 2011 -0800

    maint: Add vim swap files to .gitignore
    
    Paired-with: Jesse Wolfe

commit 3d3baec01466f5745f96c4ece4ade6bdea11e81d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jan 6 15:10:35 2011 -0800

    maint: Remove rspec options from the Rakefile
    
    Having the Rakefile set RSpec options made it so that the .rspec
    (spec.opts in RSpec < 2) file for personal RSpec preferences was
    ignored.
    
    It also caused the ci_reporter RSpec options to be ignored which meant
    that Hudson couldn't get consumable output from our spec runs.
    
    It's also about time Puppet had a project level .gitignore file so that
    if people want personal rspec preferences (color or a different print
    format for example) in a .rspec file, those changes don't actually get
    checked in.
    
    Paired-with: Jesse Wolfe

commit b16e10dba6606b808ef195f4b57f2e8c66cf65ab
Merge: fb8509a 19eb1e7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jan 5 17:22:30 2011 -0800

    Merge branch '2.6.x' into next
    
    Conflicts:
    	Rakefile
    	lib/puppet/resource/type_collection.rb
    	lib/puppet/simple_graph.rb
    	lib/puppet/transaction.rb
    	lib/puppet/transaction/report.rb
    	lib/puppet/util/metric.rb
    	spec/integration/indirector/report/rest_spec.rb
    	spec/spec_specs/runnable_spec.rb
    	spec/unit/configurer_spec.rb
    	spec/unit/indirector_spec.rb
    	spec/unit/transaction/change_spec.rb

commit 0fc4b1a49791c4e67924295b172ca058f170b9cc
Merge: f0a34aa df65304
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jan 6 11:34:24 2011 -0800

    Merge branch 'maint/2.6.next/inspect_audited_should_be_true' into 2.6.next
    
    * maint/2.6.next/inspect_audited_should_be_true:
      maint: Inspect reports should have audited = true on events

commit df653045aee21ae53e0e94d47e0edbdaf308fbf5
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jan 6 11:24:18 2011 -0800

    maint: Inspect reports should have audited = true on events
    
    Paired-with: Jesse Wolfe

commit f0a34aaac713f7eb9f39195a7b96eec75322f568
Merge: 83ac3e7 4c9eca1
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Jan 6 10:57:43 2011 -0800

    Merge branch 'maint/2.6.next/add_skipped_to_resource_status' into 2.6.next
    
    * maint/2.6.next/add_skipped_to_resource_status:
      Maint: Added "skipped" to the YAML output for Puppet::Resource::Status

commit 4c9eca1cab3caae8050807fc71b24408fce85e69
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Jan 6 10:55:21 2011 -0800

    Maint: Added "skipped" to the YAML output for Puppet::Resource::Status
    
    In 2.6.4 and earlier, "skipped" appeared only when true.  A recent
    change accidentally caused it to never appear.  This change makes it
    always appear.

commit 19eb1e78e115d10bfb822e510213e4fab9cd2599
Merge: cc1f2b3 83ac3e7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jan 5 15:54:00 2011 -0800

    Merge branch '2.6.next' into 2.6.x

commit 83ac3e789ddc8dbf40c93460032474870fb16c54
Merge: a05df9f 717670f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jan 5 15:47:03 2011 -0800

    Merge branch 'maint/2.6.next/5771-spec-fixes' into 2.6.next

commit 717670fa3a6f471c8183dd85443ca2426f4df238
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jan 5 15:41:31 2011 -0800

    (#5771): Fix spec failures associated with rspec upgrade
    
    Due to changes in the spec_helper, some of the specs that use puppettest were
    failing when run individually. In the future, it would be nice to remove
    puppettest from the specs entirely, as it's old, crufty, and only used for a
    couple of things.
    
    Paired-With: Matt Robinson

commit a05df9fec9040a908f28e4c324845ec80daa54eb
Merge: ac11437 52760a4
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jan 4 16:04:34 2011 -0800

    Merge branch 'ticket/2.6.next/upgrade_rspec' into 2.6.next

commit 52760a4fb2764d011609c82adb68cc61d0772dc4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jan 3 22:19:41 2011 -0800

    (#5771) Upgrade rspec to version 2
    
    The biggest change is that we no longer need to monkey patch rspec to
    get confine behavior.  Describe blocks can now be conditional like
    confine used to be. "describe" blocks with "shared => true" are now
    "shared_examples_for".
    
    Paired-With: Nick Lewis

commit ac114371fc161a48fc48bf68944846a1defbc6c4
Merge: a640278 7603b05
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Jan 3 17:30:12 2011 -0800

    Merge branch 'maint/2.6.next/remove_stray_p' into 2.6.next

commit 7603b055d10810a901b6e0f9d9de89e00b842058
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Jan 3 17:27:14 2011 -0800

    maint: remove stray debug statement.
    
    I accidentally committed a debug statement. Now I am removing it.

commit a6402781a1e0403a113b51e784d929c29f440db1
Merge: 68464b7 7661ba8
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Jan 3 16:32:58 2011 -0800

    Merge branch 'maint/2.6.next/speed_up_slow_inspects' into 2.6.next

commit 7661ba82a3c765d4bf8a400a3c770f351c541f96
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Jan 3 16:28:24 2011 -0800

    maint: Prune #inspect methods on various objects
    
    Ruby's default #inspect method can lead to printing factorial-order
    output for large graphs of objects. Since we have large graphs of
    objects, this is not optimal.
    This patch replaces a few well-connected objects' #inspect methods with
    methods that produce reduced output, and are thus much faster.
    
    Paired-With: Nick Lewis <nick@puppetlabs.com>

commit 68464b79070fdf28b623f1e11beb4908a7be81a7
Merge: 10f89de 80bfb54
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Jan 3 15:52:07 2011 -0800

    Merge branch 'ticket/2.6.next/5758' into 2.6.next
    
    * ticket/2.6.next/5758:
      (#5758) Verify that report events are correctly created
      Prep work for #5758: set audited=true on all audit events
      Prep work for #5758: clean up initializer for Puppet::Transaction::Event

commit 80bfb541f06f36e37fe34d0c1635c317085ea333
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Jan 3 15:48:15 2011 -0800

    (#5758) Verify that report events are correctly created
    
    Added code to resource_harness_spec to test all the attributes of
    report events, not just the log messages.
    
    Paired-with: Matt Robinson <matt@puppetlabs.com>

commit de85f8d598606fc4fcce59228f5cb6d2715e66b5
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Jan 3 15:47:15 2011 -0800

    Prep work for #5758: set audited=true on all audit events
    
    Previously, events would only have audited=true if auditing was
    enabled AND there had been a change in an audited parameter.
    
    Paired-with: Matt Robinson <matt@puppetlabs.com>

commit e162da905549002d31eb9ff159406cec8b659046
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Jan 3 15:45:41 2011 -0800

    Prep work for #5758: clean up initializer for Puppet::Transaction::Event
    
    Puppet::Transaction::Event#initialize() contained unnecessary code
    that allowed the properties of an event to be passed in as separate
    arguments.  This was never used.
    
    Paired-with: Matt Robinson <matt@puppetlabs.com>

commit 10f89de6e55429fcb055b15a513d01e6e20f03b9
Merge: f1abd3c 06a8d1e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Jan 3 11:32:39 2011 -0800

    Merge branch 'ticket/2.6.next/5698' into 2.6.next

commit 06a8d1ee8775ba8693ced002f5972bbfc346ebf8
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Dec 28 17:18:55 2010 -0800

    Fix #5698 puppet inspect shouldn't report of attributes of deleted files
    
    If a resource is absent, then reporting that its properties are all
    ":absent" is not particularly correct. This patch makes the `inspect`
    application's reports behave more like `apply` reports, and skip
    properties other than :ensure for absent resources.
    
    Reviewed-By: Nick Lewis <nick@puppetlabs.com>

commit f1abd3c16eccfac60a19462a244c55924b737c2d
Merge: 0b78dec 1f72c31
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Dec 30 13:29:47 2010 -0800

    Merge branch 'ticket/2.6.next/5715' into 2.6.next
    
    * ticket/2.6.next/5715:
      (#5715) Added attributes resource_type and title to Puppet::Resource::Status.
      (#5715) Removed attribute source_description from the YAML representation of Puppet::Resource::Status.
      (#5715) Removed unnecessary attributes from YAML of Puppet::Transaction::Event.
      (#5715) Make certain report attributes always present.
      (#5715) Changed the type of metric names to always be strings.
      (#5715) Add status attribute to reports.
      (#5715) Made the report "calculate" methods strictly functional.
      (#5715) Made the changes/total and events/total metrics always present
      (#5715) Refactor in preparation for adding a status attribute to reports.
      (#5715) Added total time to inspect reports and made inspect metrics more consistent.
      (#5715) Removed Puppet::Transaction::Report#external_times from YAML output.
      (#5715) Added total time metric to apply reports.
      (#5715) Removed redundant attribute Transaction::Event#version
      (#5715) Removed redundant attribute Resource::Status#version
      (#5715) Removed Puppet::Util::Log#version.
      (#5715) Removed the unused attribute Puppet::Transaction::Event#node
      (#5715) Removed Resource::Status#skipped_reason.  It was never used.
      (#5715) Prep work: Fixed add_statuses in report_spec.

commit 1f72c31f9e0223e71e2729da96e0e98ebea5417e
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Dec 30 11:26:30 2010 -0800

    (#5715) Added attributes resource_type and title to Puppet::Resource::Status.
    
    These new attributes save report processors from having to parse the
    "resource" attribute.

commit a6cd736379d37c5ca205d74d8a957a6c79f95548
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Dec 30 11:18:57 2010 -0800

    (#5715) Removed attribute source_description from the YAML representation of
    Puppet::Resource::Status.
    
    This attribute is only used for properly generating log messages and
    was never intended to appear in reports.

commit 98db2da4e9b35f6260bf07c641550b380b603baa
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Dec 30 11:01:23 2010 -0800

    (#5715) Removed unnecessary attributes from YAML of Puppet::Transaction::Event.
    
    The removed attributes are file, line, resource, tags,
    source_description, and default_log_level.  These attributes were all
    redundant with those in Puppet::Resource::Status.

commit bd4a8a13a85e6d64c987765cb83b1ebd4a63a341
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Dec 29 16:00:23 2010 -0800

    (#5715) Make certain report attributes always present.
    
    The attributes Puppet::Resource::Status#changed,
    Puppet::Resource::Status#out_of_sync, and
    Puppet::Transaction::Event#audited used to only appear in reports when
    their state was true.  Now they appear always.

commit 716ee1cd76a2b30c10e715bca3e22896d9c4e36f
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Dec 29 15:33:14 2010 -0800

    (#5715) Changed the type of metric names to always be strings.

commit 037eac4383ed5a5e9cdde765b607a180209bad1e
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Dec 29 14:49:16 2010 -0800

    (#5715) Add status attribute to reports.

commit e4a2e049dc9f77569a2dac042e9e847ef34f037d
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Dec 29 14:35:58 2010 -0800

    (#5715) Made the report "calculate" methods strictly functional.
    
    These methods previously stored the metrics as a side effect; now they
    simply compute the metrics and return them.

commit 71db5be0ecc5ab591e01974ba109f621348fdea0
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Dec 29 14:26:47 2010 -0800

    (#5715) Made the changes/total and events/total metrics always present
    
    Previously these metrics were omitted when their values were zero.

commit a4e40f4dd5990df4dc6b2be065e82a142a31b6fc
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Dec 29 14:09:57 2010 -0800

    (#5715) Refactor in preparation for adding a status attribute to reports.
    
    Renamed Puppet::Transaction::Report#calculate_metrics to
    finalize_report, in preparation for adding more functionality to this
    method.
    
    Removed Puppet::Transaction#send_report and
    Puppet::Transaction#generate_report.  The former was never used, and
    the latter was unnecessary.

commit 15dda94c7d1e117273928f094b46a81b3f842c1f
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Dec 29 12:29:53 2010 -0800

    (#5715) Added total time to inspect reports and made inspect metrics more consistent.
    
    Inspect reports now contain all the metrics that apply reports do, and
    use the same code path for creating them.

commit d1bcdec38e5493e1e44192eaf07da2e88b8eb850
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Dec 29 12:15:26 2010 -0800

    (#5715) Removed Puppet::Transaction::Report#external_times from YAML output.
    
    This attribute was never intended to be serialized to YAML; it exists
    merely as temporary storage for metrics that have not yet been placed
    in the report's metrics attribute.

commit 1550bbb218719590431575cb4c200e620680a79d
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Dec 29 11:53:35 2010 -0800

    (#5715) Added total time metric to apply reports.
    
    This was a feature that was present in 0.25.x and was inadvertently
    dropped from 2.6.x.

commit 4cc42cda270cd1c04b22bf6e5452c550fb537ebf
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Dec 29 11:20:46 2010 -0800

    (#5715) Removed redundant attribute Transaction::Event#version

commit 1907650515ca68e85e63c73e1a35ec30dbc81b0d
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Dec 29 11:15:23 2010 -0800

    (#5715) Removed redundant attribute Resource::Status#version

commit e596a570b2734ea27eec57a6e3a11843ccb47614
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Dec 28 17:38:57 2010 -0800

    (#5715) Removed Puppet::Util::Log#version.
    
    This attribute was only relevant in reports, and in reports it was
    redundant with Puppet::Transaction::Report#configuration_version and
    Puppet::Transaction::Report#puppet_version.

commit 908e0e09ed94ab6b74aba3b9e4fa95318d8894ef
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Dec 30 10:45:22 2010 -0800

    (#5715) Removed the unused attribute Puppet::Transaction::Event#node

commit 0e39ec5bbd06dad0b59436a092c50902913d4a5a
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Dec 29 11:18:35 2010 -0800

    (#5715) Removed Resource::Status#skipped_reason.  It was never used.

commit b765f0e7a23af9804f1541437f2caf1d93cc5ed2
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Dec 29 14:49:41 2010 -0800

    (#5715) Prep work: Fixed add_statuses in report_spec.
    
    Report_spec contained a helper method called add_statuses which
    claimed to add a status object n times.  It actually always added it 3
    times, and fortunately callers always specified n=3.  Changed this to
    be more sane.

commit 0b78decacf508f7586d3d4ee90277b980d4879a2
Merge: 4664460 8631709
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Dec 29 17:33:37 2010 -0800

    Merge branch 'ticket/2.6.next/5723' into 2.6.next

commit 8631709d71833e68fbfe40dbee10fe876eb309ea
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Dec 29 17:24:58 2010 -0800

    (#5723) Fix failing type/package specs
    
    These tests were failing because they were overly constraining what the code
    could do. Because of a bug in Mocha 0.9.8, these failures weren't caught when
    the code causing them was first made. These failures were introduced in
    7fff7808e25491a5ea1e207b8de3ade0c4f95f4f.
    
    Paired-With: Paul Berry

commit 52f8dddf75e4611de4ea60cb29f4de3e11739226
Author: Hector Rivas Gandara <keymon@gmail.com>
Date:   Mon Dec 27 11:20:26 2010 +0100

    (#5432) Use AIX native commands to manage users and groups
    
    Refactorized the aixobject.rb to allow new providers using commands with colon separated output.

commit 9032898eb32080bfae66a707d55976e9f984a512
Author: Hector Rivas Gandara <keymon@gmail.com>
Date:   Wed Dec 1 13:47:57 2010 +0100

    (#5432) Use AIX native commands to manage users and groups
    
    Specific providers should be created for AIX to manage users and groups.
    
    AIX bases the authentication management on a set of commands: mkuser, rmuser, chuser, lsuser, mkgroup, rmgroup, chgroup, lsgroup, etc.
    
    This commit implements such providers.
    
    Notes::
    - AIX users can have expiry date defined with minute granularity,
      but puppet does not allow it. There is a ticket open for that (#5431)
    - AIX maximum password age is in WEEKs, not days.
    - I force the compat IA module.
    
    TODO::
    - Add new AIX specific attributes, specilly registry and SYSTEM.

commit 8b98526b0f81d559fdf85fc8aaf370f75baa5919
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu Dec 23 22:11:49 2010 +0100

    (#5662) Fixed tests that didnt stub key_attributes
    
    The parsedfile provider calls the method key_attributes of the resource
    class to decide what resourceparameters must be put in the
    property_hash. Tests that uses fake resources and only stub
    resource[:name] must also stub resource.class.key_attributes

commit 02b311113df84646406737ccfad961c5b6df4ae8
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu Dec 23 18:08:37 2010 +0100

    (#5605) Prefetch doesnt work with composite keys
    
    The uniqueness_key method of a type or resource object should return a
    key that can be used to identify this resource. In fact puppet seldomly
    uses this method and instead uses resource[:name] as an identifier.
    
    While this is totally fine for resourcetypes with a single
    key_attribute (and resource[:name] returning the namevar), it breaks
    things as soon as one creates a type with a composite key (prefetching
    for example is broken). To ease the process of replacing calls to
    resource[:name] to resource.uniqueness_key, the method uniqueness_key now
    just returns name_var if there is only one key_attribute (immitating
    self[:name]) and only returns an array of all the values of all the
    key_attributes if we have more than one key_attribute.
    
    The resourcehash which is passed to providers in their prefetch method
    is now build with uniqueness_key as the hashkey. Because of the new
    behaviour of uniqueness_key we hopefully wont break existing providers
    while allowing new providers for types with composite keys to implement
    correct prefetch methods.

commit 2a0c970b8f91c9687d3f2a1dea5adac44b5f96fb
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Dec 5 16:25:06 2010 +0100

    (#5662) Parsedfile doesnt work with mult keyattr
    
    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])

commit 35dd0702e9619706b6365a98da2826a612a4047a
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Dec 5 11:30:42 2010 +0100

    (#5661) Creating types dont work with >1 namevar
    
    The methods [] and []= of type.rb are handling :name in a special way.
    When someone wants to access resource[:name] puppet tries to replace
    :name with the name_var. If the type has more than one key_attribute
    name_var is always returning false so we'll get the error
    
      Resource type <resourcetype> does not support parameter false
    
    This patch doesnt try to substitute :name if we dont have a single
    namevar, aka. we have more than one key_attribute

commit 4664460e0a4a935dab814a3218fc054c13e3cab6
Merge: a17f261 76fe2b3
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Dec 20 16:44:26 2010 -0800

    Merge branch 'ticket/2.6.next/5169' into 2.6.next

commit 76fe2b3b24f6c04cd1cff7c8492d479d15258566
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Dec 20 12:17:52 2010 -0800

    Implement #5168 and #5169 ctime and mtime are properties
    
    File ctime and mtime are now implemented as read-only properties, so
    they can be examined with audit.

commit e27d208db86ae0825afbc6fb34d39e7c047a1bf4
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Dec 18 15:25:02 2010 +0100

    Some high-level process name probes
    
    Here is an attempt to cover with process name probes some of the longest
    parts of a puppet agent or master.
    Currently:
    * node compilation
    * individual resource evaluation
    * some configurer parts
    * individual network requests
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit aed4b5fd674107d6c1e3a2e2e5c2f8c42f7a5c35
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Dec 18 12:31:52 2010 +0100

    Process name instrumentation infrastructure
    
    This is special feature that changes the process name of the running puppet
    entity to display its current activity.
    
    It is disabled by default, and can be enabled by sending the QUIT signal
    to the process in question (or calling enable through the code).
    
    This system can work only if some "probes" are integrated in the core puppet
    codebase. Since tools to visualize process names have a large refresh time
    (ie more than 1s) it only makes sense to track long activities (like compilation,
    transaction or file serving).
    Those probes are the subject of a subsequent patch.
    
    This system tracks every thread activity and form a strings which will
    be used as the process name. Due to the way it is implemented it is
    possible that it doesn't work on all platforms (I tested successfully
    on osx and linux). On some systems the space available is dependent on
    the original size of the full command. That's why if this string is longer
    than a 50 characters, the string is scrolled (like stock market tickers).
    
    Note: This is not intended to be a generic instrumentation system. Also, being
    block based means that it can reduce performance if the instrumentation
    probes are used in tight inner loops.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit a17f2616b4cb0a9231745090ace5bb25e7bc77c9
Merge: 13972f7 d11ae78
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Dec 17 11:25:44 2010 -0800

    Merge branch 'ticket/2.6.next/3782' into 2.6.next
    
    * ticket/2.6.next/3782:
      [3782] Test isolation problem in test/ral/providers/cron/crontab.rb

commit d11ae78871cf9b65e15497e55c98851ca3cbfd15
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Aug 31 11:46:36 2010 -0700

    [3782] Test isolation problem in test/ral/providers/cron/crontab.rb
    
    The test in question (test_parse_line) was nondeterministic because it
    was relying on the sort order of a Hash whose keys were symbols.  When
    the sort order caused a blank line to appear at the end of the file
    under test, the blank line was elided by the crontab parser, causing a
    failure.
    
    Modified the test to execute in a deterministic order that doesn't
    place the blank line at the end.

commit 13972f7b2ca37906ee351f3ffa69cf3000a4c54b
Merge: 519e385 4d3030c
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Dec 17 11:06:42 2010 -0800

    Merge branch 'maint/2.6.next/5408' into 2.6.next
    
    * maint/2.6.next/5408:
      Modified the behavior of Puppet::Resource::Status as follows:
      (#5408) Reworked ResourceHarness so that code is clearer and all behaviors are tested

commit 4d3030c6dd67dcb1f6116e7e3d09ddcd20ee726b
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Dec 16 16:23:34 2010 -0800

    Modified the behavior of Puppet::Resource::Status as follows:
    
    - #change_count now only counts events that represent successful
      changes.  It does not count failures, audits, or noops.
    - #changed is equivalent to #change_count > 0.
    - #out_of_sync_count (a new attribute) counts all events except audits.
    - #out_of_sync is equivalent to #out_of_sync_count > 0.
    
    This should hopefully make the summary statistics in reports more useful.

commit 7fff7808e25491a5ea1e207b8de3ade0c4f95f4f
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Dec 17 10:59:12 2010 -0800

    (#5408) Reworked ResourceHarness so that code is clearer and all behaviors are tested
    
    This patch removes the Puppet::Transaction::Change class and replaces
    it with a method,
    Puppet::Transaction::ResourceHarness#apply_parameter.  The new code is
    shorter, more thoroughly unit tested, and addresses known bugs in
    the interaction between auditing and performing changes.
    
    This code does not address drawbacks in the report output (for example
    a resource is still flagged as changed even if it merely contains
    audit information); those will be addressed in a follow-up patch.

commit 519e3857c7edf0d007dd3d4924d27ae552a9b457
Merge: 367633b d516f63
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Dec 16 16:23:52 2010 -0800

    Merge branch 'ticket/2.6.next/5493' into 2.6.next

commit d516f6385e0ee044603c403ecc6f96606730f8f2
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Dec 16 16:17:17 2010 -0800

    (#5493) Add report_format, puppet_version, and configuration_version to Reports
    
    Current report formats are:
      0: 0.25 reports and earlier
      1: 0.26.1 - 0.26.4 reports
      2: 0.26.5 and beyond
    
    Paired-With: Jesse Wolfe

commit 093c45f7bffb91b869daaf5c6f97383a90e70a18
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 23 11:47:36 2010 -0800

    (#5375) Rework puppet apply to use configurer.run
    
    Puppet apply used to contain code that duplicated the functionality of
    configurer.run.  Refactored to share code.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 9b2b4aebed29f035415c1f7324943d3ba2993ea2
Merge: a2ff092 fb8509a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 16 15:06:31 2010 -0800

    Merge branch 'next'
    
    * next:
      maint: Fix ActiveRecord confine issue
      maint: Fix a test that was missing a require
      maint: Fix tests that don't run on their own

commit fb8509acbd947712cac094a49227d28a16a366aa
Merge: 480c399 cc1f2b3
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 16 14:59:06 2010 -0800

    Merge branch '2.6.x' into next
    
    * 2.6.x:
      maint: Fix ActiveRecord confine issue
      maint: Fix a test that was missing a require
      maint: Fix tests that don't run on their own
    
    Manually Resolved Conflicts:
    	spec/unit/network/http/rack/xmlrpc_spec.rb
    	spec/unit/network/http/rack_spec.rb
    	spec/unit/network/http/webrick_spec.rb
    	spec/unit/parser/templatewrapper_spec.rb
    	spec/unit/rails/param_value_spec.rb
    	spec/unit/rails/resource_spec.rb

commit cc1f2b39a65e8b74c8e59a2bf7d8f47a35985ee4
Merge: 52ca8c7 b403531
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 16 14:50:39 2010 -0800

    Merge branch '2.6.next' into 2.6.x
    
    * 2.6.next:
      maint: Fix ActiveRecord confine issue
      maint: Fix a test that was missing a require
      maint: Fix tests that don't run on their own

commit 367633b7e67ff127c0fc8a12c2268941572a7837
Merge: b403531 e99a3ea
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 16 14:47:23 2010 -0800

    Merge branch 'ticket/2.6.4/5566' into 2.6.next

commit e99a3ea6fc2b30ed7bcbd3c1bc011b38d92f57b2
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 16 14:10:20 2010 -0800

    Fix #5566 none, mtime, and ctime checksum types can write file contents
    
    The #write method in lib/puppet/type/file/content.rb relies on the block
    passed to #sum_stream getting executed.  "none", "mtime", and "ctime"
    aren't real checksums, so they violated that assumption and just
    returned empty results.  This patch causes that block to get executed.

commit b4035315aaad37df97d4e620b4f972cad201d04f
Merge: d211dc9 d74e8e1
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 16 14:08:45 2010 -0800

    Merge branch 'ticket/2.6.next/maint-fix_active_record_confine' into 2.6.next
    
    * ticket/2.6.next/maint-fix_active_record_confine:
      maint: Fix ActiveRecord confine issue

commit d74e8e18047a4cbc2e77802324eb97a07a4ddb63
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 16 14:02:11 2010 -0800

    maint: Fix ActiveRecord confine issue
    
    We made a class that inherited from ActiveRecord, but did so outside a
    block so the confine wasn't skipping it when ActiveRecord wasn't
    installed.  Moving that class inside a before block caused the confine
    to work properly.
    
    Paired-with: Nick Lewis

commit d211dc9b7b756634d8bb568454d06aa6b0f66b5b
Merge: 167e84d 6daeb16
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Dec 16 13:43:20 2010 -0800

    Merge branch 'maint/2.6.next/fix-test-dependency-problems' into 2.6.next

commit 6daeb1687004c083d4e3cc72e883b0cab328eae2
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 22 11:59:18 2010 -0800

    maint: Fix a test that was missing a require
    
    Paired-with: Nick Lewis

commit 5db696b605ebb331d5af3e640e68978c4f6d604d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 22 14:56:49 2010 -0800

    maint: Fix tests that don't run on their own
    
    From the spec directory I found all the specs that fail when run on their own.
    
    for TEST in `find . -name "*.rb" -type f`; do
      spec $TEST > /dev/null 2>&1
      if [[ $? != 0 ]]; then
        echo $TEST
      fi
    done
    
    All of them were cases of missing requires.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit a2ff092d8302e09aa79f9bb16636f8298316c3c7
Merge: 4b35402 480c399
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Dec 16 11:34:09 2010 -0800

    Merge branch 'next'

commit 480c399f183627f5f588e9dc9f5f86f683c0e468
Merge: 73397a2 52ca8c7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Dec 16 11:30:51 2010 -0800

    Merge branch '2.6.x' into next
    
    Manually Resolved Conflicts:
    	lib/puppet/resource/type_collection.rb
    	spec/unit/configurer_spec.rb
    	spec/unit/indirector/catalog/active_record_spec.rb
    	spec/unit/resource/type_collection_spec.rb
    	spec/unit/transaction/resource_harness_spec.rb

commit 52ca8c78c270b93ce997217900a3d333ad8154cc
Merge: af6e08c 167e84d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Dec 16 10:36:55 2010 -0800

    Merge branch '2.6.next' into 2.6.x

commit 73397a24db7e715c7712def75612dc4a5071ca7f
Merge: 8a03adf b94c1b4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Dec 14 11:54:00 2010 -0800

    Merge branch 'ticket/next/5427' into next
    
    * ticket/next/5427:
      (#5427) Using Propery::OrderedList for host_alias
      (#5427) Remove redundant testunit tests

commit b94c1b444d76a7fa1bcd63dd6ba653abf0b49826
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Thu Nov 18 23:38:10 2010 +0100

    (#5427) Using Propery::OrderedList for host_alias
    
    This uses the propertyclass Puppet::Property::OrderedList to represent
    the list of host_aliases. This lets us remove the in_sync, should_to_s
    etc overrides.
    
    In the provider class the list is represented by a string (=no array)
    so there were a few changes necessary as well.
    
    Because Puppet::Property::List uses the specified delimiter when
    converting should values to strings, I changed the delimiter to a simple
    space instead a tab. This keeps messages produced by puppet in a nice
    format.
    
    The tests had to be changed to work with the new behaviour of
    host_aliases. There are a few additional tests as well.

commit cca3436db8ba90eeaeefd8a58567becfcb330acc
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Dec 14 11:51:13 2010 -0800

    (#5427) Remove redundant testunit tests
    
    These tests are now better tested in the specs.
    
    Paired-with: Nick Lewis

commit 167e84d39d5cdd6b628d4d681b918406e7c896e6
Merge: dcccdc1 7f4e058
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Dec 13 17:18:46 2010 -0800

    Merge branch 'ticket/2.6.next/4487' into 2.6.next

commit 7f4e058133a0aa6b07bd3402cf01009818066d32
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Dec 13 17:07:33 2010 -0800

    (#4487) Fix environment column in hosts table
    
    An entire environment object was being stored in a string field,
    causing the ZAML form of the environment to be stored. This was
    over-ridden to return just the ZAML serialized version of the name.
    Since the hosts model didn't know how to interpret a serialized
    value, it just returned the ZAML string as the environment. This
    patch stringifies the environment before putting it in the hosts
    table, which stores it properly.
    
    This patch also introduces a new method of testing using Tableless
    ActiveRecord models, which emulate their database schema. This
    helps to eliminate some stubbing, but it is still impossible to
    fully and accurately test all ActiveRecord interactions without a
    real database.
    
    Paired-With: Matt Robinson

commit dcccdc1d7f31b92f73c9a106960a373a009c1a5b
Merge: 6e997e8 3ac50fa
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Dec 13 13:43:22 2010 -0800

    Merge branch 'maint/2.6.next/safe-pluginhandler' into 2.6.next

commit 3ac50fab81216789d6d5f7d22cb675d3264674cd
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Dec 13 13:30:24 2010 -0800

    maint: restore plugin handler safety
    
    The previous maintenance patch for this file didn't provide as strong of
    a guarantee of loading plugins as the code it replaced.
    This patch restores the extremely broad exception catching, but prevents
    mocha exceptions from being silently ignored.

commit 6e997e819f315d2868de9f3de8ab95c7f6ce8d51
Merge: 56c91fb f38c36c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 10 14:57:03 2010 -0800

    Merge branch 'ticket/2.6.next/5408' into 2.6.next

commit f38c36c63d6404536e075ce03c3d93e0b2f0a731
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 10 14:56:19 2010 -0800

    (#5408) Attributes can be both audited and managed
    
    This patch makes it possible to both audit and manage an attribute.
    It introduces a new field on Event objects "historical_value", which is
    the value from state.yaml. The value from the RAL is written to
    state.yaml, and then the RAL is updated with the desired value.
    
    Paired-With: Nick Lewis <nick@puppetlabs.com>
    Paired-With: Matt Robinson <matt@puppetlabs.com>

commit 56c91fb2accc7c6e53ab8d3c0c60812674c1676a
Merge: 5c8489b 54a1025
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 10 14:46:30 2010 -0800

    Merge branch 'maint/2.6.next/fix-silent-mocha-failures' into 2.6.next

commit 54a1025da96aed794e64080e58a7473afccef5b2
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 10 14:40:43 2010 -0800

    maint: missing stub
    
    This missing stub was raising an exception that, in versions of Mocha
    less than 0.9.10, was coincidentally causing the method under test to
    behave as expected.
    
    Paired-With: Nick Lewis <nick@puppetlabs.com>

commit 1d3192e6d7242c748477bb560a65fb7148f4df78
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 10 14:39:24 2010 -0800

    maint: missing stub
    
    This missing stub was raising an exception that, in versions of Mocha
    less than 0.9.10, was mistaken for the exception that was being tested
    for.
    
    Paired-With: Nick Lewis <nick@puppetlabs.com>

commit 1aa815704036ede76b5d2daf5d01f744466e5f50
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 10 14:12:06 2010 -0800

    maint: missing line and filename stubs
    
    Another missing stub exposed by Mocha 0.9.10

commit 5e5ee97ae4cdedbb7975a44fd8a7a4cd4fb86606
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 10 13:58:55 2010 -0800

    maint: Fully stub partially stubbed test.
    
    This test was succeeding in versions of Mocha before 0.9.10, because the
    Mocha expectation exceptions were being incorrectly interpreted as if
    they were File Not Found exceptions.

commit 3d7c8d091d713eee88a4871da52a72fcc9eb98ee
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 10 13:58:41 2010 -0800

    maint: remove Puppet.settings stubs
    
    This test was stubbing Puppet.settings, instead of setting the values
    directly. Exceptions thrown by trying to read other settings were
    getting swallowed when running a version of Mocha older than 0.9.10.
    
    Paired-With: Nick Lewis <nick@puppetlabs.com>

commit 52fba89d3415bdb6e7f10640ac059f295ea7cadf
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 10 12:49:59 2010 -0800

    maint: test was expecting Catalog.find too few times
    
    Our code calls Catalog.find multiple times, but this stub did not allow
    that. The resulting error was silently ignored on versions of Mocha
    before 0.9.10
    
    Paired-With: Nick Lewis <nick@puppetlabs.com>

commit 8c134b697d2c30128f51cd69e47808a051b96b72
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 10 12:46:15 2010 -0800

    maint: broken test not failing due to over-eager exception catching
    
    A test was not testing what it claimed, but the failure exception was
    getting swallowed by an unnecessarily broad rescue match.
    
    Paired-With: Nick Lewis <nick@puppetlabs.com>

commit 5c8489be9c3ee62c14b524a6d0d4a96dca5b9764
Merge: 6c81593 3e59277
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Dec 8 15:28:54 2010 -0800

    Merge branch 'ticket/2.6.next/1757' into 2.6.next

commit 3e5927773c1dc7bc6e9af922fef09149d1599ef6
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 18 16:35:32 2010 -0700

    Fix #1757 Change file mode representation to octal
    
    This patch changes the internal representation of a file's mode to a
    string instead of an integer. This simplifies the problem of displaying
    the value consistently throughout all of puppet.

commit 8a03adf6c121c8d558faaa555051b6feede861ab
Merge: 4fb675d c88afa0
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Dec 7 13:57:20 2010 -0800

    Merge branch 'ticket/next/5393' into next

commit c88afa0cb9917177502700fddffcf8a40ca75f90
Author: Derek Olsen <derek.olsen@e-hps.com>
Date:   Fri Nov 26 13:57:10 2010 -0800

    (#5393) Add "dataset" parameter to the zone provider
    
    This patch extends the zone provider to support the inclusion of one or more datasets in a solaris zone.  A dataset is an zfs filesystem that has been delegated from the global zone to the non global zone.

commit 6c8159326cb141a8d5714f65e1854293327e6b75
Merge: 9352671 84bf02e
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Dec 6 16:00:44 2010 -0800

    Merge branch 'ticket/next/5423' into 2.6.next
    
    * ticket/next/5423:
      Bug #5423: This moves the home directory property before the uid property, thus minimizing room for damage when usermod is in use.

commit 84bf02e9ade666c4ba1bb63476bfd4b35226e7ac
Author: Jonathan Boyett <jonathan@failingservers.com>
Date:   Tue Nov 30 13:06:06 2010 -0800

    Bug #5423: This moves the home directory property before the uid property, thus minimizing room for damage when usermod is in use.

commit 4fb675d3e028c2429f4fa56bf172d60127c9e608
Merge: d4d51e3 c5a1ca0
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Dec 6 13:28:28 2010 -0800

    Merge remote branch 'someword/feature/master/5391' into next
    
    * someword/feature/master/5391:
      (#5391) Include additional zfs properties

commit d4d51e3d7720108c063505884cca015aff77eff1
Merge: dac675c 626d756
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Dec 6 13:05:27 2010 -0800

    Merge branch 'ticket/next/maint-require_spec_helper' into next
    
    * ticket/next/maint-require_spec_helper:
      maint: Use expand_path when requiring spec_helper or puppettest
      maint: Fix more order dependent test failures

commit 626d7564467bdc0e9d2d385e9aa10c539d9ed175
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Dec 6 12:01:18 2010 -0800

    maint: Use expand_path when requiring spec_helper or puppettest
    
    Doing a require to a relative path can cause files to be required more
    than once when they're required from different relative paths.  If you
    expand the path fully, this won't happen.  Ruby 1.9 also requires that
    you use expand_path when doing these requires.
    
    Paired-with: Jesse Wolfe

commit b9f3847cd2c7efb954f428224d8d721f9edafd64
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Dec 6 11:57:54 2010 -0800

    maint: Fix more order dependent test failures
    
    In commit b67f4c68503ca3abf0a55857da452e46fa75abd5 I fixed one place
    that was causing order dependent test failures in
    spec/unit/ssl/certificate_request_spec.rb, but missed another case that
    was causing a similar failure.  To find all the order dependent failures
    with that file I ran the following bash script from the spec directory:
    
    for TEST in `find . -name "*.rb" -type f`; do
      spec $TEST unit/ssl/certificate_request_spec.rb > /dev/null 2>&1
      if [[ $? != 0 ]]; then
        echo $TEST
      fi
    done
    
    Paired-with: Jesse Wolfe

commit 93526712755d5c30e020754a6f759b204921f423
Merge: 276b151 1131ad7
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Dec 2 15:11:18 2010 -0800

    Merge branch 'ticket/2.6.next/4943' into 2.6.next

commit 1131ad73078c3e3022b23ee8ab756b44c7de27c9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Dec 2 10:49:13 2010 -0800

    (#4943) Add puppet inspect application
    
    "puppet inspect" will load the locally stored YAML catalog and record
    the current state of the audited properties in the catalog. It uses
    settings specified in the [agent] configuration section, and will send
    its inspect report to the specified server.
    
    Paired-With: Jesse Wolfe

commit dac675c94e6ed1ee67a3081ba7379e000ee93c1c
Merge: 022114d af6e08c
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 2 14:43:15 2010 -0800

    Merge branch '2.6.x' into next
    
    * 2.6.x:
      (#5304) Use internal_name rather than real_name for maillist provider
      Updated CHANGELOG and version for 2.6.4
      Revert "(#5304) Use internal_name rather than real_name for maillist provider"
      Disable remote ralsh by default
      (#5424) Ship auth.conf as part of installing from source
      (#5304) Use internal_name rather than real_name for maillist provider
      Renamed Reductive to Puppet
    
    Manually Resolved Conflicts:
    	lib/puppet/provider/maillist/mailman.rb

commit 276b1516cebd8813cb2369932ce9b2754247f9a2
Merge: 04c41a0 c908fdb
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 2 11:27:56 2010 -0800

    Merge branch 'ticket/2.6.next/5261' into 2.6.next
    
    * ticket/2.6.next/5261:
      (#5261) Fix #5261 Don't escape Unicode characters in PSON

commit 04c41a08fbb4234d7656be1d442034021a3b0f12
Merge: 616986d e005cc7
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 2 11:27:42 2010 -0800

    Merge branch 'maint/2.6.next/bogus_mongrel_daemonize_test' into 2.6.next
    
    * maint/2.6.next/bogus_mongrel_daemonize_test:
      maint: Remove bogus mongrel test

commit e005cc79facf74d66a45ae93eadfe3e5737024e4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 2 11:25:17 2010 -0800

    maint: Remove bogus mongrel test
    
    Why test that mongrel responds to daemonize?  EVERYTHING responds to
    daemonize thanks to activesupport.
    
    Paired-with: Paul Berry

commit c908fdb520e0fc203d49e0c14c4c7cbc193ab262
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Nov 22 15:17:51 2010 -0800

    (#5261) Fix #5261 Don't escape Unicode characters in PSON
    
    This patch removes the escaping of valid UTF-8 sequences as "\uXXXX".
    This code was unreliable, as it relied on Iconv's ability to convert
    those codepoints between UTF-8 and UTF-16, but some versions of Iconv
    barf on some valid codepoints.
    
    Invalid UTF-8 sequences are still passed through unchanged. We believe
    that this is fine; if you are concerned about complience with the JSON
    standard, what we are doing is equivalent to:
      * interpreting binary files as Latin-1 encoded character sequences
      * JSON-encoding those characters according to RFC 4627
      * outputting the JSON as Latin-1
    This allows all raw binary files to be transmitted losslessly.
    
    Paired-With: Paul Berry <paul@puppetlabs.com>

commit 022114d8e50b1adb785b38262251979a222e7972
Merge: ab7de67 b67f4c6
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 2 11:09:52 2010 -0800

    Merge branch 'maint/next/test_order_failure' into next
    
    * maint/next/test_order_failure:
      maint: Restore a default value that can cause order dependent test failures

commit b67f4c68503ca3abf0a55857da452e46fa75abd5
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 2 11:07:03 2010 -0800

    maint: Restore a default value that can cause order dependent test failures
    
    If you ran two tests in the following order:
    spec spec/integration/network/server/webrick_spec.rb spec/unit/ssl/certificate_request_spec.rb
    
    You got the following test failure:
    Cannot save me; parent directory /dev/null/ssl/certificate_requests does not exist
    
    Paired-with: Paul Berry

commit ab7de670a13eff599b6b725513fcb8a67e12136b
Merge: ddeba8b 094a5c8
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Dec 2 10:34:11 2010 -0800

    Merge branch 'ticket/next/5211' into next
    
    * ticket/next/5211:
      (#5211) Added patch and tests for checking the size of the arrary which is returned

commit 094a5c85fc9b4b1bd00f14193abdf23839905dc7
Author: Steve Nielson <steve@nielsenhq.com>
Date:   Mon Nov 22 14:58:31 2010 -0500

    (#5211) Added patch and tests for checking the size of the arrary which is returned

commit 616986da3751012cf526ad75fd250abc93e6c52a
Merge: af6e08c b27e9b4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Dec 1 17:34:45 2010 -0800

    Merge branch 'ticket/2.6.next/5081' into 2.6.next
    
    * ticket/2.6.next/5081:
      [#5081] Revert "Fix #4349 - Parsing with ignoreimport=true was always loading site.pp"

commit b27e9b4bd79c30c7910a02122069695044f05477
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Dec 1 17:16:03 2010 -0800

    [#5081] Revert "Fix #4349 - Parsing with ignoreimport=true was always loading site.pp"
    
    The fix for #4349 caused --parse-only not to detect syntax errors when
    --ignore-import was used by adding a return statement that bypassed the
    initial import:
    
    commit 760e418d254a8d2198d2c6eb466d783a5930ef47
    def perform_initial_import
    +   return if Puppet.settings[:ignoreimport]
    
    The problem that #4349 fixed was more generally fixed in commit
    99c1019e1d3402ec8e476dc859d5aaef82ec4f69 for ticket #4798 so the return
    statement is no longer needed, so reverting the commit for #4349 does
    not reintroduce the problem of an import loop error when running puppet
    doc.
    
    Paired-with: Jesse Wolfe

commit af6e08c0a59db951502d0cf8c0ca24f5001e92f1
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Mon Nov 15 12:36:34 2010 -0800

    (#5304) Use internal_name rather than real_name for maillist provider
    
    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>

commit 3f9f37984d1ac5f3ddcc83bf2b1facdb6df6dacd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Dec 2 06:55:11 2010 +1100

    Updated CHANGELOG and version for 2.6.4

commit 76890a534640e077083785ba1321e76b7c4745ca
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Dec 2 06:53:17 2010 +1100

    Revert "(#5304) Use internal_name rather than real_name for maillist provider"
    
    This reverts commit 779fea867a9e23ad48cd877a88756cc5792e9e0c.

commit 19f38794ecb5ce55b7850e77bdab919bb33c7ce3
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Nov 24 15:32:32 2010 -0800

    Disable remote ralsh by default
    
    Changed the default auth.conf so that accesses to "/resource" are no
    longer allowed.  This means that to use "puppet resource -H" you will
    need to configure the target machine to enable access to the
    "/resource" URLs.

commit eee1a9cdaa5cab6222c8e6ab087d319f976fa4e3
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Tue Nov 30 14:19:04 2010 -0800

    (#5424) Ship auth.conf as part of installing from source
    
    Add --configdir which defaults to /etc/puppet
    Add --no-configs to suppress config file installation.
    We're only shipping auth.conf at this stage, but in the future we
    may start shipping other config files.

commit ddeba8bc48f34571328e714a46f4a6c08a79db58
Merge: 701021f 0ab5e0f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Nov 30 16:17:28 2010 -0800

    Merge branch 'ticket/next/2495' into next

commit 0ab5e0f779d7261c4a9faf890cef8df52726a82a
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Sun Nov 21 20:52:49 2010 +0100

    (#2495) Better value validation for sshkey
    
    As mentioned in the ticket it is not obvious that aliases do not belong
    in the resourcename but have to be specified with the property
    "host_aliases". On the puppet-user list I saw someone using this as a
    resource
    
      @@sshkey {"$fqdn,$hostname,$ipaddress":
        type => rsa,
        key  => $sshrsakey,
      }
    
    Puppet will now write a correct entry to the know_hosts file, but when
    it rereads the file, the field $fqdn,$hostname,$ipaddress is split into
    name ($fqdn) and host_aliases ([$hostname,$ipaddress]). Since we dont
    find the resource the user specified, puppet will put the same key in
    the file over and over again. This patch adds a simple validation on
    resourcename.

commit 701021f97870b4b0be07440b30a5c53faaf39933
Merge: 29a6873 0747b58
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 30 14:43:16 2010 -0800

    Merge branch 'maint/next/remove_save_delegation' into next
    
    * maint/next/remove_save_delegation:
      Maint: Modified uses of indirector.save to call the indirection directly.
      Maint: Modified tests of indirector.save to call the indirection directly.
      Maint: Add a default value for key in Facts::NodeExpirer#save
      Maint: Moved auto-signing logic into an indirector extension
      Maint: Swap the order of arguments to Indirection#save

commit 0747b58bfef9c6bb5f1f9ac1eb6a7b3955dac2af
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 30 12:06:52 2010 -0800

    Maint: Modified uses of indirector.save to call the indirection directly.
    
    This change replaces calls to <model object>.save with calls to <model
    class>.indirection.save(<model object>).  This makes the use of the
    indirector explicit rather than implicit so that it will be easier to
    search for all indirector call sites using grep.  This is an
    intermediate refactor on the way towards allowing indirector calls to
    be explicitly routed to multiple termini.
    
    This patch affects production code.

commit f77764de3ace7cc880a77466618a5affe1b61a8e
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 30 12:06:33 2010 -0800

    Maint: Modified tests of indirector.save to call the indirection directly.
    
    This change replaces calls to <model object>.save with calls to <model
    class>.indirection.save(<model object>).  This makes the use of the
    indirector explicit rather than implicit so that it will be easier to
    search for all indirector call sites using grep.  This is an
    intermediate refactor on the way towards allowing indirector calls to
    be explicitly routed to multiple termini.
    
    This patch affects tests only; the next patch will make the
    corresponding change to the code.

commit 779fea867a9e23ad48cd877a88756cc5792e9e0c
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Mon Nov 15 12:36:34 2010 -0800

    (#5304) Use internal_name rather than real_name for maillist provider
    
    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>

commit 7de6af87109062a4c0b038f2f2d93191e6a93e4f
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 30 11:59:45 2010 -0800

    Maint: Add a default value for key in Facts::NodeExpirer#save
    
    Changed to match the signature of the method being overridden.  This
    will allow code to call Facts.indirection.save() without a key.

commit beb85d65e4cced7691163add392f53ec58cb1a3d
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 29 16:32:41 2010 -0800

    Maint: Moved auto-signing logic into an indirector extension
    
    Autosigning was previously accomplished by overriding
    CertificateRequest#save.  This meant that it wouldn't work if
    certificate requests were saved via a direct call to Indirection#save.
    Changed it to use the indirector :extend mechanism, which works no
    matter how the save is invoked.

commit 3063000155ddc475d1703d10cfc13770f687c3b2
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 29 14:52:26 2010 -0800

    Maint: Swap the order of arguments to Indirection#save
    
    The first argument was often nil, and the second was mandatory.

commit 29a68730e4157a780f568529fbf32c9907f48731
Merge: cb6e9c9 8766efe
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 30 11:13:18 2010 -0800

    Merge branch 'maint/next/remove_indirection_delegation' into next
    
    * maint/next/remove_indirection_delegation:
      Maint: Make http handler code call the indirector through ".indirection"

commit 8766efea906f57428ff175cae9355d4b03d499d9
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 30 11:09:20 2010 -0800

    Maint: Make http handler code call the indirector through ".indirection"
    
    In commit 71ecad9904c8c48c023e90e5fbea5b26b180c9cf we removed the
    delegation from model class to indirection for the "find", "search",
    "destroy", and "expire" methods.  When we did this we neglected to
    modify http handler code to call the indirector directly.  This patch
    makes the appropriate changes to http handler code.

commit cb6e9c990945501962bf9bf864309e8e6f83b827
Merge: 52f9ef0 71ecad9
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 29 14:33:49 2010 -0800

    Merge branch 'maint/next/remove_indirection_delegation' into next
    
    * maint/next/remove_indirection_delegation:
      Maint: Refactor code to use <class>.indirection.<method>
      Maint: Refactor tests to use <class>.indirection.<method>

commit 71ecad9904c8c48c023e90e5fbea5b26b180c9cf
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 29 11:56:40 2010 -0800

    Maint: Refactor code to use <class>.indirection.<method>
    
    Replaced uses of the find, search, destroy, and expire methods on
    model classes with direct calls to the indirection objects.  Also
    removed the old methods that delegated to the indirection object.

commit 14f8160674628340ccfd79baeb84f66cf1e0398a
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 29 11:55:00 2010 -0800

    Maint: Refactor tests to use <class>.indirection.<method>
    
    Replaced uses of the find, search, destroy, and expire methods on
    model classes with direct calls to the indirection objects.  This
    change affects tests only.

commit 3eace859f20d9ac7366382826028af44c3ab62d6
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Mon Nov 29 12:41:18 2010 +0000

    Fixing indentation

commit f8e9155926188f66c1918b51950686d3abad8b78
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Mon Nov 29 12:40:19 2010 +0000

    Removing blastwave references and unused PAGER

commit 485ac3865d54b8a0819a75c7d2eb06f11b7daea7
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Mon Nov 29 12:01:04 2010 +0000

    Changing indentation to 2-spaces as per 2.6+ style

commit 9d63171cf3d3650790bc36c149eef14724487d88
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Mon Nov 29 11:33:57 2010 +0000

    Single package queries made more robust when dealing with pkgutil noise

commit 83f878e2304595f803e105abb9b5e77d7ce3272a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Nov 29 18:37:44 2010 +1100

    Renamed Reductive to Puppet
    
    I swear I've done this before. *confused*

commit f50fac7a866fa6c1d546226c5c6d8651eb7ffba6
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Nov 27 14:09:35 2010 +0000

    Fixing wget verbose regex

commit 3da03bb93a32cd17302fb7e0726790e1dbd4019b
Merge: afe2d01 3003719
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Nov 27 14:05:23 2010 +0000

    Merge remote branch 'remotes/rgevaert/master' into tickets/masters/4258

commit afe2d014feb2210a8666c93465d11e9c9d555f8b
Merge: 143fc74 4b35402
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Sat Nov 27 13:36:04 2010 +0000

    Merge branch 'master' of github.com:domcleal/puppet into master-old

commit 52f9ef06507d87026936dc90dcb467a728ebd54f
Merge: 2bc6727 0f00bf4
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Nov 24 12:24:58 2010 -0800

    Merge branch 'maint/next/remove_dead_monkey_patch' into next
    
    * maint/next/remove_dead_monkey_patch:
      Maint: Removed unused monkey patch that connected OpenSSL::PKey::RSA to indirector

commit 0f00bf45872412605a497b3929df0bbb0fa7dd67
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Nov 24 12:22:34 2010 -0800

    Maint: Removed unused monkey patch that connected OpenSSL::PKey::RSA to indirector
    
    This file was never being required, and was inconsistent with the way
    SSL is used in the indirector.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit c5a1ca0b34a57366415df60099ab0918a7579469
Author: Derek Olsen <derek.olsen@e-hps.com>
Date:   Wed Nov 24 11:11:43 2010 -0800

    (#5391) Include additional zfs properties
    
    We added the following zfs properties to the zfs provider
    
    :recordsize, :aclmode, :aclinherit, :primarycache, :secondarycache
    
    Currently zfs users have to chain an exec to the zfs filesystem creation and the inclusion of these properties would allow puppet to set them natively.

commit 4b35402ba85d8842d757becec5c8a7bf4d6f6654
Merge: a7bd163 2bc6727
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Nov 23 16:42:06 2010 -0800

    Merge branch 'next'

commit 2bc6727b6ac7348dbac98099f1fe0aeb3cd1295f
Merge: 78beb70 3a815e1
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 23 13:32:03 2010 -0800

    Merge branch 'ticket/next/5375' into next

commit 3a815e191837f9fc1fb7b6621be607225347f014
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 23 11:47:36 2010 -0800

    (#5375) Rework puppet apply to use configurer.run
    
    Puppet apply used to contain code that duplicated the functionality of
    configurer.run.  Refactored to share code.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 78beb7062caa65cd230e92012a29812b4c4af5ed
Merge: e00c582 99f4d2f
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 23 13:27:24 2010 -0800

    Merge branch 'maint/next/make_upstart_tests_more_robust' into next

commit 99f4d2fe6c3e9d7483206c0788ba5b3fe9f48454
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 23 13:19:59 2010 -0800

    Maint: made upstart tests more robust.
    
    The tests for the upstart provider were attempting to stub
    Process::Status.exitstatus.  However, this doesn't work (presumably
    because Process::Status is implemented in C).  As a result, the
    upstart spec tests were failing if the most recent exit code was
    nonzero.  Changed the tests so that instead of stubbing
    Process::Status.exitstatus to return zero, they execute a command that
    is known to succeed (`true`).
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit e00c582c8977a02200b86f18ccc6debf30abdfed
Merge: 3d2fbf6 9ccd29f
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Nov 23 11:18:23 2010 -0800

    Merge branch 'ticket/next/2866' into next
    
    * ticket/next/2866:
      (#2866) yum should support downgrade.
      (#4711) Provide unit tests for yum package provider.

commit 9ccd29f3aacdab03f2ea9a693b5bca928439683b
Author: Dan Bode <bodepd@gmail.com>
Date:   Tue Sep 7 18:06:09 2010 -0400

    (#2866) yum should support downgrade.
    
    patch originally from Grzegorz Nosek with contributions on
    the test from Oliver Hookins.
    
    checks if the current version is greater than the should
    version, if so, calls yum downgrade.
    
    Reviewed-by: Matt Robinson

commit 04389f502787c6569ffcfa89eb63d76c3c63d29c
Author: Dan Bode <bodepd@gmail.com>
Date:   Tue Sep 7 17:46:39 2010 -0400

    (#4711) Provide unit tests for yum package provider.

commit 3d2fbf604f997e6b9fd94edb96419ffa9869e709
Merge: 9914140 0956757
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Nov 22 15:37:04 2010 -0800

    Merge branch 'ticket/2.6.x/5261' into next

commit 095675711a89d836f4d0f10978ed5759b93fe76f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Nov 22 15:17:51 2010 -0800

    Fix #5261 Don't escape Unicode characters in PSON
    
    This patch removes the escaping of valid UTF-8 sequences as "\uXXXX".
    This code was unreliable, as it relied on Iconv's ability to convert
    those codepoints between UTF-8 and UTF-16, but some versions of Iconv
    barf on some valid codepoints.
    
    Invalid UTF-8 sequences are still passed through unchanged. We believe
    that this is fine; if you are concerned about complience with the JSON
    standard, what we are doing is equivalent to:
      * interpreting binary files as Latin-1 encoded character sequences
      * JSON-encoding those characters according to RFC 4627
      * outputting the JSON as Latin-1
    This allows all raw binary files to be transmitted losslessly.
    
    Paired-With: Paul Berry <paul@puppetlabs.com>

commit 9914140377a82b6c2de45685f565b2607d8b8364
Merge: a95783f 4a2bbbc
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 22 15:02:12 2010 -0800

    Merge branch 'maint/next/all_tests_run_on_their_own' into next
    
    * maint/next/all_tests_run_on_their_own:
      maint: Fix tests that don't run on their own

commit 4a2bbbcf197760ce2eb3c257742293794d6fb571
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 22 14:56:49 2010 -0800

    maint: Fix tests that don't run on their own
    
    From the spec directory I found all the specs that fail when run on their own.
    
    for TEST in `find . -name "*.rb" -type f`; do
      spec $TEST > /dev/null 2>&1
      if [[ $? != 0 ]]; then
        echo $TEST
      fi
    done
    
    All of them were cases of missing requires.
    
    Paired-with: Nick Lewis <nick@puppetlabs.com>

commit a7bd1630622cace01d0e4c974c76366e4b3b886c
Merge: d19f36e f3cd668
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 22 13:38:02 2010 -0800

    Merge branch 'maint/master/fix_missing_require_test_failure'
    
    * maint/master/fix_missing_require_test_failure:
      maint: Fix a test that was missing a require

commit f3cd668b51bd98c7eee32222b550ed1160502b0e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 22 11:59:18 2010 -0800

    maint: Fix a test that was missing a require
    
    Paired-with: Nick Lewis

commit a95783f6d6044789e6a0408976126757d4e9f084
Merge: 9ed1235 7c16215
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 22 12:04:22 2010 -0800

    Merge branch 'maint/next/fix_missing_require_test_failure' into next
    
    * maint/next/fix_missing_require_test_failure:
      maint: Fix a test that was missing a require

commit 7c162157148240814e67124a5362548933a6db8a
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 22 11:59:18 2010 -0800

    maint: Fix a test that was missing a require
    
    Paired-with: Nick Lewis

commit 9ed1235c295995b61373b11aa4ae0cc6bb320527
Merge: a10deae ccc944f
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 22 11:56:41 2010 -0800

    Merge remote branch 'masterzen/feature/master/4339' into next
    
    Manually resolved conflicts:
    	spec/unit/configurer_spec.rb

commit a10deae8913f12935726da6944cad627e3277c52
Merge: 2f1e05b 32dcb31
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 22 11:42:43 2010 -0800

    Merge branch 'ticket/2.6.x/5370' into next

commit 32dcb31a7a371ea542bf3c733d3d775ef3a8e51d
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 22 11:27:37 2010 -0800

    (#5370) Made metrics and --summarize work with Puppet apply
    
    Puppet apply and Puppet agent use different code paths to run the
    transaction.  In the code path for Puppet apply, we weren't passing
    the report to catalog.apply, and as a result catalog.apply was
    creating its own report to store metrics in; this report was then
    discarded.  As a result, reports generated using "puppet apply" had no
    metrics, and the "--summarize" option didn't work at all.
    
    Fixed by modifying the "puppet apply" code path to pass the report to
    catalog.apply.  In the future it would be nice to refactor the two
    code paths to be the same.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 2f1e05b04b3f1129b6c0ae415c5b0c2c5e62b330
Merge: 2a7863a e825485
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Nov 18 14:58:03 2010 -0800

    Merge branch 'maint/next/log_refactoring' into next

commit e8254856a5c9fa532886148cbe2b0f8d87179f01
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Nov 18 11:09:46 2010 -0800

    Maint: Added assertion to make sure Log.close_all succeeds
    
    If the hash containing log destinations gets corrupted, Log.close_all
    could fail silently.  This change adds an exception to make these
    failures easier to debug should they ever happen again.

commit cf18353472ce9c4e51157d21882a7f129853fd10
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Nov 18 13:21:35 2010 -0800

    Maint: Switched spec tests to use a class rather than Array as the log destination.
    
    Using an Array as a log destination is unreliable because Puppet's log
    mechanism stores log destinations in a hash whose key is the
    destination itself.  Since arrays can change their hash when they are
    modified, this was causing the log destination hash to become
    corrupted, producing sporadic spec test failures.

commit ee56cfd01fce154da38d5f251f66c495b2013b5d
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Nov 18 11:48:32 2010 -0800

    Maint: Improved spec tests
    
    In configurer_spec.rb, replaced some mock classes with actual
    Puppet::Transaction::Report objects.  In log_spec.rb, stopped using
    the Array type as a log destination, since doing so was unreliable.

commit 2a7863a87f685a7bff254cce7e557e9eb143ba7d
Merge: 263cc46 b089392
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Nov 18 14:31:16 2010 -0800

    Merge branch 'maint/next/rake_spec_backtraces' into next

commit b089392f988eaa7eed098751596bb12a846d447b
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Nov 18 11:43:34 2010 -0800

    Maint: Modified "rake spec" so that it prints full backtraces.

commit 263cc46ce03be7020dfc3e108db44616f5b66dce
Merge: 669741d 6e51d11
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Nov 18 14:24:08 2010 -0800

    Merge branch 'ticket/next/5274' into next

commit 6e51d11c53012d5e5d5fa05cce26e13d97e223cb
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Nov 18 14:15:41 2010 -0800

    (#5274) Fixed some "rake unit" tests that were inadvertently broken by
    commit:ee7d2f92f9d3ec45b5c3a9cd3fe2f5832b17f23b

commit 669741d11f30b051b74b4e118fe6509650fdeed3
Merge: b5261cd cd8126f
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Nov 17 16:53:48 2010 -0800

    Merge branch 'maint/next/fix-intermittent-parser-spec-failure' into next

commit cd8126f4422afd452564e37fae501f9c356a751d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Nov 17 16:52:21 2010 -0800

    maint: Fix intermittent parser spec failures
    
    The variable 'ast' was being used as shorthand for Puppet::Parser::AST,
    but a test was also trying to use it as a local variable, causing
    problems.

commit b5261cddc1b771fea57a14ea7174ec6d801076d5
Merge: 68b1404 2052f36
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Nov 17 16:01:06 2010 -0800

    Merge branch 'ticket/next/5274' into next

commit 2052f3611fd18cb93a43f4cfb547c9c9205a8952
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Nov 17 23:28:56 2010 +0100

    (#5274) New tests for new hosttype/parsedprovider
    
    Just a few additional tests for the new property "comment" of the
    host type.

commit ee7d2f92f9d3ec45b5c3a9cd3fe2f5832b17f23b
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Nov 17 23:15:46 2010 +0100

    (#5274) New comment property for the hosttype
    
    When the parsefile provider for host parses /etc/hosts, it throws any
    inlinecomment away. As a result they are also purged in /etc/hosts after
    a puppetrun that detects a change. That could be dangerous because you
    will lose information even about unmanaged resources.
    
    So if you have something like
    
    192.168.0.1 hostentry_not_managed_by_puppet # Important comment
    
    in /etc/hosts the endresult will be
    
    192.168.0.1\thostentry_not_managed_by_puppet
    
    This patch introduces a new property "comment" for the host type. The
    provider is nearly a complete rewrite and a lot shorter and hopefully
    easier to understand.

commit 8efdc769db2e144fe61eccbb1663a1c9594b09ab
Author: Stefan Schulte <stefan.schulte@taunusstein.net>
Date:   Wed Nov 17 22:59:47 2010 +0100

    (#5274) Tests for hostprovider removes comments
    
    I noticed that the hostprovider will remove all inline comments from the
    /etc/hosts file, when puppet updates at least one entry. Puppet will also
    remove comments from entries, the user doesnt want to manage with
    puppet.
    
    To split up changes a bit this commit will only introduce tests for the
    host type and the hostprovider. A few will fail, indicating the bug:
    
    The hostprovider parses all entries and builds a hash. When building
    the recordhash all comments are discarded. When puppet has to update at
    least one entry it uses the to_line function to convert the record hash
    back to a file. Because the comments are not stored in the hash, they
    cannot be written back to the file.

commit 68b1404804d239670092a40607eacbf03757ba16
Merge: a32bd16 b753d83
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Nov 17 15:33:00 2010 -0800

    Merge branch 'ticket/next/5288' into next

commit a32bd16c6f3311c3f836346ac17ce80c777ac85f
Merge: e6ec646 28e5772
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Nov 17 15:30:12 2010 -0800

    Merge branch 'ticket/next/5304' into next

commit 28e5772d035057e1fe80e6092d8c1b463613e9f8
Author: Nigel Kersten <nigel@puppetlabs.com>
Date:   Mon Nov 15 12:36:34 2010 -0800

    (#5304) Use internal_name rather than real_name for maillist provider
    
    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>

commit e6ec6468c4a9eec58dc155858665a70eee4dfb8c
Merge: fb2b9e6 53bb805
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Nov 17 15:19:15 2010 -0800

    Merge commit '2.6.3' into next
    
    Resolved conflicts manually:
    	spec/integration/indirector/bucket_file/rest_spec.rb
    	spec/integration/indirector/certificate_revocation_list/rest_spec.rb

commit d19f36e7e7d498b9ca12c5ce536f3ee3db114279
Merge: 2b8e834 8e2a945
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Nov 17 14:17:44 2010 -0800

    Merge branch 'next'

commit 300371944b29c9b4f72964e223a74e1b38bb42a7
Author: rgevaert <rudy+github@webworm.org>
Date:   Wed Nov 17 20:13:41 2010 +0100

    These regular expressions will not match anything.  pkgutil doesn't output anything that can be matched.

commit fb2b9e65990477e81728402afa1aab6fbe4a9c7e
Merge: ed49313 8e2a945
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Nov 17 06:18:42 2010 -0800

    Merge branch 'next' of git://github.com/puppetlabs/puppet into next

commit ed49313c025131fa7a4697e834233a6e952ab6dd
Merge: 0d24ea3 3c44121
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Nov 17 06:02:05 2010 -0800

    Merge branch 'ticket/next/4590' into next
    
    Conflicts:
    	lib/puppet/util/monkey_patches.rb
                -- two unrelated additions had been made, kept them both.

commit 53bb805f118ccaca5598e60afadfa6b777410a0f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Nov 17 10:03:56 2010 +1100

    Incremented CHANGELOG for 2.6.3

commit 8e2a945368f8144947d8ada9542191f38358520b
Merge: 0d24ea3 6c7290b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Nov 16 14:24:14 2010 -0800

    Merge branch 'ticket/next/5079' into next
    
    * ticket/next/5079:
      (#5079) Refactor and cleanup mcxcontent provider
      (#5079) Move methods around to make it clearer whether they're public or private

commit 6c7290b4ddff112f97fd6ecf992f901ded953507
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Nov 16 11:30:38 2010 -0800

    (#5079) Refactor and cleanup mcxcontent provider
    
    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>

commit c643e98c57e781353bfac55e7edb6690450076e3
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Nov 16 11:21:35 2010 -0800

    (#5079) Move methods around to make it clearer whether they're public or private
    
    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>

commit 184733cda074d1190f163416ab5ae1070f83c439
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Nov 16 13:42:17 2010 -0800

    [#5322] (#5322) Remove spec file that adds little value and causes failures
    
    spec/integration/indirector/rest_spec.rb has been deleted in puppet’s
    next branch because it was found that the things being tested were
    already covered in spec/unit/network/http/*. Also, the tests being
    deleted were so overly mocked they weren’t testing much, and firing up
    webrick as part of the tests was slow and causes intermittent failures
    on Hudson.
    
    This was discussed on the dev mailing list in the really long thread "No
    puppet developer patches to the puppet-dev list".
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit 178c2a628256d22b6bec39ee6f9022b38c9aa4f4
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 4 14:01:49 2010 -0700

    Fix test failures that fixing #4726 exposed.
    
    The patch for #4726 causes old unit tests of the rrd reporting
    infrastructure to run on my machine. These tests were calling the old
    report api, which does not succeed.
    Also, the rrd settings had unintentionally been moved out of the
    :metrics section, making it possible that the rrd report directory would
    fail to get created during testing.

commit 74b6c09e3b074e0ffc8679dcf31b5fa900020e39
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 15 14:24:15 2010 -0800

    (#4726) Fix RRD legacy support
    
    There was a section of code that didn't take the legacy RRD library into
    account.  This caused a unit test failure, but only if you have the RRD
    legacy library installed, which I did.
    
    Paired-with: Jesse Wolfe <jesse@puppetlabs.com>

commit 866205624873d0a6ab17c03061e89d74a3a77019
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Oct 15 12:43:06 2010 -0700

    Fix for #4279 -- mount detection on HP-UX
    
    This is based on the discussion on ticket, simplified slightly and with test
    adjustment.

commit fbb096a1eb6394da3199c03645986a1315132272
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Oct 20 11:33:20 2010 -0700

    Fix for #5055 -- adding to_sym to Puppet::Node::Environment
    
    The currious part is that this wasn't noticed before since it appears to block
    server-first migration to 2.6.x and doesn’t appear to be the consequence of a
    recent (2.6.3) change (unless, as is quite possible, I’m missing something).

commit b2ff6a50202a05f2925fa5046a39ef7f163983f1
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Nov 15 19:19:02 2010 -0800

    Fix for #5298 -- Collections need to do type lookup
    
    When the responsibility for type-name resolution was moved to the AST nodes in
    commit 449315a2c705df2396852462a1d1e14774b9f117, at least one instance was
    missed: the space ship operator
    
        Myclass <<| tag == foo |>>
    
    fails unless Myclass has been previously loaded.  This commit adds the lookup
    to AST::Collection nodes in the same way it was added to the other node types.
    
    Note that I haven't audited the other note types for similar cases.

commit 1ce00dccb840abd9e11432d00c73bdd1de104751
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Nov 15 18:49:53 2010 -0800

    Step towards [5298] -- cleanup indentation, etc. in AST::Collection
    
    My code smell routines bobbled this one, so I'm fixing it manually.

commit 722608b3592caf31f9fbe096e7e85c33215d33fd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Nov 14 09:35:37 2010 +1100

    Fixed #5287 - Schedule documentation is incorrect

commit c8b6fb5bed057bf25a25c9e1b3f55bedf64ba775
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Nov 15 19:41:43 2010 +1100

    Fixed #5296 - test warnings messages

commit d221c05e08627b9dffede6c56e210edca3b04c03
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 15 10:34:53 2010 -0800

    (#5297) Fix schedule tests that were missing stubs for Time.now
    
    Reviewed-by: Jesse Wolfe <jesse@puppetlabs.com>

commit f2fd0d1ec854542ee0b1284bccaf698f9ad69b81
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Nov 16 10:11:55 2010 -0800

    Fix for #5273 -- user resource constantly resetting password age
    
    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.

commit 2725fb3b4821543f2e17f5eaf51d9a95fa177f38
Author: rgevaert <rudy.gevaert+github@ugent.be>
Date:   Tue Nov 16 12:03:52 2010 +0100

    Add comments that explain what we are ignoring in the package and remove legacy output

commit 143fc744a839affd328234fca26246d49d15d3d8
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Mon Nov 15 22:51:17 2010 +0000

    Ignoring lines from use_gpg and catalog fetching

commit 69a3451cb89c819291721f810b58f3ccf08b4cc5
Author: Dominic Cleal <dcleal@redhat.com>
Date:   Mon Nov 15 22:49:46 2010 +0000

    Adding patch from Rudy Gevaert to fix not installed detection

commit 544dcf80db32ef0827f19366af453d17224d2df6
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Nov 13 21:22:08 2010 -0800

    Fix #5289 -- Bad copy/paste changes message on test failure
    
    In my fix for #4894 (commit a097b939ab52bafb681cf7c5dcaf11717add07e6) I made
    and tested the fix in one case and then copied most of it (all but a variable
    initialization, Doh!) to two other locations.  This caused tests that would
    have failed with a socket-in-use error to fail with a different error rather
    than retrying.
    
    Also fixed the spelling of "simultaneous."

commit b753d836c5ea18333a1199b20b5c495f562f2af4
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Nov 14 09:16:59 2010 +1100

    Fixed #5288 - Changed report default to true

commit ccc944f21a259f0216b0bfd4873c98d89127a753
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 13 11:41:18 2010 +0100

    Fix #4339 - Locally save the last report to $lastrunreport
    
    Using the cache terminus system, when --report is on, we are now
    caching the last report as a yaml file in the $lastrunreport file
    (which by default is $statedir/last_run_report.yaml).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 8ab1aba853231a5e541346955dcd502a67992eb6
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Nov 12 13:41:00 2010 +0100

    Fix #4339 - Allow puppet apply to save last run summary
    
    Puppet apply inconditionally saves its last run summary
    like puppet agent.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 4d31430275016c9abbd4f621e731ff2eeb1718e5
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Nov 12 13:39:41 2010 +0100

    Fix #4339 - Save a last run report summary to $statedir/last_run_summary.yaml
    
    Once a configuration run is done, puppetd will save on the node a
    yaml summary report roughly akin to:
    
    ---
      time:
        notify: 0.001025
        last_run: 1289561427
        schedule: 0.00071
        config_retrieval: 0.039518
        filebucket: 0.000126
      resources:
        changed: 1
        total: 8
        out_of_sync: 1
      events:
        total: 1
        success: 1
      changes:
        total: 1
    
    This is almost an hash version of the current --summarize output, with
    the notable exception that the time section includes the last run unix
    timestamp.
    
    The whole idea is to be able to monitor locally if a puppetd does its job.
    For instance this could be used in a nagios check or to send an SNMP trap.
    The last_run information might help detect staleness, and this summary
    can also be used for performance monitoring (ie time section).
    The resource section can also show the number of failed resources.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 126681ff87f3a05962b9271ca85d136c48a71232
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Nov 12 15:03:48 2010 +1100

    Updated CHANGELOG for 2.6.3rc3

commit b15231df5842df2ea83b779b22e6756e51bc39d0
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Nov 4 13:53:23 2010 -0700

    Fix for #4299 -- Don't require which
    
    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.

commit 0d24ea3583c4cd6a4583f4788686a4f9e02cb994
Merge: 7c78080 b0acb02
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Nov 11 13:57:42 2010 -0800

    Merge branch 'feature/next/3747' into next

commit b0acb02b568598ec8dba41aa856f74658b2033dd
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Nov 11 13:47:43 2010 -0800

    (#3747) Add specs for upstart provider
    
    Paired-With: Matt Robinson

commit 2b772f761e151c3c2be41e1688e9af9a22d73dd0
Author: Nan Liu <nan@puppetlabs.com>
Date:   Thu Sep 16 23:13:31 2010 -0700

    (#3747) Implement upstart provider

commit 7c7808059a18832234742f0dc3af3f1a034e1033
Merge: 3228a27 6f1416d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Nov 11 11:26:44 2010 -0800

    Merge branch 'ticket/next/4904' into next

commit 6f1416d7a4cec92ccff64d904d5fe799b8ff9a85
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Nov 11 11:14:02 2010 -0800

    Fix #4904 Mounts shouldn't remount unless they are ensure=>mounted
    
    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>

commit 3228a279c6df183309bfa89fb0d890360f6ff697
Merge: 275a224 bf11e7c
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Nov 11 10:23:37 2010 -0800

    Merge branch 'maint/next/clean_up_local_branch_in_mail_patches' into next

commit bf11e7c7aa4ce3337c6697d0b25ee2cdd28ba10c
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Nov 11 10:18:04 2010 -0800

    Maint: Move "Local-branch:" info below "---"
    
    When running "rake mail_patches", moved the "Local-branch:" info lines
    below the "---" line in the e-mail, so that if someone applies the
    patch using "git am", the "Local-branch" notation won't show up in the
    commit message.

commit ea435a43dc97487d054271a9efb208f361408339
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 16 16:58:04 2010 +0200

    Fix #5020 - Prefer finding node name from REST uri over certname
    
    This is a behavior change. Before this patch, we always used the currently
    connected node's certname to compile the catalog, despite the value of
    the catalog URI REST request.
    With this patch we now use the URI as the compiled node name.
    
    This is safe because the default auth.conf (and default inserted rules
    when no auth.conf is present) only allow the given connected node to
    compile its own catalog.
    
    But this also allows for greater flexibility with auth.conf. For instance
    it can be used by a monitoring system to check multiple nodes catalogs
    with only one certificate:
    
    path ~ ^/catalog/([^/]+)$
    method find
    allow $1
    allow monitoring-station.domain.com
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit a097b939ab52bafb681cf7c5dcaf11717add07e6
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Nov 9 15:31:46 2010 -0800

    Fix for #4894 -- retry tests if port is in use
    
    If multiple processes are running the spec tests they may conflict trying to
    listen on a port.  If this happens the test waits 0.1 seconds and retries for
    up to 100 times before marking the test pending due to too many conflicts.

commit ee61b4ecec7d5a993eac6a356b4bc0dcc6ceaf94
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Oct 18 15:55:41 2010 -0700

    Fix for #4955 -- Race condition & memory leak in Puppet::Util
    
    The Puppet::Util.sync method was not thread safe and also leaked memory. I'm
    not certain, but I believe the first is ironic and the second is merely a bug.
    
    This patch addresses the problem by 1) refactoring so the sync objects
    are never returned (and thus no one can cache a reference to one) 2) adding
    reference counting 3) deleting them when they are no longer needed 4) doing
    the thread safty dance.
    
    It wasn't the first (or even second) solution considered, but it's the one
    that I was able to make work in a way that I'm convinced is correct.  Its
    main advantage is that it puts all the tricky bits in one place.

commit f57425da6aeefd4ff019068c5933add0d2a02f87
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 16 20:04:57 2010 +0200

    Fix #4921 - race condition in Parser Functions creation
    
    The autoloading is not thread safe, which means two threads could both
    autoload the same function at the same time.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 9604f1c4cd5a368da08c6f3219b44908a9b9921c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Nov 11 15:51:21 2010 +0100

    Fix #5252 - line number mis-attribution during parsing
    
    It is a resurgence of #2366 that appeared because of the commit
    8971d8.
    
    Before this commit, for associating documentation comments, we
    were preferring line numbers coming from the parser currently reducing rule,
    instead of the current lexer line number (which can be in advance
    of several tokens due to the nature of LALR parsers).
    
    We now merge the ast line number before fetching the comment from the
    lexer.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit cc5224c1912f2e95663c14ca803700070130fb69
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Nov 10 20:56:42 2010 -0800

    Maint. fix for test broken by 00eedac5
    
    As per Nigel, this fixes the test broken by commit 00eedac5 in which a :combine
    was added in lib but the corresponding change was not made in the test.

commit 2b8e834fcbc548a221b4cd02ee7200fa4f6c2c78
Merge: 7236a33 275a224
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Nov 10 16:05:15 2010 -0800

    Merge branch 'next'
    
    This marks the end of the agile iteration from 11/3-11/10.

commit 5f7d0fbb3699cba28d10adac62c69aedfce2df38
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Nov 2 11:10:33 2010 -0700

    Fix for #2568 -- Add a dbconnections option to set AR pool size
    
    The dbconnection option, if set to a positive integer, will be passed to
    active record as the connection pool size (pool).

commit ba4d22bce3fbb7af3bef50088623605350a9891e
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Nov 1 15:58:09 2010 -0700

    Maint.  Removing code for which no CLA has been signed
    
    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.

commit 4a3d5d7c11bea5efba6f8fa8074b52c7161fd1d3
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Sep 22 16:21:33 2010 -0700

    Reimplementation of functionality removed by prior commit
    
    This commit implements the base path-to-source functionality and adds an
    (adapted) version of Matt's code on top of it.

commit 235d64163c9565b9e07be0873248a7da07033bff
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Sep 22 11:38:28 2010 -0700

    Refactor for CLA
    
    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

commit 9ba0c8a22c6f9ca856851ef6c2d38242754a7a00
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 16 15:10:28 2010 +0200

    Fix #4923 - close process race when truncating existing file
    
    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>

commit cb16d3dcbad47e832890fe869e3d4f9c7224434c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Oct 17 16:06:50 2010 +0200

    Puppet-load: better and safer error reporting
    
    In case of connection, dns or timeout error, puppet-load would not report
    the error correctly or could crash.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 1d267425053784bd91d99187f85884ea61605cdf
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Oct 17 16:21:12 2010 +0200

    Fix #5023 - puppet-load multiple nodes support
    
    This patch allows puppet-load to compile multiple nodes catalog.
    This is done by using multiple --node. Puppet-load will use round-robin
    to chose which nodes catalog to ask for a given simulated client.
    It is also possible to pass a directory of facts yaml file in which
    puppet-load will load given --node facts file.
    
    This can work only if #5020 is applied to the puppetmaster first.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 275a224ee245577c4213b3a21bf1e98301740a4e
Merge: e62870f f2537d8
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 16:47:01 2010 -0800

    Merge remote branch 'masterzen/tickets/2.6.x/5023' into next

commit e62870f63c63644a7719636f211c8e821695cc20
Merge: 0f5c57f 04515cf
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 15:43:26 2010 -0800

    Merge branch 'feature/master/5198' into next

commit 04515cfb1230d6bf0fd88910c91715d1d94faeae
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 15:42:48 2010 -0800

    (#5198) Added a spec test for new TB unit

commit 0f5c57f0f81879ec0bf8be0350ad87ac9778527d
Merge: 777d19e 7d35a47
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 15:27:49 2010 -0800

    Merge remote branch 'jamtur01/tickets/2.6.x/5108' into next

commit 777d19ec48616bd29d66190c94ce6bdba00a5692
Merge: 1d708a6 4d1681e
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 15:16:16 2010 -0800

    Merge remote branch 'jeffmccune/ticket/2.6.x/5062' into next

commit 1d708a67c7db3a631a5577f8b26232c248862eca
Merge: 22d81f0 80adb39
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 15:13:38 2010 -0800

    Merge commit '2.6.3rc2' into next

commit 80adb39d1f4e87fe2fa12bd03df335fc285c0bb6
Merge: 2279fe1 244213c
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 15:11:36 2010 -0800

    Merge commit '2.6.3rc2' into next
    
    Manually resolved conflicts:
    	lib/puppet/parser/ast/resource.rb
    	spec/unit/parser/ast/resource_spec.rb

commit 22d81f0b319b260aa4cf4f6bbc5948fb6b1d4db9
Merge: 2279fe1 4506dfe
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Nov 9 14:19:58 2010 -0800

    Merge branch 'ticket/next/5150' into next
    
    * ticket/next/5150:
      (#5150) Make fact REST terminus configurable to connect to inventory service

commit 2279fe12b32bd626066d9b7637367fcbb293c29b
Merge: 0aab84f 631c5a8
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 13:37:43 2010 -0800

    Merge branch 'maint/next/add_local_branch_to_mail_patches' into next

commit 631c5a8e455808dbc919211b5151fd501f6475c9
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 13:35:59 2010 -0800

    Maint: Add "Local-branch:" info to mails sent by "rake mail_patches"

commit 0aab84ffa6721acbe16b64263bbab4134652e734
Merge: a548503 f0a1467
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 12:09:33 2010 -0800

    Merge branch 'maint/next/clean_up_agent_spec' into next

commit a54850328bded4e6d0ee456eda6c5254dfc379a2
Merge: 442a2e6 2ec1b55
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 12:08:55 2010 -0800

    Merge branch 'maint/next/missing_fileserver_requires' into next

commit 2ec1b552e24d3b42391a6471e477422f67ea00bd
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 12:05:49 2010 -0800

    Maint: Added missing requires to fileserver.rb.

commit f0a146766a8425513e3c0cb3e3a1b642e59820b9
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Nov 9 11:56:43 2010 -0800

    Maint: remove unnecessary stubbing from agent_spec
    
    The agent spec tests were stubbing out all methods related to Puppet
    settings, making it difficult to keep these tests maintained.  The
    tests now function by setting the settings in question.

commit 00eedac5917fdc4ca5cee5c831e7f2e105a668a4
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Sep 30 16:44:48 2010 -0700

    capture stderr from exec resources

commit 4cbceab68f3d84b322d9b78ddb95c34615906bb9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Oct 4 15:23:02 2010 -0700

    (#4573) FreeBSD service provider now supports versions <7 and >8
    
    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

commit 06c8748cbfed67b2440e11577a52f60c43277217
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 16 19:10:43 2010 +0200

    Fix #3808 - puppetdoc should use --force-update only if RDoc supports it
    
    This should allow to run puppetdoc on ruby 1.8.5.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 6e6712b543949bc5bb98e63cfdf4112c79adc28c
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Sep 21 14:41:17 2010 -0700

    [#4813] Remove dead code from puppet/rails/host.rb
    
    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.

commit 956296a74c701fee79d8eed898ce64da02c983de
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 16 17:47:50 2010 +0200

    Fix #4911 - Do not generate doc for standard RDoc parser generated object
    
    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>

commit 4fa24bb4be7fd73af2a25884185f91b42f73d785
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 30 15:29:19 2010 +0200

    Fix #5127 - error when accessing array elements
    
    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>

commit abb8c669378af8f3551418330751aaad80b2d6c2
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Nov 9 10:02:09 2010 -0800

    (#5242) Fix schedule specs that fail near daylight savings
    
    I fixed a few of these in a previous patch, but Hudson found more.  I
    replaced the pattern of using Time.now and then doing date math to
    calculate intervals with the pattern of hard setting the intervals using
    utc times for the test.
    
    Reviewed-by: Paul Berry <paul@puppetlabs.com>

commit ec667fd53f9f611641755d086f09cbc61b1ca203
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Nov 4 22:26:28 2010 -0700

    Kludge for #5206 -- port of fix for #3536 to yaml
    
    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).

commit 442a2e6b81f8cdcd2dc0ad24c7c2c66873148e25
Merge: 04fb78c 5c24579
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Nov 9 10:30:18 2010 -0800

    Merge branch 'maint/next/forkbomb' into next

commit 9a3b5849c54c3f354670b5a912fd393f7010977e
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Oct 20 15:22:06 2010 -0700

    (#5062) Add envpuppet helper script to ext/
    
    This script helps people quickly test different branches of various
    puppet related projects like facter, puppet-scaffold, puppet-dashboard,
    etc...  It allows the user to simply clone puppet and start running
    different puppet version without installing puppet or any other setup
    costs.

commit 5c2457952660e3e531e085757fd85c382676a96e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Nov 4 17:32:11 2010 -0700

    maint: prevent fork bombs by disabling ActiveSupport's Kernel.daemonize
    
    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.

commit aad700802b9a82dd17dd3f7c7e2557c432ac2aad
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 8 09:41:13 2010 -0800

    [#5225] Fix spec failure that depended on time change
    
    Turns out that:
    
    zero = Time.now # Reset the current time to X:00:00
    current = zero - (zero.hour * 3600) - (zero.min * 60) - zero.sec
    
    current is actually 1am on a day where the time falls back (Nov 7th),
    not midnight as the test expected.
    
    Reviewed-by: Paul Berry <paul@puppetlabs.com>

commit 21db472640c8e606565c9693d4737f40a1bf8cce
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Nov 8 12:04:26 2010 -0800

    (#5233) Randomize tmp dir paths
    
    Standardize how we create tmpdirs by using the puppet function instead
    of Dir.tmpdir.
    
    Paired-with: Paul Berry <paul@puppetlabs.com>

commit 04fb78c911965cc3059d71b356c7e90b4f90ee0d
Merge: 555d6bc f8d1427
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Nov 8 10:54:06 2010 -0800

    Merge branch 'feature/next/cert_inspector' into next

commit f8d1427379f16d116c161e7231a26ba5451bc45f
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Nov 5 11:45:31 2010 -0700

    maint: First draft of cert inspector
    
    This script, ext/cert_inspector, takes directory names as command line
    arguments, searches those directories for SSL certificates, determines
    the type and contents of each cert, maps relationships between
    certificates, and prints a summary to standard out.

commit 4506dfeab3eead32f44f4baa461ebba88fe098ab
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Nov 5 11:37:27 2010 -0700

    (#5150) Make fact REST terminus configurable to connect to inventory service
    
    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>

commit 555d6bc671a1a9c128d6f66b2d85b011c84761ba
Merge: 4d3c41e 9e2a0e4
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Nov 4 10:07:15 2010 -0700

    Bookkeeping: Merge commit '9e2a0e4' into next
    
    This synchronizes merge commits between master and next.

commit 7236a33d6c5c9fbb0f46ffd7826965dbaae6a39b
Merge: 9e2a0e4 4d3c41e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Nov 3 20:00:46 2010 -0700

    Merge branch 'next'
    
    This marks the end of our first agile iteration.

commit 9e2a0e41dfb253a19180aeea6b66f65ca8d63133
Merge: b1ef091 85543a4
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Nov 3 19:58:38 2010 -0700

    Merge commit '85543a4'
    
    This updates `master` to the pre-agile-iteration state.

commit 71a0ceadffc816c08dd979e139fbbf2fa94023a0
Author: Garrett Honeycutt <puppet-dev@garretthoneycutt.com>
Date:   Wed Nov 3 16:38:06 2010 -0700

    (#5198) add terabyte support to tidy type's size parameter

commit 91ac1629dbefa70382636d6e08768038aeb7f298
Author: Garrett Honeycutt <puppet-dev@garretthoneycutt.com>
Date:   Wed Nov 3 16:36:43 2010 -0700

    (#5198) add gigabyte reference to docs for tidy type's size parameter

commit 4d3c41ee5316285bb0df38aeeb76746016803c16
Merge: a82f4d2 cfe2025
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Nov 2 11:15:30 2010 -0700

    Merge branch 'maint/next/remove-request-object-from-rest-api' into next

commit cfe202539018b27c35ff833152f237bc30569a5f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Nov 1 18:03:02 2010 -0700

    Maint: Remove Indirector::Request objects from HTTP Handler and API V1
    
    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.

commit a82f4d23fe5a025b8a9e893d29933f092973f014
Merge: ee4eda8 3d32fe8
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 1 13:48:48 2010 -0700

    Merge branch 'ticket/next/5166' into next

commit 3d32fe836eefac1974e00b2763322c998b452ddb
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 1 13:46:21 2010 -0700

    (#5166) Inventory service is now searchable by timestamp.
    
    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.

commit 1f80cc6ed0caadd82171b4fb9fbe117142cd535e
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 1 13:32:14 2010 -0700

    Refactored Puppet::Node::Inventory::Yaml tests in preparation for adding freshness check

commit 6c116015ce4a9e6e7de392047f38b7a9e911bc0c
Author: Paul Berry <paul@puppetlabs.com>
Date:   Mon Nov 1 13:26:41 2010 -0700

    Refactor Puppet::Node::Inventory::Yaml in preparation for adding freshness

commit ee4eda825c33469e09c88a1f8c4234202cce5ce9
Merge: 5a291ba fb5f859
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Nov 1 11:55:32 2010 -0700

    Merge branch 'ticket/next/5164' into next

commit fb5f859cf4a89042a1768b6cbc2dbfc43da49c99
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Nov 1 11:45:27 2010 -0700

    Fix #5164 Change Facts timestamp when they are received by the master
    
    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>

commit 5f0cf4ef50a3676229a1c824b9a730b6951e1c7a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Nov 1 11:40:48 2010 -0700

    Maint: Don't use a stub for a Facts object in the compiler specs
    
    The catalog compiler spec was overstubbing the Node::Facts object,
    making it hard to test the interaction between those two systems.

commit 90af9201aefdbd7647827ba772e4564ee05aa6ad
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Nov 1 11:38:38 2010 -0700

    Maint: spec/unit/indirector/catalog/compiler_spec.rb wouldn't run by itself
    
    Require puppet/rails so we can run this test alone.

commit 5a291bace188ea5da4812b79583f87206ceb27e1
Merge: 1b60cc3 5bf19e4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Oct 28 16:05:19 2010 -0700

    Merge branch 'ticket/next/4894' into next
    
    * ticket/next/4894:
      [#4894] Randomize port on webrick tests

commit 5bf19e40df5e955c045f7a42a070cdbefecbcbe1
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Sat Oct 23 08:04:31 2010 -0700

    [#4894] Randomize port on webrick tests
    
    This isn't a great test fix, but it should be enough for now to stop the
    sporadic test failures in Hudson where webrick isn't releasing it's port
    which causes other tests to fail.
    
    I created ticket #5098 as a reminder to refactor these tests later.
    
    Reviewed-by: Paul Berry

commit 1b60cc3c299306d783d9b0e9368726d2c04c9f21
Merge: e559b48 45a9a97
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Oct 28 15:11:01 2010 -0700

    Merge branch 'ticket/next/5132' into next
    
    * ticket/next/5132:
      (#5132) Provide a query REST interface for inventory

commit 45a9a97285d99db524d5330c236352b29e5884ed
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Oct 28 14:49:37 2010 -0700

    (#5132) Provide a query REST interface for inventory
    
    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.

commit 244213c856f3753dd3e06c5f01003f6a0d3f77ef
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 29 08:57:24 2010 +1100

    Updated CHANGELOG for 2.6.3rc2

commit e559b48d51c53c4a345353de1e196634c7430195
Merge: 0eb6477 2c98db6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Oct 28 14:41:51 2010 -0700

    Merge branch 'feature/next/5148-fix' into next

commit 76ac1f88ce2a13cabbda38eb56ed21a43e6923a7
Author: donavan <donavan@desinc.net>
Date:   Wed Oct 27 17:57:03 2010 -0700

    Fixed #5112 - Launchd Service broke in 2.6.2 with OS X 10.4 Clients.
    
    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.

commit 2c98db60a6a667663745b4e0f5f7ad70c15fc364
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Oct 28 14:30:02 2010 -0700

    (#5148) Fix failing spec due to timezone
    
    Time.parse(...) will yield a string in the local timezone. So when
    this spec was run in a non -0700 timezone, it was failing, because
    it was comparing a string in local time to a string in -0700. This
    fixes it to compare to the local string representation of the time.

commit 776ea2a17de7834ecdaded9fcaabc48446d2f29d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Oct 28 20:10:59 2010 +1100

    Fixed #5137 - Removed no longer required TOC references

commit 0eb64776351bdf56910a0ef7802b5917ce29cabf
Merge: 85543a4 c2ea112
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Oct 28 13:24:11 2010 -0700

    Merge branch 'feature/next/5148' into next

commit c2ea112de1f08707aa301060b4df24bd0bb6072a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Oct 28 12:49:19 2010 -0700

    (#5148) Add support for PSON to facts
    
    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.

commit 31118fe85aca4ee46903b17a3eb7aee07b8c0d69
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Oct 23 08:26:24 2010 -0700

    Kludge for #5048 -- serialization compatibility with 0.25.x
    
    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.

commit 65ef24e5c1c33b7d42012891d368917fd6aaf68c
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Oct 8 15:26:28 2010 -0700

    (#4534/#4778) -- Normalize parameterized classes
    
    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

commit 7d35a479b760e382638a2efe1881b8bd94704a45
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Oct 27 09:23:00 2010 +1100

    Fixed to #5108 - Change default of service hasstatus property to true

commit 4d1681e05a187e55422bf00de5c932736548be15
Author: Jeff McCune <jeff@puppetlabs.com>
Date:   Wed Oct 20 15:22:06 2010 -0700

    (#5062) Add envpuppet helper script to ext/
    
    This script helps people quickly test different branches of various
    puppet related projects like facter, puppet-scaffold, puppet-dashboard,
    etc...  It allows the user to simply clone puppet and start running
    different puppet version without installing puppet or any other setup
    costs.

commit 3b53bfcd0dd20a43c751b2b0d5dbb0e3463ef47b
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Oct 18 14:25:17 2010 -0700

    Fix for #5022 -- Escaped newlines should be elided
    
    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.

commit 85543a41978924a42490d0c3f1f5437c95b7c869
Merge: 19ae3df efeb2f4
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 18 13:32:33 2010 -0700

    Merge remote branch 'nigel/tickets/2.6.x/4382' into next

commit 19ae3dffa4e52e752149ce90ebf83f9055c2313b
Merge: 2d13fda e3fc5b9
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 18 12:01:29 2010 -0700

    Merge commit '2.6.3rc1' into next

commit b1ef091d0209a59ac747568f83416e992db93ea8
Merge: 9f59342 e3fc5b9
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 18 11:57:56 2010 -0700

    Merge commit '2.6.3rc1'

commit f2537d8f913ff78f5198dabd43727660010a4480
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Oct 17 16:06:50 2010 +0200

    Puppet-load: better and safer error reporting
    
    In case of connection, dns or timeout error, puppet-load would not report
    the error correctly or could crash.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ce1865f3d0bdcdf89d18e746806645b2b84b5252
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Oct 17 16:21:12 2010 +0200

    Fix #5023 - puppet-load multiple nodes support
    
    This patch allows puppet-load to compile multiple nodes catalog.
    This is done by using multiple --node. Puppet-load will use round-robin
    to chose which nodes catalog to ask for a given simulated client.
    It is also possible to pass a directory of facts yaml file in which
    puppet-load will load given --node facts file.
    
    This can work only if #5020 is applied to the puppetmaster first.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit e3fc5b95d133aee1ae3dc188e6c47e88786dfc6e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Oct 14 14:26:24 2010 +1100

    Updated CHANGELOG and version for 2.6.3rc1

commit 3c56705a95c945778674f9792a07b66b879cb48e
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Oct 12 16:38:59 2010 -0700

    Fix for #4832 -- Making PSON handle arbitrary binary data
    
    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).

commit e232770baefc35abb71de6e2f28d053158e6dd45
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Oct 11 21:07:29 2010 -0700

    Minimal fix for #4975 -- only call chage when managing password age rules
    
    This is intended to be a minimal fix, with tests, to prevent chage from running
    unless needed.

commit a090e868d55ea9b10f8193dcb2d1f23838a6def1
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Oct 11 19:41:31 2010 -0700

    Fix for #4963 -- Use correct commands for password expiry on solaris
    
    This fixes the command / option issues of #4963 as suggested on the ticket; the
    setting-expiry when not needed aspects are deferred to #4975.

commit 2d13fdaac56bd5cd57444cc4447081649e18f487
Merge: e6c8296 295c3be
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Oct 12 13:36:54 2010 -0700

    Merge commit '2.6.2' into next

commit 9f593429b488a1d3f900757d28ab0432303bd469
Merge: da84c03 295c3be
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Oct 12 12:11:13 2010 -0700

    Merge commit '2.6.2'

commit efeb2f4d8d62073e037798b78280dadd2fc7713d
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon Oct 11 14:28:53 2010 -0700

    Make --mkusers work on OS X, we now find unused uid/gids if unspecified
    like other platforms.

commit 3c4412128a50e41380108e5a90f2656329b84492
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Sep 8 11:31:00 2010 -0700

    [#4590] SimpleGraph is slow
    
    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.

commit 295c3be532b01a3ab58411b32b489730922d1c75
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 8 06:13:25 2010 +1100

    Updated CHANGELOG for 2.6.2

commit 1d719bee75e10657c8b31a4672fe24c12a235d4d
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Oct 6 15:25:20 2010 -0700

    Fix for #4945 -- explicitly check os to supress man page installation
    
    The fix for #4644 usurped an existing option flag to supress the installation
    of man pages on Microsoft Windows, when the desired behaviour was to only skip
    the installation on MSWin and not change the behaviour on other platforms.
    This patch implements the check explicitly to correctly express the desired
    behaviour.

commit 55417bc454132bc8c48ff98d5092baa85f94d6ed
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Oct 5 16:07:35 2010 -0700

    Reversion of 021d534482dd8edb863cb77d668ac3525362a0a6
    
    This fix for #3707 was incorrect & just moved the problem (see #4929).

commit e6c829617ccc120e04f945e8714f792ce29c284d
Merge: 7bdbd13 6b27850
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Oct 5 11:43:32 2010 -0700

    Merge remote branch 'paul/ticket/next/4657' into next
    
    This patch conflicts with a backport of itself. This merge resolution
    favors the original patch for the code changes, and the 2.6.2 patch for
    the specs.
    
    Manually Resolved Conflicts:
    	lib/puppet/dsl/resource_type_api.rb
    	lib/puppet/parser/ast/definition.rb
    	lib/puppet/parser/parser_support.rb
    	spec/integration/parser/ruby_manifest_spec.rb
    	spec/unit/dsl/resource_type_api_spec.rb

commit 7bdbd132634f61d91aeee401de15248d936ce71e
Merge: 163ec17 917c520
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 4 20:11:56 2010 -0700

    Merge commit '2.6.2rc1' into next

commit 163ec172e06a2b8aab9f9c9247dd45bc0dea3f72
Merge: c9592f0 574812e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 4 16:31:30 2010 -0700

    Partial merge to 2.6.2rc1 : Merge commit '574812e' into next
    
    The API for AST objects has changed, making the initialization of this
    spec somewhat more complicated.
    Also, git seems to have been confused by whitespace changes.
    
    Manually Resolved Conflicts:
    	lib/puppet/parser/ast/resource.rb

commit c9592f048331d7728d42f55cb29f5748ec9b1a67
Merge: 6acfdba 021359b
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 4 15:53:58 2010 -0700

    Partial merge to 2.6.2rc1 : Merge commit '021359b' into next
    
    There are test failures and merge conflicts in commits following this one.

commit 6acfdba87bdffe4afd6e00cbf3695160f7994357
Merge: 1a00c07 6dd1930
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 4 15:37:19 2010 -0700

    Partial merge to 2.6.2rc1 : Merge commits 'd057b90' and '6dd1930' into next
    
    This commit merges in d057b90 with the addition of commit 6dd1930 to fix
    some tests that are confined to machines where rrd is installed.

commit 6dd1930ff66f6e89ff3d7edba9cc20126d9cd9a3
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 4 14:01:49 2010 -0700

    Fix test failures that fixing #4726 exposed.
    
    The patch for #4726 causes old unit tests of the rrd reporting
    infrastructure to run on my machine. These tests were calling the old
    report api, which does not succeed.
    Also, the rrd settings had unintentionally been moved out of the
    :metrics section, making it possible that the rrd report directory would
    fail to get created during testing.

commit 1a00c07971c4297bce1b3e0edee3b6b3399e17bb
Merge: d43f799 66cf3a9
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 4 12:22:44 2010 -0700

    Partial merge to 2.6.2rc1 : Merge commit '66cf3a9' into next
    
    There are test failures in commits following this one.

commit d43f7996b93c394df0bd0994ae7298fb35ad2c5e
Merge: ce9a6f9 99c1019
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 4 11:44:41 2010 -0700

    Partial merge to 2.6.2rc1 : Merge commit '99c1019' into next
    
    This conflict was a little too complicated for diff to figure out, but
    the resolution is actually fairly mechanical.
    Some unit tests changed because they were mocking unnecessarily.
    
    Manually Resolved Conflicts:
    	lib/puppet/util/rdoc/parser.rb
    	spec/unit/util/rdoc/parser_spec.rb

commit ce9a6f97ab1784d8bd60eae8b60272c9875b1f84
Merge: c6e824a 8cd1540
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Sat Oct 2 01:14:03 2010 -0700

    Partial merge to 2.6.2rc1 : Merge commit '8cd1540' into next
    
    There are merge conflicts with commits following this one.

commit c6e824ad5144957e351892a1d745a127b02f34b3
Merge: 2e189d5 f950061
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Sat Oct 2 01:09:29 2010 -0700

    Partial merge to 2.6.2rc1 : Merge commit 'f950061' into next
    
    Some specs were in conflict, as they had been recently modified to use
    the API functionality that f950061 removes. This merge commit simply
    restores the verson of those specs from f950061.
    
    Manually Resolved Conflicts:
    	spec/unit/dsl/resource_type_api_spec.rb

commit 2e189d5166430b9ed37d9289a746b73e8673cab6
Merge: 4dbff92 8ff4b9a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Sat Oct 2 00:33:31 2010 -0700

    Partial merge to 2.6.2rc1 : Merge commit '8ff4b9a' into next
    
    There are merge conflicts with commits following this one.

commit 4dbff92f1cc1fa47167a4b4d8cf8ed9e4011cfc4
Merge: 3c34ea6 2b50f30
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Sat Oct 2 01:09:01 2010 -0700

    Partial merge to 2.6.2rc1 : Merge commit '2b50f30' into next
    
    Commit 2b50f30 simplified and fixed bugs in code that had already been
    modified extensively by 4da88fb and 6b1dd81.  This merge resolution
    commit is a manual replay of the changes from 2b50f30 onto next.
    
    Manually Resolved Conflicts:
          lib/puppet/parser/type_loader.rb
          spec/unit/parser/type_loader_spec.rb

commit 3c34ea62687745156990f6d97460131b75e67c56
Merge: 9e66daa 7b8cb74
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Oct 1 23:01:27 2010 -0700

    Partial merge to 2.6.2rc1 : Merge commit '7b8cb74' into next
    
    There are merge conflicts with commits following this one.

commit a6e2beaba1565a87bbd5266154883b72a700b3f3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Oct 2 12:23:23 2010 +1000

    Fixed #4919 - added parenths to fix error message:
    
    /usr/lib/ruby/site_ruby/1.8/puppet/util/metric.rb:62: warning: parenthesize argument(s) for future version

commit da84c03a7d1fe33c660c3e4c3a069ef1aed23bae
Merge: 0077379 917c520
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Oct 1 11:35:35 2010 -0700

    Merge commit '2.6.2rc1'

commit 917c520f1abc0c72d7065531cffcef88259e32e0
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 1 10:49:53 2010 +1000

    Incremented version to 2.6.2

commit 900eae46029d3af631fa9dabf3cc373f43ebc3cd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 1 10:44:57 2010 +1000

    Updated CHANGELOG for 2.6.2rc1

commit 1b6094d20d0ba1170c1eb4226acc5a7f6dc5c78c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 1 10:38:49 2010 +1000

    Fixed documentation typo

commit bdf12fec365151fb049f7875aa82f2d207f0d8a0
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Sep 30 17:21:56 2010 -0700

    Fix for #4896 -- stray newline left over from removed diagnostic
    
    A newline that was part of a diagnostic was left in, and this caused problems
    with the serialization of strings in "preserve newlines" mode.

commit e7424c69822a91360c94469dfef4ccddda7f6d25
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Sep 29 15:11:54 2010 -0700

    (#4772) Update SuSE .spec file

commit 0aaa742e0f09c25fb5591b72c9073bb1fee59ece
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Sep 29 16:32:19 2010 -0700

    Fixes #4792 (Duplicate definition since 2.6.1 upgrade)
    
    The evaluate_definitions method was first figuring out which resources
    needed to be evaluated (using unevaluated_resources), and then
    evaluating them one by one.  As a result, if evaluating one resource
    triggered another resource to be evaluated, the latter resource could
    get evaluated twice.  This bug could occur, for example, if both
    resources were classes that were included into the node by an external
    node classifier, and if the first of the two classes included the
    second.
    
    Modified Resource#evaluate to be idempotent.
    
    Also added an integration test to verify the fix.

commit ea49d13192fce5e891a5ea767ecf05fc3107a411
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Sep 29 14:30:33 2010 -0700

    Improvement to #4025: made spec tests work on all platforms
    
    The spec test changes for ticket 4025 (binary plist support) failed on
    non-OSX systems because of a missing stub.  Added the missing stub so
    that the spec tests can now run on all systems.

commit 0b4ce0898652268a772bfa1cb66cf67f41963d2b
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Sep 8 11:07:20 2010 -0700

    Adds #3046 - support for password min/max age
    
    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.

commit e9f9d26ff24f0a951819c5300dbc482fabb0e82d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Sep 23 16:29:58 2010 -0700

    [#4783] (#4783) Fix RRDGraph report generation
    
    The code made assumptions about report structure that weren't valid for
    2.6.x.  The change has been verified to work with 0.25.x and 2.6.x
    report formats.
    
    Paired with: Rein Henrichs

commit 34f87cfd74e5c93365da11a5e676f513e8819196
Author: Dean Wilson <dean.wilson@gmail.com>
Date:   Fri Aug 27 12:11:31 2010 +0100

    Add user account expiry to the useradd type and provider

commit a7fb9b112025e328304743c6453ece5d6ae81275
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Sep 24 14:10:27 2010 -0700

    Fixed #4025 (failure in launchd if certain plists are binary).
    
    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.

commit 25738726526c6618906eb02878f32bb276fec26f
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Sep 28 11:16:45 2010 -0700

    Fix for #4649 -- avoid unsupported features on non-posix systems
    
    MS Windows is apparently only "posix curious;" many of the usual fcntl flags
    are not defined when running under MS Windows.  It also appears that we are
    only using a small subset of the vendored event-loop library and could replace
    it with a handful of (portable) extracted methods.  This, however, would be
    too agressive of a refactor for 2.6.2 and so this commit simply avoids referring
    to the unsupported flag values in environments where they are not defined.

commit eb9279c69d74f1a86a79df9319eab42fefe308ee
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Sep 28 12:14:09 2010 -0700

    Fix for 4273 -- revert b7e2580ab49ecdb67fc9b522829c005fc3750fbe
    
    The debugging information added in commit b7e2580ab49ecdb67fc9b522829c005fc3750fbe
    was not thread safe and, as it turns out, not as useful as had been hoped.  This
    commit reverts it.

commit 53a2bea4ddad0a9f0d537fd8833a437ed2376889
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Sep 28 11:50:56 2010 -0700

    Fix for #4804 -- escaped backslashes in interpolated strings
    
    Part of the ongoing refinement / cleanup of the string interpolation semantics.
    When scanning for an unescaped string terminator we now also allow an 0 or more
    pairs of backslashes (that is, escaped backslashes) before the terminator.
    
    Thanks to Jacob for the test I should have added.

commit d12e477326a645f75cc58cc0ad7e4fd3ec7eee23
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Sep 28 12:24:06 2010 -0700

    Fixes #4863 (Missing "require 'webrick'" causes nondeterministic spec failures)
    
    Added a missing require to webrick/rest.rb.

commit 574812ef00e6681fce88bd1e66bbc07e7ade4b41
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Sep 28 12:32:40 2010 -0700

    (#4860) Add regression tests that would have caught bad params method
    
    This is another case where our test objects were overly mocked so they
    didn't alert us to problems with our implementation.

commit 68947e7f31b6145bf50935ffcd5c10f1c6609eb4
Author: Simon Effenberg <se@plista.com>
Date:   Tue Sep 28 13:40:21 2010 +0200

    (#4860) Fix wrong method name.. params seems to be renamed to parameters

commit 021359bd7448f6dea8f8c55a1e7dca84babdbd0c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Sep 24 15:21:20 2010 -0700

    Fix for #4644: install.rb works properly on Windows
    
    We were failing to make the sbin directory, and so the install script
    was failing to install files to it. Also, we were trying to add man
    pages regardless of whether or not we actually wanted to. Changed
    operating system detection to use Facter["operatingsystem"], which is
    easier to check than RUBY_PLATFORM (there are multiple different values
    for Windows).

commit d057b90bba4ffe7174e9af789835d5528e8a200d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Sep 24 16:51:20 2010 -0700

    Fix #4726 Update puppet rrdtool metric code to support modern rrd ruby bindings
    
    The rrd project has been shipping ruby bindings since 1.3.0, and the old
    rrdtool ruby library is no longer being maintained.
    
    This patch is based upon Davor Ocelic's submitted code, with the
    addition that I've added conditionals so it can still call the old
    rrdtool library if a modern rrd is not installed.

commit 66cf3a925b4b6d9b40cbdf95f2be6575bb05a881
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Sep 21 14:01:15 2010 -0700

    Fix #4226 - Prepend 'Puppet CA: ' to fqdn for default root ca_name
    
    Having a root ca_name that matches the fqdn of the puppet master would
    cause certificate lookup problems on some clients, resulting in failed SSL
    negotiation.
    
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>

commit d54352a0cc305cfada05d9ecb927e79957c8d744
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Tue Sep 21 13:28:24 2010 -0700

    Port Puppet::SSLCertificates::CA test to rspec
    
    Signed-off-by: Jacob Helwig <jacob@puppetlabs.com>

commit effc6b8e292992d2df1d321b5d5bf68208db6b24
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Sep 27 15:23:47 2010 -0700

    Fixes #4852 - error messages involving Whits now mention Classes instead
    
    Whits are inserted into the dependency graph in the place where an empty
    class is being required. Unfortunately, when such a class is involved in
    a loop, the error message shows the cycle as involving Whit[Classname].
    This patch changes it to say Class[Classname], which is much easier to
    understand. It also fixes puppetdoc from generating documentation on the
    Whit type.

commit 3f99bd71811be182f9217d727ec0ca7755eec68d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Sep 22 17:31:31 2010 -0700

    Fix #4267 - Create a backup before dropping permissions
    
    This change just forces a file to be written to the filebucket before we
    drop the permissions necessary to do so.

commit 6468f4ede9d96b8d83f107a8533a4ad6eb88c954
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Sep 22 15:27:54 2010 -0700

    (#4763) Don't call a method that was removed in Rails 3 activerecord
    
    Calling this method caused storeconfigs not to run.
    
    ActiveRecord::Base.allow_concurrency was deprecated in Rails 2.2.  We
    support activerecord 2.1 and higher, so we still need to call this
    method for 2.1.  I factored out the code that determines our
    activerecord version to a method in util so that the code was easier to
    read and test.

commit 79d5fde2246cc20b0ace7ed3f273a5352931f6eb
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 14 20:10:25 2010 +1000

    Fixed #4763 - Hardcoded ActiveRecord version

commit 4798df328526d08644ea40161dcd2c88799b57db
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Sep 22 12:26:17 2010 -0700

    Fixes #4822 -- Puppet doc -o option broken
    
    The global "-o" option ("--onetime") was overriding the
    application-specific option "-o" because global options were being
    sent to the OptionParser after application-specific options.
    
    Modified the order in which options are sent to the OptionParser to
    have the correct behavior.  Also merged together the two methods that
    were applying options so that the order is more explicit.

commit 99c1019e1d3402ec8e476dc859d5aaef82ec4f69
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Sep 21 12:12:19 2010 -0700

    [#4798] Puppet doc manifests documentation mode broken
    
    When running puppet doc, if the directory containing the user's
    specified manifest file overlaps with the modules directory (i.e. they
    are the same directory or one contains the other), Puppet doc would
    try to parse the overlapping files twice, triggering an exception
    which made the documentation run fail.
    
    Fixed the bug by adding a check to the RDoc::Parser#scan method to
    prevent re-parsing of files that have already been parsed.  Also added
    a spec test to verify that this works.

commit 8cd1540f82cbdf903c164bdbc2c7229e34a4178b
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Sep 17 16:42:40 2010 -0700

    [#4692] undefined variables cause :undef to be passed to functions
    
    The :undef symbol, which we use internally to distinguish between
    undefined variables and variables whose value is the empty string, is
    being leaked in calls to functions (e.g. "split").  This is a
    departure from 0.25.x behavior, where undefined variables evaluated to
    "".
    
    This patch restores the 0.25.x behavior.

commit 06bf566cf71b5a690c61887dff0538922b026f64
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Sep 21 13:19:11 2010 -0700

    [#4787] Missing require causing failure
    
    This code was using a constant that might not always be loaded.

commit bba04e08ccf631291a042cca5985591899eca869
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Sep 22 16:47:37 2010 -0700

    Fix for #4746 -- Newline goes at the _end_ of the line
    
    Fredrik Eriksson's suggested change, from the ticket.

commit 9e17c25117f9f3012f64d3d39053750159632782
Author: Jacob Helwig <jacob@puppetlabs.com>
Date:   Wed Sep 22 15:57:51 2010 -0700

    Fix #4743: Allow the audit meta-parameter to accept both 'all', and :all

commit f95006148c3a0b4d7e8ee1812b1993b674f050e4
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Sep 3 11:17:35 2010 -0700

    [#4716] ResourceTypeAPI exposes implementation details that are likely to change
    
    Made the following modifications to ResourceTypeAPI:
    
    (1) returned nil from “define”, “hostclass”, and “node”.
    
    (2) renamed “mk_resource_type” and “munge_type_arguments” to
    “__mk_resource_type__” and “__munge_type_arguments__” to discourage
    customers from calling them.
    
    (3) Made ResourceTypeAPI a class rather than a module, and changed the
    parser to evaluate the contents of pure ruby manifests using a
    instances of this class.
    
    (4) Changed ResourceTypeAPI to insert newly instantiated types into
    Thread.current[:known_resource_types] rather than the default
    environment's known_resource_types.
    
    This effectively backports the fix for issue #4657 to 2.6.x.
    
    Also backported the new spec tests from #4657.

commit 8ff4b9a0b16310729a0411ad151ad0d0636069d5
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Sep 23 03:50:27 2010 +1000

    Fixed #4819 - corrected cron documentation

commit 2b50f30c703aca5c4f3e89961d64a94d886296bd
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Sep 17 17:59:56 2010 -0700

    [#4771] Import of manifests with the same name only happens once
    
    The function import_if_possible, which was supposed to be responsible
    for making sure that no two threads tried to import the same file at
    the same time, was not making this decision based on the full pathname
    of the file, since it was being invoked before pathnames were
    resolved.  As a result, if we attempted to import two distinct files
    with the same name at the same time (either in two threads or in a
    single thread due to recursion), one of the files would not always get
    imported.
    
    Fixed this problem by moving the thread-safety logic to happen after
    filenames are resolved to absolute paths.  This made it possible to
    simplify the thread-safety logic significantly.

commit 7b8cb741596c7a20a25caf4250d86d7e1c24f319
Author: Dan Bode <bodepd@gmail.com>
Date:   Thu Sep 2 02:25:38 2010 -0400

    Fix for #4708 - tagmail should allow . in tagname
    
    changed the regex so that tagmail allows . in tagname.

commit 6f229eea198d85fd1b37ccaaa3e8257c592707e7
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Sep 1 15:21:08 2010 -0700

    Minimal fix for #4631 -- set implicit classes as in 0.25.x
    
    This is a minimal fix for #4631 by reversing one part of the refactor for #1903
    commit 0d4fd60c7c143cc1f4e4b0f99f359c09cbfbf21e.  It fixes the immediate issue
    (implicit classes not being added to resources) but leaves open several other
    questions which are defered to #4687.

commit 021d534482dd8edb863cb77d668ac3525362a0a6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Sep 23 08:45:26 2010 +1000

    Fixed #3707 - rpm, like dpkg-query exits 1 if the package is not installed.  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

commit 216f66326381486ad1f63e74fccca0e359ff9a15
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Sep 16 09:34:15 2010 +1000

    Fixed Puppet Doc TOC generation

commit c3cb57c73865255469947a480d34b32cdbfdba2a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Sep 16 08:48:03 2010 +1000

    Fixed versioncmp function typo

commit 898a17077c8e3792fdd9abaf0abc28b4edf0c280
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Sep 15 18:15:24 2010 +1000

    Fixed Reductive references in LICENSE file

commit 9e66daa27ce65028f48dd13c67e066d3cc2c766a
Merge: 9e72ccd cad1e0f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Sep 13 23:34:06 2010 -0700

    Merge commit '2.6.1' into next

commit 9e72ccd8ff087d0cf4a1396401e3843311b4e6d4
Merge: 1d93c4d efa834a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Sep 13 23:00:35 2010 -0700

    Merge commit '2.6.1rc4' into next

commit 0077379e528037d875a92575a994d01ca5233cc0
Merge: 754ed19 cad1e0f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Sep 13 22:58:49 2010 -0700

    Merge commit '2.6.1'

commit 754ed19a8105a1be01c723a91abf9999ec6a8ab3
Merge: 21afb51 efa834a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Sep 13 22:57:48 2010 -0700

    Merge commit '2.6.1rc4'

commit 996f14e8bb457d4b3bb13390954b48780cf18469
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 14 14:24:12 2010 +1000

    Documentation updates for Markdown conversion

commit cad1e0f69ca19b37901f7f289444feae8f9ebd34
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 14 11:49:40 2010 +1000

    Updated CHANGELOG for 2.6.1

commit 14f871d6a9cad5c3eda10da005a97ed8aba9e991
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Sep 13 18:11:31 2010 -0700

    [#4756] addendum for #4756
    
    This fixes spec and unit tests indirectly related to the previous
    patch-revert.
    One failure was from trying to test the User Type's roles, when,
    on many platforms, the roles feature wasn't supported by the default
    Provider.
    Other tests could fail on some platforms because they assumed that
    unsupported attributes would be ignored with a warning, but the code was
    crashing instead.

commit 9bdfe694bc6c60a48b45f8dd49c20c6da31445f7
Author: James Cammarata <jimi@sngx.net>
Date:   Sat Sep 11 10:23:38 2010 -0500

    Fix for Bug #4756 - Providers no longer respect missing features
    Restored deleted lines from type.rb and reinstated unit tests

commit 14b33402812756dc0cd3e84619afa211d449d59f
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Sep 10 18:18:55 2010 -0700

    Fix for #4736 -- preserve case of defined resources
    
    This restricts the change introduced in #4691 to hostclasses, and leaves defined
    resources and nodes alone, thus more closely mimicing the 0.25.x behaviour.  It
    also includes title, as this was similarly affected.

commit 1d93c4dd86181eb2663dd8df2e84719c2e1ffcdf
Merge: 6860594 ce9bf1e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Sep 9 16:29:26 2010 -0700

    Merge remote branch 'paul/ticket/next/4685' into next
    
    Conflicts resolved manually, by Paul Berry:
      lib/puppet/parser/ast/astarray.rb
      lib/puppet/parser/grammar.ra
      lib/puppet/parser/parser.rb (by rebuilding from grammar.ra)

commit 6860594c4d95855d5106fbf664a473e1ac4d3935
Merge: f620957 df088c9
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Sep 9 16:20:26 2010 -0700

    Merge remote branch 'paul/ticket/next/4638' into next

commit f62095749a14fd67987df5cf2e3e9138b71efd19
Merge: 4bda0b5 1ba536e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Sep 8 17:33:48 2010 -0700

    Merge remote branch 'paul/ticket/next/3782' into next

commit 4bda0b53c7b30814a2c8f97455c9362b1de67f2a
Merge: fb90347 50fd9b7
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Sep 8 16:17:58 2010 -0700

    Merge remote branch 'paul/ticket/next/4570' into next

commit bd973a2eeb9cc161553b47974b3e88c3343e4ce3
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Aug 27 16:00:21 2010 -0700

    Fix for #4637 --use of namevar missed in refactor
    
    A use of namevar apparently slipped through the net or got (re)introduced
    in a merge/conflict resolution.

commit ce9bf1edcaac4901de6e0a7da413d1742d216eb0
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Sep 7 18:01:42 2010 -0700

    Modified the error message that is generated when a class, definition,
    or node occurs in a conditional construct so that it contains the
    proper line number.

commit efa834aaec596b0d5e7b314a53e6b258ce44728c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 7 15:48:29 2010 +1000

    Updated CHANGELOG for 2.6.1rc4

commit 763e7cb6f3f8e1104ab1da515701de1dfc8f57e9
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Sep 6 11:09:15 2010 -0700

    Minimal fix for #4691 -- class name uppercased in $name
    
    The class name is now stored internally with an initial capital, which changed
    the contents of $name in a way that broke some manifests.  This fix stores the
    downcased version in $name.

commit 4a9c85763b7bf2db6da52daa9e8221eb59ffa9d2
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Sep 5 11:26:58 2010 -0700

    Fix for #4693 -- implicit stages should never be serialized
    
    My fix for #4542 was overly enthusiastic about assuring that all resources had
    a stage, resulting in stages designations being serialized for resources in
    manifests which did not use resources (everything was in implicit main).  This
    broke 0.25.x compatibility, as all catalogs now refered to stages.
    
    This patch scales back the change for #4542 slightly, supressing the setting of
    main on the puppetmaster and relying on the default behaviour on the client (for
    2.6.x and later, treat it as main; for 0.25.x, do nothing).

commit fa4d32cfd7b35f9c80ebb8c92b5e00ff70a27181
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Sep 6 19:48:45 2010 -0700

    Fix for #4646 -- Missing stub
    
    The test was expecting a stub object but wasn't providing one.

commit 4d55c6e72f2576fe7ab27f874db030de5ab6fcee
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Sep 4 18:45:09 2010 -0700

    Fix for tests broken by fix for #4489 -- stub standalone
    
    If the file streaming is to be thwarted when running standalone the test for
    standalone needs to be stubbed when running specs, lest the tests inexplicably
    fail.

commit b397b698314daae36f59751521be113cfd337095
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Aug 21 19:44:06 2010 -0700

    Fix for #4489 -- apply was using the rest terminus
    
    Basing pervasive low-level behaviour changes on the application name isn't a
    good idea, but if we're going to do it we need to remember to update the test
    when we rename the application.  Further, if we optimize around such low-level
    tests (as we did when implementing file-streaming) we need to carry the tests
    over into the new data paths.
    
    This commit addresses both of these isues, restoring 0.25.x stand-alone file
    serving by adjusting the process-name test in the indirector to recognize
    "apply" as standalone (and thus not use http to fetch the files) and by adding
    a branch to the file streaming code to do the same when fetching the content.
    
    I am not certain that this change is globally correct; there may be other
    related problems that will not be fixed (and may in fact be exacerbated) by
    this patch.

commit e91a8cc975216501f764f5f2dea40d72154dc426
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Aug 13 12:24:08 2010 -0700

    [#4462] uncaught Timeout::Error
    
    puppet agent was not catching all species of exceptions, causing it to
    crash on net/http timeout errors.
    This patch broadens the types of exceptions that are caught.

commit 4d36a5152ac8e183f04bdbc6e8a7d3cdbb5ba8ce
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 7 06:23:01 2010 +1000

    Fixed alias metaparam docs error

commit b06363549a8cd9371ee798ac2613bdcdc5837f12
Author: Dean Wilson <dean.wilson@gmail.com>
Date:   Fri Aug 13 13:50:52 2010 +0100

    Skip apt-listbugs and apt-listchanges when installing from puppet

commit e860907724ede52bf798d22d157ddc86f9c4646b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Sep 3 15:35:01 2010 -0700

    [#4660] Avoid passing rake and autotest args to puppet tests
    
    Autotest was failing on puppet apply tests because it was reading
    autotest's args as the manifest file and then erroring because it wasn't
    a valid file.

commit 419e007b3daa8c0a68011c36d03412d1b8d9f371
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Sep 4 04:38:34 2010 +1000

    Fixed #4706 - logcheck patterns

commit 6b278503021c4404904f56ced6995d0fbfa5b8fe
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Sep 2 18:10:37 2010 -0700

    [#4657] Customer-supplied .rb files are not compatible with multiple environments or staleness check
    
    Changed the resource type API to create AST objects rather than
    directly instantiating resource types.  This allows the same code
    paths to be used to handle the results of parsing both .pp and .rb
    files.  This makes .rb files work properly in multiple environments,
    because the types are now instantiated by code that is aware of which
    environment the compilation is happening in.  It also reduces the risk
    of future changes breaking .rb file support.
    
    Also, switched to using "instance_eval" rather than "require" to
    evaluate the contents of the .rb file.  This ensures that if the file
    has to be recompiled (because it became stale), it will actually get
    re-evaluated.  As a side benefit, ResourceTypeAPI is now a class
    rather than a mixin to Object, so its methods do not pollute the
    global namespace.
    
    To reduce the risk of customers coming to rely on implementation
    details of the resource type API, changed its methods to return nil,
    and removed methods from it that were misleadingly labeled as
    "private".

commit f6c0265f4e7e113980c1026441e4ad05ca2e8f3d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Sep 3 02:55:10 2010 +1000

    Fixed queue require for #4555

commit 07d0be4684f75e6edc6fbb5d1397dd79b8ca2b6b
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Jul 2 22:19:28 2010 -0700

    [#4308] Remove puppettest from specs
    
    The less stuff being done in the spec_helper the better for reasoning
    about what's happening in the tests.  puppettest.rb does a lot of things
    that aren't necessary for the specs, so this patch gets those things out
    of the spec_helper.
    
    Reviewed by: Jesse Wolfe

commit 25048ecc40db746f7e88bb6c5e1fc4f2c0150a4f
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Sep 1 14:18:41 2010 -0700

    [#4685] Classes, defines, and nodes allowed inside of non-evaluated conditionals
    
    Previously, ASTArray#evaluate() was responsible for checking whether
    the user had tried to declare a class, define, or node in a prohibited
    location (such as a conditional construct).  This meant that errors
    would only be reported to the user if the conditional code was
    actually evaluated.
    
    Moved the checking into the parser, so that errors are always
    reported.

commit 1ba536eb533e99d0f400178184ce929f18457b03
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Aug 31 11:46:36 2010 -0700

    [3782] Test isolation problem in test/ral/providers/cron/crontab.rb
    
    The test in question (test_parse_line) was nondeterministic because it
    was relying on the sort order of a Hash whose keys were symbols.  When
    the sort order caused a blank line to appear at the end of the file
    under test, the blank line was elided by the crontab parser, causing a
    failure.
    
    Modified the test to execute in a deterministic order that doesn't
    place the blank line at the end.

commit 9e696164237821fb6b48a913395240d376f8c3da
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Aug 31 08:30:54 2010 +1000

    Fixed RSpec warning messages

commit 8d248616c6dd05509a1a7d3f8f098c295c9eae43
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jul 25 09:43:57 2010 +1000

    Fixed #4100 - Added http_caching to yumrepo type

commit 8cd266e6d421c70db574751dc6d837bd0bbf386b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 16 14:49:26 2010 +1000

    Added cost parameter to the yumrepo type

commit 0056d4174959a4f07d669eae7b6a768d18891594
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Aug 26 15:13:52 2010 +1000

    Fixed extlookup documentation and spacing

commit e783a16fbc2c856c212094b4a787a08c16536a0d
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Aug 13 13:32:33 2010 -0700

    Fix for #4506 -- too much data being serialized
    
    The serialization of much of the memory image was being triggered by a copy of
    an unchanging method return value in an instance variable.  I had introduced
    this as a performance hack.  The results were correct, but when the object was
    serialized it took a huge amount of data with it (known_resource_types, and
    from there...)
    
    As the underlying costly operation is no longer being called (thanks to Paul and
    Jesse) the caching is no longer a significant performance boost, and can thus
    simply be removed.

commit f59cfc8533e21d45a42a429cf11fcc2cea2cc482
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Aug 29 10:19:34 2010 +1000

    Fixed terminus example documentation

commit 690465ef34344acda39469f71f6fb4a9e022ff7b
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Wed Aug 25 22:11:16 2010 +0200

    Fix #4615 - vim highlighting fails on slashes and colons.
    
    When a regexp is used in a selector, vim shouldn't choke if more than one slash
    is found on the same line.
    
    This patch also adds support for colons in attribute names.

commit 078e4fd07ff1b375f03a01fa1f4eb456555b5e46
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Aug 29 07:01:02 2010 +1000

    Updated man pages

commit 21afb51a1b84116b2a906a6959ae588f45135104
Merge: 1f3070c 8be1929
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Aug 27 12:49:54 2010 -0700

    Merge commit '2.6.1rc3'
    
    This synchronizes the 2.7 master branch with 2.6.1RC3
    The 2.7 next branch has now diverged from master for the first time, as
    if contains code that has not reached "release quality" status.

commit fb9034731ddae41f1009745eb8eb1ea53aa05cfb
Merge: 16f701e 8be1929
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Aug 27 12:33:15 2010 -0700

    Merge commit '2.6.1rc3' into next

commit df088c9ba16dce50c17a79920c1ac186db67b9e9
Author: Paul Berry <paul@puppetlabs.com>
Date:   Wed Aug 25 11:29:23 2010 -0700

    [4638] Cleanup of plurals and inheritance relationships in AST
    
    Changed the grammar so that the following "plural" constructs always
    parse as an ASTArray:
    
    - funcvalues
    - rvalues
    - resourceinstances
    - anyparams
    - params
    - caseopts
    - casevalues
    
    And the following "singluar" construct never parses as an ASTArray:
    
    - statement
    
    The previous behavior was for these constructs to parse as a scalar
    when they represented a single item and an ASTArray when they
    contained zero or multiple items.  ("Statement" could sometimes
    represent a single item because a single resource declaration could
    represent multiple resources).  This complicated other grammar rules
    and caused ambiguous handling of nested arrays.
    
    Also made these changes to the AST class hierarchy:
    
    - ResourceInstance no longer derives from ASTArray.  This relationship
      was not meaningful because a ResourceInstance is a (title,
      parameters) pair, not an array, and it produced complications when
      we wanted to represent an array of ResourceInstance objects.
    
    - Resource no longer derives from ResourceReference.  No significant
      functionality was being inherited and the relationship doesn't make
      sense in an AST context.
    
    - ResourceOverride no longer derives from Resource.  No significant
      functionality was being inherited and the relationship doesn't make
      sense in an AST context.
    
    - Resource can now represent a compound resource instance such as
      "notify { foo: ; bar: }".  This saves the parser from having to
      use represent a statement as an array of objects.
    
    - ASTArray's evaluate method never flattens out arrays of arrays.

commit 7548c65a4e7e0c40d1555c9e40d46d9b5c7de489
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Aug 27 07:35:22 2010 +1000

    Updated Man page generation since move to Markdown

commit 8be1929043f4560bb17a4b06293b3f9a4efcfdbf
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Aug 25 12:45:43 2010 +1000

    Updated CHANGELOG for 2.6.1rc3

commit 81a27251f9052337ae9e66962a2a1f670e803a50
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Aug 22 10:48:40 2010 -0700

    Fix for #4456 -- need to accept some mime-type aliases
    
    Rather than just creating a handler for the base mime-type (e.g. "text/yaml") we
    create some synonyms where appropriate (e.g. "text/x-yaml", "application/yaml",
    etc.)

commit c3185584a0c9f22b7deaff022855b160a945486f
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Aug 21 19:44:06 2010 -0700

    Fix for #4489 -- apply was using the rest terminus
    
    Basing pervasive low-level behaviour changes on the application name isn't a
    good idea, but if we're going to do it we need to remember to update the test
    when we rename the application.
    
    I am not certain that this change is globally correct; there may be other
    related problems that will not be fixed (and may in fact be exacerbated) by
    this patch.

commit 491c31dcbdb0977c0377cb276cfe32a4c24e0e1a
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Aug 22 10:14:03 2010 -0700

    Fix for #4542 -- included classes weren't assigned proper stages
    
    This commit unifies the code paths on which classes are added, alters the default
    stage to respect the stage of the parent if any, and assures that the resource is
    notified if its stage is assigned (turning an implicit stage into an explicit one).

commit 302d657658db068c0c593545e92923659608c5a3
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Aug 21 14:35:05 2010 -0700

    Fix for #4501 -- reports not generated in standalone
    
    The refactors for 2.6.x stopped "puppet apply" from saving reports; this fix
    adds report saving back to puppet apply but leaves a number of related issues
    (code path consolidation, report contents, etc.) unresolved for future patches
    in the 2.6.x series or more significant refactoring in 2.7.x.

commit 50fd9b77cdb2346ec0b760364841abd4eb6f23ff
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Aug 19 09:40:15 2010 -0700

    Fixed issue #4570 (Race conditions when serializing objects to YAML).
    
    The ZAML class was using class variables to keep track of labels and
    backreferences while serializing object to YAML.  This made it
    possible to get ill-formed or incorrect YAML output if two threads
    tried to serialize objects at the same time.
    
    Changed to use instance variables of the ZAML class, so there is no
    race condition.
    
    Also added some more spec tests to verify that labels are generated
    properly.

commit 1ea4ccf44bc45ff7ccccc54720391bbe81c8a8fb
Author: Bernhard Miklautz <miklautz@inqnet.at>
Date:   Fri Aug 13 14:55:48 2010 +0200

    Start server before agent

commit 4c280796f71fd2153ae05dfec227fb4123152088
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Aug 17 16:19:38 2010 -0700

    [#4555] puppet queue tries to call code it hasn't required
    
    puppet queue was trying to call .subscribe on
    Puppet::Resource::Catalog::Queue, but that object had not been loaded
    into the ruby interpreter.
    This bug was partially masked by ruby's confusing constant resolution,
    which was incorrectly returning the Puppet::Application::Queue class
    instead of throwing a NameError

commit d1150e0b91626e4f8843f17c413f88efd4a4ba77
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Thu Aug 12 16:48:22 2010 +0200

    fix #4528 - treat * as absent
    
    Internally the cron type is seeing params containing only '*', as
    absent. However, if a user was setting a parameter explicitely as
    '*', we weren't munging it to be absent. Hence, we were setting
    this param over and over again.

commit 20f4b903acd91074778f379631cf7545fdff9eb8
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Aug 15 18:56:26 2010 -0700

    Fix for #4518 -- classes not getting added to compiler.classes
    
    The responsibility for adding classes to the compiler's classes list (for use
    in constructing classes.txt) moved around a bit in the 0.25 to 2.6 transition
    before being dropped in a merge conflict resolution.  Ooops.  This restores it,
    and adds tests to prevent regression.

commit 57bb06b557c74e227cb0f9799e698aecf90ea9a4
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Aug 16 17:15:45 2010 -0700

    [#4545] Remove obsolete 'trac' specs
    
    The method that these specs were testing has been removed, causing the
    specs to fail.

commit 82b4f04f6b8fee7ada275fc63e519a08e1c2b0a5
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Aug 14 18:25:24 2010 -0700

    Maint. -- Fix test failures broken by previous commit
    
    This basically involved adding a search method to the yaml indirector, which I
    did by copying the one from ssl_file and fiddling with it until the tests
    passed.  Since the most straight forward way to do this required extending the
    interface to the path method I added tests for the additional behaviour.

commit 0c3075443c80227c1e35cfb4952d3971c1c0adeb
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Aug 14 17:31:22 2010 -0700

    Maint.  Removing code at the request of the original author
    
    A contributor has requested that his changes be removed from puppet.

commit 3df0490c9dbc59e27869e09864177536400a5ae3
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Aug 5 11:09:25 2010 -0700

    [#4298] Puppet apply prints an error if the file to apply doesn't exist
    
    Also warns you it's skipping files if you pass it more than one file to
    apply.
    
    Reviewed-by: Nick Lewis <nick@puppetlabs.com>
    Signed-off-by: Matt Robinson <matt@puppetlabs.com>

commit 16f701edd89a320ad73b5468d883dfb017fe6e96
Merge: 3c090de 4da88fb
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Aug 17 12:02:05 2010 -0700

    Merge remote branch 'paul/4472-4483-4496-4521-4522'
    
    a.k.a. "make_taller_trees"

commit 4da88fb4cd57871f16649d50572240ac3f7420f0
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Aug 13 15:43:34 2010 -0700

    [#4496]+[#4521]+[#4522] Add structures to the AST to represent type definitions (classes, definitions, and nodes).
    
    Previously, type definitions were not represented directly in the AST.
    Instead, the parser would instantiate types and insert them into
    known_resource_types as soon as they were parsed.  This made it
    difficult to distinguish which types had come from the file that was
    just parsed and which types had been loaded previously, which led to
    bug 4496.
    
    A side-effect of this change is that the user is no longer allowed to
    define types inside of conditional constructs (such as if/else).  This
    was allowed before but had unexpected semantics (bugs 4521 and 4522).
    
    It is still possible, however, to place an "include" statement inside
    a conditional construct, and have that "include" statement trigger the
    autoloading of a file that instantiates types.

commit caca187dffbd6e628d7eda599c7f2939dd05fafc
Author: Paul Berry <paul@puppetlabs.com>
Date:   Fri Aug 13 15:25:17 2010 -0700

    Moved perform_initial_import from Puppet::Resource::TypeCollection to Puppet::Node::Environment.
    
    This change is part of an ongoing effort to remove functionality from
    TypeCollection that is not related to keeping track of a collection of
    types.  This reduces TypeCollection's linkage to the environment,
    which is a step toward decoupling it from the type loading mechanism.
    
    Also, added a spec test to verify that TypeCollection.version is
    correctly recomputed when types are re-imported.

commit 5d4f2224a0544d550be0f502fd0defda6697b178
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Aug 13 22:06:53 2010 +1000

    Fixed #4527 correctly for 2.6.1

commit 3c090de39897d85a5d5be20254efcddea14ad8ad
Merge: 0f56c1b 6dbd477
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Aug 12 14:19:14 2010 -0700

    This is a bookkeeping merge that produces no code-change
    
    It is meant to facilitate merging in a commit that was based upon
    6dbd477, which was rebased into the 2.6.x branch as 449315a.

commit 1f3070c4bc77b38e3dd6170cf6a58bee7ec337ac
Merge: d5db8db 0f56c1b
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Aug 12 13:53:13 2010 -0700

    Merge branch 'next'
    
    This synchronizes the 2.7 master branch with 2.6.1RC2

commit 0f56c1b02d40f1f8552d933dd78b24745937b137
Merge: b53e7d7 0aa27b5
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Aug 12 13:51:14 2010 -0700

    Merge commit '2.6.1rc2' into next

commit 6b1dd81799a44288287d9ab0cdf46afa3aaf090a
Author: Paul Berry <paul@puppetlabs.com>
Date:   Thu Aug 5 10:34:35 2010 -0700

    [#4472]+[#4483] Moved type-name resolution out of Puppet::Parser::TypeLoader.
    
    Moved type-name resolution out of Puppet::Parser::TypeLoader, and into
    its primary client, Puppet::Resource::TypeCollection.  TypeCollection
    now always passes fully qualified type names to TypeLoader.
    
    This avoids duplicate type-name resolution logic between TypeLoader
    and TypeCollection.  That in turn fixes bug 4472, which resulted
    from flaws in the type-name resolution logic in TypeLoader.
    
    In addition, it fixes bug 4483, which resulted from improper
    interleaving between looking up names using the TypeCollection and the
    TypeLoader.

commit 1b3d7824c03fc5c57cb2aeee070745281810f3c3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Aug 13 03:53:40 2010 +1000

    Updated config.ru example for 2.6.1

commit 0aa27b5cc5df818e3878601e83f83a20590e161a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Aug 12 15:38:52 2010 +1000

    Updated for 2.6.1rc2

commit 252c9b84f79307e5caa50b50e093ad493993622d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Aug 12 15:33:14 2010 +1000

    Further RST to Markdown fixes for types, values, tests

commit 1157e8dbaf310cca6f56dda3fa9f100b458662ee
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Aug 12 09:28:36 2010 +1000

    Updated all types to Markdown output
    
    Updated defaults.rb to Markdown
    
    Migrated report documentation to Markdown
    
    Migrated Naginator doco to Markdown
    
    Updated provider documentation to Markdown

commit fef8800acaddd54659602b65bd9fdc728d187c67
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Aug 12 08:36:28 2010 +1000

    Updated reference output to generate valid Markdown

commit 79e0a2e5c9e2f654c0f7ed37e1bf3342a54e4525
Author: Jes Fraser <jes@gadget.geek.nz>
Date:   Wed Aug 11 17:04:28 2010 +1200

    Reformatting documentation from RST to MarkDown (#4509)
    Signed-off-by: Jes Fraser <jes@gadget.geek.nz>

commit 62435e551b3118b1663c67d66a9cae9f52607bc7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Aug 12 00:53:10 2010 +1000

    Rewrote functions documentation to Markdown

commit e4b2aa6e48af43e83e6954d9253ef9b38d8c36ae
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Aug 11 15:05:48 2010 +1000

    Removed legacy Trac code

commit 8ddea2afba170a3d3e1e2917a049dfa01ad3d8a7
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Aug 6 10:34:31 2010 -0700

    Maint.  Passenger fix broke a test
    
    The content-length fix for passenger broke a test; this fixes it.

commit f43e87bb638b30608e1773a9afb48a8639feb3cd
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Aug 6 09:40:47 2010 -0700

    Fix for #4476 -- rails calling yaml internals
    
    Some recent versions of rails have started calling yaml with the internal
    (and IIRC depricated) signature; this does nothing special in yaml but it
    breaks with zaml, so we add an ignored parameter to simulate the non-behavior.
    
    *sigh*  I love rails.

commit a23d80aebabf981a34fcca5c8bd2aa5f44ea832d
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Aug 5 22:00:54 2010 -0700

    Fixes #4485 -- single quoted strings should not treat \n as new line
    
    This is the rest of the change for #4303; James and I discussed various
    ways the solution to that ticket needed to be extended but, as neither of us
    committed code, nothing changed.  This is the least implact extension, which
    mimics the behaviour of prior versions.
    
    It leaves open the question: should '\\x' start with a single or double
    backslash?  If, as now, '\\x' starts with a double backslash (i.e. single quote
    is the only escapable characterin single quoted strings) a string ending in a
    backslash can not be represented in a single quoted string.

commit 8e31b528e139a2940d6932ab80375bb5eebfbe29
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Aug 4 18:46:29 2010 +0200

    Passenger needs HTTP headers values to be string
    
    When streaming a file through rack, we set the Content-Length header
    to be the size of the transmitted file.
    This size is an int, and recent passenger versions only support string
    values.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 037bb329f090ce86227fc62b51d081831fa9de03
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Aug 3 17:58:52 2010 -0700

    [#4404] Remove requirement for source on Parser::Resource::Param
    
    Stage[main] is created without an associated source, to which
    Parser::Resource::Param objects. This patch observes that the source
    attribute of both Parser::Resource and Parser::Resource::Param seem
    not to be used anywhere, and removes the requirement that it be
    supplied.

commit 0e4bc62716a37cc82a8a5dbb5865ac7f45cf71b2
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Aug 4 13:59:10 2010 -0700

    [#4364] Fix failing spec due to incorrect loglevel
    
    A spec was failing since it wasn't updated when the #4364 change was
    made.

commit 3a6ca54a6e8ad353f207bc85433d1204b5ca48bc
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Aug 4 22:34:33 2010 +0200

    Fix #4458 - Do not dump the whole environment when instances can't be found
    
    When generating the error message when we can't find any instances for a
    search request, we were "inspect"ing the request which now contains
    an environment instance which itself contains a lots of things (including
    all the known resource types).
    Thus it was generating a very large "reason" (ie the HTTP error string).
    On some environments (ie proxied mongrel) this was too large and the
    proxy would produce an error 500.
    
    I just changed the error message to just log the indirection name and
    request key (which should be enough to understand what is wrong).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d909827942fa571bea202818c92d081e7957a574
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Aug 4 14:24:13 2010 -0700

    Fix for #4465 -- earlier "feature" patch broke ldap
    
    The patch for #3904 should not have been accepted; it's buggy and the use case
    (supporting having nodes in ldap more than once with the same name but distinct
    records) is ill-conceived.
    
    This commit reverts the patch (a7884b47) and the previous attempt to fix it
    (e6709da4), restoring the old (0.25.x) behaviour.

commit 47005aa20199455e8cea7679b0c40efbebe473e4
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Aug 4 09:08:30 2010 -0700

    Maint -- tests need to respect RFC-952
    
    We had a test that assumed hostnames would only consist of letters; by RFC-952
    they are also allowed to contain digits and '-'s.  The test failed on such
    machines.

commit 6aac8f0185db1d153583230de726c30ce949fc78
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Wed Aug 4 11:55:23 2010 -0700

    [#4467] Make Puppet Master respect facts_terminus settings
    
    * Remove hard-coded facts terminus in master
    * Change facts_terminus default to 'yaml' for master and 'facter' for
      everything else.
    
    Paired-with: Matt Robinson <matt@puppetlabs.com>
    Signed-off-by: Rein Henrichs <rein@puppetlabs.com>

commit 1cba9a7a713261fd62ceec440a3e57667eb103ba
Author: Alice Kærast <kaerast@newscloud.com>
Date:   Mon Aug 2 12:02:26 2010 +0100

    added md5 support as requested in http://serverfault.com/questions/166199/puppet-md5-sum-of-string

commit 1dfd2b6ba30f7a4c06688e18d0d6cd73a2e45d91
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Jul 27 10:53:19 2010 -0700

    [#4381] extlookup shouldn't trigger reparses of .pp files
    
    extlookup was adding its data files to the list of watched source files.
    This causes the .pp manifests to be re-parsed whenever the .csv files
    change, which is no longer necessary, as the .csv files are already
    reparsed on every function call.

commit be2b1f360fc15596098280265e6aa76e8043eb92
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jul 26 19:34:27 2010 -0700

    [#4370] Fixes extlookup precedence getting overwritten between runs
    
    We found the gsub! in extlookup was actually modifying the value for
    extlookup_precedence, so the next node to call it just got the
    interpolated value from the first run.
    
    We did two things in the code to prevent this:
    1. We returned a dup of the ast string object so that modifying it
    wouldn’t change puppet’s state. We didn’t do this for all possible
    return values because we depend on using the original ast array object
    to do array concatenation
    2. We fixed extlookup to not do a destructive gsub
    
    Reviewed by: Jesse Wolfe

commit 03808fdc05c4660c1559cf8a09be80664096e0ad
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jul 28 08:37:53 2010 +1000

    Fixed #4364 - Reduced audit msg from info to debug

commit 539b57c1f119be60c774db183dcaec37b1fd5cd5
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Jul 27 15:30:46 2010 -0700

    [#4347] run_mode was colliding with --mode for "puppet doc"
    
    The run_mode value was incorrectly getting stored to Puppet[:mode], which
    was confusing the optparser for applications that declare a --mode
    parameter.

commit 1faebdd7b54a55b023f151976644dbc3405c486b
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Aug 2 17:23:36 2010 -0700

    [#4423] repair parameterized class instantiation
    
    My earlier #4397 patch was not aware of the parameterized class
    instantiation syntax, and failed on manifests that instantiate
    parameterized classes.

commit 37568bdd3f8cc3514eb9d0bf0eae3302686bc13d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Aug 2 20:54:59 2010 -0700

    [#4423] class { shouldn't get stored on the namespace stack
    
    The new syntax for instantiating parameterized classes was confusing the
    lexer's notion of namespaces.
    This is a simple fix to prevent that syntax from polluting the
    namespaces.

commit 449315a2c705df2396852462a1d1e14774b9f117
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jul 28 14:54:23 2010 -0700

    [#4397]+[#4344] Move type-name resolution out of Puppet::Resource into the AST resources.
    
    Move type-name resolution out of Puppet::Resource into the AST resources.
    Move find_resource_type out of Puppet::Resource into Scope
    Thus, never pass unqualified type names to Puppet::Resource objects.
    Thus, Puppet::Resource objects don't need the namespace property,
    and Puppet::Resource objects never consult the harddrive to look for
    .pp files that might contain their type definitions,
    Thus, performance is improved.
    
    Also removes the temporary fix for #4257 that caused #4397
    (The code was too eager to look for a class in the topscope)
    
    Paired-With: Paul Berry <paul@puppetlabs.com>
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit daa801b9ff8c81e6812a08a3f6ef82f593248e9d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 27 15:04:04 2010 -0700

    [#4344] Temporary fix to stop agent from importing modules
    
    Due to type collection madness, agent tries to import modules
    to resolve resource types. That is wrong, decreases performance,
    and causes problems. This patch forces agent to not import any
    files by setting ignoreimport to true.

commit 00ebf01227745edc84084d10a9d8be7439551b0f
Author: Paul Berry <paul@puppetlabs.com>
Date:   Tue Jul 27 11:34:32 2010 -0700

    [#4344] Fix for failing templates when module name matches file in local dir.
    
    When the name of a module matches the name of a file in the local
    directory, puppet agent would sometimes try to read that file and
    interpret it as puppet code.  This happened because files.rb was
    unintentionally permitting puppet files without an extension.  Fixed
    by changing the glob pattern to only permit ".pp" and ".rb"
    extensions.

commit e32320ee2c65275e3c695c555f506a499209efa1
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Jul 27 14:40:21 2010 -0700

    [#4336] "reportdir" was in the wrong section
    
    Correctly revert damage done by c00285c, which incorrectly reverted in
    a7e4fe8.
    The result was that "puppet agent" and others were trying to create a
    reportdir that they don't actually use.

commit 0f9672a545ac057282b9add87ee602e3200d11de
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jul 25 09:55:22 2010 +1000

    Fixed #4311 - Typo in defaults.rb

commit f54d843e4e585274f724c97f1b10288d8798a63b
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Jul 30 22:12:46 2010 +0200

    Fix #4461 - attempt to fix another performance issue
    
    During a profiling of a 2.6.1rc1 puppet master, I found that we
    spend a lot of time and efforts in Puppet::Util::Autoload#module_directories.
    Since this method is doing a bunch of filesystem access, this process is
    slow.
    
    In fact each time we were evaluating a resource or trying to find if a given
    resource was a builtin type we ended up scanning the whole module directories
    for the given environment.
    
    This patch attempts to fix this performance issue by caching the module_directories
    output for the either the time of the compilation or an agent configurer
    run (since this stuff looks like to be shared for both compilation and
    catalog evaluation).
    
    With this patch, my compilation time for 2k resources went from 5.91s to
    3.71s (second run each time to allievate parsing time)..
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
    
    Edited to fix a typo [#4434]
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 2c21faec04f0029bfef381dfa4341a916ee28967
Author: markus <markus@AVA-351181.(none)>
Date:   Tue Aug 3 14:42:01 2010 -0700

    Fix for #4300 Solaris svc files need new pid filenames
    
    The conf/solaris/smf/svc-puppetd and svc-puppetmasterd still used
    puppetd.pid and puppetmasterd.pid for stopping the services in 2.6.0.
    These are changed to agent.pid and master.pid for 2.6.1.

commit 83c2419771de45317e4bf79e7f71469d9a19a09a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 27 17:00:28 2010 -0700

    [#4284] Fix failing specs run as root due to missing puppet group
    
    These specs 'use' some settings which create directories belonging
    to the 'service' user/group. If the default service group doesn't
    exist, these fail. This patch explicitly sets the service group to
    the gid of the process, which is known to be accessible by the user.

commit 8237f686c53e8d1e45097c65c7d50b84ca83bb39
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jul 26 12:37:02 2010 -0700

    [#4242] Fixed (removed) a broken unit test
    
    This test ran into a mocha bug, and was stubbing too much anyway.
    It's being moved to an acceptance test.

commit 6dbd4771265173a9d4c3e7756c35c9ca371ca394
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jul 28 14:54:23 2010 -0700

    [#4397]+[#4344] Move type-name resolution out of Puppet::Resource into the AST resources.
    
    Move type-name resolution out of Puppet::Resource into the AST resources.
    Move find_resource_type out of Puppet::Resource into Scope
    Thus, never pass unqualified type names to Puppet::Resource objects.
    Thus, Puppet::Resource objects don't need the namespace property,
    and Puppet::Resource objects never consult the harddrive to look for
    .pp files that might contain their type definitions,
    Thus, performance is improved.
    
    Also removes the temporary fix for #4257 that caused #4397
    (The code was too eager to look for a class in the topscope)
    
    Paired-With: Paul Berry <paul@puppetlabs.com>
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit d5ad0fbd44aa45f38b399b0f3da6b59833fc74db
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 30 10:48:00 2010 +1000

    Removed eventual documentation line ... eventually came

commit 871e6fd58223cad241bcc14f165b3ab1e6e257e6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jul 28 08:15:21 2010 +1000

    Fixed #4368 - Updated clean stored configs ext script for new config sections

commit d5db8db116aff58215ab0feebd7ec02086040f51
Merge: 865282a b53e7d7
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Jul 27 10:20:27 2010 -0700

    Merge branch 'next'
    
    This synchronizes the 2.7 master branch with 2.6.1RC1

commit b53e7d78e2e87571ae53170e9716b9ccd75da6e2
Merge: 94edd40 ecf44e4
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Jul 27 10:17:44 2010 -0700

    Merge commit '2.6.1rc1' into next

commit cb64477d505715d7dd66cd502ed27662b9378248
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 27 00:39:08 2010 +1000

    Updated version to 2.6.1

commit ecf44e4408c168893d74af58a4c7c8606634a844
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 27 00:36:13 2010 +1000

    Updated CHANGELOG for 2.6.1rc1

commit bdfcac5c9c44cdbb4a13e282720ff29fed79642c
Author: Todd Zullinger <tmz@pobox.com>
Date:   Tue Jul 20 09:55:06 2010 -0400

    Update Red Hat spec file for 2.6.0

commit 9f08e7c1e49282754c839e631bf52102707336c0
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Jul 21 22:51:45 2010 +0200

    Feature: puppet-load - a tool to stress-test master compilation
    
    This commit introduce a new executable (ext/puppet-load) which aims
    to simulate concurrent clients to stress-test load a puppet master.
    At the end of a run, it produces some statistics.
    
    This tool is very lightweight:
     * it runs under Event Machine (and thus is event-driven)
     * it doesn't do anything with the received catalog
    
    This tool, to run, needs access to:
     * a certificate/private_key pair from a node known by the master
     * a fact file like those persisted on the master
     * obviously a puppet-master running somewhere
    
    Refer to the embedded help for options and run examples.
    
    TODO:
    
     * fetch different nodes catalog
     * exercise the file server
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ef9a4a6df163c370a524d9ab76453c96bb99e8a4
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jul 25 19:19:04 2010 +0200

    Fix #4245 - default insertion of ACL is not thread safe
    
    This can happen under jruby with native threads.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 4065e81f76020c29ed8ccfc1cf6c481aa202cb23
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jul 25 18:09:33 2010 +0200

    Fix race condition in rack autoloading of request/response
    
    Ruby autoloader seems to not be thread-safe. Since rack uses it to lazily
    load the Rack::Request and Rack::Response classes, on jruby it fails
    if the first compilation is done with multiple concurrent threads.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 3163932f70e824906d48edc9665b4017a4669797
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jul 25 19:04:44 2010 +0200

    Fix #4244 - Cached Attributes is not thread safe
    
    The underlying hash is not protected and thus two threads accessing
    the cached value at the same time and one expiring the value can result
    in a race condition.
    
    This patch synchronizes the access to the value_cache underlying hash.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 7d42f77b83a7597a879a0fc2080c18b7c76c6fc3
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jul 25 17:42:42 2010 +0200

    JRuby doesn't implement Process.maxgroups
    
    So let's not call it :)
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 760e418d254a8d2198d2c6eb466d783a5930ef47
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Jul 25 22:14:31 2010 -0700

    Fix #4349 - Parsing with ignoreimport=true was always loading site.pp
    
    With the type collection refactoring, when accessing a fresh collection
    puppet tries to import the site.pp manifest (perfrom_initial_import).
    In the case of puppetdoc, we are parsing site.pp by ourselves, so we
    ended parsing it twice, resulting in an "import loop detected" error.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 67bdf89ac91a753171ad354b070546c62e09ce1a
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jul 25 15:26:01 2010 +0200

    Fix #4348 - Puppet doc single manifest broken
    
    The refactoring of using environment instances instead of strings
    for initializing the parser, rdoc wasn't updated, thus was unable
    to initialize the parser.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 13c71b97d93edf033897dc09093861f68c9dd23a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jul 23 13:59:40 2010 -0700

    extlookup() is a builtin
    
    This patch promotes extlookup() to being a builtin function.
    It also adds test and makes some minor tweaks to the code.
    The behavior of extlookup has been left unchanged.

commit d38e52224f19b4fcedef722b2aab8fc94a59b481
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 22 14:33:58 2010 -0700

    [#4333] old optparse doesn't support default_argv=
    
    optparse hasn't always had the concept of default_argv. Fortunately, we
    don't really need it.

commit 86b0882c8a772b2e84e8da0609ec911d085ac0fc
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jul 25 10:52:32 2010 +1000

    Fixed #4326 - Updated SUSE packaging

commit 03313b81c696d12c756a5ff5adced5bed162bbfc
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Jul 21 22:56:58 2010 +0200

    Fix #4319 - source file url sent to the master is invalid
    
    We were sending an incorrect (containing a //) url for sourced file
    content since the file streaming patches.
    Depending on the webserver in front of puppet it could fail (for instance
    nginx+mongrel).
    
    This patch fixes the offending // in each sourced file urls.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ac3a0d2d6c10f4a1616865d2c2e69b68a4bbcb3e
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Fri Jul 16 08:22:30 2010 +0200

    vim: highlight default parameters in definition/classes

commit be2141a6e37fabe78b57be699f8ae9d84acdebcf
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Fri Jul 16 13:03:54 2010 +0200

    vim: match collected resources.

commit c047c8d38f5fbb8159a357f64d6c444d66407423
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Fri Jul 16 07:36:45 2010 +0200

    vim: added elsif

commit 9569136329f87eeb102e589a3d5e9c26d8632aad
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 23 09:50:29 2010 -0700

    Fix for 4314 -- Need to allow '-' in class name for refs
    
    I almost changed this to correspond to the lexer pattern ([a-z0-9][-\w]*) but
    that isn't quite right either (it would reintroduce the '::' problem).  Another
    option I considered was [^\[]+, but that has it's own problems.  In the end I
    just made the minimal change, adding '-' to the acceptable characters.

commit 636079f114034f5dced1772da206d1b1b1a537ed
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 23 02:32:50 2010 +1000

    Fixed #4304 - Changed logging level for auto import message

commit 000fd1e83782c70fc9d9b032b52d96800cab2121
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 23 11:31:40 2010 -0700

    Fix for #4303 -- reverting to old escaping in '-strings
    
    Single quoted used to allow escape on single quotes and pass all other
    characters through without comment; now the do again.

commit 1d494a3104e9794cc09ba27c701ced68a74fa398
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 23 08:47:48 2010 -0700

    Tweak to fix for #4302--dangling ref to known_resource_types
    
    Since we were clearing the thread variable containing the compiler's reference
    to it's environment's known resource types at the start of each compile the
    reference remaining at the end of a compilation could never be used and was
    thus just garbage that we were arbitrarily retaining.
    
    This patch moves the clearing of the thread var to the _end_ of compilation so
    that it's always nil except in the middle of a compile.
    
    This raises an interesting question; should the ref just live on the compiler
    object and we could dispense with the thread-var?  It might require things that
    now only know about the environment to need a ref to the compiler and introduce
    other thread issues (e.g. we might just end up needing a :current_compiler
    thread variable, for no net gain in simplicity).

commit 23830504dfeb48b2d162e44b84b6f9dfa97e4e7e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Jul 22 20:36:24 2010 +0200

    Fix #4302 - Compilation speed regression compared to 2.6
    
    Each time the compiler was accessing the loaded types, we were checking if the
    manifests had changed.  This incurred a large performance cost compared to 0.25
    and introduced race conditions if manifests changed while a thread was in the
    middle of a compilation.
    
    This tentative fix, based on Brice's, makes sure each thread will get access to
    the same loaded types collection for the durration of a compilation, even if
    the manifests change.  We now only check for changed files at the start of a
    compilation or if the environment changes, and we maintain a per environment
    thread lock so that only one thread at a time can be reloading any particular
    environment (and the need-check is done inside the synchronize block so that
    only the first will actually load it).
    
    As long as the manifests don't change, the threads will share the same collection,
    so there is only duplication in memory for a brief window surrounding a change.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
    Second-author: Markus Roberts <markus@puppetlabs.com>

commit 63ec207cc88828b8b0ad421c7fcdd8a5715e7fd3
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Jul 24 10:35:21 2010 -0700

    Minimal fix for #4297, with notes for follow-up
    
    In retrospect it appears that the fix for #4270 was incomplete and somewhat off
    target.  This patch fixes the one demonstrably incorrect part (the namespace)
    and adds a comment outlining what remains to be done to clean up the code;
    these additional changes, while needed for maintanability, are inappropriate
    for a quick turnaround crucial bug fix release such as 2.6.1, at which this
    patch is targeted.

commit 7ad7eb12fade4695abf08392e80ca57003353140
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Jul 21 23:10:46 2010 +0200

    Fix #4286 - rename puppetdoc global module <site> to __site__
    
    < and > might be invalid or borderline chars to use for a file name
    or an url.
    
    This patch changes those characters to __.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 28bb1950cf040eaf5196e39f43b3a9d0d61175a7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 16 14:42:01 2010 +1000

    Fixed yumrepo type deprecation wanring
    `

commit 067a46db27a746a680f8afbb32bb5317ce7a7056
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Jul 24 21:55:42 2010 -0700

    Temporary tweak to tests for #4242
    
    The tests introduced with the fix for #4242 have isolation issues apparently
    due to the creation of a stage resource which is global and persistent.  This
    patch stubs the creation, marks the one test which is thus invalidated pending,
    and adds comments noting the problem.

commit 9778f2a47922a66e59d571c1c98552223a817ce1
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jul 23 17:04:22 2010 -0700

    [#4242] Fixed recursion due to parents including their children
    
    Resources mark themselves as evaluated to prevent being evaluated
    again. Unfortunately, they were not marking themselves until after
    they had finished being completely evaluated. Thus, there was
    nothing actually stopping recursive evaluations. This patch just
    makes resources mark themselves as evaluated when they start
    evaluating, and adds tests.
    
    The original setting of evaluated was done in an ensure block, so
    this doesn't change the behavior of a resource which fails to
    evaluate. The only places evaluated? is checked aren't affected
    by this change, as they wouldn't want to evaluate it when it's
    already being evaluated anyway.

commit 59a23d69c20a8ab1f7dc9ff1d109305f9027641c
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Jul 24 14:48:13 2010 -0700

    Fix for #3382 -- Empty classes as graph placeholders
    
    As Brice discovered, the problem was that we simply ignored empty classes in
    the graph when determining application order.  This patch instead replaces them
    with a resource of a new type which we've frequently noted the (internal) need
    for: a whit, the smallest possible resource, which has no properties or other
    semantics apart from its existence and its name.
    
    This resource then ensures application order through the normal mechanisms.

commit 919638ec97568536f90e23b9c63a35a134e948a4
Merge: e02ba01 d026bb7
Author: Maciej Blizinski <maciej@opencsw.org>
Date:   Thu Jul 22 13:16:50 2010 +0200

    Resolved a conflict in the pkgutil provider.

commit d026bb7c963f992e378ade5e0586242f506c62c7
Author: Maciej Blizinski <maciej@opencsw.org>
Date:   Thu Jul 22 13:13:58 2010 +0200

    pkgutil provider: Using the --single option which speeds up execution.

commit ec2a03c5842c183963a7c5dc070f83566ec5ea30
Author: Maciej Blizinski <maciej@opencsw.org>
Date:   Thu Jul 22 13:13:30 2010 +0200

    pkgutil provider: The path to the admin file is /var/opt/csw/pkgutil/admin

commit 0fc2aa65a2cf663a9fb1aec1eeb0f1f7c34aca94
Author: Maciej Blizinski <maciej@opencsw.org>
Date:   Thu Jul 22 13:12:59 2010 +0200

    pkgutil provider: Correcting a typo in a message.

commit e60a9eb0c1c0866d03baaab282c7b027ea7786d3
Merge: a0a63c3 9f365b1
Author: Maciej Blizinski <maciej@opencsw.org>
Date:   Thu Jul 22 12:59:44 2010 +0200

    Merge branch 'tickets/master/4258' of http://github.com/jamtur01/puppet into jamtur-pkgutil

commit e02ba01613a5ce61ccd6c80c17d53134daf589ba
Author: Maciej Blizinski <maciej@opencsw.org>
Date:   Thu Jul 22 12:50:29 2010 +0200

    Using --single in the pkgutil provider.

commit fc1859119b8fad1edaabdbce48545e1583bfa24c
Author: Maciej Blizinski <maciej@opencsw.org>
Date:   Thu Jul 22 12:48:53 2010 +0200

    Adding pkgutil support.

commit 865282ae7b9332fdbdfa51b2814755b8a13d244b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jul 21 09:50:21 2010 +1000

    Fixed example config.ru

commit 94edd404130b4236f0c65a579857e3a25c5ee17f
Merge: 2af2716 db0b30d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Jul 20 13:31:34 2010 -0700

    Merge commit 'tags/2.6.0' into next

commit a0a63c3735f53cbf895a9e30e6a2c1dfd2ae4c4e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 20 15:25:05 2010 +1000

    Fixed network and indirection reference

commit 64386cf185c6d99ab5639ca8b2e0f0f4c47021af
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 20 15:01:59 2010 +1000

    Fixed Indirection reference

commit db0b30dbde94d16ab1d7580be4dd32e18cff23dc
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 20 14:21:38 2010 +1000

    Updated CHANGELOG for 2.6.0

commit 2af27160b94efa4755187efd99c86d1659683b29
Merge: 21efa7b d87a2e3
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Jul 19 19:59:01 2010 -0700

    Merge branch 'master' into next
    
    This is the code for 2.6 RC4

commit 42a475ee6e865cc175b10a3edb3e5e738e72c738
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Jul 19 17:12:13 2010 -0700

    Fixing #4268 - manifests always imported
    
    The problem is that the environment list gets cleared
    when Settings#set_value is called, and it was being
    called every time Settings#use was called, which is
    more often than obvious but especially if reporting
    is enabled.
    
    Previously we ignored noop when running inside of Settings,
    and this essentially adds that back in, so we can remove
    the special noop behaviour in Settings itself.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 06fc40c5d755a41c8ece84a3d437572a64b4c899
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jul 19 12:32:46 2010 -0700

    [#4269] Undef variables interpolate to empty string
    
    This fixes double-quoted strings to interpolate undef variables
    as an empty string. This is the behavior present in 0.25.x.

commit 1288f8c4051105d6cfbf4f532d5e5e926613e9df
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Jul 19 18:28:30 2010 -0700

    [#4270] Force inherited classes to load into the correct environment
    
    Parent classes were getting searched for in a way that fails if they
    were not already loaded into an environment. This patch replaces that
    codepath with a call that will load them if they are needed.
    
    This bug was masked by another bug that loads all classes into
    "production", whether they are used there or not.

commit 539d71635132bd5f772a550b7bfff530e8b59b68
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jul 19 14:57:23 2010 -0700

    [#4287] Fix the undefined evaluate_match error when comparing functions
    
    Ticket #4238 introduced a problem that a function couldn't compare to
    another value until after it was evaluated, and AST::Function didn't have the
    evaluate_match method.  This change moves that method from AST::Leaf to AST.
    
    The special casing necessary for doing comparisons between AST objects
    feels messy and could probably be encapsulated better.  I've created
    ticket #4291 to remind us to refactor this at some point.
    
    Paired with: Nick Lewis
    
    Signed-off-by: Matt Robinson <matt@puppetlabs.com>

commit d2da1d45aaf44de7fd0648b3bab48887838549d8
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jul 19 17:09:59 2010 -0700

    Tweak to tweak to fix for #4233 -- ":" is valid in type names
    
    The tweak to the fix for #4233 was too narrow, and precluded the possibility
    that a type name would contain colons e.g. (MySQL::User)

commit bbc07f2581fc5475530310d3ee9d3a11c0d32eb5
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jul 19 13:45:10 2010 -0700

    Bandaid for #4285 -- :name vs <namevar>
    
    We sometimes refer to the namevar as its name and sometimes as :name; there is
    no consistant pattern in the code for when this is done one way or the other.
    This problem was exposed by the composite namevar refactor; the present patch
    adjusts the crucial routine to work with either.

commit 40e6f02dd2ca9a7d8e2f1de00e83c46974b5ec6e
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jul 19 11:21:52 2010 -0700

    Tweak to fix for #4233 -- only accept word chars in types
    
    With the title carrying semantic information it may contain arbitrary chars;
    when parsing a ref we only want word chars in the type (up to the first open
    square bracket) and everything else, enclosed in "[" / "]" to the end of the
    string, is the title.

commit d87a2e39d1a6104c52b1213a654ec9d58d0bff7f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jul 19 13:02:00 2010 +1000

    Updated CHANGELOG for 2.6.0RC4

commit cf597d72dca288011cfa3e57451b8eba56ea51da
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jul 14 18:26:30 2010 -0700

    [#4233] Ruby regexps are not multiline by default, but Resource titles can be multiline
    
    Puppet allows resource titles to contain newlines. We recently
    introduced several regexps that were failing on resources with multiline
    titles.

commit d6cbb2198e06bb6b8f0172b1a48c9717c7ce6e17
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Jul 14 13:29:11 2010 -0700

    Fix for #4234 -- ruby DSL fails on second resource
    
    The loop detection mechanism isn't great (it should, for example, allow nesting
    if the signatures differ) but the key problem was that the ensure was simply
    backwards.

commit 4822de3f95e08a745e727790e1a30e49064e1e43
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Jul 17 12:39:37 2010 -0700

    Fix for #4236 -- Only interpolate $ if followed by a variable
    
    This is a modification of the Nick/Jesse/Matt patch, retaining their tests and
    the analysis of the problem but reversing the implementation direction of the
    solution.
    
    Rather than trying to make the already somewhat brittle slurpstring smarter,
    which requires telling it what following strings will be accepted by the caller
    with a zero-width-lookahead negation of the regular expression used to extract
    a variable name, this patch keeps that responsibility in the caller where it
    belongs.
    
    The caller (tokenize_interpolated_string) now checks to see if it got a
    variable name _before_ emitting a variable token; if it got one, it proceeds
    normally, but if it didn't it simply tries again from that point in the string
    (accumulating the false match as a prefix).  This change actually simplifies
    the logic of tokenize_interpolated_string somewhat.

commit b509032e559cb26e05863b2c290a543c6fa9d779
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Jul 16 10:22:27 2010 +0200

    Fix #4238 - if should match undef as ''
    
    The comparisons operator (and more particularly == and !=) were not treating
    the undef value as '', like case and selector did since #2818.
    
    This patch makes sure comparison operator uses AST leaf matching.
    
    Unfortunately, doing this introduces a behavior change compared to
    the previous versions:
    Numbers embedded in strings will now be matched as numbers in case and
    selector statements instead of string matching.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 8c8c1469ae9f1dd11c567d89a27be81653ca2052
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Jul 15 19:44:35 2010 -0700

    Minimal fix for #4243 -- import isn't thread safe
    
    The import function was calling type_loader#import directly so that it could
    pass in the current file name, but by doing so it was thwarting the thread-
    safety locking level.  This patch rearanges things so that all imports go
    through the same (thread safe) code path while retaining the current_file
    passing, error handling, etc. from the old structure.

commit d319da41e46f0f3621180d09d3110f67003a7527
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 15 16:38:04 2010 -0700

    [#4247] storeconfigs was calling Puppet::Parser::Resource.new with the wrong arguments
    
    When the interface to Puppet::Resource changed, its subclass
    Puppet::Parser::Resource was also affected. One case of initializing
    those objects did not get updated when the code changed, causing
    storeconfigs to break.
    
    Also, this patch adds a error message that would have made it easier to
    catch this problem (as puppet could consume all memory and die trying to
    print the old error message)

commit 9f915402f5cf54c0f78dd34fefdde5f2f840cda7
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Jul 16 15:17:12 2010 -0700

    [#4256] External nodes parameters can now be assigned to nodes
    
    Node parameters were made a reader instead of an accessor in
    
      commit b82b4ef04282ca0006931562f60459a1591b6268
      Author: Luke Kanies <luke@reductivelabs.com>
      Date:   Wed Jan 6 17:42:42 2010 -0800
    
          All non-transient parser references are gone
    
    but external nodes needs to be able to assign to parameters.  The fix is
    just to change that back to an accessor.  There may have been concern
    over nodes replacing the hash object instead of the values could have
    bad consequences, but that's not a concern since the node object being
    created in this case is new also.
    
    Paired with:  Nick Lewis

commit 680dd1ace4b616908d76539befcbdf03feb1cef9
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 16 17:51:42 2010 -0700

    Fix for #4257 -- problems resolving ::-prefixed classes
    
    While find_fully_qualified expects (and gets) fully qualified class names it
    does not always get absolute names (with the ::-prefix); test in the global
    scope refers to the same thing as ::test.

commit 6e07a199011b434ea6d7b3c69d14e6ca7cf9cf8e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jul 17 17:25:04 2010 +0200

    Fix #4262 - Puppetmaster used to log compilation time
    
    It looks like a merge went wrong and we were returning abruptely
    from a benchmark block, thus jumping over a precious log information.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 5b68afe0be7abd4f6743c4ad05513b6879f40153
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Jul 18 19:42:16 2010 -0700

    Fix for #4255 -- misleading diagnostic message
    
    A diagnostic message was left in the code durring development.  Now it's gone.

commit dd03ac9fa29fce36eb64a5f831be8757f2f96f5c
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Jul 18 13:25:43 2010 -0700

    Partial fix for #4278 -- the performance aspects
    
    unevaluated_resources was a performance bottleneck and was doing a great deal
    of unneeded work, such as searching for the type of evaluated resources before
    ignoring them because only unevaluated resources were wanted.
    
    This patch is behaviour neutral but gives a 2-3x speedup for compiles with many
    defined resources.

commit 9f365b19a738b1ee09712834d510de32b2a86d25
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jul 17 01:35:44 2010 +1000

    Fixed #4258 - Added pkgutil package provider

commit 4ce33fde2c0de19d03bf5d951858dd3ea4fd52a6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 16 09:12:51 2010 +1000

    Fixed #4249 - Updated SUSE packaging specifications

commit 21efa7b282080c69760a17576dff60c01821a963
Merge: 9caa04f 91185c6
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jul 14 15:24:19 2010 -0700

    Merge branch 'master' into next
    
    This is the code for 2.6 RC3

commit 91185c6c04dc2bb5659db8f7a7d23a41c4d308ea
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 15 07:38:35 2010 +1000

    New man pages for 2.6.0

commit 1cda7c53e340bd95513c973e356cbc90372efe38
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 15 01:33:54 2010 +1000

    Fixes errant Trac references in documentation

commit f60b6a0e54bf99e20bfa876b8341a5cc0da74584
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jul 14 16:37:37 2010 +1000

    Updated CHANGELOG for 2.6.0rc3

commit 9df87e986c28491c0924899943c8b00ed967313a
Author: Todd Zullinger <tmz@pobox.com>
Date:   Tue Jul 13 10:30:41 2010 -0400

    [#4219] Install misses command_line dir, puppet $app --help fails

commit 04228528d1f8e4d36e1643ac0cf51281b81ef9fb
Author: Todd Zullinger <tmz@pobox.com>
Date:   Tue Oct 27 01:03:33 2009 -0400

    conf/redhat: Consistently pass pidfile option to daemon, killproc, and status
    
    In Red Hat bug #531116 Ruben Kerkhof noted that we weren't using the
    --pidfile $pidfile option to daemon.  This caused 'service puppet start'
    to fail if puppet had already been started.  To be consistent, we now
    pass the pidfile option to daemon, killproc, and status when those
    functions provide such an option.  And we only test for the availability
    of the -p/--pidfile option in one place.

commit 63bf037dc297c8cd59a02dc1fea0961014542344
Author: Todd Zullinger <tmz@pobox.com>
Date:   Mon Jul 12 10:01:57 2010 -0400

    conf/redhat: Update conf/init files for single binary

commit f72741f2165fcf6877c564f24d09e67c87180fb3
Author: Todd Zullinger <tmz@pobox.com>
Date:   Sat Jul 10 14:48:04 2010 -0400

    conf/redhat: Rebase rundir-perms patch

commit 793d7b7cfd2bb1d61a0c0686dc1f8533c8ab13d9
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jul 12 16:23:35 2010 -0700

    [#4213] -o option for setting onetime now works properly
    
    When onetime was moved to global defaults, it broke the option handler
    using it in agent to manage waitforcert length. Additionally, it
    caused --onetime and -o to behave differently. This patch removes
    the ordinary option handler defined in agent and moves the logic
    for waitforcert to the one location it's used.

commit 2edf7fe968ac3d8af9865f65100940747c1fa894
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Jul 13 14:01:24 2010 -0700

    [#3656] Serializing arrays of references
    
    My previous fix for #3656 missed the case where a "require" attribute
    (or other graph-ish attribute) had multiple values. This patch
    generalizes that fix to the multiple-value case.

commit 27d5a4782c442908c71bb9abac9f78654581eacf
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jul 12 16:57:35 2010 -0700

    [#4215] Have rundir depend on vardir
    
    This came up because if you ran puppetd with a specific vardir, then
    when rundir got set to a hardcoded value its parent directory might not
    exist and the whole thing would fail.
    
    This change came about with the concept of run_mode, and this fix is
    restoring the behaviour that was in 0.25.x
    
    Reviewed-by: Jesse Wolfe
    Signed-off-by: Matt Robinson <matt@puppetlabs.com>

commit 06cc552b8b1196ff833eb911eccf1c234d4b0d67
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Jul 13 22:03:11 2010 -0700

    Fix for #4220 -- modules not implicitly loading their init files
    
    The module init loading was broken in 7504f1e..b938edf and then gradually
    removed as dead code.  This is a minimal (and mildly ugly) reinsertion os it
    with the addition of .rb support.

commit 9caa04fd36353f02b5e3e1d343f04a62ba640f64
Merge: 8747479 83d9874
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Jul 12 17:52:14 2010 -0700

    Merge branch '0.25.x' into next
    
    This is a housekeeping merge: all 0.25.x commits were already
    cherry-picked into the 2.6 era's master.
    No code was changed by this merge, since I used --strategy=ours

commit 8747479d59fa211f41186c1ab68987bb4af55f0b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jul 12 15:56:54 2010 +1000

    Updated CHANGELOG for 2.6.0rc2

commit fa740203ba7af7e797d082657f77ba1b11be6cd8
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Sun Jul 11 20:42:19 2010 -0700

    [#4209] catalog.resources should return resources
    
    type/user.rb was assuming that catalog.resources would return resources.
    In 0.25.x, it (confusingly) returns strings. type/user ignored this, and
    the codepath was a no-op.
    In 2.6, the method was renamed to something less confusing, causing the
    codepath in type/user to fail outright.
    This patch added a catalog.resources method that returns resource
    objects.
    As a side effect, user resources will now autorequire group resources
    again.

commit f5f9a382deb6d7bf814b6f180a39793c55bc36b2
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Jul 11 18:39:20 2010 -0700

    Fix for #4210 -- missing require in CA
    
    Added the require.

commit 1c3e844c120c3c91c63b64c093f94d5dbab7b946
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Jul 11 12:12:43 2010 -0700

    Minimal fix for #4205 -- incorrect Import loop messages
    
    This patch fixes the narrow problem of #4205, wherein type_loader would reparse
    a file each time it was imported (causing the parser to incorrectly think that
    it was in a loop) by checking @imported inside the existing check on the
    thread-guarded @loaded.  (@imported was being set but never checked).
    
    This works (and is thread safe) because all of this is going on inside a giant
    synchronize care of @loaded.  But it, like the fix for #4208, does nothing
    about the global lock.
    
    Areas for future research:
    
    1) Why is the looping inside of import?
    2) Why are there separate @loaded and @imported tables?
    3) Why is the parsing treated like a function (called deep in the structure)
       yet coded like a thread-savvy pseudo state monad (e.g. raising errors that
       presume it knows/owns what's going on outside the whole process)?
    
    These and many other exciting questions are deferred to #4211

commit 99d8323ece06ffde0ddfb5753ef94541d473a9d9
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jul 10 18:52:28 2010 +0200

    Fix #4206 - import "path/*" tries to import files twice
    
    Due to the glob pattern used, we are trying to import manifests twice.
    Since it isn't possible (see #4205), it is not possible to use a pattern
    in an import statement.
    This patch makes sure manifests are returned only once.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit a2115afbe2a5ab83ea5c84896492eaaf62a33507
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Jul 10 16:30:20 2010 -0700

    Alt fix for #4207 -- serialize environments as their names
    
    Environments contain a deal of transitory information and references to other
    objects, none of which is wanted when they are serialized.
    
    Rather than having this serialization concern propogate through the code by
    replacing environments by their names prior to serialization (which would be
    one way to address the problem) this patch changes environments so they only
    serialize their identity (name) and not their contents.

commit fe4dcd8b5985084462f1ee6e5e9887a8975bf18e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Sat Jul 10 22:16:18 2010 -0700

    [#4208] Missing parameter breaks multithread compilation
    
    import_if_possible calls itself recursively, but it was failing to pass
    its block parameter to its younger self. Thus when the inner call
    reached the un-blocked case, it raised an exception rather than doing
    something useful.

commit e0283101e5745cd3715a0144836574586078793e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jul 10 16:40:08 2010 +1000

    Updated CHANGELOG for 2.6.0rc1

commit 3180b9d9b2c844dade1d361326600f7001ec66dd
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:12:17 2010 -0700

    Code smell: Two space indentation
    
    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

commit 543225970225de5697734bfaf0a6eee996802c04
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:07:15 2010 -0700

    Code smell: Avoid needless decorations
    
    * Replaced 704 occurances of (.*)\b([a-z_]+)\(\) with \1\2
    
      3 Examples:
    
          The code:
              ctx = OpenSSL::SSL::SSLContext.new()
          becomes:
              ctx = OpenSSL::SSL::SSLContext.new
          The code:
              skip()
          becomes:
              skip
          The code:
              path = tempfile()
          becomes:
              path = tempfile
    
    * Replaced 31 occurances of ^( *)end *#.* with \1end
    
      3 Examples:
    
          The code:
    
          becomes:
    
          The code:
              end # Dir.foreach
          becomes:
              end
          The code:
              end # def
          becomes:
              end

commit 8f15707251cdb58d53e82c4bbd332a38c2d31b4c
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:06:58 2010 -0700

    Code smell: Don't restate results directly after assignment
    
    Replaced 33 occurances of
    
            ([$@]?\w+)( +[|&+-]{0,2}= .+)
            \1
        end
    
    with
    
    3 Examples:
    
        The code:
                @sync ||= Sync.new
                @sync
            end
        becomes:
                @sync ||= Sync.new
            end
        The code:
                str += "\n"
                str
            end
        becomes:
                str += "\n"
            end
        The code:
                @indirection = Puppet::Indirector::Indirection.new(self, indirection,  options)
                @indirection
            end
        becomes:
                @indirection = Puppet::Indirector::Indirection.new(self, indirection,  options)
            end

commit c3e2353afb7fc2fb12efd1eb2bc5c342c792fb3b
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:06:56 2010 -0700

    Code smell: Use &&= for dependent initialization
    
    Replaced 6 occurances of
    
        ([$@]?\w+) += +(.*) +(if +\1|unless +\1.nil\?)$
    
    with
    
        \1 &&= \2
    
    3 Examples:
    
        The code:
            end
        becomes:
            end
        The code:
    
        becomes:
    
        The code:
            res
        becomes:
            res

commit 42a539061293f8e745a9dc5b97b4415b6a275e04
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:06:48 2010 -0700

    Code smell: Use ||= for conditional initialization
    
    Replaced 55 occurances of
    
        ([$@]?\w+) += +(.*) +(if +\1.nil\?|if +! *\1|unless +\1|unless +defined\?\(\1\))$
    
    with
    
        \1 ||= \2
    
    3 Examples:
    
        The code:
            @sync
        becomes:
            @sync
        The code:
    
        becomes:
    
        The code:
            if @yydebug
        becomes:
            if @yydebug

commit a07bbe2e711ee22a40e147c046997c8813ae3cc8
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:06:38 2010 -0700

    Code smell: Omit needless checks on defined
    
    * Replaced 53 occurances of
    
          defined\?\((.+?)\) (?:and|&&) \1( |$)
    
      with
    
          \1\2
    
      In code like:
    
         unless defined? @foo and @foo and bar("baz")
    
      "defined? @foo and @foo" can safely be replaced with "@foo":
    
         unless @foo and bar("baz")
    
      Because:
    
       * Both evaluate to false/nil when @foo is not defined
       * Both evaluate to @foo when @foo is defined
    
      3 Examples:
    
          The code:
              @sync = Sync.new unless defined?(@sync) and @sync
          becomes:
              @sync = Sync.new unless @sync
          The code:
              unless defined?(@content) and @content
          becomes:
              unless @content
          The code:
              raise(ArgumentError, "Already handling indirection for #{@indirection.name}; cannot also handle #{indirection}") if defined?(@indirection) and @indirection
          becomes:
              raise(ArgumentError, "Already handling indirection for #{@indirection.name}; cannot also handle #{indirection}") if @indirection
    
    * Replaced 2 occurances of
    
          defined\?\((.+?)\) (?:and|&&) ! *\1.nil\?
    
      with
    
          !\1.nil?
    
      In code like:
    
         while defined? @foo and ! @foo.nil? ...
    
      "defined? @foo and ! @foo.nil?" can safely be replaced with "! @foo.nil?":
    
         while ! @foo.nil? ...
    
      Because:
    
       * Both evaluate to false/nil when @foo is not defined
       * Both evaluate to "! @foo.nil?" when @foo is defined
    
      2 Examples:
    
          The code:
              !!(defined?(@value) and ! @value.nil?)
          becomes:
              !!(!@value.nil?)
          The code:
              self.init unless defined?(@@state) and ! @@state.nil?
          becomes:
              self.init unless !@@state.nil?

commit 07b15bf6fa2a2183f73fcb9b6740c7df75c8b47b
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:06:37 2010 -0700

    Code smell: Avoid unneeded blocks
    
    Replaced 45 occurances of
    
        (DEF)
            begin
                (LINES)
            rescue(.*)
                (LINES)
            end
        end
    
    with
    
    3 Examples:
    
        The code:
            def find(name)
                begin
                    self.const_get(name.to_s.capitalize)
                rescue
                    puts "Unable to find application '#{name.to_s}'."
                    Kernel::exit(1)
                end
            end
        becomes:
            def find(name)
                    self.const_get(name.to_s.capitalize)
            rescue
                    puts "Unable to find application '#{name.to_s}'."
                    Kernel::exit(1)
            end
        The code:
            def exit_on_fail(message, code = 1)
                begin
                    yield
                rescue RuntimeError, NotImplementedError => detail
                    puts detail.backtrace if Puppet[:trace]
                    $stderr.puts "Could not #{message}: #{detail}"
                    exit(code)
                end
            end
        becomes:
            def exit_on_fail(message, code = 1)
                    yield
            rescue RuntimeError, NotImplementedError => detail
                    puts detail.backtrace if Puppet[:trace]
                    $stderr.puts "Could not #{message}: #{detail}"
                    exit(code)
            end
        The code:
            def start
                begin
                    case ssl
                    when :tls
                        @connection = LDAP::SSLConn.new(host, port, true)
                    when true
                        @connection = LDAP::SSLConn.new(host, port)
                    else
                        @connection = LDAP::Conn.new(host, port)
                    end
                    @connection.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
                    @connection.set_option(LDAP::LDAP_OPT_REFERRALS, LDAP::LDAP_OPT_ON)
                    @connection.simple_bind(user, password)
                rescue => detail
                    raise Puppet::Error, "Could not connect to LDAP: #{detail}"
                end
            end
        becomes:
            def start
                    case ssl
                    when :tls
                        @connection = LDAP::SSLConn.new(host, port, true)
                    when true
                        @connection = LDAP::SSLConn.new(host, port)
                    else
                        @connection = LDAP::Conn.new(host, port)
                    end
                    @connection.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
                    @connection.set_option(LDAP::LDAP_OPT_REFERRALS, LDAP::LDAP_OPT_ON)
                    @connection.simple_bind(user, password)
            rescue => detail
                    raise Puppet::Error, "Could not connect to LDAP: #{detail}"
            end

commit 8d1fbe4586c91682cdda0cb271649e918fd9778b
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:06:33 2010 -0700

    Code smell: Avoid explicit returns
    
    Replaced 583 occurances of
    
        (DEF)
            (LINES)
            return (.*)
        end
    
    with
    
    3 Examples:
    
        The code:
            def consolidate_failures(failed)
                filters = Hash.new { |h,k| h[k] = [] }
                failed.each do |spec, failed_trace|
                    if f = test_files_for(failed).find { |f| failed_trace =~ Regexp.new(f) }
                        filters[f] << spec
                        break
                    end
                end
                return filters
            end
        becomes:
            def consolidate_failures(failed)
                filters = Hash.new { |h,k| h[k] = [] }
                failed.each do |spec, failed_trace|
                    if f = test_files_for(failed).find { |f| failed_trace =~ Regexp.new(f) }
                        filters[f] << spec
                        break
                    end
                end
                filters
            end
        The code:
            def retrieve
                return_value = super
                return_value = return_value[0] if return_value && return_value.is_a?(Array)
    
                return return_value
            end
        becomes:
            def retrieve
                return_value = super
                return_value = return_value[0] if return_value && return_value.is_a?(Array)
    
                return_value
            end
        The code:
            def fake_fstab
                os = Facter['operatingsystem']
                if os == "Solaris"
                    name = "solaris.fstab"
                elsif os == "FreeBSD"
                    name = "freebsd.fstab"
                else
                    # Catchall for other fstabs
                    name = "linux.fstab"
                end
                oldpath = @provider_class.default_target
                return fakefile(File::join("data/types/mount", name))
            end
        becomes:
            def fake_fstab
                os = Facter['operatingsystem']
                if os == "Solaris"
                    name = "solaris.fstab"
                elsif os == "FreeBSD"
                    name = "freebsd.fstab"
                else
                    # Catchall for other fstabs
                    name = "linux.fstab"
                end
                oldpath = @provider_class.default_target
                fakefile(File::join("data/types/mount", name))
            end

commit 889158ad57e33df083613d6f7d136b2e11aaa16a
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:06:12 2010 -0700

    Code smell: Booleans are first class values.
    
    * Replaced 2 occurances of
    
          def (.*)
              begin
                  (.*) = Integer\((.*)\)
                  return \2
              rescue ArgumentError
                  \2 = nil
              end
              if \2 = (.*)
                  return \2
              else
                  return false
              end
          end
    
      with
    
      2 Examples:
    
          The code:
              def validuser?(value)
                  begin
                      number = Integer(value)
                      return number
                  rescue ArgumentError
                      number = nil
                  end
                  if number = uid(value)
                      return number
                  else
                      return false
                  end
              end
          becomes:
              def validuser?(value)
                  Integer(value) rescue uid(value) || false
              end
          The code:
              def validgroup?(value)
                  begin
                      number = Integer(value)
                      return number
                  rescue ArgumentError
                      number = nil
                  end
                  if number = gid(value)
                      return number
                  else
                      return false
                  end
              end
          becomes:
              def validgroup?(value)
                  Integer(value) rescue gid(value) || false
              end
    
    * Replaced 28 occurances of
    
          return (.*?) if (.*)
          return (.*)
    
      with
    
      3 Examples:
    
          The code:
              return send(options[:mode]) if [:rdoc, :trac, :markdown].include?(options[:mode])
              return other
          becomes:
              return[:rdoc, :trac, :markdown].include?(options[:mode]) ? send(options[:mode]) : other
          The code:
              return true if known_resource_types.definition(name)
              return false
          becomes:
              return(known_resource_types.definition(name) ? true : false)
          The code:
              return :rest if request.protocol == 'https'
              return Puppet::FileBucket::File.indirection.terminus_class
          becomes:
              return(request.protocol == 'https' ? :rest : Puppet::FileBucket::File.indirection.terminus_class)
    
    * Replaced no occurances of
    
          return (.*?) unless (.*)
          return (.*)
    
      with
    
    * Replaced 7 occurances of
    
          if (.*)
              (.*[^:])false
          else
              \2true
          end
    
      with
    
      3 Examples:
    
          The code:
              if RUBY_PLATFORM == "i386-mswin32"
                  InstallOptions.ri  = false
              else
                  InstallOptions.ri  = true
              end
          becomes:
              InstallOptions.ri  = RUBY_PLATFORM != "i386-mswin32"
          The code:
              if options[:references].length > 1
                  with_contents = false
              else
                  with_contents = true
              end
          becomes:
              with_contents = options[:references].length <= 1
          The code:
              if value == false or value == "" or value == :undef
                  return false
              else
                  return true
              end
          becomes:
              return (value != false and value != "" and value != :undef)
    
    * Replaced 19 occurances of
    
          if (.*)
              (.*[^:])true
          else
              \2false
          end
    
      with
    
      3 Examples:
    
          The code:
              if Puppet::Util::Log.level == :debug
                  return true
              else
                  return false
              end
          becomes:
              return Puppet::Util::Log.level == :debug
          The code:
              if satisfies?(*features)
                  return true
              else
                  return false
              end
          becomes:
              return !!satisfies?(*features)
          The code:
              if self.class.parsed_auth_db.has_key?(resource[:name])
                  return true
              else
                  return false
              end
          becomes:
              return !!self.class.parsed_auth_db.has_key?(resource[:name])
    
    * Replaced 1 occurance of
    
          if ([a-z_]) = (.*)
              (.*[^:])\1
          else
              \3(.*)
          end
    
      with
    
      1 Example:
    
          The code:
              if c = self.send(@subclassname, method)
                  return c
              else
                  return nil
              end
          becomes:
              return self.send(@subclassname, method) || nil
    
    * Replaced 2 occurances of
    
          if (.*)
              (.*[^:])\1
          else
              \2false
          end
    
      with
    
      2 Examples:
    
          The code:
              if hash[:Local]
                  @local = hash[:Local]
              else
                  @local = false
              end
          becomes:
              @local = hash[:Local]
          The code:
              if hash[:Local]
                  @local = hash[:Local]
              else
                  @local = false
              end
          becomes:
              @local = hash[:Local]
    
    * Replaced 10 occurances of
    
          if (.*)
              (.*[^:])(.*)
          else
              \2false
          end
    
      with
    
      3 Examples:
    
          The code:
              if defined?(@isnamevar)
                  return @isnamevar
              else
                  return false
              end
          becomes:
              return defined?(@isnamevar) && @isnamevar
          The code:
              if defined?(@required)
                  return @required
              else
                  return false
              end
          becomes:
              return defined?(@required) && @required
          The code:
              if number = uid(value)
                  return number
              else
                  return false
              end
          becomes:
              return (number = uid(value)) && number
    
    * Replaced no occurances of
    
          if (.*)
              (.*[^:])nil
          else
              \2(true)
          end
    
      with
    
    * Replaced no occurances of
    
          if (.*)
              (.*[^:])true
          else
              \2nil
          end
    
      with
    
    * Replaced no occurances of
    
          if (.*)
              (.*[^:])\1
          else
              \2nil
          end
    
      with
    
    * Replaced 23 occurances of
    
          if (.*)
              (.*[^:])(.*)
          else
              \2nil
          end
    
      with
    
      3 Examples:
    
          The code:
              if node = Puppet::Node.find(hostname)
                  env = node.environment
              else
                  env = nil
              end
          becomes:
              env = (node = Puppet::Node.find(hostname)) ? node.environment : nil
          The code:
              if mod = Puppet::Node::Environment.new(env).module(module_name) and mod.files?
                  return @mounts[MODULES].copy(mod.name, mod.file_directory)
              else
                  return nil
              end
          becomes:
              return (mod = Puppet::Node::Environment.new(env).module(module_name) and mod.files?) ? @mounts[MODULES].copy(mod.name, mod.file_directory) : nil
          The code:
              if hash.include?(:CA) and hash[:CA]
                  @ca = Puppet::SSLCertificates::CA.new()
              else
                  @ca = nil
              end
          becomes:
              @ca = (hash.include?(:CA) and hash[:CA]) ? Puppet::SSLCertificates::CA.new() : nil

commit 81e283b28cdd91d259e3b60687aee7ea66e9d05d
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:06:06 2010 -0700

    Code smell: Line modifiers are preferred to one-line blocks.
    
    * Replaced 6 occurances of (while .*?) *do$ with
    
      The do is unneeded in the block header form and causes problems
      with the block-to-one-line transformation.
    
      3 Examples:
    
          The code:
              while line = f.gets do
          becomes:
              while line = f.gets
          The code:
              while line = shadow.gets do
          becomes:
              while line = shadow.gets
          The code:
              while wrapper = zeros.pop do
          becomes:
              while wrapper = zeros.pop
    
    * Replaced 19 occurances of ((if|unless) .*?) *then$ with
    
      The then is unneeded in the block header form and causes problems
      with the block-to-one-line transformation.
    
      3 Examples:
    
          The code:
              if f = test_files_for(failed).find { |f| failed_trace =~ Regexp.new(f) } then
          becomes:
              if f = test_files_for(failed).find { |f| failed_trace =~ Regexp.new(f) }
          The code:
              unless defined?(@spec_command) then
          becomes:
              unless defined?(@spec_command)
          The code:
              if c == ?\n then
          becomes:
              if c == ?\n
    
    * Replaced 758 occurances of
    
          ((?:if|unless|while|until) .*)
              (.*)
          end
    
      with
    
      The one-line form is preferable provided:
    
          * The condition is not used to assign a variable
          * The body line is not already modified
          * The resulting line is not too long
    
      3 Examples:
    
          The code:
              if Puppet.features.libshadow?
                  has_feature :manages_passwords
              end
          becomes:
              has_feature :manages_passwords if Puppet.features.libshadow?
          The code:
              unless (defined?(@current_pool) and @current_pool)
                  @current_pool = process_zpool_data(get_pool_data)
              end
          becomes:
              @current_pool = process_zpool_data(get_pool_data) unless (defined?(@current_pool) and @current_pool)
          The code:
              if Puppet[:trace]
                  puts detail.backtrace
              end
          becomes:
              puts detail.backtrace if Puppet[:trace]

commit e8cf06336b64491a2dd7538a06651e0caaf6a48d
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:05:55 2010 -0700

    Code smell: Use string interpolation
    
    * Replaced 83 occurances of
    
          (.*)" *[+] *([$@]?[\w_0-9.:]+?)(.to_s\b)?(?! *[*(%\w_0-9.:{\[])
    
      with
    
          \1#{\2}"
    
      3 Examples:
    
          The code:
              puts "PUPPET " + status + ": " + process + ", " + state
          becomes:
              puts "PUPPET " + status + ": " + process + ", #{state}"
          The code:
              puts "PUPPET " + status + ": #{process}" + ", #{state}"
          becomes:
              puts "PUPPET #{status}" + ": #{process}" + ", #{state}"
          The code:
              }.compact.join( "\n" ) + "\n" + t + "]\n"
          becomes:
              }.compact.join( "\n" ) + "\n#{t}" + "]\n"
    
    * Replaced 21 occurances of (.*)" *[+] *" with \1
    
      3 Examples:
    
          The code:
              puts "PUPPET #{status}" + ": #{process}" + ", #{state}"
          becomes:
              puts "PUPPET #{status}" + ": #{process}, #{state}"
          The code:
              puts "PUPPET #{status}" + ": #{process}, #{state}"
          becomes:
              puts "PUPPET #{status}: #{process}, #{state}"
          The code:
              res = self.class.name + ": #{@name}" + "\n"
          becomes:
              res = self.class.name + ": #{@name}\n"
    
    * Don't use string concatenation to split lines unless they would be very long.
    
      Replaced 11 occurances of
    
          (.*)(['"]) *[+]
           *(['"])(.*)
    
      with
    
      3 Examples:
    
          The code:
              o.define_head "The check_puppet Nagios plug-in checks that specified " +
                  "Puppet process is running and the state file is no " +
          becomes:
              o.define_head "The check_puppet Nagios plug-in checks that specified Puppet process is running and the state file is no " +
          The code:
              o.separator   "Mandatory arguments to long options are mandatory for " +
              "short options too."
          becomes:
              o.separator   "Mandatory arguments to long options are mandatory for short options too."
          The code:
              o.define_head "The check_puppet Nagios plug-in checks that specified Puppet process is running and the state file is no " +
                  "older than specified interval."
          becomes:
              o.define_head "The check_puppet Nagios plug-in checks that specified Puppet process is running and the state file is no older than specified interval."
    
    * Replaced no occurances of do (.*?) end with {\1}
    
    * Replaced 1488 occurances of
    
          "([^"\n]*%s[^"\n]*)" *% *(.+?)(?=$| *\b(do|if|while|until|unless|#)\b)
    
      with
    
      20 Examples:
    
          The code:
              args[0].split(/\./).map do |s| "dc=%s"%[s] end.join(",")
          becomes:
              args[0].split(/\./).map do |s| "dc=#{s}" end.join(",")
          The code:
              puts "%s" % Puppet.version
          becomes:
              puts "#{Puppet.version}"
          The code:
              raise "Could not find information for %s" % node
          becomes:
              raise "Could not find information for #{node}"
          The code:
              raise Puppet::Error, "Cannot create %s: basedir %s is a file" % [dir, File.join(path)]
          becomes:
              raise Puppet::Error, "Cannot create #{dir}: basedir #{File.join(path)} is a file"
          The code:
              Puppet.err "Could not run %s: %s" % [client_class, detail]
          becomes:
              Puppet.err "Could not run #{client_class}: #{detail}"
          The code:
              raise "Could not find handler for %s" % arg
          becomes:
              raise "Could not find handler for #{arg}"
          The code:
              Puppet.err "Will not start without authorization file %s" % Puppet[:authconfig]
          becomes:
              Puppet.err "Will not start without authorization file #{Puppet[:authconfig]}"
          The code:
              raise Puppet::Error, "Could not deserialize catalog from pson: %s" % detail
          becomes:
              raise Puppet::Error, "Could not deserialize catalog from pson: #{detail}"
          The code:
              raise "Could not find facts for %s" % Puppet[:certname]
          becomes:
              raise "Could not find facts for #{Puppet[:certname]}"
          The code:
              raise ArgumentError, "%s is not readable" % path
          becomes:
              raise ArgumentError, "#{path} is not readable"
          The code:
              raise ArgumentError, "Invalid handler %s" % name
          becomes:
              raise ArgumentError, "Invalid handler #{name}"
          The code:
              debug "Executing '%s' in zone %s with '%s'" % [command, @resource[:name], str]
          becomes:
              debug "Executing '#{command}' in zone #{@resource[:name]} with '#{str}'"
          The code:
              raise Puppet::Error, "unknown cert type '%s'" % hash[:type]
          becomes:
              raise Puppet::Error, "unknown cert type '#{hash[:type]}'"
          The code:
              Puppet.info "Creating a new certificate request for %s" % Puppet[:certname]
          becomes:
              Puppet.info "Creating a new certificate request for #{Puppet[:certname]}"
          The code:
              "Cannot create alias %s: object already exists" % [name]
          becomes:
              "Cannot create alias #{name}: object already exists"
          The code:
              return "replacing from source %s with contents %s" % [metadata.source, metadata.checksum]
          becomes:
              return "replacing from source #{metadata.source} with contents #{metadata.checksum}"
          The code:
              it "should have a %s parameter" % param do
          becomes:
              it "should have a #{param} parameter" do
          The code:
              describe "when registring '%s' messages" % log do
          becomes:
              describe "when registring '#{log}' messages" do
          The code:
              paths = %w{a b c d e f g h}.collect { |l| "/tmp/iteration%stest" % l }
          becomes:
              paths = %w{a b c d e f g h}.collect { |l| "/tmp/iteration#{l}test" }
          The code:
              assert_raise(Puppet::Error, "Check '%s' did not fail on false" % check) do
          becomes:
              assert_raise(Puppet::Error, "Check '#{check}' did not fail on false") do

commit eefccf252527dc5b69af5959b0b0e2ddb5c91b74
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:05:08 2010 -0700

    Code smell: English names for special globals rather than line-noise
    
    * Replaced 36 occurances of [$][?] with $CHILD_STATUS
    
      3 Examples:
    
          The code:
              print "%s finished with exit code %s\n" % [host, $?.exitstatus]
          becomes:
              print "%s finished with exit code %s\n" % [host, $CHILD_STATUS.exitstatus]
          The code:
              $stderr.puts "Could not find host for PID %s with status %s" % [pid, $?.exitstatus]
          becomes:
              $stderr.puts "Could not find host for PID %s with status %s" % [pid, $CHILD_STATUS.exitstatus]
          The code:
              unless $? == 0
          becomes:
              unless $CHILD_STATUS == 0
    
    * Replaced 3 occurances of [$][$] with $PID
    
      3 Examples:
    
          The code:
              Process.kill(:HUP, $$) if restart_requested?
          becomes:
              Process.kill(:HUP, $PID) if restart_requested?
          The code:
              if pid == $$
          becomes:
              if pid == $PID
          The code:
              host[:name] = "!invalid.hostname.$$$"
          becomes:
              host[:name] = "!invalid.hostname.$PID$"
    
    * Replaced 7 occurances of [$]& with $MATCH
    
      3 Examples:
    
          The code:
              work.slice!(0, $&.length)
          becomes:
              work.slice!(0, $MATCH.length)
          The code:
              if $&
          becomes:
              if $MATCH
          The code:
              if $&
          becomes:
              if $MATCH
    
    * Replaced 28 occurances of [$]:(?!:) with $LOAD_PATH
    
      3 Examples:
    
          The code:
              sitelibdir = $:.find { |x| x =~ /site_ruby/ }
          becomes:
              sitelibdir = $LOAD_PATH.find { |x| x =~ /site_ruby/ }
          The code:
              $:.unshift "lib"
          becomes:
              $LOAD_PATH.unshift "lib"
          The code:
              $:.shift
          becomes:
              $LOAD_PATH.shift
    
    * Replaced 3 occurances of [$]! with $ERROR_INFO
    
      3 Examples:
    
          The code:
              $LOG.fatal("Problem reading #{filepath}: #{$!}")
          becomes:
              $LOG.fatal("Problem reading #{filepath}: #{$ERROR_INFO}")
          The code:
              $stderr.puts "Couldn't build man pages: " + $!
          becomes:
              $stderr.puts "Couldn't build man pages: " + $ERROR_INFO
          The code:
              $stderr.puts $!.message
          becomes:
              $stderr.puts $ERROR_INFO.message
    
    * Replaced 3 occurances of ^(.*)[$]" with \1$LOADED_FEATURES
    
      3 Examples:
    
          The code:
              unless $".index 'racc/parser.rb'
          becomes:
              unless $LOADED_FEATURES.index 'racc/parser.rb'
          The code:
              $".push 'racc/parser.rb'
          becomes:
              $LOADED_FEATURES.push 'racc/parser.rb'
          The code:
              $".should be_include("tmp/myfile.rb")
          becomes:
              $LOADED_FEATURES.should be_include("tmp/myfile.rb")

commit 184132e07fc1461555cb4da842df15f32842a843
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:05:07 2010 -0700

    Code smell: Use {} for % notation delimiters wherever practical
    
    *
    
    * Replaced 16 occurances of %([qQrwWx])\((.*?)\) with %\1{\2}
    
      3 Examples:
    
          The code:
              # %r(/) != /\//
          becomes:
              # %r{/} != /\//
          The code:
              ri    = glob(%w(bin/*.rb sbin/* lib/**/*.rb)).reject { |e| e=~ /\.(bat|cmd)$/ }
          becomes:
              ri    = glob(%w{bin/*.rb sbin/* lib/**/*.rb}).reject { |e| e=~ /\.(bat|cmd)$/ }
          The code:
              if !FileUtils.uptodate?("/var/cache/eix", %w(/usr/bin/eix /usr/portage/metadata/timestamp))
          becomes:
              if !FileUtils.uptodate?("/var/cache/eix", %w{/usr/bin/eix /usr/portage/metadata/timestamp})
    
    * Replaced 12 occurances of %([qQrwWx])\[(.*?)\] with %\1{\2}
    
      3 Examples:
    
          The code:
              return send(command) if %w[get backup restore].include? command
          becomes:
              return send(command) if %w{get backup restore}.include? command
          The code:
              for iv in %w[indent space space_before object_nl array_nl check_circular allow_nan max_nesting]
          becomes:
              for iv in %w{indent space space_before object_nl array_nl check_circular allow_nan max_nesting}
          The code:
              @puppetd.command_line.stubs(:args).returns(%w[--logdest /my/file])
          becomes:
              @puppetd.command_line.stubs(:args).returns(%w{--logdest /my/file})
    
    * Replaced no occurances of %([qQrwWx])<(.*?)> with %\1{\2}
    
    * Replaced 19 occurances of
    
          %([qQrwWx])([^{\[(<])(.*?)\2
    
      with
    
          %\1{\3}
    
      3 Examples:
    
          The code:
              at.add_mapping(%r%^lib/puppet/(.*)\.rb$%) { |filename, m|
          becomes:
              at.add_mapping(%r{^lib/puppet/(.*)\.rb$}) { |filename, m|
          The code:
              at.add_mapping(%r%^spec/(unit|integration)/.*\.rb$%) { |filename, _|
          becomes:
              at.add_mapping(%r{^spec/(unit|integration)/.*\.rb$}) { |filename, _|
          The code:
              at.add_mapping(%r!^lib/puppet\.rb$!) { |filename, _|
          becomes:
              at.add_mapping(%r{^lib/puppet\.rb$}) { |filename, _|

commit 9ee56f2e67be973da49b1d3f21de1bf87de35e6f
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:05:04 2010 -0700

    Code smell: Inconsistent indentation and related formatting issues
    
    * Replaced 163 occurances of
    
          defined\? +([@a-zA-Z_.0-9?=]+)
    
      with
    
          defined?(\1)
    
      This makes detecting subsequent patterns easier.
    
      3 Examples:
    
          The code:
              if ! defined? @parse_config
          becomes:
              if ! defined?(@parse_config)
          The code:
              return @option_parser if defined? @option_parser
          becomes:
              return @option_parser if defined?(@option_parser)
          The code:
              if defined? @local and @local
          becomes:
              if defined?(@local) and @local
    
    * Eliminate trailing spaces.
    
      Replaced 428 occurances of ^(.*?) +$ with \1
    
      1 file was skipped.
    
          test/ral/providers/host/parsed.rb because 0
    
    * Replace leading tabs with an appropriate number of spaces.
    
      Replaced 306 occurances of ^(\t+)(.*) with
    
      Tabs are not consistently expanded in all environments.
    
    * Don't arbitrarily wrap on sprintf (%) operator.
    
      Replaced 143 occurances of
    
          (.*['"] *%)
           +(.*)
    
      with
    
      Splitting the line does nothing to aid clarity and hinders further refactorings.
    
      3 Examples:
    
          The code:
              raise Puppet::Error, "Cannot create %s: basedir %s is a file" %
                  [dir, File.join(path)]
          becomes:
              raise Puppet::Error, "Cannot create %s: basedir %s is a file" % [dir, File.join(path)]
          The code:
              Puppet.err "Will not start without authorization file %s" %
                  Puppet[:authconfig]
          becomes:
              Puppet.err "Will not start without authorization file %s" % Puppet[:authconfig]
          The code:
              $stderr.puts "Could not find host for PID %s with status %s" %
                  [pid, $?.exitstatus]
          becomes:
              $stderr.puts "Could not find host for PID %s with status %s" % [pid, $?.exitstatus]
    
    * Don't break short arrays/parameter list in two.
    
      Replaced 228 occurances of
    
          (.*)
           +(.*)
    
      with
    
      3 Examples:
    
          The code:
              puts @format.wrap(type.provider(prov).doc,
                                :indent => 4, :scrub => true)
          becomes:
              puts @format.wrap(type.provider(prov).doc, :indent => 4, :scrub => true)
          The code:
              assert(FileTest.exists?(daily),
                  "Did not make daily graph for %s" % type)
          becomes:
              assert(FileTest.exists?(daily), "Did not make daily graph for %s" % type)
          The code:
              assert(prov.target_object(:first).read !~ /^notdisk/,
                  "Did not remove thing from disk")
          becomes:
              assert(prov.target_object(:first).read !~ /^notdisk/, "Did not remove thing from disk")
    
    * If arguments must wrap, treat them all equally
    
      Replaced 510 occurances of
    
          lines ending in things like ...(foo, or ...(bar(1,3),
    
      with
    
          \1
              \2
    
      3 Examples:
    
          The code:
              midscope.to_hash(false),
          becomes:
              assert_equal(
          The code:
              botscope.to_hash(true),
          becomes:
              # bottomscope, then checking that we see the right stuff.
          The code:
              :path => link,
          becomes:
    
    * Replaced 4516 occurances of ^( *)(.*) with
    
      The present code base is supposed to use four-space indentation.  In some places we failed
      to maintain that standard.  These should be fixed regardless of the 2 vs. 4 space question.
    
      15 Examples:
    
          The code:
    
              def run_comp(cmd)
                 puts cmd
                 results = []
                 old_sync = $stdout.sync
                 $stdout.sync = true
                 line = []
                 begin
                    open("| #{cmd}", "r") do |f|
                      until f.eof? do
                        c = f.getc
          becomes:
    
              def run_comp(cmd)
                  puts cmd
                  results = []
                  old_sync = $stdout.sync
                  $stdout.sync = true
                  line = []
                  begin
                      open("| #{cmd}", "r") do |f|
                          until f.eof? do
                              c = f.getc
          The code:
                                  s.gsub!(/.{4}/n, '\\\\u\&')
                                }
                  string.force_encoding(Encoding::UTF_8)
                  string
                rescue Iconv::Failure => e
                  raise GeneratorError, "Caught #{e.class}: #{e}"
                end
              else
                def utf8_to_pson(string) # :nodoc:
                  string = string.gsub(/["\\\x0-\x1f]/) { MAP[$&] }
                  string.gsub!(/(
          becomes:
                                          s.gsub!(/.{4}/n, '\\\\u\&')
                                      }
                      string.force_encoding(Encoding::UTF_8)
                      string
                  rescue Iconv::Failure => e
                      raise GeneratorError, "Caught #{e.class}: #{e}"
                  end
              else
                  def utf8_to_pson(string) # :nodoc:
                      string = string.gsub(/["\\\x0-\x1f]/) { MAP[$&] }
                      string.gsub!(/(
          The code:
                  end
              }
    
              rvalues:      rvalue
                          | rvalues comma rvalue {
                  if val[0].instance_of?(AST::ASTArray)
                      result = val[0].push(val[2])
                  else
                      result = ast AST::ASTArray, :children => [val[0],val[2]]
                  end
              }
          becomes:
                  end
              }
    
              rvalues:      rvalue
                  | rvalues comma rvalue {
                      if val[0].instance_of?(AST::ASTArray)
                      result = val[0].push(val[2])
                  else
                      result = ast AST::ASTArray, :children => [val[0],val[2]]
                  end
              }
          The code:
              #passwdproc = proc { @password }
    
                          keytext = @key.export(
    
                  OpenSSL::Cipher::DES.new(:EDE3, :CBC),
    
                  @password
              )
              File.open(@keyfile, "w", 0400) { |f|
                  f << keytext
              }
          becomes:
              #        passwdproc = proc { @password }
    
                  keytext = @key.export(
    
                      OpenSSL::Cipher::DES.new(:EDE3, :CBC),
    
                      @password
                      )
                      File.open(@keyfile, "w", 0400) { |f|
                          f << keytext
                      }
          The code:
              end
    
              def to_manifest
                  "%s { '%s':\n%s\n}" % [self.type.to_s, self.name,
                       @params.collect { |p, v|
                           if v.is_a? Array
                               "    #{p} => [\'#{v.join("','")}\']"
                           else
                               "    #{p} => \'#{v}\'"
                           end
                       }.join(",\n")
          becomes:
              end
    
              def to_manifest
                  "%s { '%s':\n%s\n}" % [self.type.to_s, self.name,
                      @params.collect { |p, v|
                          if v.is_a? Array
                              "    #{p} => [\'#{v.join("','")}\']"
                          else
                              "    #{p} => \'#{v}\'"
                          end
                      }.join(",\n")
          The code:
              via the augeas tool.
    
               Requires:
                 - augeas to be installed (http://www.augeas.net)
                 - ruby-augeas bindings
    
               Sample usage with a string::
    
                  augeas{\"test1\" :
                         context => \"/files/etc/sysconfig/firstboot\",
                         changes => \"set RUN_FIRSTBOOT YES\",
          becomes:
              via the augeas tool.
    
              Requires:
                  - augeas to be installed (http://www.augeas.net)
                  - ruby-augeas bindings
    
              Sample usage with a string::
    
                  augeas{\"test1\" :
                      context => \"/files/etc/sysconfig/firstboot\",
                      changes => \"set RUN_FIRSTBOOT YES\",
          The code:
                  names.should_not be_include("root")
              end
    
              describe "when generating a purgeable resource" do
                  it "should be included in the generated resources" do
                      Puppet::Type.type(:host).stubs(:instances).returns [@purgeable_resource]
                      @resources.generate.collect { |r| r.ref }.should include(@purgeable_resource.ref)
                  end
              end
    
              describe "when the instance's do not have an ensure property" do
          becomes:
                  names.should_not be_include("root")
              end
    
              describe "when generating a purgeable resource" do
                  it "should be included in the generated resources" do
                      Puppet::Type.type(:host).stubs(:instances).returns [@purgeable_resource]
                      @resources.generate.collect { |r| r.ref }.should include(@purgeable_resource.ref)
                  end
              end
    
              describe "when the instance's do not have an ensure property" do
          The code:
              describe "when the instance's do not have an ensure property" do
                  it "should not be included in the generated resources" do
                      @no_ensure_resource = Puppet::Type.type(:exec).new(:name => '/usr/bin/env echo')
                      Puppet::Type.type(:host).stubs(:instances).returns [@no_ensure_resource]
                      @resources.generate.collect { |r| r.ref }.should_not include(@no_ensure_resource.ref)
                  end
              end
    
              describe "when the instance's ensure property does not accept absent" do
                  it "should not be included in the generated resources" do
                      @no_absent_resource = Puppet::Type.type(:service).new(:name => 'foobar')
          becomes:
              describe "when the instance's do not have an ensure property" do
                  it "should not be included in the generated resources" do
                      @no_ensure_resource = Puppet::Type.type(:exec).new(:name => '/usr/bin/env echo')
                      Puppet::Type.type(:host).stubs(:instances).returns [@no_ensure_resource]
                      @resources.generate.collect { |r| r.ref }.should_not include(@no_ensure_resource.ref)
                  end
              end
    
              describe "when the instance's ensure property does not accept absent" do
                  it "should not be included in the generated resources" do
                      @no_absent_resource = Puppet::Type.type(:service).new(:name => 'foobar')
          The code:
              func = nil
              assert_nothing_raised do
    
                              func = Puppet::Parser::AST::Function.new(
    
                      :name => "template",
                      :ftype => :rvalue,
    
                      :arguments => AST::ASTArray.new(
                          :children => [stringobj(template)]
                      )
          becomes:
              func = nil
              assert_nothing_raised do
    
                  func = Puppet::Parser::AST::Function.new(
    
                      :name => "template",
                      :ftype => :rvalue,
    
                      :arguments => AST::ASTArray.new(
                          :children => [stringobj(template)]
                      )
          The code:
    
                      assert(
                  @store.allowed?("hostname.madstop.com", "192.168.1.50"),
    
              "hostname not allowed")
    
                      assert(
                  ! @store.allowed?("name.sub.madstop.com", "192.168.0.50"),
    
              "subname name allowed")
          becomes:
    
              assert(
                  @store.allowed?("hostname.madstop.com", "192.168.1.50"),
    
              "hostname not allowed")
    
                  assert(
                      ! @store.allowed?("name.sub.madstop.com", "192.168.0.50"),
    
              "subname name allowed")
          The code:
    
              assert_nothing_raised {
    
                              server = Puppet::Network::Handler.fileserver.new(
    
                      :Local => true,
    
                      :Config => false
                  )
              }
    
          becomes:
    
              assert_nothing_raised {
    
                  server = Puppet::Network::Handler.fileserver.new(
    
                      :Local => true,
    
                      :Config => false
                  )
              }
    
          The code:
                   'yay',
                                                   { :failonfail => false,
                                                     :uid => @user.uid,
    
                                                     :gid => @user.gid }
                                                 ).returns('output')
    
              output = Puppet::Util::SUIDManager.run_and_capture 'yay',
                                                                 @user.uid,
                                                                 @user.gid
          becomes:
                      'yay',
                          { :failonfail => false,
                              :uid => @user.uid,
    
                              :gid => @user.gid }
                                  ).returns('output')
    
              output = Puppet::Util::SUIDManager.run_and_capture 'yay',
                  @user.uid,
                  @user.gid
          The code:
                          ).times(1)
              pkg.provider.expects(
                              :aptget
    
                                      ).with(
    
                              '-y',
                              '-q',
                              'remove',
    
                              'faff'
          becomes:
                          ).times(1)
              pkg.provider.expects(
                  :aptget
    
                      ).with(
    
                          '-y',
                          '-q',
                          'remove',
    
                          'faff'
          The code:
              johnny one two
              billy three four\n"
    
                      # Just parse and generate, to make sure it's isomorphic.
                      assert_nothing_raised do
                          assert_equal(text, @parser.to_file(@parser.parse(text)),
                              "parsing was not isomorphic")
                      end
                  end
    
                  def test_valid_attrs
          becomes:
              johnny one two
              billy three four\n"
    
              #         Just parse and generate, to make sure it's isomorphic.
              assert_nothing_raised do
                  assert_equal(text, @parser.to_file(@parser.parse(text)),
                      "parsing was not isomorphic")
                      end
                  end
    
                  def test_valid_attrs
          The code:
                      "testing",
                                  :onboolean => [true, "An on bool"],
    
                                  :string => ["a string", "A string arg"]
                                  )
              result = []
              should = []
              assert_nothing_raised("Add args failed") do
                  @config.addargs(result)
              end
              @config.each do |name, element|
          becomes:
                      "testing",
                          :onboolean => [true, "An on bool"],
    
                          :string => ["a string", "A string arg"]
                          )
              result = []
              should = []
              assert_nothing_raised("Add args failed") do
                  @config.addargs(result)
              end
              @config.each do |name, element|

commit 051bd98751d9d4bc97f93f66723d9b7a00c0cfb4
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:01:34 2010 -0700

    Code smell: Miscellaneous oddity removal
    
    * Changed "string = self[1].gsub(%r((?:\\\\[\\\\bfnrt\"/]|(?:\\\\u(?:[A-Fa-f\\d]{4}))+|\\\\[\\x20-\\xff]))n) do |c|" to "string = self[1].gsub(%r{(?:\\\\[\\\\bfnrt\"/]|(?:\\\\u(?:[A-Fa-f\\d]{4}))+|\\\\[\\x20-\\xff])}n) do |c|" in lib/puppet/external/pson/pure/parser.rb
    
    *
    
    * Changed "\"$\"" to "'$'" in lib/puppet/provider/augeas/augeas.rb

commit 77f8599f55be12bf5c7d69ac8f439d1fd756eafc
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 18:01:33 2010 -0700

    Code smell: Win32 --> MS_windows
    
    * Replaced 12 occurances of Win32 with Microsoft Windows
    
      3 Examples:
    
          The code:
              #    and all .rb files in lib/. This is disabled by default on Win32.
          becomes:
              #    and all .rb files in lib/. This is disabled by default on Microsoft Windows.
          The code:
              # We can use Win32 functions
          becomes:
              # We can use Microsoft Windows functions
          The code:
              desc "Uses Win32 functionality to manage file's users and rights."
          becomes:
              desc "Uses Microsoft Windows functionality to manage file's users and rights."
    
    * Replaced 10 occurances of :win32 with :microsoft_windows
    
      3 Examples:
    
          The code:
              Puppet.features.add(:win32, :libs => ["sys/admin", "win32/process", "win32/dir"])
          becomes:
              Puppet.features.add(:microsoft_windows, :libs => ["sys/admin", "win32/process", "win32/dir"])
          The code:
              Puppet::Type.type(:file).provide :win32 do
          becomes:
              Puppet::Type.type(:file).provide :microsoft_windows do
          The code:
              confine :feature => :win32
          becomes:
              confine :feature => :microsoft_windows
    
    * Replaced 13 occurances of win32\? with microsoft_windows?
    
      3 Examples:
    
          The code:
              signals.update({:HUP => :restart, :USR1 => :reload, :USR2 => :reopen_logs }) unless Puppet.features.win32?
          becomes:
              signals.update({:HUP => :restart, :USR1 => :reload, :USR2 => :reopen_logs }) unless Puppet.features.microsoft_windows?
          The code:
              raise Puppet::Error,"Cannot determine basic system flavour" unless Puppet.features.posix? or Puppet.features.win32?
          becomes:
              raise Puppet::Error,"Cannot determine basic system flavour" unless Puppet.features.posix? or Puppet.features.microsoft_windows?
          The code:
              require 'sys/admin' if Puppet.features.win32?
          becomes:
              require 'sys/admin' if Puppet.features.microsoft_windows?

commit 3fbc1d57f07598de225ac805ff000733480c9ff8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jul 10 10:37:52 2010 +1000

    Updated GPG rake signing task for new Puppet Labs key

commit 94fa5d5de2ad8f9d916178bce7ff9eeba748047a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jul 9 17:11:36 2010 -0700

    [#4182] show_diff was broken for streamed file contents
    
    show_diff was written assuming that a file's contents would be loaded
    into memory. That's no longer true, for perfomance reasons.
    This patch streams the file to a temporary file to take the
    diff.
    As a consequence, it means that when show_diff is on, files may get
    streamed twice.

commit 700970475c01f60490f6d05e7a94275ede704c37
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 17:12:58 2010 -0700

    Fix for #4117 "Storing newly-audited value" messages
    
    They're semantically info, not notifications, and now are handled as such.

commit 9cf9788fbbe1bd9d7d49be100d4f29b0f9908cf4
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jul 9 16:09:44 2010 -0700

    Manifests with variables were broken when read from STDIN to puppet apply
    
    Because the new settings scope was trying to interpolate the "code"
    string, causing strange failures.

commit 835f73c72f2a7a4196633de9821a5e2cc11c1302
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Thu Jul 1 16:39:09 2010 -0400

    Use the name in the search path for looking for metadata

commit 5bab997c39e72c87cd688f7f21b1a6f446fb30f5
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 9 15:58:04 2010 -0700

    maint:rename resource_type to define in internal dsl
    
    That's it.  Now its got the same name internal or external.

commit 654b5647a4dd7118c17a8d887dff09a8c6648c61
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jul 9 11:10:10 2010 -0700

    [#4198] Require 'fileutils' everywhere FileUtils is used

commit a07af2bb40f6894930ed910c66115556e10c0841
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jul 9 11:24:01 2010 -0700

    [#4196] Move the docs into the source directory structure
    
    Since it is no longer possible to find the running executable from the
    call stack, docs have to be kept somewhere in the source tree.
    Of course, at this point, we shouldn't be using RDoc::Usage at all.

commit 3c0059195fb2b1255f368d98021f4a99ecd121a6
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Jul 7 23:34:10 2010 -0700

    Fix for #4178 - generalize autoloading to include .rb
    
    This mostly modifies autoloading to look for files ending in either 'pp' or
    'rb' using Dir globing with {,.pp,.rb} or .{pp,rb} as appropriate.  It could
    easily be extended to add support for other formats (e.g. xml) by adding them
    to the globs (though, if this were to be done often, having a centralized list
    of supported extensions would be a good (and easy) refactor).
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit cea2e5b3fe03de8ef56a97af25ef8b6dd7eb3d7d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 8 23:24:50 2010 -0700

    [#3582] Remove assumption that Puppet.settings would return values of a consistent type
    
    Currently, we cannot trust Puppet::Util::Settings to return values of
    any particular type for a given setting.
    This patch makes sure that we explicitly cast to string when checking for
    empty values.

commit c58e42090f3a1a151406f6a63652c697cb6e687d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jul 9 09:55:19 2010 -0700

    [#4180] Support legacy module structure
    
    This patch updates the earlier #4180 patches to support both the old and
    the new module structures.

commit b4593f24871b8e6525293f7dc6607bb5ba9ba6fe
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 9 01:52:46 2010 +1000

    Update RDoc parser to reflect change of custom plugin and fact locations

commit dda165af210c598715c2cf50ba29f8466a589687
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 9 01:43:41 2010 +1000

    Fixed #4180 - Updated old module structure to match correct default
    
    Thanks to Daniel Grafe for the patch

commit 1715f3af5db3459c373358fe5ab1ab3b793f7045
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 8 16:43:13 2010 -0700

    [#2730] mount ensure present shouldn't unmount
    
    Ensuring "defined" on a mount just demands that the entry appears in the
    fstab file.
    Ensure "present" is now an alias for ensure "defined", so drives are no
    longer unmounted unless the resource is set to ensure "unmounted"
    
    This patch is based on a patch submitted by Aurelien Degremont.

commit a282cc34ff59e17ecef4f2ac25b38257509d4c2c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jul 7 15:30:24 2010 +1000

    Fixed subscribe example

commit 2353115c79f043aced921cf6b0624bad59a41b82
Author: Ken Barber <ken@bob.sh>
Date:   Fri Jul 2 13:33:02 2010 +0100

    Fix for environments in startup script.
    - Dropped the forced --manifest switch in the
      suse startup script to allow for environments
      to re-define this. Otherwise, environments will
      not work as puppet override configuration with
      command line arguments.

commit cfca62b3896894bd8132f034a1626d589b3ef46b
Author: Steven Jenkins <steven@endpoint.com>
Date:   Tue Aug 25 18:07:01 2009 -0400

    Redmine: 2474 - Fix for mount fstype documentation

commit 3ff38df6fecef533bbd33a63abe368725734446e
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Jul 8 12:22:56 2010 -0700

    Fix for #4137 -- Oracle needs text for strings > 255
    
    Oracle has a maximum VARCHAR (string) column length of 255 characters. Any
    column that is larger than 255 characters needs to be cast as a :text column
    instead of :string.

commit 62dbae53f89e8d9597081c7b7c0a20b419e4737a
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Jul 7 23:56:47 2010 -0700

    Fix for #2807 Puppet settings available as variables
    
    This is Luke's patch plus a change to fix a test that it broke.  It creates
    a new sub-scope off the top scope, called "settings" and adds each of the
    environment's settings to it as variables, thus satisfying the ticket while
    taking us one step further from being able to implement futures.  *sigh*

commit a5fc3643105754f5b81f56a787553548537c529c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jul 7 17:14:17 2010 -0700

    [#4161] RDoc fails to parse some of our ruby syntax
    
    RDoc's parser produces errors on this sort of statement:
    def (variable).method
    
    This patch wraps our occurances of those definitions with comments that
    suspend RDoc parsing.

commit b7e2580ab49ecdb67fc9b522829c005fc3750fbe
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jul 7 17:01:54 2010 -0700

    [#3169] Adds more debugging to SSL cert verification
    
    This patch (via Nicholas Veeser) adds more debugging when SSL cert
    verification fails.

commit 70af43f915110b806dc156fd09c3aa8ec7b0fe0d
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Jul 7 17:13:19 2010 -0700

    Fix for #4167 -- overriding file permissions in conf file
    
    The logic which iterates over the searchpath in reverse does not translate the name.
    Therefore file overrides in :master or :agent are not picked up.

commit 2c88884f892a869b4111739c2c5ff40994e5ed87
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jul 7 16:32:53 2010 -0700

    [#4114] Fixes test failures caused by previous 4114 fixes
    
    An array was being used as a hash index, and still being pushed
    to, making Log::close fail to find and close it.

commit 4a6428b3e820876247b71ff1dcc6928946bb78ff
Author: Dan Bode <dan@reductivelabs.com>
Date:   Sun Jul 4 20:38:43 2010 -0400

    saving work for my unit tests. The redhat one still fails...
    
    [4123] [4124] - combined unit test for both fixes since they share some common code.
    
    proper unit tests to verify features for both patches.

commit 1e0d922b152cc61c15c91af49f43d5f693972579
Author: Dan Bode <dan@reductivelabs.com>
Date:   Sun Jul 4 20:51:08 2010 -0400

    [4123] - allows self.instances to correctly report state of services.
    
    Added hasstatus => true as attribute for new provider instance in init.
    
    redhat checks the hasstatus in the provider to determine service status.

commit 8d3ced5d63e06c4858f067d49f1e3dc7875630e9
Author: Dan Bode <dan@reductivelabs.com>
Date:   Sun Jul 4 19:06:04 2010 -0400

    created init provider method self.get_services which accepts an array of filenames to exclude when processing defpath.
    
    also updated redhat provider to pass in a list of services to ignore.
    
    didnt need to munch exclude to an array, include? is safe to call on strings

commit cdd43825cee233af478d807cddda346e9d1fe142
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Jul 7 10:30:15 2010 -0700

    [#4114] Fix failures in the unit tests
    
    The initial commit changed the name of a method (close -> close_all) and
    changed the way the array log destination worked before we saw that the
    unit tests were using it differently.

commit e419293e58addfd8e4f0612ad121f68038daa14a
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 6 12:06:39 2010 -0700

    [#4114] Added queueing to the log
    
    The log will now queue any log messages created when there is no
    destination, and will flush the queue when a destination is added.

commit 4b00c6af911b447265fc3e7ab19bb076840bfef1
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jul 7 09:36:27 2010 -0700

    [#4110] Wrap Type#retrieve calls for backwards compatibility
    
    This patch introduces Type#retrieve_resource as a wrapper for
    Type#resource, to coerce the return value from legacy types from Hash to
    Resource.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 5f8a2424bcd4f78e71963060b375e12167c7bbef
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Jul 7 07:37:12 2010 -0700

    Fix for #4120 No namevar running puppet doc -r type
    
    Reworked it to use the new key_attributes instead.

commit 6ac36eb42f0a505fd37d7e600bb0fd8837511b42
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jul 6 17:42:56 2010 -0700

    [#2370] Allow OpenBSD to add packages with versions and flavors
    
    This patch is from Joe McDonagh <joseph.e.mcdonagh@gmail.com>

commit 45a9f371ac9ee2e5212e4d6fc4f1fb1b08640b32
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jul 2 13:35:11 2010 -0700

    [#4108] Changed missing Application constant error
    
    Changed the error message when searching for an Application constant
    which is undefined.

commit a0ea74b5e8882e3f4e5cb1a1c396581e5484000e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Jul 6 17:47:21 2010 -0700

    [#4149] Don't create two Resource::TypeCollections
    
    By asking the environment for known resources instead of creating a type
    collection ourselves, we avoid accidentally creating two
    Resource::TypeCollection objects.

commit 7978be59090b0bb25c2bc29ecb16ade33a8f50f6
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jul 6 17:00:18 2010 -0700

    [#3906] Fixed missing constant Puppet::Rails when using storeconfigs
    
    The hook for storeconfig will now require 'puppet/rails' if the setting
    is set to true. It was previously being indirectly required via
    parser/interpreter, which was removed.

commit fb6f2aafa88d706425000f3677717368b98b5a3b
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jul 2 14:51:11 2010 -0700

    [#4136] Specs should listen on localhost
    
    This patch prevents specs from opening IP ports to the world.
    Some specs had to be adjusted to unset this setting so they could test
    the non-spec default value.

commit 6d4be90a6704ce26bad55e2d2cd3949526fea678
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jul 2 15:54:28 2010 -0700

    [#3961] Part two: --destroy should also be local

commit 0598f35d6680e6f58f564c6da546ab307d0f3c3b
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Jul 6 16:06:30 2010 -0700

    Fix for #4148 (2.6 is greater than 0.25.x)
    
    We had a hardcoded assumption that the version number would always start with
    a zero, and thus were failing to recognise 2.6.0 as greater than 0.25.x

commit 59718988af6c80451973c37e78c23cef7b171edc
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Jul 6 10:23:52 2010 -0700

    Fix for #4142 stray use of JSON instead of PSON
    
    Somehow one use of JSON escaped the global find and replace of PSON --> JSON.

commit 74e5bdce3b67a124616977c2e2c78c9506792c8f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jul 2 13:19:12 2010 -0700

    [#3172] Fix the arguments to Application::Kick.new, which I had broken

commit 4f06e9e6b8166838d7e0e9aa0862c09ffe46729c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 1 23:16:47 2010 -0700

    Maint: Explicitly put test sqlite files in a temp directory
    
    A spec was failing because it didn't know where to put a temporary
    sqlite database file

commit 84a94127d27262c02e141193c91cecf486b6be9d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 1 23:00:07 2010 -0700

    maint: fix stub failure in report_spec.rb
    
    Puppet::Util::Storage was trying to create state.yaml during an
    unrelated spec.

commit 1f48d6892666dec67d316b6dd78bab09e181d35b
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 1 17:12:55 2010 -0700

    maint: fix stub failures in report_spec.rb
    
    Puppet::Util::Storage was trying to create state.yaml during unrelated
    specs.

commit bee843a5c37584a9bd68ec69319949a361f8fb6e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 1 17:03:22 2010 -0700

    maint: fix stubbing in package_spec.rb
    
    Puppet::Util::Storage was trying to create state.yaml during unrelated
    specs.

commit 528b9153f4d4c264f367c685fe22587122236144
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 1 16:55:42 2010 -0700

    maint: fix stubs in transaction_spec.rb
    
    Puppet::Util::Storage was trying to create state.yaml during unrelated
    specs.

commit 37277a521e41777f8e97923b2ffa5f782206b415
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 1 16:51:25 2010 -0700

    maint: fix stubbing in catalog_spec.rb
    
    Puppet::Util::Storage was trying to create state.yaml during unrelated
    specs.

commit ea55e8328fcb8c33d7b20f91cc9f21da31ba935d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jul 1 16:21:05 2010 -0700

    Maint: Improve the speed of setting settings.
    
    Our settings were slow because I was querying Application objects for
    their run_mode repetitively

commit 7c7f6da17c4f088175e7d616e390b5c7e1e5e65f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 1 16:28:26 2010 -0700

    maint: file_spec heisenbugs
    
    Puppet::Util::Storage was trying to create state.yaml during unrelated
    specs.

commit d6d726bc683b770cdf493ce0977fda095cb8f89c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 1 15:46:40 2010 -0700

    Heisenbug: settings as catalog trying to create directories
    
    Specs in settings were allowing the settings-as-catalog to escape onto
    the system.

commit e579aab5529f080d88aed35656b66d80a2065a64
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 1 15:19:32 2010 -0700

    maint: spec_helper should reset settings directories on *every* test
    
    Previously, spec_helper's attempts to set :confdir, and :vardir to
    /dev/null were getting thwarted by the Settings.clear in after_all

commit 298a76401544422b4e0beeddc95542e21d48690e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 1 15:18:54 2010 -0700

    maint: Remove a heisentest that wasn't testing what it claimed
    
    This test in agent_spec.rb was no longer testing any of
    Puppet::Application::Agent, but rather exercising Util::Settings in a
    naive way. Deleted.

commit b389392c23032090c80cfe42ee19c2d8d45dff64
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 1 15:17:01 2010 -0700

    maint: spec_helper should only get loaded once
    
    Added a C-style if-defined? guard to spec_helper.rb to make sure that it
    only gets evaluated once. (The file is getting loaded multiple times
    because ruby gets confused by relative paths in `require` statements)

commit 3304068fe96df86c3616f3f441595811d71162b0
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jul 1 15:15:14 2010 -0700

    maint: :mutable_defaults to improve spec consistency
    
    Added a Puppet::Util::Settings layer called :mutable_defaults to emulate
    the interaction between Puppet::Application and defaults.rb that was
    getting thwarted by rspec.

commit 08b49c6f52452f6aec7d5345bce6c6e126454380
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jul 1 14:18:03 2010 -0700

    [#4090] Fix the run_mode for certs and put tests on the applications to assert their run_mode
    
    Also cleanup of an unecessary puts line, make master tests run when
    on their own, and moving a require to a more usual spot.

commit e318db6ba901d74926dc58183d59688d9ac74c14
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jul 2 12:16:31 2010 -0700

    [#4059] fix the specs to correctly mock the Puppet::Resource.new call signature

commit 83d9874e2eba003d83f089a6e6c278f5976d5154
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Thu Jul 1 16:39:09 2010 -0400

    Use the name in the search path for looking for metadata

commit 70c293abd1b1e506343223515a32e34a15de1a12
Author: Ken Barber <ken@bob.sh>
Date:   Fri Jul 2 13:33:02 2010 +0100

    Fix for environments in startup script.
    - Dropped the forced --manifest switch in the
      suse startup script to allow for environments
      to re-define this. Otherwise, environments will
      not work as puppet override configuration with
      command line arguments.

commit ab3d27c1bd9f856b10484afe33e7cec708cf8690
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 30 14:04:58 2010 -0700

    [#4059] Minor errors preventing ralsh from running

commit 59bf5e4c1be5eb70b6f6cfe3e725e9763ec79ece
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 30 17:20:37 2010 -0700

    [#2713] Enable ELSIF

commit ebd03113d2c4024a7db603e73ca9f5dab34034c8
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 30 12:45:56 2010 -0700

    [#3172] puppet kick can take hostnames as bare arguments

commit 697508d65588526a230c5d51daca34ad9f9a1f2b
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jun 30 14:53:26 2010 -0700

    [#4108] Missing constants fail deliberately and with a message
    
    Previously, any failed call to Puppet::Application.find would result
    in an error being raised by const_get, resulting in a messy crash with
    a stack trace. Now that error is handled, and the application will
    print a message and exit.

commit 2639a561951c40aac2c916b8b8d593d6cc827935
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jun 29 16:14:49 2010 -0700

    [#4092] Changed notify message to defined instead of changed
    
    Notify was returning a nil current value, rather than :absent,
    which caused puppet to think the message had been changed from
    blank to its new value, rather than defined as that value.

commit 223157d6ac586b9ec9d2dc48ee4247daf0686d8f
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Jun 29 13:35:44 2010 -0700

    Fix for #4091 -- require loop in executables
    
    The describe and resource (ralsh) applications required puppet, creating a
    loop & thus crashing them.

commit 174e02a2b71fd51ff27f9186526352d79253da26
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jul 1 12:01:46 2010 -0700

    [#4090] Change how RunMode instances are created so that an object for each RunMode is only created once instead of every time it's called
    
    Got lots of unpredictable test failures, presumably because a new
    RunMode was being created every time we accessed the RunMode.

commit 62e3b611e65deab60c615eac553cac9aa7e76d9d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Jun 30 15:33:17 2010 -0700

    [#4090] Fix last few tests and renames of mode to run_mode

commit 2a2588392a2eead4265afcb93ff7bc16b5fc1ef1
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Jun 30 12:43:23 2010 -0700

    [#4090] Git rid of the idea that run_mode is a configurable option with defaults
    
    Along the way this fixes an issue with 2.6 alpha that sections of the
    puppet config file were getting ignored.

commit 75e0662168936da8255507a10bccad8889326947
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Jun 30 12:19:29 2010 -0700

    [#4090] Rename mode (:master, :agent, :user) to run_mode
    
    Mode is a terribly overused word.  Files use it, puppetdoc uses it, and
    certs use it, and those are just the places that I happened to
    stumble upon.  It makes reading code very confusing and finding things
    in code difficult.  I know namespacing allows us to reuse words for
    method and variable names, but that doesn't mean we should.

commit 3cd48d836c9ffe4e59bca78f1033020cecf63354
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Tue Jun 29 15:49:31 2010 -0700

    [#4089] Replace internal usage of :check with :audit
    
    Per Luke's replacement of :check with :audit, and deprecation of :check,
    I've replaced all of our internal uses of :check with :audit. Importantly,
    this silence the deprecation warnings during regular usage from eg. ralsh.

commit e848d4104350543241fa1a84aa3eaaf3a27d2616
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 30 16:07:02 2010 -0700

    [#3961] puppet cert --generate implies ca_location = :local

commit 255628e101e9da3ef4024c6e3b446e354b95b21d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 30 16:06:23 2010 -0700

    [#3961] Rename cert's @mode to @cert_mode to reduce confusion

commit b2bd05d8701e5e785cf5da4136bfd65a419e6b34
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jun 28 17:08:02 2010 -0700

    maint:  Confine a test that depends on sqlite
    
    I'm also going to update the wiki to mention sqlite is a test dependency

commit fdc8c3509b5ac5bc170c54d72b2c2bafb58409f2
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jun 28 17:10:20 2010 -0700

    [#3994-part 3] rename spec tests from *_spec_spec to *_spec.rb
    
    Part 2 re-did the change on the spec files, which it shouldn't have.

commit 9a94ee274c39c261cd49e688a7bd7ea0eb73af50
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jun 28 16:49:08 2010 -0700

    Fix for test ordering sporadic failure
    
    The spec/unit/provider/ssh_authorized_key/parsed_spec_spec.rb was trying to
    use Dir.tempdir but getting ours.

commit 9ceb4540a567b0a9de85af5397df4a292303a9c3
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jun 28 16:32:11 2010 -0700

    [#3994-part 2] rename integration tests to *_spec.rb
    
    Some spec files like active_record.rb had names that would confuse the
    load path and get loaded instead of the intended implentation when the
    spec was run from the same directory as the file.
    
    Author: Matt Robinson <matt@puppetlabs.com>
    Date:   Fri Jun 11 15:29:33 2010 -0700

commit 85638cf427fe9b35d3e3b0fa4ce919c5806c60d3
Merge: 06dffc1 ef40a56
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jun 28 16:28:44 2010 -0700

    Merge branch 'testing' into tweak/testing/file_fix_root_spec_failure

commit 06dffc104a57e97ac5a4a8d00747354750642526
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jun 28 16:21:39 2010 -0700

    maint: A test specified that a file wasn't writeable, but was writeable
    when run as root, which caused the test to fail.  Changing the test so
    that a directory is in place of the writeable file so not even root can
    write to it.

commit ef40a56e1e13d4790292fdf202365e641ed6df2f
Merge: 2baf74e 0aae5a7
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jun 28 16:19:44 2010 -0700

    Merge branch 'testing' into tweak/testing/silence_spec_output

commit 2baf74e71d97f0e9917b088279cb0540e37c022c
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jun 28 16:11:24 2010 -0700

    maint: Fixes some noisy specs
    
    This change removes some irrelevant output (debugging information,
    warnings, etc) from a few specs.

commit 0aae5a71a8e3b38cd8d7041f5c40091887c924a8
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jun 28 15:27:44 2010 -0700

    maint: Fixing tests that fail when run as root
    
    Commit ae520057280c2454bc44c64ac1e6686bf2eb086d introduced some code
    that used 'asuser' which does nothing when not run as root, but in these
    tests tries to run as a non-existent user.  Stubbing out the asuser
    method to just yield prevents test failures when running as root.

commit 0fa10a6a6315959e5cae1e61aef13610ec126e13
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jun 28 16:00:16 2010 -0700

    Cleaning up various warnings in specs
    
    There were a bunch of "warning: parenthesize argument(s) for future version"
    messages; now there aren't.

commit 2ab123f5a9ef045c0ea7acf109b5ea67fc9e5cf7
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed May 19 23:13:36 2010 -0700

    Removing obsolete nodescope concept
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 153d7cd69b8b5216695206cbc235dd89a65dec76
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Apr 24 17:41:01 2010 +0200

    Fix #3665 - part 2, node inheritance fixes
    
    We were looking only to the class hierarchies when trying to find an
    ancestor to the current type. Thus we were never trying to climb up
    the hierarchy of nodes when evaluating nodes.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit dd4fa6686b31501ab8d8f800a81715e713b14031
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Apr 24 17:32:39 2010 +0200

    Fix failing tests in spec/unit/resources/type.rb
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 770a8ea2beb58cff52f5e532a777d7046aa2efb0
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Apr 24 13:47:00 2010 +0200

    Fix #3665 - main class shouldn't be a subscope of itself
    
    During the refactoring of AST hostclass/node to non AST objects, we lost
    the fact that the main class already comes with a scope (ie the top one),
    so when we evaluate its code we shouldn't create a subscope for it.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 76953d818892506ec4cb3ab2c4dd7048364a08cd
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Mon Jun 28 14:00:22 2010 -0700

    maint: Fixes broken order-dependent Tidy specs
    
    A few specs were using a global variable rather than a local, causing
    an order-dependent failure in which they were replacing the object
    under test.

commit 9afc67a465f030a2a1cad0e7ec58e30862f28b4d
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jun 28 12:00:55 2010 -0700

    Fix for pre 1.8.7 compatibility in namvar patch
    
    There was a subtle 1.8.7 dependence in the composite key / namevar patch;
    Nick discovered that our assumtion that hashes could be used as hash keys
    does not hold in earlier bersions of ruby.  This patch replaces the hash
    valued uniqueness_key with an array of the values of the (ordered) key
    attributes.

commit d62a391695bd68464ba7345616cc1e7686f8f735
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Jun 27 10:49:29 2010 -0700

    Breaking require-loop
    
    Merging some of the branches creates a require-loop; this commit breaks it by
    removing the most recently added link (which I believe to have been unneeded /
    unrelated to the patch in which it snuck in).

commit 62bc09e0f5516236ef077bbcb6c8354acdd26e20
Author: Steven Jenkins <steven@endpoint.com>
Date:   Tue Aug 25 18:07:01 2009 -0400

    Redmine: 2474 - Fix for mount fstype documentation

commit 7faf27ce72d4b2d64d94f0dda1ad4e55aec99fd2
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Wed Jun 23 15:49:53 2010 -0700

    [#4064]  Modify confine to also allow a message and a block containing the test.
    
    This way the test can be evaluated lazily when needed. Adds tests and
    documentation.

commit e4b3aacd7856c8221f08771c3b7066094b898a3f
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Wed Jun 23 14:03:00 2010 -0700

    [#4063] Add confine to describe block that depends on ActiveRecord
    
    confines are not inherited by inner define blocks. For instance:
    
    describe "something" do
      confine "can not has" => false
      describe "something else"
        ... this will still be run ..
      end
    end
    
    This fixes the specific describe block that is lacking the necessary
    confine, allowing specs to run again while we fix the bug in confine
    itself.

commit 97936c6d3fa3950d22266679b65d4a6877008a74
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Mon Jun 7 15:45:45 2010 -0700

    [#3921] Add facts_terminus setting to Puppet settings
    
    * defaults to "facter"
    * no longer set the facts terminus class in for puppetmaster, use
      setting instead
    
    Implements an abstract CouchDB terminus and a concrete CouchDB terminus
    used to store node facts. Node facts are stored in a "node" document as
    the "facts" attribute. This node document may also be used by other
    couchdb termini that store node-related information. It is recommended
    to use a separate document (or documents) to store large data structures
    like catalogs, linking them to their related node document using
    embedded ids.
    
    This implementation depends on the "couchrest" gem.

commit db39b7c0848f8931989cbe21ff202552c0ae78c1
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Wed Jun 23 16:33:45 2010 -0700

    [#4026] When --use_cached_catalog is specified on a puppetd run actully use the cache
    
    Running puppetd with --use_cached_catalog you would see messages like:
    
        info: Not using expired catalog for mattmac.local from cache
        notice: Using cached catalog
    
    Both Puppet::Util::Cacher, which extends catalogs, and Puppet::Indirector::Envelope,
    which extends all Indirection objects including catalogs, have their own cache
    expiring mechanisms.  The Envelope mechanism was declining to use cached
    catalogs without taking into account what the --use_cached_catalog
    options said.  This patch fixes so it uses the cached catalog and just logs:
    
        debug: Using cached catalog for mattmac.local
    
    This commit also renames a method that makes requests from request
    to instantiate request, and gets rid of the extender hook on Cacher
    since it was only being used on one test and probably shouldn't be used
    in general.
    
    Reviewed by: Nick Lewis

commit 428683917e4819e294f65511932eb1c9067d8cb8
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jun 16 10:41:38 2010 -0700

    [#4001] Added explicit check and error message when creating a file if parent doesn't exist
    
    This was giving the regular File.open error for non-existent parent, resulting
    in a message citing the non-existence of the file as the reason ensure can't be
    changed from absent to present. Now it properly states that the parent
    directory is missing.

commit 34d189725c82e221793dc51c04ecb68e43ed3115
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 17 17:49:29 2010 -0700

    [#3835] Fixed recursively absent directories improperly managing their files
    
    Children of recursively absent (and only recursively absent) directories now
    inherit the recursively absent behavior when they are created. This stops the
    files from trying to be created, generating lots of  failure messages. This
    doesn't affect directories which are absent and not recursive (whose children
    aren't even attempted to be created, or directories which aren't absent.

commit 9d0d94c27174bc25ba823028a612f8fa04dd847b
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jun 16 16:21:21 2010 -0700

    [#3804] Fixed one failing spec for RackREST
    
    A new version of Rack::MockRequest automatically uppercases the HTTP
    method, expecting that any method passed in should properly be uppercase.
    e.g. GET, PUT, POST
    
    This behavior is on line 81 of Rack::MockRequest:
    http://rack.rubyforge.org/doc/classes/Rack/MockRequest.src/M000230.html
    
    Reviewed by Matt Robinson

commit da66e1602a87249ff1496b47050769b1ce36daf6
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Jun 3 12:52:51 2010 -0700

    Fixing #3651 failing to pop comment stack for some constructs
    
    Puppetdoc got confused because it wasn't popping the comment context for
    collections and resource defaults.  This commit adds the popping.

commit b4af2380f45a68830e47c8995b10474f512e67a4
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Jun 26 10:04:09 2010 -0700

    Fix for #3985 typo causing warning
    
    There was a comma missing from a raise, which caused a warning message on each run.

commit 9169ef002fd4dc8fb550c1d00aac72fd3bf1ce6c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jun 25 18:40:17 2010 -0700

    Fix: puppet apply trying to use XMLRPC constant

commit af41beb05cc1ec6a8a09fcc7e82fb701aeada37f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jun 25 18:35:26 2010 -0700

    Remove an old test that had been unintentionally reintroduced by a mistake in a conflict resolution

commit 6a8e6feb0aa448baca81ad510398021af8765331
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jun 25 18:24:45 2010 -0700

    Tweak an old test due to new error handling.

commit 5f53bfa282285a09f79d3cd02b7f5d6239825eda
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jun 25 17:59:04 2010 -0700

    Restore error handling for value=

commit e817ad1d1ac26c5299f373ec5d7e997f644baec7
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jun 25 15:38:03 2010 -0700

    Fix tests broken by level-violation fix

commit e5478d4ff0510e637ecec69f8b2fc7ef844ba5c0
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jun 25 14:04:13 2010 -0700

    Simplify the newattr method by removing a level violation
    
    and update the specs that were testing it.

commit 4ef40b88f246a6c158cc3ea91ea44dc941d4ac41
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Fri Jun 25 14:36:40 2010 -0700

    maint: Rework testing of Reports http processor to be self contained
    
    * do not monkey patch Net::HTTP in a way that breaks other specs
    * Use fakes to sense behavior of Net::HTTP

commit edfcbf94cf44170f9aa8bcc8a330d323f0701abb
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jun 25 11:18:13 2010 -0700

    [#3139] Fixed a problem with the value method for parameters
    
    The value method was failing to return any value in the case where
    the value was false.

commit 61e978b5e066086c4a8754afcf5282b643e1e76d
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 24 17:37:07 2010 -0700

    [#3139] Fixed a broken integration spec in type tidy
    
    A change to the way host_config is determined caused this spec to
    call store when it didn't before, so it needed to be mocked.

commit cf9bcad6bfdaf730a41f9429a8e2d140b8d1d51d
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jun 24 18:42:15 2010 -0700

    maint: Fixing test to reflect that host environment assignment now takes an object instead of a string

commit c70c96b7075a13b0e90651811a3a4bc1223f4e7f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jun 24 17:35:01 2010 -0700

    Fix some tests broken by changing the call to newattr

commit a72fb145b9534890a8429ac46c3c324c961eeb41
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Jun 24 18:04:11 2010 -0700

    Fixing oversensitive test
    
    The test checked for false when all we cared about was that it was not truthy.

commit 15004f34cd8533575ba4f971decc09383f1b0cd0
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jun 24 17:22:46 2010 -0700

    maint: Fix failing test that needed more methods stubbed

commit 60932e19bb8b56ce6fc17f970c80814c1bd43ed4
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 22 15:51:08 2010 +1000

    Fixed require warning documentation

commit 6fcb87d1745b5589b74a60e39739e524609dfe96
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 22 15:45:00 2010 +1000

    Fixed mcx documentation error

commit 15ae38966f33418a6dd52e278e3a1b038a26bf23
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 22 15:41:09 2010 +1000

    Documentation fixes

commit f95169b144f7c549b6dec197942c85a62ebd047c
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jun 15 15:33:01 2010 -0700

    [#4006] Fix test failures caused by reverting ticket 2890
    
    When Markus reverted changes made by 2890 he reintroduced a
    method certificate_matches_key? that then caused failures in
    network/xmlrpc/client.rb.  I just stubbed that method to return true
    since the failing tests weren't trying to test that methods behavior.
    
    Reviewed-by: Markus Roberts

commit b5572aecf608f19954e560ffaa900baf10d2528d
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Mon Jun 14 08:37:54 2010 -0400

    Bug 3731. Applied Fix suggested by Doug Warner to always flatten out the array

commit 117e6b6145cce12d99a7cc08f71e9a99c96fd4ff
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jun 7 11:56:39 2010 -0700

    maint: Have 'rake spec' output in color
    
    Ideally it would be nice if the rake task used personalized RSpec
    settings on a per user basis, but until someone figures that out color
    would be nice
    
    Signed-off-by: Matt Robinson <matt@puppetlabs.com>

commit a7e4fe8dbc3fc8d3bec5294cf68c69febb9194eb
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Thu Jun 24 14:37:33 2010 -0700

    [#3810] Do not create a reports settings block
    
    Puts reportdir and reporturl back in the "main" block because this makes
    tests break for reasons I don't understand.

commit db44a32695ae2b1249461f187b4b3321c24cfd84
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Jun 24 11:59:27 2010 -0700

    Tweak for fix for #1175 to fix test failures
    
    Tests that weren't managing the environment but were still expecting to have
    functions defined in it were appalled when the functions/environments binding
    actually started working.  This patch fixes those tests.

commit 3bd6f110852fadbc1ef707f0705dc3bc969ce8e4
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jun 24 11:25:35 2010 -0700

    maint: Fixing a test typo s/stub/stubs/

commit ebc3e78f79dfaa8f8ba956958c1c9bb4300d5e8e
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Thu Jun 24 12:10:27 2010 -0700

    maint: Fixing a failing spec by stubbing a method on a stubbed object that should have been stubbed.
    
    This failure was introduced in commit 94390de11d046d4906842f33aa9865f6c3835633,
    which just had the message 'foo'.

commit 3b4d33c7aa3be37fc8d82cd3357612c577db3e48
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jun 24 12:10:21 2010 -0700

    remove tests for removed code

commit c8089f1213302bea3f11250177afa6e96b566e12
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Thu Jun 24 15:22:16 2010 -0700

    [#2646] Fixes the change to onetime made in b96cd6c
    
    This change allows the --onetime command line option to be set by the
    Puppet[:onetime] global option or read from the config file, rather than
    forcing it to be read from the config file.

commit 4bf695083839b61dc7107d8018e26ae991a52081
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jun 24 15:27:14 2010 -0700

    [#3139] Make newattr idempotent
    
    audit's munge was not idempotent because newattr was not idempotent.
    This patch simplifies newattr such that it becomes idempotent.

commit 51b70c05167399eb2274fc1add18b6b18d31429d
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Jun 23 15:51:08 2010 -0700

    [#3994] rename the specs to have _spec.rb at the end
    
    Some spec files like active_record.rb had names that would confuse the
    load path and get loaded instead of the intended implentation when the
    spec was run from the same directory as the file.
    
    Author: Matt Robinson <matt@puppetlabs.com>
    Date:   Fri Jun 11 15:29:33 2010 -0700

commit 069bf1b4a9cd9de6cea0415754e078d66641ae44
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 22 15:51:08 2010 +1000

    Fixed require warning documentation

commit 23431da087959199a91c88691446238a406a5489
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 22 15:45:00 2010 +1000

    Fixed mcx documentation error

commit 705cfe119ca51252f50a728991c20b0eea3495d4
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 22 15:41:09 2010 +1000

    Documentation fixes

commit 0a0923c9636569fa5868ebd13233949cf90736f0
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue Jun 15 15:33:01 2010 -0700

    [#4006] Fix test failures caused by reverting ticket 2890
    
    When Markus reverted changes made by 2890 he reintroduced a
    method certificate_matches_key? that then caused failures in
    network/xmlrpc/client.rb.  I just stubbed that method to return true
    since the failing tests weren't trying to test that methods behavior.
    
    Reviewed-by: Markus Roberts

commit 8faa4663a4d79de47886755693f5539d531bd1f8
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Jun 4 11:05:09 2010 -0700

    [#3866] Rename the method metaclass to singleton_class to avoid the deprecation warnings from Rails ActiveSupport
    
    The metaid.rb file came straight from why the lucky stiff's "seeing
    metaclasses clearly" article.  Rails used this too, but they recently
    deprecated the name metaclass in favor of singleton_class to match what
    ruby-core decided to do.  meta, eigen and singlton class were all
    suggested and in the end singleton was agreed upon.
    
    http://redmine.ruby-lang.org/issues/show/1082

commit 53e361044cd695147bd0af90ce9a8c6f8150b5ad
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Mon Jun 14 08:37:54 2010 -0400

    Bug 3731. Applied Fix suggested by Doug Warner to always flatten out the array

commit b9aba7ce6545553de641695c4252769db9383bb8
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon Jun 7 11:56:39 2010 -0700

    maint: Have 'rake spec' output in color
    
    Ideally it would be nice if the rake task used personalized RSpec
    settings on a per user basis, but until someone figures that out color
    would be nice
    
    Signed-off-by: Matt Robinson <matt@puppetlabs.com>

commit 3d7168bef36b36b4d399eeefd7dccaec75fd8bc9
Author: Markus Roberts <Markus@reality.com>
Date:   Tue May 4 15:57:08 2010 -0700

    Fix for #3107 Changing users on AIX
    
    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.

commit 57160281fd1bfb1d66288c8ff2bee1abd6a954d2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 24 03:32:48 2010 +1000

    Fixes #3663 - It should be possible to list signed hosts only
    
    Adds a --signed option to the --list feature that only displays signed certificates

commit d71bd685d9adb9fcd71349cee64766689217271e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue May 18 10:41:31 2010 +1000

    Updated CHANGELOG for 0.25.5

commit d88b357b0ebac6db8b4cddd79b00b4eda9301757
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri May 14 22:19:11 2010 +1000

    Fixes incorrect line in partial CRL fix

commit dec84e5409a2f8e63805c045bebafab4973ba4d0
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri May 14 19:23:22 2010 +1000

    Fixed documentation issues exposed in #3772

commit 4daf8c304fc64767d5a771be9c5a2e545dbcc8e9
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri May 14 16:27:36 2010 +1000

    Updated CHANGELOG for 0.25.5rc3

commit 92144000683cf596693596bf653bbd7e089976ef
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue May 11 22:01:10 2010 -0700

    WIP - trying to fix #3460
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    
    Conflicts:
    
    	lib/puppet/ssl/host.rb

commit 9d3e98b8cb2b980b61f3cd17af471f2e9d04841f
Author: Markus Roberts <Markus@reality.com>
Date:   Thu May 13 13:08:46 2010 -0700

    Minimal footprint fix for #3751 (serialization 0.25.5 <-> 0.24.8)
    
    The problem was caused by a conflict between our yaml post processing
    (which expects the malformed output of the standard library's yaml
    class) and zaml (which produces the right output).
    
    This patch implements the minimal footprint solution.  It just causes
    zaml to always escape \r and \n, so that the fixups won't be triggered
    and the results will be properly interpreted by any version of puppet.
    
    For Rowlf, this patch should NOT be used, and instead the fix for #3766
    (actually rooting out and removing the vestigial fixups) should be used.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit d481340279ce21a26fb85ad3fe345a1ccfa7d5db
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue May 11 14:51:10 2010 +1000

    Updated Template documentation link

commit 5a1a45c51d89bdbc3eb9cc9dbc546041a27eaa9e
Author: Todd Zullinger <tmz@pobox.com>
Date:   Mon May 3 14:54:39 2010 -0400

    Update Red Hat spec file for 0.25.5
    
    With RHEL-6 just around the corner, now is also a good time to adjust
    the ruby(selinux) conditional to work there.  The rundir-perms patch
    from tarball is applied rather than including it separately in the SRPM.
    It makes for one less file to track in downstream distros.  Other minor
    changes are pulled in from the Fedora/EPEL spec file.

commit 2257605b8698cc4f7e3488d415d9749b99477d54
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun May 2 18:08:43 2010 +1000

    Updated CHANGELOG for 0.25.5rc2

commit 5258a0afccf0563d3000c63e261c201115c31c33
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 22:33:32 2010 -0700

    Fixing #3533 - Removing all transaction cleanup
    
    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>

commit bcde541e4433aa46c9f922b01e34368a09abb7e8
Author: Markus Roberts <Markus@reality.com>
Date:   Sat May 1 10:13:19 2010 -0700

    Fix for #2910 -- Tidy/matches is too tricky to use
    
    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).

commit 5abe571e167744ac198960c8e35c699375ec5cf7
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Mar 31 17:34:16 2010 -0700

    Bug #3451: Don't leak the terminus class setting from Puppet::Resource::Catalog's spec
    
    This issue causes other specs to fail, because they depend on the
    default terminus being unchanged.

commit ebd924c22c1049cde5f110c6ec89de4d9358b649
Author: Markus Roberts <Markus@reality.com>
Date:   Sun May 2 00:21:37 2010 -0700

    Fix to the fix for #3295
    
    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.

commit ce233aa2a511bf6818f28c226144ec5b05a468ee
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Apr 28 15:39:39 2010 -0700

    Write ssh_authorized_keys as user
    
    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).

commit 6739bab16e3126ccba13f025a4b47d38f15c1f67
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Apr 29 14:20:44 2010 -0700

    Fix for #3558 -- source file reading speedup
    
    It's about 10x faster to read the whole file than to read each line and
    concatenate them (actually, it's O(n) vs. O(n^2), so the exact speedup
    depends on the file size).

commit b0e3c61a8b3b28c9214ba4aa986f533f61831daf
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Apr 15 16:30:32 2010 -0700

    Fix for #3556 Plussignment value melding
    
    The plussignment operator was constructing the new parameter value by
    modifying the param object's value in place (so as to preserve the file
    and line information for debugging).  However, when multiple resources
    are overridden by the same plussignment this would result in all of the
    resources sharing the same value (the union of all the prior values and
    the new value), which is wrong.
    
    Instead, we need to give each resource its own copy of the value (e.g.,
    a copy of the param object), which this patch implements.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 8a3049591a2913c7a7a33407f742892bf27a2d34
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Apr 30 18:03:02 2010 +1000

    Fixed #3655  - Puppet doesn't find installed packages with portage provider
    
    Thanks to Benedikt Böhm for the patch

commit e4130af8b035fc8f62561c01a092327d96d12658
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Apr 27 13:53:20 2010 +1000

    Fixed #3672 - Error message on duplicate fileserver mounts incorrect

commit 1275a474a4df42663a86421d0211275a14f2f6c3
Author: Todd Zullinger <tmz@pobox.com>
Date:   Mon Apr 26 16:37:58 2010 -0400

    conf/redhat: Add notifempty to logrotate config
    
    We default to logging via syslog so there aren't any puppet logs on many
    boxes.  Causing a weekly restart shouldn't be necessary.

commit 134204da6b0bc0430323de5a30c2c66f0ce46de7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 26 20:39:01 2010 +1000

    Fixed stored configuration documentation

commit 1aa98a67f4eac1a9f2f46222375ef439eb6b0043
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 24 04:03:56 2010 +1000

    Fixes #3653 - Changed default factpath value to better reflect plugins in modules

commit 44f6d64876f60cbed27e79ba0c64377ebcb9a07e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 24 02:47:52 2010 +1000

    Partial fix to #2837 - changed warning message to debug

commit 3a1b178e9622494088473042336e45d59f896dac
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Fri Apr 23 00:22:07 2010 +0200

    Fix #3555 - fix state of purged lists
    
    As purged is not contained by default within ensureable we need to
    extend the parameter to properly deal with purged lists.

commit f6046abcb44b99d1385462f4576f180184e3154e
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Apr 19 11:04:32 2010 -0700

    Fix for #3577 -- to_yaml parameter in 0.25.5rc1
    
    The new to_yaml method doesn't take format arguments (as they are
    unnneeded).
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit f351e2dcf0c133c7e800f09f9a6f65146d856bde
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Apr 14 18:46:52 2010 +1000

    Renamed all references to Reductive Labs to Puppet Labs

commit cf7e6967632ba3f1d3b7ae21ccaf5daed9cec6e7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 15 13:18:22 2010 +1000

    Updated Rake tasks to no longer load puppet.rb

commit b93924e1f4ae55565d96701f55ec49ff16379ef0
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Tue Apr 13 00:11:13 2010 +0200

    Fix #3540 - name methods correctly
    
    The "Ensure Parameter" tries to call destroy on the
    provider and not delete.

commit 9bc2f281a18abde64061b152631f3a867128cdc5
Author: Paul Lathrop <plathrop@digg.com>
Date:   Tue Apr 6 18:19:34 2010 -0700

    Fixes #3295 - generate() now sets the working directory to the directory containing the specified command.
    
    Also adds rspec tests for generate().

commit 3ee6834a81b1a997a426fe086e1d98d03f8d8b2d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 12 22:44:35 2010 +1000

    Added YARD task
    
    You need to:
    
       gem install yard
    
    Then run:
    
    rake yard
    
    This will generate a "doc" directory containing YARD documentation.

commit 99818ef5a00cdce50390d229f21ebd22b81eba00
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 12 07:31:40 2010 +1000

    Update man pages and partial doc fix to #3491

commit f988af343c7d8c5d339fee493c5e5a39bbe62905
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 12 06:38:17 2010 +1000

    Fixed #3532 - Typo in lib/puppet/ssl/host.rb
    
    Thanks to Jasper Lievisse Adriaanse for the fix.

commit f0e12e521742ade60f8901cd1e5317b2d3d81cc3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 5 16:23:11 2010 +1000

    Fix #3496 - suppress transaction debug message
    
    Fix via Brice Figureau

commit 0eea2f5d67efc6eebe89c4a97043150dbee0dcc6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 1 16:40:55 2010 +1100

    Updated version and CHANGELOG to 0.25.5rc1

commit 57ae3815667f6d76af0dc79e53ab8a604fb12ff0
Author: Andrew Forgue <andrew.forgue@gmail.com>
Date:   Mon Nov 23 17:51:36 2009 -0500

    Modify SuSE spec file for 0.25.x and correct shebang lines for
    puppetd/puppetmasterd

commit d90ec7907aa785dfd592da3e0335ceaeb554b2d8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 31 12:39:54 2010 +1100

    Fixes #3460 - Makes Puppet FHS compliant by moving /var/puppet to /var/lib/puppet

commit ae0b0bf23e418e8c6665e9dc135148b78bdbd913
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Mar 30 14:34:01 2010 -0700

    Fix for #3101 (bug in MRI 1.8.7)
    
    Due to a bug in Ruby 1.8.7 net/http will attempt to close a connection
    that wasn't successfully opened (it's nil), first checking to see if the
    connection is already close, and thus raising a method missing exception.
    This bug causes error messages that are confusing / misleading.
    
    To get around this, we add a closed? method to nil such that a nil (unopened)
    connection is always considered closed, allowing the real problem to be
    reported.

commit 9db066b1322620bdd45acde9f36069be56ee3931
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon Mar 29 10:49:47 2010 -0700

    Fixes #3419. OS X 10.6 Ruby doesn't set supplementary groups

commit 306d08259b7f67670e2143691f6dc50d655d832d
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Mar 29 17:16:05 2010 -0700

    Revert the guts of #2890
    
    This patch reverts the semantically significant parts of #2890 due to the
    issues discussed on #3360 (security concerns when used with autosign,
    inconsistency between REST & XMLRPC semantics) but leaves the semantically
    neutral changes (code cleanup, added tests) in place.
    
    This patch is intended for 0.25.x, but may also be applied as a step in the
    resolution of #3450 (refactored #2890, add "remove_certs" flag) in Rolwf.

commit 4eea77a3a324cd311624eadb0344869db5e9c241
Author: Gábor Vészi <veszig@done.hu>
Date:   Thu Mar 11 05:32:45 2010 -0700

    Fail gracefully on packages that don't have the HOMEPAGE variable set (e.g. dev-lang/php).

commit f5b8494f22b2f9d3f462de30cbbec0a15239d0f7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Mar 28 00:10:13 2010 +1100

    Fixed #3443 - Typo in mount type

commit b0ef2c6ccb5cfaf4e655135efea0535cca7b3a97
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Mar 27 14:38:50 2010 +1100

    Fixes #3135 - darwin doesn't support 'mount -o remount'
    
    Thanks for Eric Sorenson for the patch.

commit 7018cf5634bcbdcc167d5fbe5560801a2a131ca9
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Mar 25 14:55:51 2010 -0700

    Adding :catalog_terminus setting
    
    This will rarely be used, but it enables even more architectural
    flexibility, such as precompiling catalogs and storing them in memcached
    or equivalent.  With this setup, a single host can probably serve all
    catalogs and you would then just have as many compiling hosts as
    needed.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 978ab8a9a1f1c7ea23698543bf86f587ae88e6c4
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Mar 25 14:04:19 2010 -0700

    fixing obsolete comment in puppetd
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 6d13d0d0b2617100488f9eccc0bbee0ba934d624
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Mar 24 00:04:47 2010 -0700

    Adding support for only using cached catalogs
    
    This basically allows a sysadmin to control when a client
    will compile a new catalog - with this option enabled,
    the client will use the cached catalog as long as it has
    one, only recompiling when run with the option disabled.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit bc28715741332e7c1ddf5114888ad7a76b82d47e
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 23 23:58:54 2010 -0700

    Refactoring Configurer to enable the next feature
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit ba43d7b217615dba18a709e7b7353234671e9891
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Mar 24 19:38:43 2010 -0700

    Fix for #3366 - --tags '' treated as boolean 'true'
    
    This is the patch from Mike Pountney <Mike.Pountney@gmail.com> off
    the list with the additional test Luke requested.

commit 5ab5e8a00648569686c5259862c865c5db8da83a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 23 22:09:14 2010 -0700

    Supressing warnings (not really failures) in test/unit

commit e4df0b0559050fcaf963e2ee72135e8e25712583
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 23 15:41:57 2010 -0700

    Fix test using wrong Puppet util filesetting group

commit eeb3d7477932e03a0c97f0fb0eda29926c14c801
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 23 15:34:11 2010 -0700

    Mock user in SUIDManager tests

commit 9ea27dba2a52286da90574cc0367f20371fb9aeb
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 23 14:54:37 2010 -0700

    Removing resources generate tests
    
    Tests that generating resources performs a check and only returns
    resources that check as true. There is already spec coverage for this
    behavior.

commit 218e3e9a2819f660c4f22bfe4973edb8f39d4f3c
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 23 14:44:57 2010 -0700

    Removing old test for service/debian provider
    
    it has been superceded by an rspec spec.

commit 1556938bf112f66c40b10f70b53a97b25582261e
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 23 14:34:01 2010 -0700

    Replace test/unit file write test with spec

commit 2defc009f0403953a8ebcdb5f34b459921428eb2
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Mar 25 15:54:33 2010 -0700

    Fix for #3424 and tests to prove it.
    
    The original pure ruby yaml patch missed some edge cases; specifically, classes
    that were modified by the syck version to directly call it and thus never
    reached the pure ruby version.  This adds monkey patches to all of those case
    which we might reasonably care about (omitting, for example, calls within the
    syck version to itself) and tests which show that the monkey patch works.

commit 44798b90c2225dcb4919dbd9d8debf2ecb651864
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Mar 25 19:12:50 2010 +1100

    Fixed changelog Rake task

commit 5d10f65745ce78e71e9a4cfce7f1f60c45db2501
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Feb 8 20:17:38 2010 +0100

    Fix #3155 - prevent error when using two matching regex in cascade
    
    The following manifest:
    case $var {
      /match/: {
         if $var =~ /matchagain/ {
         }
      }
    }
    
    is failing because the "=~" operators when matching sets an ephemeral
    variable in the scope. But the case regex also did it, and since they
    both belong to the same scope, and Puppet variables are immutables, the
    scope raises an error.
    
    This patch fixes this issue by adding to the current scope a stack
    of ephemeral symbol tables. Each new match operator or case/selector
    with regex adds a new scope. When we get out of the case/if/selector
    structure the scope is reset to the ephemeral level we were when
    entering it.
    
    This way the following manifest produces the correct output:
    case $var {
      /match(rematch)/: {
         notice("1. \$0 = $0, \$1 = $1")
         if $var =~ /matchagain/ {
             notice("2. \$0 = $0, \$1 = $1")
         }
         notice("3. \$0 = $0, \$1 = $1")
      }
    }
    notice("4. \$0 = $0")
    
    And the output is:
    1. $0 = match, $1 = rematch
    2. $0 = matchagain, $1 = rematch
    3. $0 = match, $1 = rematch
    4. $0 =
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit fbedb999e4f4cc8020bc6be4a1d8868368c3ed7f
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Dec 21 17:05:47 2009 -0800

    Fixing #3148 Settings#without_noop when run with no noop setting
    
    Some tests didn't define this setting which caused this method
    to fail.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 389c77b1927a95e8e991ecddd1767698547a78b8
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Wed Mar 24 16:51:42 2010 +0100

    Another trivial follow-up fix for #2604: invalid path to zaml.rb
    
    Signed-off-by: Marc Fournier <marc.fournier@camptocamp.com>

commit 56b575393bb9db99b25182d7d167a2768b561e6e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Mar 20 14:13:31 2010 +0100

    Fix inefficient SimpleGraph#matching_edge
    
    This method has two issues:
     * it is inefficient when there are many events
     * it tries to match edges that shouldn't be matched
    
    With recursive file resources, many change events can be generated.
    The method used to find the good ones is pretty inefficient, allocating
    arrays and/or appending to arrays which is a slow operation that can
    consume lot of memory.
    
    Still with recursife file resources, the current code tries to match the
    events with edges pointing to generated sub-file-resources, which is not
    necessary. In fact this all happens because we masquerade the sub-generated
    resources with the topmost resource whic itself has auto-required links
    to them. There is no reason to send back those events to where they were
    generated.
    
    This patch tries to minimize allocations or array appending, it also collect
    event names (instead of events themselve) while matching since there are
    great chances there are way less events names than events (and we're matchin
    by name).
    
    This patch also makes sure we select only edges that don't point back to
    the event sources.
    
    Results for matching 1100 events:
     * old code: 22s
     * new code:  0.02s
    
    This patch also helps on the memory consumption side since the GC has
    almost no work to perform.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 4b2b9ebfb566776373f48357e9df61a88b410faa
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Mar 3 20:35:46 2010 +0100

    Fix #3229 - use original value in case/selector regex matching
    
    The issue is that case/selectors are downcasing the value before it
    is compared to the options.
    Unfortunately regex are matching in a case sensitive way, which would
    make the following manifest fail:
    
    $var = "CaseSensitive"
    case $var {
      /CaseSensitive/: {
         notice("worked")
      }
      default: {
        fail "miserably"
      }
    }
    
    This patch fixes the issue by making sure the regexp match is done
    one the original (not downcased) value, but still doing a case
    sensitive match.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 19863c07f983ec181fb81c797ee8b9c8d335e18c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Mar 13 14:57:39 2010 +0100

    Fix #2929 - Allow checksum to be "none"
    
    File checksum is "md5" by default. When managing local files (not sourced
    or content) it might be desirable to not checksum files, especially
    when managing deep hierarchies containing many files.
    
    This patch allows to write such manifests:
    file {
      "/path/to/deep/hierarchy":
         owner => brice, recurse => true, checksum => none
    }
    
    Then puppet(d) won't checksum those files, just manage their ownership.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit fd76142b314c390205570d02383607ff91b23391
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 24 13:17:50 2010 +1100

    Fixed puppetlast typo
    
    Patch thanks for Micah Anderson

commit 3b4e7827391a11c1f577714e39f86ccb517fedac
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Wed Mar 24 00:44:54 2010 +0100

    Follow up for #2604, debug msg left behind.
    
    Signed-off-by: Marc Fournier <marc.fournier@camptocamp.com>

commit e44430b5e185918204faf004e1916e60c1801e87
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Mar 22 22:24:22 2010 -0700

    Fix for #2604 Pure Ruby yaml generation
    
    This patch brings in a pure ruby yaml generation library, analagous
    to what we did with JSON/PSON, but without the renaming dodge we had
    to do in that case to avoid fighting with Rails.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 74cd55fbda7edf64b6bbd77143ea3f1fbdf39e30
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 24 09:38:05 2010 +1100

    Fixes #3113 - When importing a manifest puppet needs to chill

commit 7ec50a74f81264591208fb55e01567ee795ab6b8
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Mon Mar 22 08:36:07 2010 -0400

    Fixes #3387 - Handle path elements with ticks and spaces
    
    Unit tests for path changes

commit d561a988c53d521d0fecf06c4f4d8a65267ac005
Author: Martin Englund <martin@englund.nu>
Date:   Tue Mar 23 12:04:27 2010 +0100

    Fix for #3412 install.rb should not put "." first in the tmp_dirs
    
    Signed-off-by: Martin Englund <martin@englund.nu>

commit 751df45547162632c41cf98a1b1daabbadb1b901
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Mar 21 12:07:37 2010 +0100

    Fix #3186 - require function set relationship only on the last class
    
    Due to the fact that resource.set_parameter is overwriting the previous
    set_parameters, we were losing the previous relationships we set there,
    either in a previous call of require or in the same call.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit a1d216c74ee7245e0edaaba7d9384b59d442bcf2
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Wed Mar 17 08:56:36 2010 -0400

    Fixed the return types were valid, and removed the copy paste error with the exception logic

commit d532e6d6c64f438de9596b07f1f4f0cb81071446
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Feb 17 15:36:26 2010 -0800

    Fixing #3185 Rakefile is loading puppet.rb twice
    
    A 'require' statement with a path confused ruby enough to cause the same
    file to get interpreted twice.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 9958c805dd90acadbb56ed3095e665d8afa990cd
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Wed Jun 23 15:51:08 2010 -0700

    [#4064]  Modify the Rails spec to use the block form of confine
    
    This prevents the lookup of the ActiveRecord constant from being
    performed until after we know that the Rails feature is available (from
    checking the confine of the parent describe block).

commit af8bd77a9ff68552490745ec1d479820b6b58d87
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Wed Jun 23 15:49:53 2010 -0700

    [#4064]  Modify confine to also allow a message and a block containing the test.
    
    This way the test can be evaluated lazily when needed. Adds tests and
    documentation.

commit 182c0033dcc1885a42bd0cbb429d278f53ae9480
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Jun 10 12:54:50 2010 -0400

    Fixing #3988 - adding support for watchr
    
    Also added a readme file explaining a bit of how the
    continuous testing tools work.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 3a44f0e4826b8677323d3c1be55263dfa94f3305
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jun 6 18:03:18 2010 +0200

    Fix #3932 - Add --charset to puppetdoc for RDoc mode
    
    This adds the --charset option to puppetdoc for RDoc mode.
    This allows to set the charset for the generated html.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit fb5c1d7bbe629df6214af9b47e522fb282983beb
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jun 6 15:40:44 2010 +0200

    Fix #3907 - Hash couldn't be initialized with an empty hash
    
    The following manifest was failing:
    $data = {}
    
    This patch makes sure we initalize our ast hash with an empty ruby
    hash when it is created without any values.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 9592dd896c6aab9a3e9b0181c943e7c9ba3d2d6d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jun 6 17:22:03 2010 +0200

    Fix #3871 - Add the 'in' operator
    
    This operator allows to find if the left operand is in the right one.
    The left operand must be resort to a string, but the right operand can be:
    * a string
    * an array
    * a hash (the search is done on the keys)
    
    This syntax can be used in any place where an expression is supported.
    
    Syntax:
    $eatme = 'eat'
    if $eatme in ['ate', 'eat'] {
    ...
    }
    
    $value = 'beat generation'
    if 'eat' in $value {
      notice("on the road")
    }
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 3696d951f70f5b94b49619dfbc57138d5241bbb8
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon May 24 17:04:17 2010 -0700

    [#3865] External subcommands
    
    This patch allows the puppet single-executable to invoke external,
    hyphenated subcommands, much like how git does.

commit 0fc41aed7056e645f1d41a7ef6a00a34344dde38
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue May 18 17:02:03 2010 -0700

    [#3802] Replace rug with zypper
    
    OpenSuSE replaced rug with zypper so our code should too
    
    Signed-off-by: Matt Robinson <matt@puppetlabs.com>

commit dc1a977512b854c967bfcb1d115d88c6f778e56e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue May 25 15:13:28 2010 -0700

    [#3766] Remove YAML fixups
    
    Remove workarounds that were only needed because ruby's builtin YAML
    lib is broken.

commit e0e6b642c4eefc1b5f44b44638d2db24f4845ef1
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon May 17 16:38:19 2010 -0700

    Provides #3723. Add ability for execs to have several attempts at a successful
    execution and fix minor bug with logoutput and returns as an array..
    
    * Add 'tries' and 'try_sleep' parameters
    * Fix bug where returns is specified as an array and logoutput on
    * failure.
    * unit tests for both cases above.

commit c8ca19a4e7d48d5c45fd67efb981c1c3d3b80e5c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 23 15:47:19 2010 -0700

    [#3674] Make sure that failing to load a feature isn't fatal

commit 2a73b5d194a5237722840844588a03addedf2d4c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Sat May 22 17:58:44 2010 -0700

    [#3674] Part 2: Autoloader load method should propagate failures
    
    Change Autoloader's load to re-raise exceptions that happen when
    trying to load files, rather than just warning.
    
    This version still does not raise an error if the file is not found, as
    doing so would change the behavior of 'load' pretty significantly, but I
    am ambivalent this.

commit 7952af5b80331f60d9f3703e63285fc7fb733a8c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri May 21 15:19:49 2010 -0700

    [#3674] Autoloader should propagate failures
    
    Change Autoloader's loadall to re-raise exceptions that happen when
    trying to load files, rather than just warning.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit f35c59f83b8df2e595ec44a6258dbae30c81237e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Apr 25 17:52:37 2010 +0200

    Fix #3667 - Fix class namespace
    
    Class namespace is different than namespace of nodes and definition as
    it contains the whole qualified name.
    This bit was left out in the type are not AST anymore refactoring.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 938fbe914a811b10146f817368883df8180ef224
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed May 19 23:13:36 2010 -0700

    Removing obsolete nodescope concept
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 49cf2f216ecbe924978421eac3c6c4fafb642874
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Jun 3 12:52:51 2010 -0700

    Fixing #3651 failing to pop comment stack for some constructs
    
    Puppetdoc got confused because it wasn't popping the comment context for
    collections and resource defaults.  This commit adds the popping.

commit 0dd4201697117645d4f4137b4678dd90671a4a89
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed May 19 23:33:41 2010 -0700

    Fixing #3072 - Resource generation is recursive
    
    This allows you to create builtin nested resource types
    that generate other resources that generate other resources
    ad naseum.
    
    The primary point of this feature is that you can make
    builtin resource types that have a lot of the same
    encapsulation abilities of defined resource types.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit b96cd6cc6e381b83abde6b3b3e5a6b6604f909c1
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Jun 3 10:30:11 2010 -0700

    Fixes #2646. Move onetime option from the agent to global defaults so we can specify
    it in the config file.

commit 0a21e1b7510d32e391e6263814bad5cc70c5d6dd
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Tue May 25 17:50:40 2010 -0700

    [#2522] authorized keys owner is verified
    
    The user method on the provider always returned what the resource should
    be, not what it actually was, so it always seemed to be insync to
    puppet.
    
    Also cleaned up some cruft on the perms that did different things
    depending on whether a user was specified on the resource.  This isn't
    necessary since a user is required on the resource.
    
    Paired with: Jesse Wolfe
    Signed-off-by: Matt Robinson <matt@puppetlabs.com>

commit 738802e1a56312c468e99a43c0ffd64dd47c4382
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed May 19 23:44:30 2010 -0700

    Fixing #2337 - Adding 'freeze_main' setting
    
    This disables adding any code to 'main' except
    in site.pp, so if you have code outside of a node,
    class, or define it will throw an exception.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 50a626daa1bef956ea63c405fddeaeab8a9a0756
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Jun 10 19:21:05 2010 -0700

    Fixing #1545 - Adding 'caller_module_name' variable
    
    This will produce the name of the module that a given
    resource is defined in, rather than the module that
    the resource type itself is defined in.  For instance:
    
        # in one/manifests/onedef.pp
        define one::onedef {
            notice "Called $name from $caller_module_name"
        }
    
        # in two/manifests/init.pp
        class two {
            one::onedef { yay: }
        }
    
    produces:
    
        Called yay from two
    
    This could obviously be extended to actually build a caller
    stack, as frightening as that seems.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 5d1934bbb118c254ed99f5a625844ad7c9064d8e
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Jun 9 10:34:05 2010 -0400

    Fixing #1545 - module_name is now a variable
    
    This is only true for resource types (e.g., classes and defines)
    of course.
    
    The actual variable is 'module_name':
    
        class mymod {
            notify { "in mymod '$module_name'": }
        }
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit bba45f1defe7525e59e9e5c66882e6416bfad99e
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Wed Jun 23 11:22:06 2010 -0700

    [#4055] Confine CouchDB-related specs to the couchdb feature
    
    Prevents unmet dependency problems when running tests without the
    couchrest gem

commit 1c5b67d3156873cf3f97aca4d8ca3c6707fc089f
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Tue Jun 22 15:46:56 2010 -0700

    [#4055] Refactor of abstract Couch terminus, more specs
    
    * Cleaner implementation of abstract Couch terminus
    * More thoroughly tested facts Couch terminus

commit 432db2593f15de200767ec16c14f433f718a44d9
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Mon Jun 14 16:40:38 2010 -0700

    [#4055] Add CouchDB terminus for facts
    
    Implements an abstract CouchDB terminus and a concrete CouchDB terminus
    used to store node facts. Node facts are stored in a "node" document as
    the "facts" attribute. This node document may also be used by other
    couchdb termini that store node-related information. It is recommended
    to use a separate document (or documents) to store large data structures
    like catalogs, linking them to their related node document using
    embedded ids.
    
    This implementation depends on the "couchrest" gem.
    
    * Add Puppet.features.couchdb?
    * Add Puppet[:couchdb_url] setting
    * Add Puppet::Node::Facts#== for testing
    * Add PuppetSpec::FIXTURE_DIR for easy access to fixture files
    * Add CouchDB Terminus
    * Add Facts::CouchDB terminus
      * Stores facts inside a "node" document
      * Use key (hostname) as _id for node document
      * #find returns nil if document cannot be found
      * #save finds and updates existing document OR creates new doc  [1]
      * Store facts in "facts" attribute of node document

commit 35636e9984f1f9b2c6fae3d1410b4b08b6311693
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Mon Jun 21 17:53:20 2010 -0700

    [#3921] Fix typo "fact_terminus" -> "facts_terminus"
    
    Doh.

commit 45ca669671cc2cf4f2f811bbd48b5283d8fa6c8a
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Jun 23 10:06:16 2010 -0700

    Targeted fix for #3851
    
    Older / user written providers may just return a bare string from their ___cmd
    functions instead of an array.  This forces the command as used to be an array
    without breaking the cases where they (correctly) do return an array.

commit c00285c395647bc19237ec6c60099d11997592bb
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Thu May 20 14:41:22 2010 -0700

    [#3810] Add http reports processor and `reporturl` setting
    
    Example puppet.conf:
    
    [puppetmasterd]
      reports = store, http
      reporturl = http://localhost:3000/reports
    
    * Group reporturl and reportdir in new reports section of
      Puppet::Settings
    * Add specs for both

commit 1d49defe9b2a5f7725d74d2d73880ed342399d83
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Wed Jun 16 16:21:21 2010 -0700

    [#3804] Fixed one failing spec for RackREST
    
    A new version of Rack::MockRequest automatically uppercases the HTTP
    method, expecting that any method passed in should properly be uppercase.
    e.g. GET, PUT, POST
    
    This behavior is on line 81 of Rack::MockRequest:
    http://rack.rubyforge.org/doc/classes/Rack/MockRequest.src/M000230.html
    
    Reviewed by Matt Robinson

commit 1e89bff59448bfc22c22f0b03bf965b7f4da0c77
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jun 16 03:22:17 2010 +1000

    Fixes #3514 - CR/LF line ending in puppet.conf cause silent failure
    
    Patch thanks to Alan Barrett

commit e6709da4fed6e671dab5af0db3cb87da5b27555e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 23 15:19:36 2010 -0700

    [#3409] fix test failures from ldap environment patch

commit a7884b4707355ed2f4e052e7d760cce773442df1
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Jun 22 14:01:31 2010 -0700

    [#3409] environment is not checked when nodes are in ldap
    
    This is the patch as submitted by vichharaks ros <vichharaks.ros@hp.com>

commit c75b2199ca57f4101f1a731fec603f69349c0d5a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jun 16 03:25:52 2010 +1000

    Fixes #3395 - CR+LF line endings in manifests cause syntax error
    
    Thanks to Alan Barrett for the patch

commit 8b127b185171c516b0d3ab526e0f7606063582bb
Author: Nick Lewis <nick@puppetlabs.com>
Date:   Fri Jun 18 14:19:38 2010 -0700

    [#3388] Setting host_aliases from [] to [] no longer results in any changes
    
    The message was "host_aliases changed from 'absent' to ''". When reading from
    the hosts file, a host without aliases was considered to have "absent"
    host_aliases. The host_aliases list is now considered to be present but empty
    if it is absent.

commit be7112aff784cec1490af9d809c4950b940287cb
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Jun 11 11:14:29 2010 -0700

    Fixing #3139 - all properties can now be audited
    
    This provides a full audit trail for any parameter on any
    resource Puppet can manage.  Just use:
    
        file { "/my/file": audit => [content, owner] }
    
    And Puppet will generate an event any time either of
    those properties change.
    
    This commit also deprecates the 'check' parameter in favor of
    a new 'audit' parameter.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 986298b270f0a489ccec55b73949cd907e9d445e
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Jun 11 11:14:04 2010 -0700

    Working #3139 - Adding Settings.clear Spec#after
    
    This is another cleanup method we need to run.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 32f6a9d5246e8e02c7870e05f273a12c4ece84c6
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Jun 11 10:14:12 2010 -0700

    Working #3139 - Removing Property#checkable
    
    It was called in the 'check' attribute but not set
    anywhere else.
    
    The whole point of being a property is that you can
    retrieve the current state of that property - not
    being checkable/auditable is nonsensical.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 58cf8d9dcbef783e280782d56febf06822e3e4eb
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Jun 11 09:47:57 2010 -0700

    Working #3139 - Catalogs default to host_config
    
    The whole host_config concept is a bit outdated now that Configurer
    exists, I think, (since any catalog it uses should be a host_config).
    However, fixing that is outside of the scope of this series.
    
    In the meantime, this does a better job of making sure every
    catalog except the Settings catalogs are host_configs.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 8f3e8bb31d513f67ea28a5f249aa850789a10ff2
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Jun 10 20:57:41 2010 -0700

    Working #3139 - ResourceHarness does caching
    
    This is again about moving transactional behaviour out
    of Puppet::Type and into the transactional code.
    
    I initially moved this code into Resource::Status,
    but it seemed to make more sense in the Harness - the
    Status object should be thin and have no code
    that doesn't make sense on both sides of the pipe,
    it seemed.
    
    The interface gets a bit uglier as a result, but this
    is all about good design != good OO (because we're
    increasing the argument count of methods by moving
    them outside of the target class).
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit d6407f46f1743b9f3916d74bc0ed521fb5bf259d
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Jun 10 20:54:15 2010 -0700

    Working #3139 - removing obsolete checking in Storage
    
    We were type-checking the use of Storage for no good reason.
    
    I've removed all of that, so we can use either resources
    or their Refs for caching.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 0b95a8528e554df07efe970c9ecfc34535d17c92
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu Jun 10 20:31:34 2010 -0700

    Working #3139 - scheduling moved to resource harness
    
    We previously had the schedule checking code in Puppet::Type,
    but it's more of a transactional function, and in order to
    do proper auditing in the transactional area, we need the
    cache checking done there.  Scheduling is one
    of the few functions that actually uses cached data currently.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 4627b8fe11dc14bf42e98b84121b885df73c709e
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jun 14 18:22:40 2010 -0700

    Improving fix for #1175; tightening thread safety
    
    The previous code maintained thread safety up to work-duplication (so that a
    collision would, at worse, result in effective cache flushing and cause some
    additional work to be done).  The preceding patch addressed the single thread
    issue of environment specific functions; this patch brings the thread safety
    up to the previous standard.

commit ccc869ea48397235d7ba2a5695424eee4923cb9d
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Jun 10 22:51:12 2010 -0700

    Part 2 of fix for #1175 (functions in environments)
    
    Jesse and I are shooting for the minimal viable fix here, with the idea that
    a great deal of refactoring is needed but isn't appropriate at this time.  The
    changes in this commit are:
    
    * Index the function-holding modules by environment
    
    * We need to know the "current environment" when we're defining a function so
    we can attach it to the proper module, and this information isn't dynamically
    available when user-defined functions are being created (we're being called by
    user written code that doesn't "know" about environments) so we cheat and
    stash the value in Puppet::Node::Environment
    
    * since we must do this anyway, it turns out to be cleaner & safer to do the
    same when we are evaluating a functon.  This is the main change from the prior
    version of this patch.
    
    * Add a special *root* environment for the built in functions, and extend all
    scopes with it.
    
    * Index the function characteristics (name, type, docstring, etc.) by environment
    
    * Make the autoloader environment aware, so that it uses the modulepath for the
    specified environment rather than the default
    
    * Turn off caching of the modulepath since it potentially changes for each node
    
    * Tweak tests that weren't environment aware

commit 7c6b8836453b2b1e8679923f98854be3b0022edd
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Jun 15 14:15:16 2010 -0700

    [#1621] Composite keys for resources
    
    This patch implements the fundamental pieces of the move to composite
    keys:
        * Instead of having a single namevar, we have a non-empty collection
          of them, and two resources are the same if and only if all of them
          match.  Note that the present situation is a special case of this,
          where the collection always has exactly one member.
        * As currently, namevar is determined by the type.
        * Instead just of inferring the single namevar from the title we let
          types decompose the title into values for several (perhaps all) of
          the namevar components; note that the present situation is again a
          special case of this.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 2396ebac9021eaa4a2983e60902c04cc9e0db0ee
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Jun 9 17:47:39 2010 -0700

    Use the 'root' feature rather than directly checking the uid
    
    Jesse fixed all these but David and others moved them and introduced some more so...

commit 8128311690a25d864087a7aee31b233a459345fd
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 9 17:47:39 2010 -0700

    fix tests to reflect methods moved from type/file/owner to provider/file/posix

commit 28702a4128b2057df959f1e190a7fb24ee51db47
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 9 17:45:38 2010 -0700

    variable name error in refactor

commit 19c70b501a4e041408814bb2810984f5835c1a47
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 9 17:43:10 2010 -0700

    Remove over-eager error branch in a complicated If

commit 09881cf0e21faa60c33d475d111d2aa0fb647db7
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 9 17:41:16 2010 -0700

    Confine out a lib that puppet was failing to load on non-win32

commit d72fd9d8fcab489202831874186dae0ffce5a7d3
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 9 17:39:54 2010 -0700

    Confine out tests that fail on unix

commit d1b86ec9610186696bb17713b07c3cdcb9dd5b89
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Jun 9 17:37:30 2010 -0700

    Behavior change for //UNC_Paths broke an old test

commit ba506c199098a4c15024a24d4d58fe50f9e4b57f
Author: Markus Roberts <Markus@reality.com>
Date:   Fri May 21 15:38:06 2010 +0200

    Resolving conflicts with jes5199:ticket/master/2935-settings-mode
    
    Jesse moved the code David was patching; the conflict resolution omits David's
    change (since the code isn't there to be changed) and this moves the change to
    the new location.

commit f15a32461dedda250da5c01226d6b35cc36874ce
Author: David Schmitt <david@dasz.at>
Date:   Fri May 21 15:38:06 2010 +0200

    Fix Exec type

commit 86bd83877017f91922c17e311058d1cc8fbd55f8
Author: David Schmitt <david@dasz.at>
Date:   Fri May 21 15:37:51 2010 +0200

    Move syslog into a feature

commit fc92408b7702eb0258c32805b8c250d448ec5406
Author: David Schmitt <david@dasz.at>
Date:   Tue May 18 16:34:13 2010 +0200

    Adapt Util::Storage specs and avoid trying to lock on directories

commit 58100ed223de98af93f2e1a4e6a3c57e958ef94c
Author: David Schmitt <david@dasz.at>
Date:   Mon May 17 16:35:40 2010 +0200

    Relax path qualification check on FileServing::Fileset

commit 1c016a1ed457af40fc627fa14cf3f93d1671f483
Author: David Schmitt <david@dasz.at>
Date:   Tue May 18 15:46:41 2010 +0200

    Implement quoting on the exec commands and repair specs

commit 6a928940a43001f62cbd62d6c760c7d287bad855
Author: David Schmitt <david@dasz.at>
Date:   Mon May 17 14:38:41 2010 +0200

    Avoid trying to symlink() on windows

commit 47c9dd16df3a31dddb486bc4d583ff3b86b0ac01
Author: David Schmitt <david@dasz.at>
Date:   Fri May 14 13:13:37 2010 +0200

    Implement "forking" for Windows

commit c59d864ecdf5a1a7c9075c6dd40faea0d15ebc36
Author: David Schmitt <david@dasz.at>
Date:   Fri May 14 13:12:41 2010 +0200

    Avoid non-win32 signals on win32 runtime

commit bbba9f9f52b71c0402a297b3d738aee0cc75b348
Author: David Schmitt <david@dasz.at>
Date:   Fri May 14 11:07:19 2010 +0200

    Avoid trying to set uid/gid on windows

commit a90bcb08c3dc0a3c777f8a6c7d75cb6533a8804d
Author: David Schmitt <david@dasz.at>
Date:   Tue May 11 18:30:49 2010 +0200

    Start extracting the owner managment for files into providers

commit b51be2809a81e36fee603693f9d70155c49e94fd
Author: David Schmitt <david@dasz.at>
Date:   Fri May 21 14:04:51 2010 +0200

    Expand file type to be able to handle Win32 and UNC paths
    
    Win32 paths start with a drive letter, a colon and a slash;
    UNC paths start with two slashes, the name of the server and another slash.
    
    Signed-off-by: David Schmitt <david@dasz.at>

commit 17a9ad16e9ba13c68cde26a732204d44e63c1146
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jun 10 10:02:22 2010 +1000

    Updated version to 2.6.0

commit a2e809bbb2fc95ae571223ae27b5e61bcd2c3196
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jun 10 09:49:10 2010 +1000

    Fixed RSpec deprecation notice in lexer tests

commit f054d5b6abe2de3810203b13c8f263d9a23f0d50
Author: David Schmitt <david@dasz.at>
Date:   Mon May 17 16:11:20 2010 +0200

    Make specs work on win32
    
    lib/:
    * Fix Puppet::Parser::Files
    * Fix Puppet::Util::Settings
    
    spec/:
    * unit/application/kick.rb: only run on posix
    * unit/application.rb
    * unit/parser/compiler.rb
    * unit/parser/files.rb
    * unit/resource.rb
    * unit/resource/catalog.rb
    * unit/resource/type_collection.rb
    * unit/transaction.rb
    * unit/type/tidy.rb
    * unit/util/settings.rb
    * unit/util/settings/file_setting.rb
    * unit/application.rb

commit 54c453853ddb1648af14b42dca6f827c5cb8e007
Author: David Schmitt <david@dasz.at>
Date:   Tue May 18 11:33:49 2010 +0200

    Delete tempfiles on win32

commit 97c043f440115fcfd9d3ddaad59af5c8da875329
Author: David Schmitt <david@dasz.at>
Date:   Fri Apr 30 11:34:52 2010 +0200

    Fix path handling
    
    *) Use File.expand_path as indicator for being an absolute path
    *) Use basename instead of parsing the path manually

commit f80b4c73bb17af8b103cbc2562f8617755e93d3f
Author: David Schmitt <david@dasz.at>
Date:   Wed May 19 19:36:51 2010 +0200

    Print stacktraces if requested

commit 1d98e679a040627bc4865453f147bc03f64140fe
Author: David Schmitt <david@dasz.at>
Date:   Fri May 21 13:42:04 2010 +0200

    Adapt defaults to Win32 environment
    
    This needs the workaround from http://rubyforge.org/tracker/index.php?func=detail&aid=28206&group_id=85&atid=411

commit ea9bb4926608343c16c7277af9f5addad54d90bd
Author: David Schmitt <david@dasz.at>
Date:   Wed May 19 19:35:30 2010 +0200

    More win32? feature def

commit 1645d8e7ca87939bf87e7a5af143af223be71b2a
Author: David Schmitt <david@dasz.at>
Date:   Tue May 11 17:03:14 2010 +0200

    Define posix and win32 features

commit b3aa3ecdc5d164328d7193d9158d9dee53df4aec
Author: David Schmitt <david@dasz.at>
Date:   Tue May 18 11:33:28 2010 +0200

    Improve error message

commit d67f60fc164fce2ec53c0cde7ea9d9dbf665455a
Author: David Schmitt <david@dasz.at>
Date:   Tue May 18 16:42:16 2010 +0200

    Fix ProviderDpkg specs to avoid any real executions

commit e119b04f7738f5ffb6b9bf353bb28b3d058302a5
Author: David Schmitt <david@dasz.at>
Date:   Thu Apr 29 17:32:40 2010 +0200

    Avoid setting the timeout before we know which timeout we should set.
    
    Signed-off-by: David Schmitt <david@dasz.at>

commit d40e6d4bb6d899000b34422950412e90fb1d69dd
Author: David Schmitt <david@dasz.at>
Date:   Mon May 17 16:11:46 2010 +0200

    Bug: tidy specs need FileBucket::Dipper

commit a6b52bb01b0c73d36d6b40c263e7542cb5cfbfff
Author: David Schmitt <david@dasz.at>
Date:   Tue May 18 16:33:47 2010 +0200

    Avoid trying to lock on non-files
    
    This is not supported on windows and makes little sense on POSIX

commit 533ef68e47a124182066432c11040bbb6120b658
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sun Apr 18 11:15:52 2010 -0700

    Removing obsolete FCollection stub from Functions
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit bc90df6e7c0ea194f46ecc3c1753226b8da648c8
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 16 08:17:49 2010 -0700

    Functions are added to a module instead of Scope
    
    We were previously adding them directly to Scope, but
    now they're in a module that Scope includes.
    
    This is the first half of #1175 - we can now maintain
    environment-specific collections of functions.  We need
    some way of tracking which environment a given function
    is loaded from.
    
    Well, maybe it's the first third - the core functions
    probably need to be added to all of these modules,
    or there needs to be a 'common' module that is included by
    all of them.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 17e40e745157b538d19800618584d19f8d29226e
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 16 07:57:10 2010 -0700

    Slightly restructuring "Functions" file
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 9d0a38ee1baa295fb8d2b69f13cbfc91b5de5800
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Mon Jun 7 15:45:45 2010 -0700

    [#3921] Add facts_terminus setting to Puppet settings
    
    * defaults to "facter"

commit 2874729efa22c56dde61654e7429bdbb4e41f9ef
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Mon Jun 7 15:35:52 2010 -0700

    [#3921] Remove unnecessary require 'puppet/resource'
    
    * Remove require statements
    * explicity define namespace modules/classes for
      Puppet::Resource::Status to avoid require dependency cycle.

commit 58a3d27f30731af6c28eebc53f85997a060edf05
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jun 7 13:53:14 2010 -0700

    Fix for #3949 and related
    
    Syck/Yaml quietly passes on undefined classes as strings, so that if objects
    of those classes are loaded and re-serialized they passthrough unmodified.
    While not technically correct, it's still the POLS behavior, and we now support
    it.

commit b755f7faaf490c97223f68b3b51b3ea1e08c3547
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat May 29 14:18:18 2010 +1000

    Fixed #3912 - Added client certificate name as an internal fact called "clientcert"

commit b5f14c6eeaaf8cc70287f3b1b2f74441157ac4b6
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Fri Jun 4 11:05:09 2010 -0700

    {#3866] Rename the method metaclass to singleton_class to avoid the deprecation warnings from Rails ActiveSupport
    
    The metaid.rb file came straight from why the lucky stiff's "seeing
    metaclasses clearly" article.  Rails used this too, but they recently
    deprecated the name metaclass in favor of singleton_class to match what
    ruby-core decided to do.  meta, eigen and singlton class were all
    suggested and in the end singleton was agreed upon.
    
    http://redmine.ruby-lang.org/issues/show/1082

commit 2b5bd4927569c0a87ea32628cdc4303ff1e83853
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu May 20 17:30:59 2010 -0700

    Fixing #3822 - checksums will be loaded from filebuckets
    
    If you have the following code or equivalent:
    
        file { "/foo": content => "{md5}foobar" }
    
    Puppet will attempt to pull the content associated with
    that file from whatever the default filebucket is for the
    resource in question.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 94390de11d046d4906842f33aa9865f6c3835633
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu May 20 17:30:42 2010 -0700

    foo
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 3b7aac584f8c0fe34079a1b34d301c62ce068ece
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Thu May 20 17:06:16 2010 -0700

    For #3822 - Reducing checksum code duplication
    
    The FileBucket code had a bunch of checksum code
    that was already available in a library, and it used a
    checksum format (type + data) that was incompatible with
    what we were using everywhere else.
    
    This just fixes that code duplication.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit ca7b166dfb7f665a4f916e484f66232e08cd9ec9
Author: Ross West <westr@connection.ca>
Date:   Thu May 6 12:24:34 2010 -0400

    Fixed unsupported perlstyle regex and few other minor bugs
    
    Signed-off-by: Ross West <westr@connection.ca>

commit 85f2565ad3e9a2864e60576cf699032a99c12820
Author: Ross West <westr@connection.ca>
Date:   Wed May 5 13:23:31 2010 -0400

    Signed-off-by: Ross West <westr@connection.ca>
    
    Code cleanup/spacing fixed

commit a4eb5d576419554af827a7837030863759d14731
Author: Ross West <westr@connection.ca>
Date:   Wed May 5 12:56:06 2010 -0400

    Signed-off-by: Ross West <westr@connection.ca>
    
    Description:
    	- Initial submission of new freebsd package manager for ports (portupgrade.rb)
    
    Dependencies:
    	- Ports system application (ports-mgmt/portupgrade)
    
    Notes:
    	- Package[:name] needs to be the origin code of the port (eg: "ports-mgmt/portupgrade")

commit 970fd8764a248e80e9a0700e541867d646a1e2e3
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon May 17 14:55:57 2010 -0700

    Fixing #3791 - client environment is used
    
    Node#environment wasn't being set correctly, in
    that it had to have the right answer out of the gate
    or it was never corrected.
    
    It was lazy-binding in 0.25 but I managed to make
    it no longer that way.  This resulted in the environment
    basically not being set during compilation, so the default
    server environment was always used.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit cce63d86d7ce3965e58d8e57ff19533a3f21b4eb
Author: Matt Robinson <matt@puppetlabs.com>
Date:   Mon May 17 15:00:52 2010 -0700

    Bug #3748 LDAP group membership
    
    LDAP group membership comparison was happening on an unsorted string.
    Sorting the string for now, may want to do something smarter by
    comparing something other than strings later.
    
    Signed-off-by: Matt Robinson <matt@puppetlabs.com>

commit 4ba3dc22fe4c6b54564d468e70b79e4695911c61
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon May 17 12:22:31 2010 -0700

    Fixing #2655 - Adding default parameter values to resources
    
    We were previously just adding these values as variables in
    the local scope, but we now add them to the resources so they
    get passed to the client in the catalog and are thus inspectable.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 20a74bc6f7146072b96a92d5c088c8906f564828
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon May 17 12:21:53 2010 -0700

    Refactoring tests - replacing stubs with instances
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit b5db33bc2a639984cda9a651abe57d044c14f23d
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jun 7 15:25:21 2010 -0700

    Fix for 3664: interpolating qualified variables.
    
    "${myclass::var}" was lexed as a CLASSNAME instead of a VARIABLE token,
    giving an error while parsing because a rvalue can't be a bare CLASSNAME
    token.
    
    This commit (based of Brice's) fixes it by restricting the contexts in which
    the CLASSNAME and CLASSREF tokens are acceptable, analagous with the handling
    for NAME tokens.

commit 9ddee72e05af79ab7f453b37e9497dca33f7d5ba
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Apr 23 20:41:29 2010 +0200

    Fix #3664 - qualified variable parsing in string interpolation
    
    "${myclass::var}" was lexed as a CLASSNAME instead of a VARIABLE token,
    giving an error while parsing because a rvalue can't be a bare CLASSNAME
    token.
    
    This patch fixes the issue by making VARIABLE lexing higher priority than
    CLASSNAME.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit a32381e822779b56030f6bd7009cd978970cecd2
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 18:36:14 2010 -0700

    Feature #2935 remove misleading comment
    
    Remove a stale comment about how settings work
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 5937af412234354382902b80f9f38c6e328ac0a8
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 18:35:35 2010 -0700

    Feature #2935 Unify the codepaths for setting settings
    
    There are two codepaths for setting settings in the settings object: one
    for setting individual settings, and one was setting settings in mass,
    like in the system settings file.
    This patch unifies some of that logic.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit b7d387e3e71f6af1b2967098b67440f8daa53e7d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 18:35:01 2010 -0700

    Feature #2935 Puppet[:mode] and Puppet[:name] are read-only
    
    Historically, the Puppet[:name] setting has been settable, but the
    results of chaning it are poorly defined.
    The switch to modes instead of executable names seems like a good time
    to disable this complexity.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 342298c4f9fcb2874d4017219a472ddf37dbfc6b
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 18:32:39 2010 -0700

    Bug: Broken codepath in util/settings
    
    An incorrect variable name is used in an error message, causing the
    error to throw an error.
    This can't appear in the wild, since it's actually just an argument
    check for the defaults.rb file.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 6d5566a715c0b757480b1d321d5801b795470552
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 18:31:52 2010 -0700

    Feature #2935 settings are in Mode sections instead of executable names
    
    A process's settings are now determined by Puppet::Mode rather than by
    the executable name.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 9536723c95c5b9deff4c6c6d6423b23a7025e58b
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 18:29:37 2010 -0700

    Feature #2935: method extract require_application
    
    It's useful to be able to require specific applications' ruby source by
    name, even if we aren't about to run them.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit c338fef73a4d8d8dbd1500f0c6bb0e37c6eba8bb
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 18:28:27 2010 -0700

    Feature #2935: Test for if we're "puppet cert"
    
    Fix breakage caused by changing the name of "puppetca"
    It's not clear to me what the ideal answer for this is: I don't think
    that "cert" should be a type of Puppet::Mode, so I'm not sure how to
    model it more intelligently than as the command-line name.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit cbb28026b2ece55be06530fb2572cdc7b48f2895
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 18:27:12 2010 -0700

    Code cleanup: remove "self." from setdefaults
    
    defaults.rb was cluttered with unnessesary "self." decorations.
    I removed them in preparation for a refactor of where settings are
    handled, but that change has been postponed.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 37a55306aa08e2004103e9a4a2a94bba18ffa61d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 18:26:43 2010 -0700

    Feature #2935 Modes: root? predicate
    
    Use a predicate method to check if we're running as root, rather than
    comparing the effective user id
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit ac7efc8f0284d6b35f5428da06ba371cf94998ec
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 18:25:14 2010 -0700

    Feature #2935 Puppet::Mode#master?
    
    Use a predicate function on the Mode object instead of comparing with
    the executable name everywhere
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 5665e3984f73c70b90f65dd8bf4445b5adda5121
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 18:22:27 2010 -0700

    Feature #2276 Single Executable: Update docstrings
    
    Update documentation strings everywhere to use single-executable
    notation rather than the old executable names.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit fc2904955ca6e77bda8719671df200e0811c38cd
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 18:16:29 2010 -0700

    feature #2276 Single Executable: use new names for settings sections
    
    The puppet-internal settings sections aren't actually exposed to the
    user, but to reduce confusion I've renamed them to be consistent with
    the single-executable application names.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 631552c58c9658780d0618c6b2fdfdc5a95465ea
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 15:42:39 2010 -0700

    Feature #2935: Applications should declare modes
    
    Add declarations for each application's run mode.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 8f4d644210e7a6afc9e08d65a0c60987171747c6
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed May 12 15:19:33 2010 -0700

    Feature #2935: lazify require graph for applications
    
    Because environments have to declare their mode before puppet tries to
    load defaults.rb, it reduces the complexity considerably to have
    application classes to load their lib dependencies at the last possible
    moment.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 6b26a7c0f1793a74ca778383125b7e4618fcc9e2
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue May 11 17:31:08 2010 -0700

    Feature #2935: Puppet::Mode
    
    Create a Mode class and Puppet.mode and application.mode methods
    Mode can be "agent", "master", or "user". Each application sets a mode.
    The Mode object has some smarts about the defaults for that mode.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit b65d1af8bb9e99128b0362ac0a4dab79aa3d4507
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 30 16:39:08 2010 -0700

    Feature #2276 Single Executable: usage message
    
    The usage message should show the single-executable variant of commands.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 76304f8b09ec7d47b5ebd75efde8499a1e3ca63c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 30 14:54:07 2010 -0700

    feature #2276 Single Executable: move CommandLine methods
    
    move Util::CommandLine methods into instances instead of on the class,
    as suggested by Markus
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit e9627a060619eaf0f8eeb012979dddb047c6648e
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed May 19 09:32:44 2010 -0700

    Fixing #2658 - adding backward compatibility for 0.24
    
    The way stages were implemented caused backward compatibility
    to be completely broken for 0.24.x.
    
    This commit fixes that, mostly by assuming Stage[main] will be the
    top node in the graph rather than Class[main].
    
    Other stages are not supported in 0.24.x, and explicitly throw a warning
    (although not an error).
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 61a719f41c5448ca9ab7bdbd6a05f6c97ee80b7f
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri May 14 13:30:43 2010 -0700

    Adding #2658 - Adding support for run stages
    
    This allows you to specify a run stage for either
    a class or a resource.
    
    By default, all classes get directly added to the
    'main' stage.  You can create new stages as resources:
    
        stage { [pre, post]: }
    
    To order stages, use standard relationships:
    
        stage { pre: before => Stage[main] }
    
    Or use the new relationship syntax:
    
        stage { pre: } -> Stage[main] -> stage { post: }
    
    Then use the new class parameters to specify a stage:
    
        class { foo: stage => pre }
    
    If you set a stage on an individual resource, it will
    fail; stages can only be set on class resources.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit d13f8ac4d5b8e4cf677c6c04fe875630216d6303
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon May 17 12:28:19 2010 -0700

    Fixing #3671 - --compile Catalogs are pretty-printed
    
    A simple fix for this one.
    
    This doesn't fix the general case, just the --compile case.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 89e8745e8c5c69775f8e1f680dceb39ba7a985ee
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon May 17 12:22:31 2010 -0700

    Fixing #2655 - Adding default parameter values to resources
    
    We were previously just adding these values as variables in
    the local scope, but we now add them to the resources so they
    get passed to the client in the catalog and are thus inspectable.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit edcf4297628c704787ff2e7310271d9ccc019816
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon May 17 12:21:53 2010 -0700

    Refactoring tests - replacing stubs with instances
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 3dfb7626fdc775803b94b0e009ece41198acde29
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon May 17 12:04:40 2010 -0700

    Fixing Catalog conversion
    
    Parser resources were not correctly being converted
    to Puppet::Resource instances, which meant a ton more
    information was being kept in the catalog.
    
    This probably didn't have much affect in real life, because
    of how we serialized, but it made debugging a lot harder.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 0d4fd60c7c143cc1f4e4b0f99f359c09cbfbf21e
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Apr 13 12:16:05 2010 -0700

    Fixing #1903 - metaparam inheritance is much faster
    
    This doesn't actually fix the specific request in #1903,
    which said there should be no inheritance at all, but
    I've changed my mind on that.  Static inheritance is good,
    it should just be faster.
    
    This change could result in up to 70% speed improvements
    in compiling.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 047ebfee96aa6c9471883a71fef4f3a4086cd149
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Apr 13 12:04:18 2010 -0700

    Fixing Parser::Resource param validation
    
    It was previously not allowing false values.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 2fae0bded559a23dcab5338dd899e272e0d0678e
Author: Paul Lathrop <plathrop@digg.com>
Date:   Tue Apr 6 16:23:03 2010 -0700

    Fixes #1999 - Allows the 'apt' provider to downgrade packages.
    
    This is accomplished by adding the --force-yes option to the apt-get
    command line when a package version is specified.
    
    Signed-off-by: Paul Lathrop <plathrop@digg.com>

commit b10d35d0da8f630e004966a52ac3ecd01287d36c
Author: Sean Millichamp <sean@bruenor.org>
Date:   Fri May 7 08:58:50 2010 -0400

    Fixes #3745 Catch unhandled exception in ssh_authorized_key provider
    
    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>

commit 584961a82ffbe64c04cb4a7c152f90164274ddb2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri May 14 11:11:05 2010 +1000

    Fixed #3721 - Removed -u option from crontab on HP-UX

commit a15a70c7cda9962e56b16ed7129bf6772f1df038
Author: Markus Roberts <Markus@reality.com>
Date:   Tue May 18 11:58:35 2010 -0700

    Fixing tests broken by conceptual merge conflicts
    
    A minor api change and an even less significant variable name change in earlier
    commits broke two test.

commit 5988f76aac63c4cb33c3e138c830eaf8aa4abfff
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 24 03:32:48 2010 +1000

    Fixes #3663 - It should be possible to list signed hosts only
    
    Adds a --signed option to the --list feature that only displays signed certificates

commit 2c153b12921d67354ea0968ad81590a124ac8b75
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon May 10 23:50:05 2010 -0700

    Fixing #448 - relationships have their own syntax
    
    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>

commit 052f98fdac20af4593372ecedaa13af97664a482
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Apr 11 16:37:48 2010 +0200

    Fix #3408 - enable puppetd http compression
    
    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>

commit 3eaf69c4cedeb452f88b0d9e27d12dcdba7e7c22
Author: Markus Roberts <Markus@reality.com>
Date:   Tue May 18 11:27:50 2010 -0700

    Fix for conflict between fileserving streams and none-checksums
    
    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.

commit 2cf7222df889981313c6955cc9220ce160dd90f6
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Apr 10 12:02:53 2010 +0200

    Fix #3373 - Client side file streaming
    
    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>

commit ee5d7f196fa62046f8fc3d3d723da608b17ce531
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Apr 10 16:30:03 2010 +0200

    Add master side file content streaming
    
    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>

commit 63c122f397c915cb1bec1a645958c808da92dce4
Author: Markus Roberts <Markus@reality.com>
Date:   Sun May 16 14:41:56 2010 -0700

    Fixing tests broken by Luke's CRL flag patch.

commit 91e6022e3e27df8cf8194e5ded98c206b42a2d11
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri May 14 22:19:11 2010 +1000

    Fixes incorrect line in partial CRL fix

commit 379bda02a57585168b44b66156681b31d1db79a5
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue May 11 22:01:10 2010 -0700

    WIP - trying to fix #3460
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>
    
    Conflicts:
    
    	lib/puppet/ssl/host.rb

commit 394757453e608512ba801f5f1188f08a61f1a845
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue May 11 14:51:10 2010 +1000

    Updated Template documentation link

commit 5fd6e546af5b5e4520f2cc88aaa5b705cdfd4249
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Apr 30 16:39:08 2010 -0700

    Change the main spec to an apply spec
    
    This appears to have been left out of the preceeding commit sequence.

commit 009629fe9f4d53882c819a0039ed873193917a32
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 30 16:39:08 2010 -0700

    Feature #2276 Single Executable: usage message
    
    The usage message should show the single-executable variant of commands.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 5b64d3b798b79357f98f100fc027d73518320ddf
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Apr 26 14:30:12 2010 -0700

    feature #2276 Single Executable: optparser should get CommandLine#args instead of ARGV
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 5683fd983b9a165ffbb8f08e67cfe903ec0e41b7
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 30 15:47:15 2010 -0700

    Feature #2276 Single Executable: Pass a commandline object to the application
    
    Refactor so that the command line options only get parsed once
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit d038a1d3ddffdf1366c78fe31118e9f15c1c6ed1
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 30 16:05:43 2010 -0700

    Refactor #3706 Reify eigenclasses of Applications
    
    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>

commit 7656ba73ddfd883b36a01c81147ae69e80773bce
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Apr 22 12:04:10 2010 -0700

    feature #2276 Single Executable: CommandLine can be instantiated
    
    refactor CommandLine to be an object
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 63e2e56d3172bdc80aaca5f5ddde5811728e3c76
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 30 14:54:07 2010 -0700

    feature #2276 Single Executable: subcommand method
    
    Extract the logic to determine the subcommand name into a method.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit b6e2ce6a85c953fcd57a3b837ccaa794a634dc22
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Apr 21 00:20:19 2010 -0700

    feature #2276 Single Executable: help info
    
    Change the --help text to match the new single executable invocations
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit b0737228b8b56019e417d68d7215270ce282f535
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Apr 21 00:37:15 2010 -0700

    feature #2276 Single Executable: help for apply
    
    restore the help text for the apply command
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit bfad735335bfd65d48b14af2998bd4ce2d86ab96
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Apr 21 00:09:28 2010 -0700

    feature #2276 Single Executable: rdoc paths on ubuntu
    
    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>

commit 71033786bf4abef4fd486793d6fe186fff87a432
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Apr 15 16:43:27 2010 -0700

    feature #2276 Single Executable: legacy settings
    
    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>

commit 54c1cc5dc9f8994378c850474b8fd468300fb0e8
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Apr 20 23:36:29 2010 -0700

    feature #2276 Single Executable: "puppet describe"
    
    Add "puppet describe" as the new invocation of "pi"
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit c79b2282ab0af181d354cfbae7d0b8da964cc03c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Apr 20 16:23:03 2010 -0700

    feature #2276 Single Executable: "puppet kick"
    
    Add "puppet kick" as the new invocation of "puppetrun"
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 6bdda8c65e55fcdab896cee9985bca3593c66c95
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Apr 20 14:15:06 2010 -0700

    feature #2276 Single Executable: "puppet cert"
    
    Add "puppet cert" as the new invocation of "puppetca"
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit f9783fcdee928c80339b2b1567350b2450e1ea05
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Apr 19 17:37:51 2010 -0700

    feature #2276 Single Executable: "puppet master"
    
    Add "puppet master" as the new invocation of "puppetmasterd"
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 1d8bd0d9308413b2f0772a65ee76d69d8fa5959b
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Apr 13 14:53:44 2010 -0700

    Fix #3552 single executable should display usage
    
    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>

commit 722a27fd49fc2c5ac16123e9e34967db025178f5
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Tue May 4 22:41:05 2010 +0000

    Fixes #3702: the 'log' report now sends the host name as the log source again.

commit ddd40bbc3a90133f223e91d6d4be21aada064a26
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Apr 26 17:01:01 2010 -0700

    Fix for #3690 failing to calculate error codes
    
    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>

commit d61a69a0e5a87a95846a4d39115eac80e4984cac
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Wed Apr 28 21:52:06 2010 -0700

    Fixing #3668 - fixed autoloading classes from modules
    
    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>

commit f66095d35bc5f9645eb19bbb8cefa342c0181d2d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Apr 26 18:14:51 2010 -0700

    Fix #3656 JSON serialization of dependencies
    
    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>

commit f0a00848d9244f03528f6cd9572989732e4b6fe2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Apr 23 14:32:38 2010 +1000

    Fixes #3582 - Adds dbport configuration option for specifying database port

commit 8b99367ccedefe0e341a79487ccea2a95f2720a3
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Sat Apr 17 19:46:23 2010 -0700

    Adding indirector support to Resource Types
    
    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>

commit 748aed9a4fe70cc2ecc0c782b694114356d9eb25
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Apr 13 14:53:44 2010 -0700

    Fix #3552 single executable should display usage
    
    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>

commit eafde5cacaac79da79d9d1415618801fcc37edcc
Author: Roy Nielsen <rsn@lanl.gov>
Date:   Fri Mar 26 13:25:21 2010 -0600

    Added support for flat packages in the pkgdmg package provider.
    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>

commit c9e3d75951d507059d25b76720d36a8d6d33be65
Author: Anselm Strauss <anselm@silversurfer.l.ttyv0.net>
Date:   Sun Feb 14 17:40:37 2010 +0100

    Fix: the rcvar name is not necessarily the same as the service name. (More and more I get the feeling that FreeBSD's rc system is totally unsuitable for Puppet. What about porting Upstart or SMF to FreeBSD ... ?)

commit 861c1775495d7810d16a16dde27083f92acd2b7e
Author: Anselm Strauss <anselm@silversurfer.l.ttyv0.net>
Date:   Tue Feb 9 20:22:44 2010 +0100

    Added proper status command

commit 5f72eb9820717df5e85f749ff647d35388f443d7
Author: Anselm Strauss <anselm@beastie.ttyv0.net>
Date:   Tue Feb 2 11:03:43 2010 +0100

    Re-included old BSD service provider, made new one default for FreeBSD

commit c3cd24bca33e6918598a73fd04996592509ab229
Author: Anselm Strauss <anselm@silversurfer.l.ttyv0.net>
Date:   Mon Feb 1 23:23:12 2010 +0100

    Rewrote FreeBSD service provider

commit 1250f80da93ae3f7879bdce328491ad2f209594b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri May 14 19:23:22 2010 +1000

    Fixed documentation issues exposed in #3772

commit 211782fdbfb961bb5b61d9c6888e9cc0702dcb00
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri May 14 16:27:36 2010 +1000

    Updated CHANGELOG for 0.25.5rc3

commit 7c59acfaefff3a69d67af8a65490e36175965168
Author: Markus Roberts <Markus@reality.com>
Date:   Tue May 4 15:57:08 2010 -0700

    Renamed all references to Reductive Labs to Puppet Labs
    
    Find and replace to the rescue...

commit e82f5de7e66a54712421d96288cc6a2614f53dd7
Author: Markus Roberts <Markus@reality.com>
Date:   Tue May 4 15:57:08 2010 -0700

    Fix for #3107 Changing users on AIX
    
    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.

commit 44f1465e937c0d7157de0caf7d2e6af9a38f09d8
Author: Andrew Forgue <andrew.forgue@gmail.com>
Date:   Tue Nov 24 18:28:30 2009 -0500

    Fixing #2864 Added support for AIX System Resource Controller (SRC) - 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>

commit 02ed8db54372c8b824a10f6fb1df9773f0eb93d5
Author: Nigel Kersten <nigelk@google.com>
Date:   Fri Mar 26 14:58:02 2010 -0700

    Fixes #2836. Add hold support to dpkg provider

commit 0f2d3ce686f7e706537e03ebb2166478fa55f649
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Tue Apr 13 14:20:48 2010 -0700

    Fixes #1223 Add Zypper support for SuSE machines
    
    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>

commit a166d50c3c555a38ae13c1658b9afaefd583cfc9
Author: Rein Henrichs <rein@puppetlabs.com>
Date:   Tue Apr 13 16:47:16 2010 -0700

    Fix for #3399 zone type should handle exclusive IP stacks
    
    * 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>

commit af521fade9bf64704bab00ddf5d81aa1f987fb7e
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Apr 7 23:10:21 2010 -0700

    Adding #3518 - basic dot format support
    
    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>

commit 9b2b0ecf2245f8e84e7e9811b2aca2a7b983f015
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Apr 13 13:41:47 2010 -0700

    Fix #3551 rake spec fails to run integration specs
    
    A typo prevents the Rakefile from finding tests in spec/integration
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 6a66d5edeaab8979bad4527a82fa6cebd9b966f7
Author: Todd Zullinger <tmz@pobox.com>
Date:   Mon May 3 14:54:39 2010 -0400

    Update Red Hat spec file for 0.25.5
    
    With RHEL-6 just around the corner, now is also a good time to adjust
    the ruby(selinux) conditional to work there.  The rundir-perms patch
    from tarball is applied rather than including it separately in the SRPM.
    It makes for one less file to track in downstream distros.  Other minor
    changes are pulled in from the Fedora/EPEL spec file.

commit 46c72bb1039029a4f0e7ccbdfe39ff24475ea844
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun May 2 18:08:43 2010 +1000

    Updated CHANGELOG for 0.25.5rc2

commit ee0cc07544df334cdc549907b4dca8d8d115b7b7
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 22:33:32 2010 -0700

    Fixing #3533 - Removing all transaction cleanup
    
    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>

commit 11189fb1fcf8fb410df3c833d20decb2ec7aa8c2
Author: Markus Roberts <Markus@reality.com>
Date:   Sat May 1 10:13:19 2010 -0700

    Fix for #2910 -- Tidy/matches is too tricky to use
    
    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).

commit 913b63cddfaed68605aa3341010b0aa53c9870a5
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Mar 31 17:34:16 2010 -0700

    Bug #3451: Don't leak the terminus class setting from Puppet::Resource::Catalog's spec
    
    This issue causes other specs to fail, because they depend on the
    default terminus being unchanged.

commit a228399fb921eabd635bddd92b63d86ee3c26d2c
Author: Markus Roberts <Markus@reality.com>
Date:   Sun May 2 00:21:37 2010 -0700

    Fix to the fix for #3295
    
    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.

commit ae520057280c2454bc44c64ac1e6686bf2eb086d
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Apr 28 15:39:39 2010 -0700

    Write ssh_authorized_keys as user
    
    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.

commit 8c5e80edd84ec1e2f8c594b74b57a1e48af92e87
Author: Markus Roberts <Markus@reality.com>
Date:   Sat May 15 13:19:18 2010 -0700

    Fixing bad test
    
    Actually, just moving the bad around.  The test as written depended on the
    implementation details of Parser#file=; when those changed, it broke the test
    and this patch fixes the test by updating it's unwarranted assumptions to
    match the current details.
    
    The real solution should probably be to ban all such tests and yank them from
    the code base without mercy, but that's a task for another day, after we solve
    world peace and cure the common cold.

commit 088c80148d1fa082ac6f79023739bc268d096bc0
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Apr 29 14:20:44 2010 -0700

    Fix for #3558 -- source file reading speedup
    
    It's about 10x faster to read the whole file than to read each line and
    concatenate them (actually, it's O(n) vs. O(n^2), so the exact speedup
    depends on the file size).

commit cd06b877cd97edb26551d9c30c399d666603e586
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Apr 15 16:30:32 2010 -0700

    Fix for #3556 Plussignment value melding
    
    The plussignment operator was constructing the new parameter value by
    modifying the param object's value in place (so as to preserve the file
    and line information for debugging).  However, when multiple resources
    are overridden by the same plussignment this would result in all of the
    resources sharing the same value (the union of all the prior values and
    the new value), which is wrong.
    
    Instead, we need to give each resource its own copy of the value (e.g.,
    a copy of the param object), which this patch implements.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 2de7da4fe3ad4a3821608141605829036ac5f1f8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Apr 30 18:03:02 2010 +1000

    Fixed #3655  - Puppet doesn't find installed packages with portage provider
    
    Thanks to Benedikt Böhm for the patch

commit d20d5de05b855a95eb92e5caa603634d5d082671
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Apr 27 13:53:20 2010 +1000

    Fixed #3672 - Error message on duplicate fileserver mounts incorrect

commit 6ae6821e6392ea2076e19b764db04366e92e86c1
Author: Todd Zullinger <tmz@pobox.com>
Date:   Mon Apr 26 16:37:58 2010 -0400

    conf/redhat: Add notifempty to logrotate config
    
    We default to logging via syslog so there aren't any puppet logs on many
    boxes.  Causing a weekly restart shouldn't be necessary.

commit 7fc66d5f5208bb7b408dfd4d3852a88139b9a308
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 26 20:39:01 2010 +1000

    Fixed stored configuration documentation

commit 14456b4604b94c044fb564a0f47dac36527d06ca
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 24 04:03:56 2010 +1000

    Fixes #3653 - Changed default factpath value to better reflect plugins in modules

commit f3e466b68ba124c1313d84570584187a7c473eb5
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 24 02:47:52 2010 +1000

    Partial fix to #2837 - changed warning message to debug

commit 686239ff01297b526c6f8dacd2a2e12b1738f0a9
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Fri Apr 23 00:22:07 2010 +0200

    Fix #3555 - fix state of purged lists
    
    As purged is not contained by default within ensureable we need to
    extend the parameter to properly deal with purged lists.

commit 6f8a1e9bbb48157621edb05a77a5fae96b047705
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 15 13:18:22 2010 +1000

    Updated Rake tasks to no longer load puppet.rb

commit 83a8c68f89bd47585a9acdf7ef8a95a079fc82f9
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Tue Apr 13 00:11:13 2010 +0200

    Fix #3540 - name methods correctly
    
    The "Ensure Parameter" tries to call destroy on the
    provider and not delete.

commit 3d395e857b588a8832430bf450c45b2fc37765e4
Author: Paul Lathrop <plathrop@digg.com>
Date:   Tue Apr 6 18:19:34 2010 -0700

    Fixes #3295 - generate() now sets the working directory to the directory containing the specified command.
    
    Also adds rspec tests for generate().

commit 0f077c78922994e74025c207436b3fb1d32c4249
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 12 22:44:35 2010 +1000

    Added YARD task
    
    You need to:
    
       gem install yard
    
    Then run:
    
    rake yard
    
    This will generate a "doc" directory containing YARD documentation.

commit b49c60bd35aa216197c330934ccb0cc69982bad9
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 12 07:31:40 2010 +1000

    Update man pages and partial doc fix to #3491

commit 115f37d88d36d5b3006b7c56b53b6644fabfd537
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 12 06:38:17 2010 +1000

    Fixed #3532 - Typo in lib/puppet/ssl/host.rb
    
    Thanks to Jasper Lievisse Adriaanse for the fix.

commit 784dd2647b6fd5fb985fe8f1363dd6cf5eb98b7d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 1 16:40:55 2010 +1100

    Updated version and CHANGELOG to 0.25.5rc1

commit 4a6474ca7456b5a42488fb53cde9d4822bf5312e
Author: Andrew Forgue <andrew.forgue@gmail.com>
Date:   Mon Nov 23 17:51:36 2009 -0500

    Modify SuSE spec file for 0.25.x and correct shebang lines for
    puppetd/puppetmasterd

commit 385506ff6209df909dc1f39f00a700274c530755
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 31 12:39:54 2010 +1100

    Fixes #3460 - Makes Puppet FHS compliant by moving /var/puppet to /var/lib/puppet

commit b494427ff76ec8ec90d6d389b32a7c9fe9b7f20d
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Mar 30 14:34:01 2010 -0700

    Fix for #3101 (bug in MRI 1.8.7)
    
    Due to a bug in Ruby 1.8.7 net/http will attempt to close a connection
    that wasn't successfully opened (it's nil), first checking to see if the
    connection is already close, and thus raising a method missing exception.
    This bug causes error messages that are confusing / misleading.
    
    To get around this, we add a closed? method to nil such that a nil (unopened)
    connection is always considered closed, allowing the real problem to be
    reported.

commit 966b2690824c5c66059380eb762a2a83bfe7afe5
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon Mar 29 10:49:47 2010 -0700

    Fixes #3419. OS X 10.6 Ruby doesn't set supplementary groups

commit 49be54e5d4c5c19ec1f7e5e454666bb59ebfe88f
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Mar 29 17:16:05 2010 -0700

    Revert the guts of #2890
    
    This patch reverts the semantically significant parts of #2890 due to the
    issues discussed on #3360 (security concerns when used with autosign,
    inconsistency between REST & XMLRPC semantics) but leaves the semantically
    neutral changes (code cleanup, added tests) in place.
    
    This patch is intended for 0.25.x, but may also be applied as a step in the
    resolution of #3450 (refactored #2890, add "remove_certs" flag) in Rolwf.

commit e69b7db9124b9b1cd65ab89a2f5c6968928f256d
Author: Gábor Vészi <veszig@done.hu>
Date:   Thu Mar 11 05:32:45 2010 -0700

    Fail gracefully on packages that don't have the HOMEPAGE variable set (e.g. dev-lang/php).

commit 83ac6b8b8c49e455b58671ae64f7423ae66ceb1d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Mar 28 00:10:13 2010 +1100

    Fixed #3443 - Typo in mount type

commit dfe5c3aba1e467546a4acbe5ee148dec3033d0a7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Mar 27 14:38:50 2010 +1100

    Fixes #3135 - darwin doesn't support 'mount -o remount'
    
    Thanks for Eric Sorenson for the patch.

commit 2a60e1e5eef42a1a0f11574d69f3c90be22e52ca
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Mar 25 14:55:51 2010 -0700

    Adding :catalog_terminus setting
    
    This will rarely be used, but it enables even more architectural
    flexibility, such as precompiling catalogs and storing them in memcached
    or equivalent.  With this setup, a single host can probably serve all
    catalogs and you would then just have as many compiling hosts as
    needed.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 626945bb33fa0b294100414c058a1f4d2b3e0039
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Mar 25 14:04:19 2010 -0700

    fixing obsolete comment in puppetd
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 9fbb69f9d4de0e618954bc18b7501e300317022a
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Mar 24 00:04:47 2010 -0700

    Adding support for only using cached catalogs
    
    This basically allows a sysadmin to control when a client
    will compile a new catalog - with this option enabled,
    the client will use the cached catalog as long as it has
    one, only recompiling when run with the option disabled.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 7e1e76e91579a49c07aa5cb5917a9800d59b8137
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 23 23:58:54 2010 -0700

    Refactoring Configurer to enable the next feature
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit b28e21a47645cf982c1290530097db791f0095a5
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Mar 25 19:12:50 2010 +1100

    Fixed changelog Rake task

commit e93eab81a58282db5306de6fec42703795c85523
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Feb 8 20:17:38 2010 +0100

    Fix #3155 - prevent error when using two matching regex in cascade
    
    The following manifest:
    case $var {
      /match/: {
         if $var =~ /matchagain/ {
         }
      }
    }
    
    is failing because the "=~" operators when matching sets an ephemeral
    variable in the scope. But the case regex also did it, and since they
    both belong to the same scope, and Puppet variables are immutables, the
    scope raises an error.
    
    This patch fixes this issue by adding to the current scope a stack
    of ephemeral symbol tables. Each new match operator or case/selector
    with regex adds a new scope. When we get out of the case/if/selector
    structure the scope is reset to the ephemeral level we were when
    entering it.
    
    This way the following manifest produces the correct output:
    case $var {
      /match(rematch)/: {
         notice("1. \$0 = $0, \$1 = $1")
         if $var =~ /matchagain/ {
             notice("2. \$0 = $0, \$1 = $1")
         }
         notice("3. \$0 = $0, \$1 = $1")
      }
    }
    notice("4. \$0 = $0")
    
    And the output is:
    1. $0 = match, $1 = rematch
    2. $0 = matchagain, $1 = rematch
    3. $0 = match, $1 = rematch
    4. $0 =
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b8832725e2bf1933af0d583ddbd81c8a8db4ae8f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 24 13:17:50 2010 +1100

    Fixed puppetlast typo
    
    Patch thanks for Micah Anderson

commit 67bf142f6227db8f675726a104766b72c1e90141
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 22 18:03:36 2010 +1000

    Fixed README contents to reflect Puppet Labs and docs and wiki changes

commit e35e1427c0e529e3dc232930c7beca2656079b17
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 22 17:04:31 2010 +1000

    Fixed link typo

commit d40e24c63ed23ba88638dae169a09afad52f9c50
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 22 17:00:21 2010 +1000

    Fixed #3384 - Updated broken link

commit da00f682ce0d1778183f9cf7dbe6d2e133b11841
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Tue Apr 13 08:51:17 2010 -0700

    Making a Puppet::Module test more resilient
    
    It would fail if a directory unexpectedly existed.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 9792915481ed757c56768f8f5e4fd100217b7232
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 15:43:07 2010 -0700

    Fixing yumrepo type to use 'flush'
    
    It was previously relying on monkey-patching the
    last 'Change' instance in 'evaluate', but we removed
    'evaluate', so this wasn't working any more.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 9ee4c2dc06aee189994e3e06910e52bced4c6854
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 15:10:01 2010 -0700

    Only trying to retrieve passwords on OS X when root
    
    We were otherwise failing whenever we tried to read
    a user.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 8c31ebe7f2da5d5f246d9994b0f84636009e1a70
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 15:09:58 2010 -0700

    Removing obsolete tests
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit aee9c294035efd053d2de131a75867ae6bc4ddf7
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 15:02:44 2010 -0700

    Fixing a warning in the aix package provider
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 232ad8fa316dd8f428bf9bdc56bba742f553efea
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 14:59:48 2010 -0700

    Removing tests for code that was removed in the REST refactor
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 94fddbc8f746a6062f51e1ab5d24febec3c47f64
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 14:56:09 2010 -0700

    Fixing and porting Transaction Report tests
    
    There are still a few unported tests, but it's at least
    better now.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 13d141acce03b50f1bfdee2b2a2cba87bcb3da70
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 14:10:17 2010 -0700

    Fixing Property#change_to_s in rare case failures
    
    If we were removing a field, which really only 'cron'
    does, then we got an exception.
    
    This is fixed, and now tested.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 66858ef73a538fd8849949b485352c9752bdbe02
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Apr 12 13:37:31 2010 -0700

    Fix test in parser.rb due to API change
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 0f254bec2937f0b27171dce0352a25fcaddca719
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 11:45:46 2010 -0700

    Fixing Hash functionality with non-constant keys
    
    It was only apparently working with constant keys,
    not, say, AST strings.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 41aeba49ed4afc523f0e9827076cb3532569f49f
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 11:36:40 2010 -0700

    Removing vistigial method in ASTHash
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 1821187f212d88b033d04f8ffe4d37f034e3b4fa
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 11:31:32 2010 -0700

    Porting/removing group test/unit tests
    
    Most of it was just complicated, and the rest
    useless.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 03532e087946fb4002b218eec477899ffb5860b3
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 11:17:52 2010 -0700

    Porting a simple set of tests from test/unit
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 006e6afd6e15c32ef0b49eefd0366fba694a0cf5
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 11:14:05 2010 -0700

    Removing obsolete test
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 1a6e08fc9c4e5c39f76d14c762356865c10e1dc7
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 11:09:20 2010 -0700

    Fixing Transaction integration test
    
    This was failing because it was expecting a call to
    Puppet::Type#evaluate, which is no longer used.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 410b71ca4c85971b4fa3ccab461942c5968816dc
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 11:07:05 2010 -0700

    Removing invalid File integration test
    
    The point of this test was to confirm that we could take
    a given file resource and have it work multiple times in
    memory, but that's not actually possible given our current
    code.  We copy the values over from the source metadata,
    and suddenly have no method for differentiation between
    values set by the user and those set by the remote source.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit effa7196781c2c233935206388c7e18d410e8e5f
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 11:06:06 2010 -0700

    Cleaning up content/source code
    
    This is probably a slight refactor, but only because
    it fixed a bug (content not being copied over correctly
    from metadata), which required that slight refactor.
    
    Mostly this just makes the code a bit cleaner.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 456447cab21ef6cfa66a6fbb949146e0d1df462c
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 11:05:21 2010 -0700

    Protecting spec_helper chmod from failure
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit fa64774e60940e1118b5ca496387d2eb0545acb2
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 10:26:36 2010 -0700

    Redeleting puppetmasterd integration test
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 797f4122c525c2ff30912a49e1c6887d997054de
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Mon Apr 12 10:12:57 2010 -0700

    Making SshAuthorizedKeys tests less brittle
    
    Also making them less likely to try to modify
    the local filesystem in any way.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 622bb70c20aaa79523ce8715d45ac103a270f8d7
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Apr 12 10:01:06 2010 -0700

    Markus's patch concerning string interpolation
    
    From email:
    
    Some of the errors I needed to track down were actually coming from my
    string interpolation branch:
    
        * I wasn't handling "Foo ${1} bar" as a regexp back reference (and I don't like it, but hey)
        * I wasn't warning about & passing on the "unneeded" backslash in strings like 'foo\"bar'
        * I fumbled part of the conflict resolution with Brice's hash patch.

commit 23adec5cf58226a01540c308dd67dfaa7a83f4e7
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Sat Apr 10 22:55:56 2010 -0700

    Fix tests that use or stub find_by_checksum, which I just changed the
    signature of.

commit 4ac8e2c3b08ba20318d146647c8c6244f97fc9bc
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 9 19:28:54 2010 -0700

    The pure-ruby YAML lib doesn't accept parameters

commit e31fe8ce42ac6582507761c10472ec0d8f5dd7dc
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 9 19:18:56 2010 -0700

    Fix a failure in new FileBucket where it was impossible to read from a
    bucket with a non-default path.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 3797c7a5af1024aaab08a905559ebd654fa978a6
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 9 18:45:36 2010 -0700

    Update YAML dir test to match behavior

commit 83d8bdaf52ddbb2de4ab8d4b8b7e1593b96e169f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 9 18:28:11 2010 -0700

    Fix heisenbug in spec/unit/provider/mount/parsed.rb
    
    spec/unit/provider/mount/parsed.rb would show a failure when
    spec/unit/type/mount.rb had been run prior.

commit dde69c32caa7cc30dd6cd5b06ff80828f4c47939
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 9 17:44:53 2010 -0700

    Remove test for old RDoc work-around

commit c5ce824a08c4c2a60a88b68875ca310b44426581
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Apr 9 17:04:02 2010 -0700

    Fixing various broken Resource::Type tests
    
    Also making the code a bit cleaner.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 6cd6c47efa75be82a5cb3e366caaa3bccfe33756
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Apr 9 17:03:41 2010 -0700

    Renaming and fixing puppetrun tests.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit a27013ac1980ad3978a68794396c15cfffa81a86
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Apr 9 16:20:57 2010 -0700

    Fixing calls to "class_scope" in Scope tests
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 84d68924c9e5538d7d40a9ff5cdd19a3f32874ad
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Apr 9 16:18:12 2010 -0700

    Fixing all 'require' function tests
    
    This involved making some tests better, but mostly
    just involved fixing calls to use new APIs and such.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit b643413da520fabb7ee81e8c710e30f43bc1475b
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Apr 9 16:02:32 2010 -0700

    Removing any mentions of :casesensitive setting
    
    It is a setting that was added years ago as a backward
    compatibility option and even if it still works, which
    is questionable, it has no purpose any longer.
    
    It just complicated the code and didn't do much, so it's gone
    now.
    
    Also simplified the interface of Leaf#evaluate_match, since it
    was now using none of the passed-in options.
    
    Finally, removed/migrated the last of the Selector/CaseStatement
    test/unit tests.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit fe140a283fc51216a460be24c19641e26724c92c
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Apr 9 15:55:17 2010 -0700

    Migrating "puppet" executable integration test
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit edef6478e0cc47c0d2db0198fcc54897f85657bb
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Apr 9 15:49:23 2010 -0700

    Fixing 'puppet' to directly run manifests
    
    It was previously requiring that you specify an application
    name, thus breaking the ability to easily run commands like:
    
        puppet ~/bin/test.pp
    
    Or even having '#/usr/bin/env puppet --verbose' in the first
    line of an executable script and having that work.
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit fff8d0465c1674f111b60c313fcdca6613262a85
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Apr 9 15:06:23 2010 -0700

    Fixing syntax warning
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit 7c253177fbebdeb81594779bfd5b63772de09fff
Author: Luke Kanies <luke@puppetlabs.com>
Date:   Fri Apr 9 14:59:09 2010 -0700

    Moving puppet back to bin
    
    Signed-off-by: Luke Kanies <luke@puppetlabs.com>

commit a4d1ba0534b5f6f310f8465dec5187ce7065c2bb
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 9 14:45:01 2010 -0700

    Puppet::Parser::AST::Leaf#evaluate_match "insensitive" renamed to
    "sensitive"

commit 404bdfa15aae89b813ec1d86d6b5d20cae345dff
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 9 14:39:45 2010 -0700

    Repair validate_checksum codepath, even though it is disabled.

commit e89549450434d09284bf1a851a39b74e71cb0d7f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 9 14:33:48 2010 -0700

    Puppet::Parser::Resource.new parameters have changed

commit 94651df232b0bc0fed066ac005cccc9d5db0c152
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 9 14:22:36 2010 -0700

    Add stub to Puppet::Parser::Collector test to prevent runaway stub
    failures

commit 40c1fb06162f2eebe6cd5e40a0e289cd568ec8e1
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Mar 21 21:14:12 2010 -0700

    Resolving conflicts with ???
    
    When checksum is a parameter corresponding to checksum_type in the filesets
    rather than a checksum "strategy" the value :none should generally be computed
    rather than provided.  If neither a source nor contents are provided, there is
    no need for a checksum and thus it should be :none; otherwise, use the provided
    value (or, if it's nil, let it pass through and be replaced by the default
    (:md5) in the bowels of the beast).

commit 105937041138694854904b7c5e23fdd2bd8af6d3
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Sun Mar 21 21:14:12 2010 -0700

    Fixing a typo from a regex
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 3eeebf51f8b444193227c36162d4e74a95e96b79
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Fri Mar 19 22:13:38 2010 -0700

    Fixing change printing for content/ensure
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 47c3ca18272e38f16d0e5690c2c9a0e0dbac3285
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Fri Mar 19 22:02:14 2010 -0700

    Converted File[checksum] to a parameter not property
    
    At the same time I removed all of the code in checksum
    that managed tracking changes to the checksum over time.
    I'll add it back in as I fix the fact that changes aren't
    being tracked like the should at the moment.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 44cba9cfb85a43f758c457bf3a5e661706f1e8f3
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 16 09:05:02 2010 -0700

    Adding "checksum?" helper method to Checksums module
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit d05d25c3fd1c3472060504edfa4fa3037bdd9781
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 16 08:43:14 2010 -0700

    Refactoring File[source] tests somewhat
    
    Replaced use of a stub resource with a real resource.
    
    This is in preparation for turning the 'checksum' property
    into a parameter.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit aab2374378e0db03e4657e327460406bc31da2c2
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jan 8 17:22:49 2010 -0800

    Resolving conflicts with luke:tickets/testing/2954

commit 86cf226916f793277e2405711993d7ccbc4e7965
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Fri Jan 8 17:22:49 2010 -0800

    Adding virtual and exported resource support to the DSL
    
    Also changed the internals - we're no longer using
    Resource instances with the ruby block, instead
    we're using a simple new class.  We had to do this
    because Resource has too many methods - e.g.,
    'file' returned the file name rather than
    created a new resource type.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 9d5ba413a7134fdffdcae5cefde2dd15cd1de19a
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Fri Jan 8 16:19:38 2010 -0800

    Cleaning up ResourceAPI tests
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 90607662c36aa4b5a055c3e68cd52c030ff08f98
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Fri Jan 8 16:04:23 2010 -0800

    s/DSL::ResourceHelper/DSL::ResourceAPI/g
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 6d2a10b40c9f77ea5101abe6e568ed5a798c04f3
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Fri Jan 8 00:49:36 2010 -0800

    Adding simplistic pure ruby interface
    
    This is a simplistic DSL - you can create
    resource types (defined resources), classes,
    and nodes, and they can call functions and
    create resources.  Nothing else, at this point.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit e515513b5cb065f3e43f5c2880d0452d8e2b25b8
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Jan 7 22:55:09 2010 -0800

    Adding environment support to parser resources
    
    We just use the scope's environment.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 30f49bb28fd0b2bb771ed3fa75a2d70dbda361f3
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Nov 23 10:03:47 2009 -0800

    Resolving conflicts with ???
    
    Brice's hash implementation introduces new occurances of SQTEXT/DQTEXT which, with
    string interpolation, should simply be STRING.

commit b7015d7610497f113479fad5f360aa5e03a458c5
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Nov 23 10:03:47 2009 -0800

    Moving the string interpolation parsing to the parser/lexer
    
    This patch moves the syntactic aspects of string interpolation up
    into the lexer/parser phase, preparatory to moving the semantic
    portions down to the as yet unnamed futures resolution phase.
    
    This is an enabling move, designed to allow:
    
    * Futures resolution in and between interpolated strings
    * Interpolation of hash elements into strings
    * Removal of certain order-dependent paths
    * Further modularization of the lexer/parser
    
    The key change is switching from viewing strings with interpolation
    as single lexical entities (which await later special case processing)
    to viewing them as formulas for constructing strings, with the internal
    structure of the string exposed by the parser.
    
    Thus a string like:
    
        "Hello $name, are you enjoying ${language_feature}?"
    
    internally becomes something like:
    
        concat("Hello ",$name,", are you enjoying ",$language_feature,"?")
    
    where "concat" is an internal string concatenation function.
    
    A few test cases to show the user observable effects of this change:
    
        notice("string with ${'a nested single quoted string'} inside it.")
        $v2 = 3+4
        notice("string with ${['an array ',3,'+',4,'=',$v2]} in it.")
        notice("string with ${(3+5)/4} nested math ops in it.")
    
    ...and so forth.
    
    The key changes in the internals are:
    
    * Unification of SQTEXT and DQTEXT into a new token type STRING (since
      nothing past the lexer cares about the distinction.
    * Creation of several new token types to represent the components of
      an interpolated string:
    
          DQPRE    The initial portion of an interpolated string
          DQMID    The portion of a string betwixt two interpolations
          DQPOST   The final portion of an interpolated string
          DQCONT   The as-yet-unlexed portion after an interpolation
    
      Thus, in the example above (phantom curly braces added for clarity),
    
          DQPRE    "Hello ${
          DQMID    }, are you enjoying ${
          DQPOST   }?"
    
      DQCONT is a bookkeeping token and is never generated.
    * Creation of a DOLLAR_VAR token to strip the "$" off of variables
      with explicit dollar signs, so that the VARIABLEs produced from
      things like "Test ${x}" (where the "$" has already been consumed)
      do not fail for want of a "$"
    * Reworking the grammar rules in the obvious way
    * Introduction of a "concatenation" AST node type (which will be going
      away in a subsequent refactor).
    
    Note finally that this is a component of a set of interrelated refactors,
    and some of the changes around the edges of the above will only makes
    sense in context of the other parts.

commit 07cfdd0a5515eac9d7aafb5c3c53070a753630e0
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Feb 6 11:34:16 2010 -0800

    Resolving conflicts with jesse:feature/master/3394
    
    Without this change, rake spec crashes with a message about feature being undefined.

commit ad148d63a638c5ae5709463b97a8f70ce1cce607
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Feb 6 11:34:16 2010 -0800

    Resolving conflicts with luke:tickets/master/2759

commit 922cf1a8fc23b0cc341f5746d1c83b533b5761a8
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Feb 6 11:34:16 2010 -0800

    Resolving conflicts with ???
    
    class_scope was moved to scope.

commit 0d704686b923c7827b9fe16f20d4f8722c125d88
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Sat Feb 6 11:34:16 2010 -0800

    Finishing renaming :params to :parameters internally
    
    I had only done this partway, because it seemed easier,
    but not surprisingly, it ended up being more complex.
    
    In addition to those renames, this commit includes fixes
    to whatever tests I needed to fix to confirm that things
    were again working.  I think most of these broken
    tests have been broken for a while.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit ad93d0e442d4e4eff69bb3f444b2eee70a95dfa8
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Sat Feb 6 11:31:52 2010 -0800

    Forcing parent evaluation in resource types
    
    When a class is evaluated, its parent class
    needs to be evaluated first.  This forces that
    evaluation.  We somehow lost it when we converted
    the resource types out of AST.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 6e4db8261af6372c6acad4e8ff3f7a32e7a074fb
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Sun Jan 31 13:40:33 2010 -0800

    Fixing type/title resource resolution
    
    This code is impressively difficult, because
    sometimes resource types act like resources (classes
    and nodes are singletons) and sometimes like resource
    types (defined and builtin resources).
    
    So, to get nodes to show as Node[foo] and classes as
    Class[Foo::Bar], but defined resources to show up as
    Foo::Bar[baz], we have to do some silliness.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit aa659f27aaa40507cb1199df048fb85b2c586944
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Sat Jan 30 23:58:55 2010 -0600

    Converging the Resource classes further
    
    I was using 'params' and 'parameters', so
    I fixed that and extracted the differences in
    how they handle parameters into a stubbable method.
    
    This allowed me to almost entirely remove the subclass's
    'initialize' method.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 5401a7ca8550ade0443188b505a104ca5726ec80
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Sat Jan 30 23:51:59 2010 -0600

    Adding strictness checking to resources
    
    This is used for AST resources (and fixed the last
    of the tests I broke in spec/).
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 9c867e6d79dcc56cd34683c9a339dc729ad2d291
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Sat Jan 30 23:36:32 2010 -0600

    Fixing most of the broken tests in test/
    
    This involves a bit of refactoring in the rest
    of the code to make it all work, but most of the
    changes are fixing or removing old tests.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 274d1c5e78250640b8d2c40201ca2586c0088f32
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Sat Jan 30 14:17:14 2010 -0600

    Adding tmpfile cleanup to tests
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 7089446697ad550c22012bc2b5572030727d67e1
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Fri Jan 29 20:57:21 2010 -0600

    Removing Resource::Reference classes
    
    This commit is hopefully less messy than it
    first appears, but it's certainly cross-cutting.
    
    The reason for all of this is that we previously only
    looked up builtin resource types from outside the parser,
    but now that the defined resource types are available globally
    via environments, we can push that lookup code to Resource.
    
    Once we do that, however, we have to have environment and
    namespace information in every resource.
    
    Here I remove the Resource::Reference classes (except
    the AST class), and use Resource instances instead. I
    did this because the shared code between the two classes
    got incredibly complicated, such that they should have had
    a hierarchical relationship disallowed by their constants.
    This complexity convinced me just to get rid of References
    entirely.
    
    I also make Puppet::Parser::Resource a subclass
    of Puppet::Resource.
    
    There are still broken tests in test/, but this was a big
    enough commit I wanted to get it in.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 4871c909cd28c82b64d0b62d8a27e62737d8733d
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Fri Jan 29 18:11:10 2010 -0800

    Adding support for class parameters
    
    This is functional syntactically but not yet through
    the whole system, because of the changes made to
    how resource types are managed.  See the next
    commit for that fix.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 4709e9bfa5d3ab654559e3bc5d3f13c3c0459577
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Jan 27 20:39:16 2010 -0800

    Removing :paramcheck and :typecheck settings
    
    These were also set to true and are holdovers
    from YAGNI stuff from years ago.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 744295d1058e640b778bdac39202c97adbc59c9f
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Jan 27 10:19:09 2010 -0800

    Allowing Environment.new to take an environment
    
    This can happen because we're almost always converting
    to environment instances from strings.
    
    Shouldn't happen often, but it's easier to be more failure-tolerant.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 4f907c66ab3ee973323ef8a14bc5192bcc78967b
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Jan 25 17:56:50 2010 -0800

    TypeCollection now supports namespace arrays
    
    We previously only supported a single namespace when searching for
    resource types et al, but the whole system actually relies on
    an array of namespaces and search paths, so this adds
    that functionality all the way down, as it were.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 2fa0a489e26fc2512783c67b1b4579a03f8a20a6
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Fri Jan 22 00:48:37 2010 -0800

    Adding parameter validation to Puppet::Resource
    
    This will allow us to remove all of the parameter
    validation from the other Resource classes.
    
    This is possible because resource types defined
    in the language are visible outside of the parser,
    via the environment.
    
    This will enable lots of code removal and simplication.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit aff59926bb8c8e7a136d6e87359e9857a4512da9
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Jan 21 23:18:34 2010 -0800

    Fixing failing Environment unit tests
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 61636e4a15c365f57bc510fd601b1ac6be460614
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Jan 21 23:13:52 2010 -0800

    Tuning file load order
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 7a99a1db262aa41dfe48ea38d1cc86ca0beb2696
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Jan 21 23:04:35 2010 -0800

    Removing obsolete Settings comments and require
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit af9a92086df8fcfbb572eb3d2bc11eee383ef9e4
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Jan 21 22:45:43 2010 -0800

    Adding an environment helper
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit c8e89cc1a69ff5827ad40439a2c903c24ae42aba
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Jan 21 22:00:10 2010 -0800

    Changing the interface of Puppet::Resource
    
    We need the ability to set the namespace and
    environment at initialization so the resource
    can look up qualified types.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit b7ea1806703df2976d5cd6fade5503c008332526
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Jan 21 21:46:12 2010 -0800

    Partially fixing #2954 - Adding class parameters
    
    This isn't 100% functional yet - I need to refactor
    some of the internals to make the class lookup work
    everywhere.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit cbe2c49c8ef2fc53664461947919958be0a0631c
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Jan 21 17:45:02 2010 -0800

    Fixing test structure
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 4bff5062a794adb8ebedb927cca33b182e88dfd2
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Apr 2 13:51:47 2010 -0700

    Indirector/FileBucketFile warnings
    
    Ruby was spewing warnings that there weren't enough parentheses.
    I have fixed this by adding parentheses.

commit 0917248d801de3c345938ceda960fc0396539982
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 30 17:45:49 2010 -0700

    REST: Fix a state leak causing test failures

commit 8f9fc30bb3b992322a553aa7dc0c504af5e44250
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 30 16:33:44 2010 -0700

    REST FileBucket: REST barfs on relative paths
    
    Force FileBucket to always send absolute (real) paths

commit 23ccefe0e8b51af19a0283c0d8eb3de09b6e4c31
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Mar 29 17:10:40 2010 -0700

    REST: hide Request object
    
    This change to the REST branch restores some sanity by explicitly
    allowing a destination URL for indirector save() calls,
    removing a hack that I was using to accomplish this.

commit d8e1b272ec321d5f86558672252de60983751a15
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Mar 18 18:48:46 2010 -0700

    Feature #3394 REST runner, execution
    
    puppetrun uses REST to trigger puppet runs.

commit 1603f7363728dc41f67cd189ca0dcbf074ec44b4
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Mar 18 19:01:29 2010 -0700

    Feature #3394 REST Runner, preparation
    
    Rename Puppet::Agent::Runner to Puppet::Run, for consistency

commit 16658a0403135bc23ce18bcf2c72c4725ac25faf
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Mar 17 13:28:44 2010 -0700

    Feature #3383 Part 2: Remove RAL XMLRPC
    
    The XMLRPC interface for RAL resources was broken, and has been
    completely replaced by the REST interface.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit eda649b6395b38dcb1a5719483222bfbfa60302c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Mar 17 12:46:42 2010 -0700

    Feature #3383 RAL over REST
    
    ralsh --host works now, and is using REST.
    A node running puppetd --listen will allow ralsh to find, search, and
    modify live resources, via REST.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 09b14120fe81a2955a1e4572ec0b8040ef540ade
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Mar 17 11:28:06 2010 -0700

    Fix tests on #3347

commit e5a78009f6bd593e7e3957f0dadb470e623396dd
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Mar 15 14:16:09 2010 -0700

    Feature #3347 REST-ified FileBucket
    
    FileBucket Files have been reimplemented as an indirector terminus so that
    they can be transmitted over REST.
    The old Network::Client.dipper has been replaced with a compatibility later
    in FileBucket::Dipper that uses the indirector to access filebucket termini.
    
    Slightly revised patch:
    * No longer allows nil contents in FileBucket outside of initialization
    * Uses File.exist? instead of the deprecated File.exists?
    * Tweaks JSON serialization and de-serialization to include "path"
    
    Deferred issues:
    * Feature #3371 "FileBucket should not keep files in memory".
    * Feature #3372 "Replace FileBucket Dipper with more idiomatic calls"

commit f838389da0530201849958444dbbe60977935ad0
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Mar 17 12:03:09 2010 -0700

    Fix a failing test in #3115
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 9acd0b2b6d83881dc529c117637aff63a6c44f8d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jan 21 17:16:38 2010 -0800

    Feature #3115 REST-ified status()
    
    This patch re-implements the status() remote procedure as a REST interface.
    
    A running server returns key-value pairs, currently the only implemented
    key is "is_alive" which will always be set to true.
    
    Some future tool will consume this by:
    Puppet::Status.indirection.terminus_class = :rest
    Puppet::Status.find('https://puppet:8140/production/status/default')
    
    Now with unit tests.
    plus fixes a typo.
    plus integration test and default security setting.
    plus tests suggested by Brice.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit b581c2348e784ce5d857a4c1c0686399b87cc13f
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Mar 3 20:35:46 2010 +0100

    Fix #3229 - use original value in case/selector regex matching
    
    The issue is that case/selectors are downcasing the value before it
    is compared to the options.
    Unfortunately regex are matching in a case sensitive way, which would
    make the following manifest fail:
    
    $var = "CaseSensitive"
    case $var {
      /CaseSensitive/: {
         notice("worked")
      }
      default: {
        fail "miserably"
      }
    }
    
    This patch fixes the issue by making sure the regexp match is done
    one the original (not downcased) value, but still doing a case
    sensitive match.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 490a03d55e57a5a54202207b44eb406dda4c8c65
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Dec 4 16:50:38 2009 -0800

    Cleaning up a test.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 576accd675e43c6bf7af1c8e0f66151f798a4820
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Dec 4 16:49:57 2009 -0800

    Removing unused Checksum::File terminus
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 58920a0bb95b8579162500856b2e6524ff20168e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 1 08:31:49 2009 -0400

    Converting File terminus to use formats.
    
    This fixes most of #1943, except the checksum indirection
    still uses this.
    
    This basically always chooses the most recent file when
    finding files, and saves the file with the default format.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 37fd6ae6e86c8c701eae60831232a43032e58b5e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Dec 4 16:45:27 2009 -0800

    Fixing datadir defaults to match new standards
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bf3359e697baf5443283b87de6183b498093a524
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 23 14:39:54 2009 -0500

    Adding client and server data dirs
    
    These replace the yaml and file dirs,
    since in #1943 we're merging the file and yaml
    Terminus classes.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b41d53596cdcb6d7220b93926f6eedf171c09c46
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 23 13:43:38 2009 -0500

    Adding filename extension support to formats.
    
    This is toward fixing #1943 - we need the ability
    to easily convert between file extensions and file
    formats.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7504f1ede94900ab42cd6e9c4ff9c8a5cb9e65ee
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Jan 7 17:23:31 2010 -0800

    Resolving conflicts with ???

commit d0389f4d16efbeccf47d6cd2f1b0854ccb1c88d5
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Jan 7 17:23:31 2010 -0800

    Renaming Parser::ResourceType to Resource::Type
    
    Basically, these classes (ResourceType and ResourceTypeCollection)
    don't really belong in Parser, so I'm moving them to the
    Resource namespace.  This will be where anything RAL-related goes
    from now on, and as we migrate functionality out of Puppet::Type,
    it should go here.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 67ef78d9f231661d0fdd6260d470cf0d06f1bac2
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Thu Jan 7 13:08:50 2010 -0800

    Removing Interpreter class
    
    It's no longer necessary, given the new ResourceTypeCollection
    class.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit b82b4ef04282ca0006931562f60459a1591b6268
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Jan 6 17:42:42 2010 -0800

    All non-transient parser references are gone
    
    We now use references to the ResourceTypeCollection
    instances through the environment, which is much cleaner.
    
    The next step is to remove the Interpreter class.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 644ad7e41880fe8c9e73a099e9d6644e19828f46
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Jan 6 16:44:48 2010 -0800

    Fixing callers to Parser to only pass environment
    
    We previously passed a hash of options but now just
    the environment.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 9f8e0c0516421b0250454d54c935c8517170a93f
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Jan 6 16:36:16 2010 -0800

    Using the RTC helper to find the known resource types
    
    We previously defined the method statically.
    
    This also renames the method to match how the environment
    thinks of them - known resource types, rather than resource
    type collection.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 1705366184133ccbf6d77ac8937ce79760f97d00
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Jan 6 16:35:11 2010 -0800

    Always warning if autoloading a file fails
    
    This stops hiding some really difficult to track down
    problems.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 7bef2e0107451310bc8674134ee28168a4bdfe5d
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Jan 6 16:26:58 2010 -0800

    Adding helper module for finding known resource types
    
    This is so everyone doesn't have to define the same method
    everywhere.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 804105d925b526bcf209910172bc14bdeafaf4e7
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Jan 6 16:19:09 2010 -0800

    Moving Rails initialization to Compiler terminus
    
    It was previously handled by the Interpreter,
    but we're planning on getting of that.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 26b272b218b02115ce66edbc6dd4cffd231105ab
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Jan 6 16:08:13 2010 -0800

    Parser now uses Environment resource type collection
    
    This is the last step enabling us to make it so no one
    needs to maintain these references to the parser.  Instead,
    everyone will just get access to the type collection from
    the Environment.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit cb169082ea4d8764c25e81183754c862fd170492
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Jan 6 16:03:33 2010 -0800

    Adding 'known_resource_types' to Environment
    
    Each environment now has its own known collection of resource
    types, and it is responsible for caching as necessary.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 201889bd30260698478d8469517299b290053189
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Jan 4 17:02:28 2010 -0800

    Renaming LoadedCode to ResourceTypeCollection
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 2c2b3c27e242f7ee99354c7d4f0d2a18d5710f49
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Jan 4 16:57:59 2010 -0800

    Storing per-environment LoadedCode instances
    
    This will soon replace all of the env/parser mungling
    we have to do.  A given process will only be able to
    have one collection of code per environment in memory.
    
    This is somewhat limiting, in theory, but some global means
    of looking up code collection (LoadedCode instances) must
    exist for the pure ruby stuff to work.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 6bf19532710fdb0e5619e00d6656e6b535297247
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Jan 4 16:44:44 2010 -0800

    Removing old, never-used DSL code
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit df2d39248dd0bb2adc7b4f723722079cad2749ad
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Jan 4 16:43:15 2010 -0800

    Adding support for parsing ruby files
    
    This doesn't work without the later commits - it just relies
    on Ruby to read in Ruby files.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit b938edf35fc50e6a43aa09f1ec8415b19f06b2af
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Jan 4 16:34:40 2010 -0800

    Fixing test structure
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 847233ffd66005124f23d028601dfe565c2bf026
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Jan 4 16:32:33 2010 -0800

    Adding []/[]= support to Parser::Resource
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 6e04fbaf0a3c0e500d1fb0944fa02fbaaf2eb1b8
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Mar 24 19:38:43 2010 -0700

    Fix for #3366 - --tags '' treated as boolean 'true'
    
    This is the patch from Mike Pountney <Mike.Pountney@gmail.com> off
    the list with the additional test Luke requested.

commit 33b565a0d76b07f354e2e145e7e03e5a5db69e48
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Mar 25 15:54:33 2010 -0700

    Fix for #3424 and tests to prove it.
    
    The original pure ruby yaml patch missed some edge cases; specifically, classes
    that were modified by the syck version to directly call it and thus never
    reached the pure ruby version.  This adds monkey patches to all of those case
    which we might reasonably care about (omitting, for example, calls within the
    syck version to itself) and tests which show that the monkey patch works.

commit 4820a1b569444f942b3ceb6ee3a0832ed6faf613
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Mar 22 22:24:22 2010 -0700

    Fix for #2604 Pure Ruby yaml generation
    
    This patch brings in a pure ruby yaml generation library, analagous
    to what we did with JSON/PSON, but without the renaming dodge we had
    to do in that case to avoid fighting with Rails.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 1c5b3d7d4457a7c2e643a3ac160a95f14b347397
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Mar 24 15:17:04 2010 -0700

    Fixes #3113 - When importing a manifest puppet needs to chill

commit e6a720b67abc16e0a008021b8192f84c11060635
Author: Martin Englund <martin@englund.nu>
Date:   Tue Mar 23 12:04:27 2010 +0100

    Fix for #3412 install.rb should not put "." first in the tmp_dirs
    
    Signed-off-by: Martin Englund <martin@englund.nu>

commit b1b3bcfb5aaace5b6f678b63b02b612cf33a1781
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jul 31 15:26:37 2009 -0400

    Resolving conflicts with testing
    
    Jesse writes:
    ethanrowe:tickets/master/2239 leaks state in the spec. After the spec
    is run, Puppet::Application is left in a :restart_requested state, and
    several important behaviors, particularly Puppet::Transaction#evaluate
    are disabled.
    
    It's order dependent, so changing the mtime of spec files makes the
    failures appear and disappear.
    
    This spec file was generally pretty good about keeping state from
    getting out, but one test was missing a stub for a dangerous call.
    
    I wouldn't be surprised if this cleared up other errors in testing.

commit ba2a3afb45199e3b85db03a1bb54a925bffce08f
Author: Ethan Rowe <ethan@endpoint.com>
Date:   Fri Jul 31 15:26:37 2009 -0400

    Fix 2239 (step five): introduce new Puppet::Transaction#stop_processing? flag and associated check thereof within the resource evaluation code.  This should allow for the transaction to bail out of its processing if it finds that a stop has been requested, based on the state of Puppet::Application.stop_requested?.

commit 9cb68417670d6bc98caf1169af4ecafb59f4c14c
Author: Ethan Rowe <ethan@endpoint.com>
Date:   Thu Jul 30 15:28:16 2009 -0400

    Fix 2239 (step four): Refactored Puppet::Daemon's stop/restart methods to set status flags appropriately in Puppet::Application, and removed call to now-deprecated @agent.configure_delayed_restart.  This should get the restart and stop behavior for daemons and their agents working nicely with the new global process status interface of Puppet::Application.

commit 82f852a994b3b9b7f487e639d13a6bf2a7dac5b4
Author: Ethan Rowe <ethan@endpoint.com>
Date:   Thu Jul 30 15:06:04 2009 -0400

    Fix 2239 (step three): Refactored Puppet::Agent to base starting/restarting behaviors and predicates on new run-status interface of Puppet::Application.

commit edbe9b6a988932c4b91dd194bc00ca201626d0ae
Author: Ethan Rowe <ethan@endpoint.com>
Date:   Thu Jul 30 14:09:26 2009 -0400

    Fix 2239 (step two): introduce Puppet::Application.controlled_run method to provide simple status-restricted execution of a passed in block; this can replace the process status checks and properly handle delayed restart behavior for Puppet::Agent.

commit 2cf647c34f5e71fc30fccb2de0c5acef5799b924
Author: Ethan Rowe <ethan@endpoint.com>
Date:   Thu Jul 30 01:17:01 2009 -0400

    Fix 2239 (step one): introduce global settings represeting application run state with methods for
    setting the state and appropriately-named predicates for querying state, all in the Puppet::Application
    class itself.  To be used by Puppet::Daemon and Puppet::Agent and Puppet::Transaction for better response
    to TERM, INT, HUP.

commit ce944a5d9ae7b18a2557eb282ac20e4ff49ce6f3
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Apr 8 18:22:38 2010 -0700

    Fix unit tests in file/target.rb

commit 481ddb845c5ae88965088cc908877bffa3311b1f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Apr 8 15:25:59 2010 -0700

    Name change of event in ral/type/exec.rb

commit 1ebc91e1bd1a9bd13dccb23787e6a7da7bca0e99
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Apr 8 14:10:00 2010 -0700

    Use a helper function to evaluate a resource since the API has changed

commit bfb1fa5ebc366e29a47308729854cff49082ee51
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Apr 8 01:30:20 2010 -0700

    Allow skipped resources to process events

commit a18b05d846dd8d8787cb0935160a5ee9a64095c2
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Apr 8 01:16:05 2010 -0700

    Actually invoke the allow_changes? method in ResourceHarness

commit bf2f08869ced5a0cac8e399f6bc35ea2c4ddc44c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Apr 8 01:00:46 2010 -0700

    Generated resources' events are actually bound to the resource that
    generated them.

commit 50ed75b5c2bca5edeec2a3a6f60f6b5c16483a1a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Apr 7 13:42:17 2010 -0700

    Remove test that tests internal class structures which have changed.

commit 177907935b62fe01e5de182abb6c9c21f2f3bfd4
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Apr 7 12:17:19 2010 -0700

    Remove stale set_trigger
    
    Delete tests that are superceded by specs in "Changing Transaction to
    use the new ResourceHarness"

commit 9154acadf336db7f231df524749f987e885f5b0c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Apr 7 11:59:45 2010 -0700

    Since the types stored in resource's @parameters have changed,
    we need to also change include? method to be more robust.

commit 2a2ab759674a1f748e20c1c075d01cb74a4328d2
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Apr 7 10:48:58 2010 -0700

    Fix test failures due to name changes of event symbols

commit 0a72a98c16a4cb2c507069b875da88a88dd763f8
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Apr 5 20:58:56 2010 -0700

    Remove rollback test, since rollback was removed.

commit 010907b816699b8b0d7419bec31a5f4e253d7510
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Apr 5 18:21:09 2010 -0700

    Mark resource/status as failed if they are associated with a failing
    event.
    
    This restores behavior for resource dependencies that was broken
    in the #2759 series.

commit 17bccb0ff3c340116cc17a83fda7b2747d2c93ae
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Apr 5 15:50:19 2010 -0700

    Restore noop non-behaviours
    
    In the #2759 series, noop was altering the synced timestamp and calling
    the flush() method on nooped resources. This patch prevents those things
    from happening.

commit 8465cd08d0e522c8ef871df7d3a5bf216e1d7d59
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Mar 26 17:02:14 2010 -0700

    Resolving conflicts with reinh:feature/master/single_executable
    
    Puppet is now main, and the variable got renamed to reflect that.

commit 0f768ed335424253b8f1f66788a076f451b37170
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Fri Mar 26 17:02:14 2010 -0700

    Removing now-obsolete user tests
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 76274413ded0c9260532984eb9484c6db9e186cf
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Fri Mar 26 16:55:10 2010 -0700

    Fixing most failing test/ tests.
    
    This is mostly just adjusting existing tests to
    meet new APIs, but it's a small amount of fixing the
    code to meet new standards and an even smaller amount
    of porting code over.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 9d9b20f4e6d4bd3501033d58b0e93411e40a147a
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 23 10:41:15 2010 -0700

    Fixing Configurer interface to transaction report
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit eb0a4b5833476b51417a7047b5fb6e05843ff05b
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 23 10:35:00 2010 -0700

    Fixing fingerprint tests to work with new log validation
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit f4ef039245e14d278955f0692296511e4e45c744
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 23 10:31:55 2010 -0700

    Changing REST report integration test to use new interface
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit fdefb646e722207c57fee9decf4e22fa582a072d
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 23 10:30:32 2010 -0700

    Fixing "require" function to use new class interface
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 266bc08c449b5e879d3501d69b69a722e8b92d75
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 23 10:21:29 2010 -0700

    Removing now-obsolete "retrieve" method on package type
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 67a75dbc579f157829be05776f9eea0b06380064
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 23 10:20:44 2010 -0700

    Fixing broken selinux tests
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 2777e1f052a51f0f52086cdfbea790902b0cecdc
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Mar 23 10:00:11 2010 -0700

    Fixing feature validation when passed one item
    
    When I changed how the validation errors worked
    I accidentally caused the feature list to need
    to be an array rather than supporting either.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 5aa26d08892010fc62de6adc278f07c8748d75e0
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Mar 22 16:42:03 2010 -0700

    Changing method profile for other event queueing
    
    It wasn't clear in the first refactor if this was
    necessary, but doing the performance optimization
    made it clear it was.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit ec7ea27e356dc159b37cc2a09b6f14841e796ab2
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Mar 22 16:39:21 2010 -0700

    Refactoring event queueing for performance
    
    This does some normalization so we're not doing
    duplicate queries for large event collections.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 68ce086e6b57f67998c52073109e0cca0aee7002
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Mar 22 16:31:42 2010 -0700

    Changing the method profile of EventManager#queue_event
    
    It now takes multiple events instead of just one.  This will
    help simplify a bunch of performance optimizations.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 9919b14f262c994a58eb202cda408f1b90d728e0
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Jan 20 02:21:54 2010 -0800

    Moving Metric management to the reports
    
    This is one less bit that the transaction does.
    The resource status objects had nearly enough information
    to do everything, so I just added that last bit, and moved
    everything over.  It's all much cleaner now.
    
    I had to change some existing, internal APIs, but mostly
    this should be hidden from outside users.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit a9fc13409db7147918eeeb47e91315c6eb980432
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Wed Jan 20 01:50:27 2010 -0800

    Removing mention of @changes in Transaction
    
    This is handled in the Status instances now.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit a18769da31e03e05277d6ad52ca1f38acee5ecbd
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Jan 19 23:40:59 2010 -0800

    Cleaning up the report tests a bit
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 386b3e567f09c1ff1eb8ba4bb0a4f6432d3fab31
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Jan 19 23:24:24 2010 -0800

    Fixing #2759 - reports now have complete change info
    
    This includes every event generated in the transaction
    and a Resource::Status object for each resource managed,
    with per-resource information in it.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit fbd5b0a2d67b28c3e9ab0f161c1bcfa918ee0b6e
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Jan 19 23:00:49 2010 -0800

    ResourceHarness now doesn't check params with no 'should'
    
    I hadn't been skipping parameters that didn't have a
    'should' value set.  This almost always resulted
    in the right behaviour, because most properties
    correctly just short-circuit to being in sync
    if the 'should' value is nil, but this encodes it
    at the harness, which is where it should be.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 3f6c9481ce9ac59fb3a84ab6792543d039ee403f
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Jan 19 18:24:15 2010 -0800

    Changing Transaction to use the new ResourceHarness
    
    This is a much messier commit than I would like,
    mostly because of how 'file' works.  I had to
    fix multiple special cases, and I had to move others.
    
    The whole system appears to now work, though, and we're
    ready to change reports to receive resource status
    instances rather than events.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 60515991a93df79d1d34e0df0d8a7d99ab0f4fac
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Jan 19 17:59:02 2010 -0800

    Fixing log message when changes fail
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 149d5efa667e3f3cdaa3f50347216509392028da
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Jan 19 17:54:33 2010 -0800

    Fixing some compatibility and old tests
    
    We all know these tests should be removed,
    but hey, at least these ones pass now.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit c30494f15ccaf1c1f15a9fde8b5a46a9adc4894a
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Jan 19 15:45:27 2010 -0800

    Renaming some methods in Transaction::Change
    
    Renaming 'go' to 'apply', which is a much more
    reasonable name.
    
    Also removing the 'backward' and 'forward' methods,
    since they're not actually used anywhere.  (Well,
    'forward' was used, but it just called 'go'.)
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 8d5f052b08078f0f356b30fb3fed60eab4490f6d
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Jan 19 15:43:48 2010 -0800

    Adding Transaction::ResourceHarness class
    
    This is the interface class between Transactions and
    Resources.  It's a relatively ugly class, but it
    will hopefully allow us to move most/all of the messy
    interface code into this one, relatively small class.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 6651aa4fc84506b9d20076be28741516214c5d5d
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Tue Jan 19 15:42:59 2010 -0800

    Adding first version of Resource::Status class
    
    This is the class that will be returned in reports,
    and they'll contain the events being created.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 4bb35a7f229fca1ce838b9e2e74c0ada48908cfa
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 7 19:01:21 2009 -0800

    Fixing File type indentation
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 796d882a657565ebb41b7e366751e59b93fc9614
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 7 18:00:31 2009 -0600

    Removing last event collection transaction code
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e838bccaee658847e1b2dac5b7e2191a8148202c
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 7 17:46:19 2009 -0600

    Solidifying the RAL/Event integration.
    
    This has two changes:
    
    * Clarifies how we get the property and resource
      name (we pass the instance, the event converts to a
      string)
    * Logs at the resource's loglevel when there's no error
    
    These are related, because the event creator (resource) was
    passing in a string rather than an instance.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 977595bd712bfa25c176abb3983bc81df665ea7b
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 7 17:30:45 2009 -0600

    Refactoring the Change/Event/Property interface
    
    This gives all logging responsibility to the event, which
    can now produce logs identical to those produced directly by
    the property.
    
    At this point, the events are entirely supersets of the logs.

commit 5776fe4e33b5bb3399a2e72d76faeffb2bba1f4e
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 7 15:53:22 2009 -0600

    Cleaning up the Log initialization code.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2292b768c93a1ccba91cfe92d60c65ed936dd45c
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 7 15:48:57 2009 -0600

    Refactoring the RAL interface to logging
    
    Previously, the Log class knew a lot about RAL objects,
    but now the Logging module is the only one that does.
    
    This greatly simplifies the Log class, which is good,
    and means that whatever complexity does need to exist
    is directly exposed in the Logging middleware module.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d93d80a0afdbd53d87dc4a7498609117091e864b
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 7 15:21:19 2009 -0600

    Using Logging module in main Puppet module
    
    We've had essentially duplicate methods in this module
    forever, and this just removes that duplication.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c6dd180450404c74bac8aadbf68b297c5f74764c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 4 16:52:47 2009 -0600

    Adding tests for "Logging" module
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 242209d251c7807378d3af6d9bffbc9ed59be723
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 4 17:23:38 2009 -0500

    Correcting comments and making report timestamp internal
    
    We had some no-longer-correct comments in the Transaction
    class, which are now removed.  This also moves the timestamp
    for reports into the report class, so it's created at
    initialization by the report, rather than by the transaction.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a4b77f61f26b20a48e0e55f8fc8bfef338878e6e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 4 17:22:13 2009 -0500

    Failing in app/puppet if facts are not found
    
    This is a rare case in puppet, but at least will
    come up when we support routes.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f9254756348e76d557420e18d619dd68775437ae
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 1 15:32:50 2009 -0500

    Fixing file content logs
    
    These were logging 'unknown checksum' unless the files
    had a source specified.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 73f57f2bce4ea7951d765c4a695bae42a3e1100c
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 1 15:11:06 2009 -0500

    removing extraneous comment
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4be86015bd0a663f9e662186f7acbf8c3c8b421f
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 1 15:09:43 2009 -0500

    Adding Transaction events to Transaction reports
    
    This means that every event generated during a transaction,
    with all of its metadata, will now be in the report.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2aa579bdbd91db2cd9a154e0ead2b327fa9a8474
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 1 14:58:03 2009 -0500

    Removing a redundant method in Report
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5a8b460001337ac2971c9b8b9b61f600a86890bf
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 1 14:57:18 2009 -0500

    Removing unused code and adding a couple of tests
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 9a78beee0e4dadeaaff0c7b6a5f659f147f108c8
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 1 14:47:53 2009 -0500

    Adding tests for the 'report' log destination
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f2ed655d5e5a9b7c61b29cda229b63db2d73064e
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 1 13:28:49 2009 -0600

    Extracting event management into a separate class
    
    Thus pulls all event-related code out of Transaction.
    The Transaction class currently creates a single instance
    of this class, so it's nowhere near a "real" event manager,
    but at least it has very clean integration points and will
    be easy to upgrade as needed.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 329527f5173d17c9c2b788734033534009efcf04
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 1 13:16:39 2009 -0600

    Changing SimpleGraph.matching_edges to expect one event
    
    It previously worked with multiple, but the only caller
    actually only ever passed one event.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f8d7c44fea37dff3e9a86652699bffeab0fbe111
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 1 10:47:50 2009 -0600

    Moving event creation to the resource
    
    This allows the Transaction class to reuse the
    event creation code when it creates noop and restart
    events.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ee9cff91e1a22a52162d0b8de2aba57f1bbb7e76
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 1 07:57:50 2009 -0800

    Reorganizing Property class to match current style
    
    This is mostly changing some idioms, such as using
    "#{}" in strings rather than "%s" %.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4212f1c1a6ccfb51141278cd22762a9cd1d51900
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 1 07:47:11 2009 -0800

    Cleaning up Event creation
    
    The Property class is now completely responsible
    for creating the event, and it adds all of the metadata
    that a log message would normally have.  This provides
    a cleaner definition of responsibility, and will allow
    further cleaning up in later commits.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 828098734fd219d40dd1e9546fc829061cdeeb7e
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 29 09:29:47 2009 -0700

    Adding "type" instance method to enhance Demeterness
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ad90900e68a2c406f0e95dba3f780ad135415b14
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 29 09:21:34 2009 -0700

    Random code cleanup
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 32d34e945ffbc96105e991181f5be5dd12aee3c1
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 29 09:17:11 2009 -0700

    Moving Ensure property into separate file
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 3c86666f68d50eb1a45bf1e1b81b8ffad0f3b9c1
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 29 09:12:26 2009 -0700

    Moving Parameter utility classes into separate files
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2cbd9e85259ed1742f8a54a7e5b9825d0bb79d5e
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 29 00:23:05 2009 -0700

    Switching transactions to callback-based events
    
    Events are now queued as they are created, and
    the queues are managed through simple interfaces,
    rather than collecting events over time and
    responding to them inline.
    
    This drastically simplifies event management,
    and will make moving it to a separate system
    essentially trivial.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6a450c51eedc38b73d79389c19b8d5e5964a9d71
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 5 23:14:40 2009 -0700

    removing never-used code
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 379ac8fe91d25f9b77a47029484d60c09b8f8073
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 5 23:10:02 2009 -0700

    Moving log destination code into separate files
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b2d172878778156a6b6a9ff6088500eebec71a86
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Mon Mar 22 08:52:49 2010 -0400

    fixed a couple of typos

commit 7ab29c4eddd0914da7a18fc9c04144b2cebf4647
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Mon Mar 22 08:46:27 2010 -0400

    Unit tests for path changes

commit a8245d86f8d2bd94714cf1fd7654b662208faa0e
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Mon Mar 22 08:36:07 2010 -0400

    Handle path elements with ticks and spaces

commit 98581ad9d70b5c7a5fe65aee7117b6a92dab50fb
Author: Rein Henrichs <reinh@reinh.com>
Date:   Sat Apr 3 13:34:33 2010 -0700

    Fix builtins glob in single executable

commit b4b07f5be7b3ad506088746da05597cb30fadd14
Author: Rein Henrichs <reinh@reinh.com>
Date:   Fri Apr 2 14:25:02 2010 -0700

    Fix failing specs
    
    Some variable ns were missed in the rename

commit e7bc19a42f7e4fd128665d9af79bef35096532c9
Author: Rein Henrichs <reinh@reinh.com>
Date:   Thu Apr 1 17:29:43 2010 -0700

    Rename puppet application spec to main

commit c014c297eb69fa856f17a0faa69d478a338e788b
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 30 17:35:49 2010 -0700

    Renaming the old puppet executable

commit deff92d2bb830179fd68c42c02b193055b9b57be
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 30 17:10:44 2010 -0700

    Find both bin and sbin usage docs, fail gracefully

commit 3c8d0122c3d29e1e2877ff813cd953edb31550f2
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 30 17:10:03 2010 -0700

    Fix application name in bin/ralsh

commit be0ecf84edf051df84792067f6d873a70642872f
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 30 15:08:52 2010 -0700

    Initial puppet single executable
    
    - puppet executable delegates to available applications
      and provides basic usage information
    - Puppet::Application.applications accessor added for access by main executable
    - Ugly hack to make RDoc::usage work

commit 7a327775c14fc5fed3998918e9c69af939380617
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 13 19:13:43 2009 -0700

    Renaming applications, mostly removing 'puppet'
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b19a0442ed31cedd3846b9e26c25b5ea4b7ff22f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Mar 25 17:17:16 2010 -0700

    Some tests were leaking state when the test failed

commit 5b2802c73b2220ca5d4125f96d7a094f336a0415
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Mar 25 17:07:37 2010 -0700

    Typo in method call in test.

commit 6a148e2e979237434494094ec0be86dba9556f8d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Mar 23 22:09:14 2010 -0700

    Supressing warnings (not really failures) in test/unit

commit 06deee78babdb7f76d8fad32f2262fbac844aa29
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 23 15:41:57 2010 -0700

    Fix test using wrong Puppet util filesetting group

commit 74f516773eca4f1014f59b313bd69e0c6965fae3
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 23 15:34:11 2010 -0700

    Mock user in SUIDManager tests

commit 000d37a0baab69f1b7ccec641d5db6546c7a125b
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 23 14:54:37 2010 -0700

    Removing resources generate tests
    
    Tests that generating resources performs a check and only returns
    resources that check as true. There is already spec coverage for this
    behavior.

commit 11379c0e56bbb566ec9534a02a61546e6cce62a6
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 23 14:44:57 2010 -0700

    Removing old test for service/debian provider
    
    it has been superceded by an rspec spec.

commit 2b8125ccb75402b4ced3c2938243ec5309e78766
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Mar 23 14:34:01 2010 -0700

    Replace test/unit file write test with spec

commit 164f1ce85bad49c7e197deeb452828c94539e06e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 14 19:51:15 2009 +0100

    Allow adding single key to hashes
    
    This patch allow this syntax:
    $hash[mykey] = 12
    
    If the key already exist an error is raised. Hashes are essentially
    write only, like puppet variables.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit fd427a51bc2bd97656767acc7f6b48160f8e60c4
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 14 19:19:04 2009 +0100

    Raise an error when appending not a hash to a hash
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 75c32f910ea124a938a7035b3352c11a11b57d0c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Nov 10 16:43:37 2009 +0100

    Fix #2389 - Enhance Puppet DSL with Hashes
    
    This bring a new container syntax to the Puppet DSL: hashes.
    
    Hashes are defined like Ruby Hash:
    { key1 => val1, ... }
    
    Hash keys are strings, but hash values can be any possible right
    values admitted in Puppet DSL (ie function call, variables access...)
    
    Currently it is possible:
    
    1) to assign hashes to variable
    $myhash = { key1 => "myval", key2 => $b }
    
    2) to access hash members (recursively) from a variable containing
    a hash (works for array too):
    
    $myhash = { key => { subkey => "b" }}
    notice($myhash[key][subjey]]
    
    3) to use hash member access as resource title
    
    4) to use hash in default definition parameter or resource parameter if
    the type supports it (known for the moment).
    
    It is not possible to string interpolate an hash access. If it proves
    to be an issue it can be added or work-arounded with a string concatenation
    operator easily.
    
    It is not possible to use an hash as a resource title. This might be
    possible once we support compound resource title.
    
    Unlike the proposed syntax in the ticket it is not possible to assign
    individual hash member (mostly to respect write once nature of variable
    in puppet).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 9122ac51284086a050d61df8fe060616aaf83d3c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Mar 13 14:57:39 2010 +0100

    Fix #2929 - Allow checksum to be "none"
    
    File checksum is "md5" by default. When managing local files (not sourced
    or content) it might be desirable to not checksum files, especially
    when managing deep hierarchies containing many files.
    
    This patch allows to write such manifests:
    file {
      "/path/to/deep/hierarchy":
         owner => brice, recurse => true, checksum => none
    }
    
    Then puppet(d) won't checksum those files, just manage their ownership.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 73c8d0d4701f10995c81633b912bc6dc65a2cf78
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Mar 21 12:07:37 2010 +0100

    Fix #3186 - require function set relationship only on the last class
    
    Due to the fact that resource.set_parameter is overwriting the previous
    set_parameters, we were losing the previous relationships we set there,
    either in a previous call of require or in the same call.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit c5a4de28532eaaf8abf2496ca1d4cdc02e5f450a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Feb 17 15:36:26 2010 -0800

    Fixing #3185 Rakefile is loading puppet.rb twice
    
    A 'require' statement with a path confused ruby enough to cause the same
    file to get interpreted twice.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit c694c4d34fea8b45695222321930e64b8991887a
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Feb 9 22:25:38 2010 +0100

    Fix #3150 - require function doesn't like ::class syntax
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 075f3c8df516bd52d412dc8d88fe194cf4edfb5b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Feb 5 13:34:23 2010 +1100

    Added time module to tagmail report

commit dfb80825b1494601022dfd711f1266f884e721aa
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Wed Mar 17 08:56:36 2010 -0400

    Fixed the return types were valid, and removed the copy paste error with the exception logic

commit 6e16ea17413b46a149972da4690a0d6d7f7d7013
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Dec 7 17:43:09 2009 -0500

    Resolving conflicts with ???
    
    This actually fixes a bug in the patch, not a conflict per se, but it was small and this was the easiest way to fix it.

commit bca7e2c2cca97c33466609e299122c448e669b22
Author: Andrew Forgue <andrew.forgue@gmail.com>
Date:   Mon Dec 7 17:43:09 2009 -0500

    Add AIX package management support (installp&nim)
    
    This patch adds support for the native AIX package manager.
    
    It allows installation from either the name of an lpp_source (if you
    have a NIM environment configured, or from a directory containing .bff
    files.
    
    Signed-off-by: Andrew Forgue <andrew.forgue@gmail.com>

commit b2c9455293796ab1d726314f6e5d2bd021fd648c
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Dec 21 17:05:47 2009 -0800

    Fixing #3148 Settings#without_noop when run with no noop setting
    
    Some tests didn't define this setting which caused this method
    to fail.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 8bafc37a532b7bef541186e7bb719f50c0eda600
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Mar 13 14:44:56 2010 -0800

    Move scope parenting & class_scope from Compiler to Scope
    
    This refactor fixes about a quarter of the test failures on master and (I
    hope) will simplify some of the integration issues on the testing branch.
    It is my best guess at The Right Thing To Do (or at least a step in that
    direction) but I could be persuaded otherwise.
    
    The basic idea is to take responsibility for maintaining scope hierarchy and
    class_name -> class_scope mapping out of the compiler class and put it in the
    scope class where it arguably belongs.  To maintain the semantics, class
    scopes are all tracked by the "top level" scope, though this could be relaxed
    if the nesting semantics were ever needed.
    
    If this winds up being the right thing to do, related routines (e.g. newscope)
    should be sorted out as well.

commit 7403c6e34270c01bb342c128fb88064c257467fe
Author: Rein Henrichs <reinh@reinh.com>
Date:   Thu Mar 18 14:37:49 2010 -0700

    [#3392] Better Rakefile, remove puppetmasterd spec
    
    - Minor improvements to Rakefile spec task
    - Remove puppetmasterd spec, to be run as part of the testing matrix

commit de94f68a9e30379738722df3c52fc6bb7b056510
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Mar 22 17:30:35 2010 -0700

    Fixing tests in pkg provider

commit 4b55fb07741c3f3c3fbad21218acc061671a7c68
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Mar 22 17:53:55 2010 -0700

    bug #3407 Part 2
    
    My change to the Puppet::Module::InvalidName error's initializer broke a
    spec in a different file.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit f891ba29ffeafb5ded6fdd26ef7a5bcde219f76a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Mar 22 17:30:40 2010 -0700

    Fixing #3407 Failing tests in spec/unit/node/environment.rb
    
    A naked rescue in Puppet::Node::Environment was hiding expectation
    violations from the Mocha mocks.
    Specifically, 'modulepath' expectations were failing, as Puppet::Module now calls
    Puppet::Node::Environment#modulepath internally.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit af9c19ab7fa61cc4ed423d69f76bdce5b469d237
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Mar 22 15:58:06 2010 -0700

    Bug #3406 augeas spec fails if there is not a default provider
    
    So I stubbed out the default provider.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 718a87a436dd9b14d78e8b0220da471b7c7b282a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Mar 22 14:18:40 2010 -0700

    Bug #3402 Stub returning invalid type for :noop
    
    A stub was causing a test failure by returning a string for a parameter
    that requires a boolean.

commit 88d6cd5368668b0cf203f6363032adc8d166e876
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Mar 22 13:53:50 2010 -0700

    Bug #3401 Spec failed due to missing manditory setting in mock
    
    Puppet::Util::Settings#use now requires the :noop setting to exist, and
    this test was not providing one in its mocked default structure.

commit d9920bc4fdad38c7c753bf9cc137c064c33ae7a6
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Mar 22 13:32:49 2010 -0700

    Bug #3400 Bad mocks causing failing tests
    
    New code was calling a mocked method that was stubbed too broadly,
    causing the whole thing to act strangely.
    I've tightened the existing stub and stubbed the new method call.

commit c6f02f2ee0c9b14f1106b5f6fa8e61cd92cf6f06
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Feb 17 14:05:06 2010 -0800

    Fix #3167 Duplicate constant warnings in dpkg.rb
    
    There's a limitation in Ruby 1.8.x that makes constants behave
    differently than developers seem to expect:
    Constants defined inside a do/end block do not get inserted into the
    namespace of 'self', they instead go into the toplevel (Object)
    namespace.
    These providers exhibit bugs since they use constants with the same
    name in the same namespace.
    Other providers and other dynamically generated classes using constants
    without an explicit namespace should be considered to have a code smell.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 5aa596c99cac2e578860dc236ec99b908840518d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Feb 9 22:25:38 2010 +0100

    Fix #3150 - require function doesn't like ::class syntax
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 27322e5460130b854835aef56ab7076bab83a00b
Merge: 70c71c5 71653a7
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Feb 9 15:17:53 2010 -0800

    Merge branch '0.25.x'
    
    Conflicts:
    	lib/puppet/agent.rb
    	lib/puppet/application/puppet.rb
    	lib/puppet/configurer.rb
    	man/man5/puppet.conf.5
    	spec/integration/defaults.rb
    	spec/unit/configurer.rb

commit 3457b876a104e6ae20d570cd4cf235881d869aaf
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Feb 5 13:34:23 2010 +1100

    Added time module to tagmail report

commit 71653a74d91b1e6e9845b4a41249861319c0d6b0
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 9 00:18:13 2010 +1100

    Fixed #3162 - tidy does not remove empty files when "size => 0" is set
    
    Thanks to Stig Sandbeck Mathisen for the fix
    
    See also http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=513309

commit efd0f76c3b40fb15528b3226687eb1ab454b0c42
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 9 00:15:26 2010 +1100

    Fixed #3128 - Updated man pages and moved puppet.conf.8 to puppet.conf.5

commit ad4f94adc4393e0ee3b1aca4bf7a1e8afc8b3ad8
Author: Mark Plaksin <happy@usg.edu>
Date:   Fri Jan 22 15:20:58 2010 -0500

    Add version number to puppetlast display.
    
    Move "cache expired" to the end of puppetlast lines.
    
    This way the number of seconds and puppet version are always in the same column.

commit 0533cea09d6b741fba392def06a064d9819a6a1e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 4 01:20:03 2010 +1100

    Forgot fakedata called in spec

commit 6416f91d107947fd2567ae6f6d20493e17aeacbb
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jan 28 17:09:25 2010 -0800

    Fixing #2669 puppetmasterd integration has leaky state
    
    This patches two leaks in the puppetmasterd integration tests that were
    preventing the script from succesfully connecting to its child
    puppetmasterd process more than once:
    1) a race condition in shutting down puppetmasterd before restarting
    it
    2) holding onto stale SSH certificate information.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 8a3a2056c82c7d0313a052fef00d3a8f039fe0db
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Mon Feb 1 15:02:24 2010 -0500

    Fix for #2327, check the return types from augeas and fail where appropriate

commit 2ae7516d77c57c2c26c7afca1e8b825f307887c1
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Mon Feb 1 12:24:01 2010 -0500

    2047: Add a not_include into match

commit 55f6239d8efeb08e5a3d99c70257f9979432c16d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jan 30 11:10:16 2010 +1100

    Minor unit test fixes

commit b7b7a1c3ca9a2208b7d26964e1fa3ceb4e95f693
Author: Todd Zullinger <tmz@pobox.com>
Date:   Fri Jan 8 23:42:26 2010 -0500

    vim: Improve function matching when functions contain ')'
    
    This fixes #3017 (VIM syntax highlight for regsubst fails) by converting
    puppetFunction from a simple keyword to a region.
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit b3c363c547dd7bf8cb54c103c20f688b9944b7da
Author: Todd Zullinger <tmz@pobox.com>
Date:   Mon Dec 7 20:47:58 2009 -0500

    vim: puppetDefArguments is contained by puppetDefine
    
    The argument list for a definition must be contained, otherwise it
    matches too much text.  For example:
    
        define test($arg) {
            $foo = regsubst("$name", '(.*)', '\1')
            # The parentheses within the above regsubst are matched as part
            # of puppetDefArguments and the highlighting after is incorrect.
        }
    
    Marking puppetDefArguments as contained by puppetDefine fixes this.
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit f9e05a8062423cf0e4dd6dca2050a8c7d4b2e85d
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jan 22 12:55:14 2010 -0800

    Fix for #3094 (libdir should take ":" delimited path)
    
    Actually, File::PATH_SEPARATOR, which is generally, but not always, ":").
    
    Since libdir is also the default for the plugin handler, users will need to
    specify it explicitly if a multipart libdir is given (and it will need to be
    one of the segments given in the libdir for the plugins to be found).

commit b473264fe76f92b8eddeed7175c4283c9f8484d2
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Dec 29 13:31:35 2009 -0800

    Fix #1842 Net::HTTP#enable_post_connection_check doesn't work anymore
    
    The setting enable_post_connection_check doesn't exist on very many
    versions of ruby, and on those systems there's no way to disable domain
    name checking on HTTPS.
    The recommended work-around is to replace certificates when they have
    incorrect hostnames.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 9419c2ba9553d2ed88e7435ea7becc0783024af2
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jan 25 13:17:42 2010 -0800

    Fix for #3035 (redhat services use init for source)
    
    Redhat services generated a slew of errors because they "duplicated" the same
    services from the init provider on which the redhat provider is based (cf yum).
    
    Declaring the source suppresses these erroneous errors.

commit 10becce443741511ff216c98f6f460513a615cdb
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jan 15 09:13:10 2010 -0800

    Fix for #3077 (unit tests broken in 0.25.1-->0.25.4)
    
    Most of these were caused by alias --> host_aliases; one was
    caused by the canonicalization of resource references and one
    by the removal of puppet_module.

commit 49a718539c9f896d01a757e4f8b3ddb21edec0da
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Jan 21 17:13:22 2010 -0800

    Fix for #3085 (user_role_add pulls from same source as useradd)

commit 1f086c28118075aa8cccc2edcdd44ae64b3a5750
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Jan 28 10:06:06 2010 -0800

    Fix for #3114 (ruby's arbitrary limit on process groups too low)
    
    In some circumstances ruby's arbitrary limit on process groups is too
    low (32).  This patch raises the limit in the recommended manner, to
    a value which should suffice in all practical cases (1024).

commit c5eef045781ee0d8a50e4661b56da051e686cf13
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jan 29 18:05:19 2010 +1100

    Updated CHANGELOG for 0.25.4

commit 70c71c58c1dd038d033d5fdd3fecc8f15b11fd52
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 28 13:09:22 2010 +1100

    Fixed Rails database tests

commit 46f9d00714d8fa6c2dc88d1e4f19ed6786943220
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Jan 27 20:29:47 2010 +0100

    Fix #3117 - cert fingerprinting uses a method not available in ruby <= 1.8.6
    
    OpenSSL::Digest.hexdigest is not available on older ruby versions.
    This patch accesses directly to the digest instead (which hopefully
    support hexdigest).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 04842efb37d31f697f726d8bd9ae38788aa3dc5c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 28 09:12:10 2010 +1100

    Fixed test error message.

commit fcce2222b385e11992406bb4313676ba080c7ea8
Author: Martin Englund <martin.englund@sun.com>
Date:   Wed Oct 7 15:06:45 2009 +0100

    First shot at the OpenSolaris pkg(5) provider

commit 0025e13792b6a8e010ce1fd1dc20a17e7ba8af53
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Jan 24 18:32:25 2010 -0800

    Partial reversion of patch for #3088 to fix #3104 (Exception misreported)
    
    In my patch for #3088 I made a erroneous assumption about the ruby exception
    hierarchy and thus missed the fact that Timeout::error descends from both
    SignalError and Interrupt.  This is a partial reversion of the patch for #3088
    to let these through so that more useful error messages can be produced.

commit bfc9e45309abd182aac99a7dbf8960540fc05bf6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 25 08:12:00 2010 +1100

    Updated CHANGELOG for 0.25.4rc3

commit a91c476387887baa5920f5539a7c4acfaf8cecd9
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Jan 21 16:03:26 2010 -0800

    Fix for #3088 (catching Exception also traps SystemExit)
    
    Changing rescues from the default to Exception (to catch errors that don't
    descend from StandardError) had the unintended consequence of catching (and
    suppressing) SystemExit.
    
    This patch restores the behavior of by reraising the exception.
    
    Of the other exceptions that fall through the same crack (NoMemoryError,
    SignalException, LoadError, Interrupt, NotImplementedError, and ScriptError)
    this patch also reraises NoMemoryError, SignalException, and Interrupt in the
    same way and leaves the rest captured.

commit 1a263e27dede28d3844a4f010ab6ce42ef2977b0
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Jan 21 15:26:09 2010 -0800

    Fix for #3089 (timestamp may now be a time object, not a string)

commit 75634b72629c4ed308444d64341dc909d1ab497e
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Jan 20 15:33:36 2010 -0800

    Fix for #3093 (also need to be able to call pkgget_with_cat on class)
    
    Fixed to deal with scopig issues.

commit 94e269cbc98e774630426aa0a0dc70c1db82502d
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Jan 20 08:00:09 2010 -0800

    Uncommeniting the fix for #3001

commit 9636b93ad195c0fbcd3834c2852912766708b481
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 20 13:13:42 2010 +1100

    Updated CHANGELOG for 0.24.5rc2

commit d4319a5418ce84ac83f9137cf1b7255210833eb4
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Jan 19 15:14:37 2010 -0800

    Minimal fix for #3001 (failing to fetch metadata on dangling symlink)
    
    FileTest.exists? returns false if the target of a symlink is missing; in such
    cases we still want to continue if the resource is a symlink, as we may be
    managing a dangling symlink.  Continuing in such case either gives the desired
    behavior or a more specific/informative error message.

commit cdcbdc78bc399a60afaf36b6267688e72081fb6e
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Jan 18 17:26:06 2010 -0800

    Fixing #2914 - pre/post hooks now work for transactions
    
    This was built to be used with etckeeper to version control
    files in /etc, but can be used for essentially anything.
    
    This patch was built to be added to 0.25.4, so it's a least-modify
    approach.  A better approach would be to refactor application/puppet.rb
    just a bit so it uses Configurer more.
    
    This is a simple patch - it just defines 'prerun_command' and 'postrun_command'
    settings, and runs the appropriate command around each transaction
    if they're set.
    
    Signed-off-by: Luke Kanies <luke@reductivelabs.com>

commit 3e9677f00a09d0249713ed2fa503e42b07f6d978
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Dec 29 15:27:54 2009 +0100

    Feature #2839 - fingerprint certificate
    
    This patch adds several things:
     * certificate fingerprinting in --list mode
     * a puppetca action called "--fingerprint" to display fingerprints
    of given certificates (or all including CSR)
     * a --fingerprint puppetd option to display client certificates
     * each time a CSR is generated, its fingerprint is displayed in the log
    
    It is also possible to use --digest in puppetca and puppetd to specify a specific digest
    algorithm.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 91c44b439794a87111ab1a0726a2ad08981c839e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Dec 29 15:28:27 2009 +0100

    Fix a few puppetd specs tests
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d77c9ace9fa3dc39fa1b36f1224d3eda32ed2703
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 19 08:36:36 2010 +1100

    Revert "Feature #2839 - fingerprint certificate"
    
    This reverts commit a9fb82b0026e75a670fec553b17de3b0f091c2a5.
    
    An older branch was pulled

commit 58a81ba0e074ac8b3c6b7f8cd5c59fa18eb7f58a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 21 15:43:09 2009 -0800

    Fixing #1054 - transaction reports are always sent
    
    This refactors how reports, catalogs, configurers, and transactions
    are all related - the Configurer class manages the report, both
    creating and sending it, so the transaction is now just responsible
    for adding data to it.  I'm still a bit uncomfortable of the coupling
    between transactions, the report, and configurer, but it's better than
    it was.
    
    This also fixes #2944 and #2973.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 282b4b3b469a5b40a671f99e23f7382a433ca944
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 21 14:03:53 2009 -0800

    Removing some unneeded validation code from Transaction.new
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 66a3e6a54df59aafa107f5ec5697ad1a6d4b7e56
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 21 13:30:34 2009 -0800

    Removing unused configurer code
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2044550137bf923f9620b25eb0e8c92eefd6db6f
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Dec 28 16:52:34 2009 +0100

    Fix #2894 - exclude .pp files under modules files directories
    
    Selinux modules files also ends in ".pp".
    Puppetdoc tries to parse them as if they are regular puppet files and
    then fails.
    This patch makes sure puppetdoc tells RDoc to exclude parsing .pp
    files in the modules files section.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d31ff7ebee14f79b523c3fe4c974d4e6add47a2d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Dec 28 16:47:57 2009 +0100

    Adapt to method name change since 8971d8
    
    When the definition/hostclass/node AST types were removed, the
    parentclass method was renamed to 'parent'.
    This patch fixes the incorrect rdoc usage (and some deeper
    integration test so that it won't happen again).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit a9fb82b0026e75a670fec553b17de3b0f091c2a5
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Dec 28 19:41:24 2009 +0100

    Feature #2839 - fingerprint certificate
    
    This patch adds two things:
     * certificate fingerprinting in --list mode
     * a puppetca action called "--fingerprint" to display fingerprints
    of given certificates
    
    It is also possible to use --digest to specify a specific digest
    algorithm.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit a967b93a51ce509cf8631d78b8be8d4ab6da5657
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Dec 28 17:17:57 2009 +0100

    Feature #2395 - revoke when cleaning a certificate with puppetca
    
    As the ticket says:
    "the certificates would still be valid even if cleaned,
    therefore, it makes more sense revoke them instead."
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 67216aa5637a0e134750103abb74b5c2e3db3eb6
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jan 15 14:31:22 2010 -0800

    Fix for #3075 (sshkey host_aliases ignored)
    
    In the alias --> host_aliases conversion, I overlooked parsed file
    provider for sshkeys.
    
    Now with tests.

commit e4462c036aaba48149564ad6c4a90a27eb2ec391
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 14 14:21:08 2010 +1100

    Updated version and CHANGELOG for 0.25.4

commit 441879f7999f4724e8ab344e796015a7ffbfb21b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 14 14:14:19 2010 +1100

    Revert "Fix #2845 Cron entries using "special" parameter lose their title when changed"
    
    This reverts commit c99f394bf8c10d13f3fa7d3ab7ab43ecf454c081.
    
    The fix broke cron jobs in 0.25.3 and was reverted for the 0.25.4 release.

commit b6f90dfcd96123c245b6f5fd93753790006387c0
Merge: e26e831 f7e1435
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 13 08:07:30 2010 +1100

    Merge branch '0.25.x'
    
    Conflicts:
    	lib/puppet/ssl/host.rb
    	spec/spec_helper.rb

commit f7e14356ad7781fafa52a459d3c24372fa6c0900
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 13 07:52:17 2010 +1100

    Updated rake task to fix gem build issue

commit 49013f0bf857d89f2ee8754279fe6b2b0347779a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 12 11:08:32 2010 +1100

    Updated version and CHANGELOG for 0.25.3

commit f8c1b08edf1c83d719511d847ad3be2b139275b9
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Jan 10 23:52:45 2010 -0800

    Reversion of pipe IO patch for testing on #3025

commit 7f258059d8c16c2a20f48a28d636227cdb5a346b
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Jan 7 16:35:41 2010 -0800

    Fix #1464 Mount complains about missing fields
    
    This family of errors could appear because Puppet parses every line in
    fstab into resources, even lines that are not specifically managed by
    Puppet, and fstab files are much more permissive than Puppet in what
    constitutes a valid mount.
    This change makes several fields optional that were previously mandatory.
    Also, it ignores lines in fstab that have fewer than the required number
    of parameters.
    
    Includes a more readable regex than the previous patch.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit c99f394bf8c10d13f3fa7d3ab7ab43ecf454c081
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Jan 5 19:08:23 2010 -0800

    Fix #2845 Cron entries using "special" parameter lose their title when changed
    
    Merged the "freebsd_special" pattern into the other crontab records,
    since its definition was incomplete
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 0a7e212cb824a3a13bc00abf2e69aa3852c6c4d9
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Jan 8 17:35:51 2010 -0800

    Fix #2887 'service' tests paths too early
    
    The 'service' type was testing to see if init script directories exist
    too early, causing failures if you expected to be able to create those
    directories via puppet.
    This patch moves that logic into the 'init' provider.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit e26e8319186c57a41ea7ca58b0e8e853e9b452e3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jan 8 13:21:48 2010 +1100

    Updated test series

commit dd22b71161b0ab943bc3f6edbf6f104e1c882a14
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 6 18:18:46 2010 +1100

    Replaced ugly gem creation task with slightly less ugly task

commit d0efcc6175beed99e719ed0a56286da4693a71f2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 6 17:09:39 2010 +1100

    Added tasks directory to Rakefile and gem task file lists

commit 8a6d66ef5cbde0740f5e5fbf1e8cbf15cb3a6d39
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 6 16:46:29 2010 +1100

    Added puppetpackages task description

commit eada68a13686324cf504f0bb885a7b4df83d6290
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 5 17:20:12 2010 +1100

    Updated CHANGELOG for 0.25.2

commit 6111ba80f2c6f6d1541af971f565119e6e03d77d
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Jan 3 19:04:29 2010 -0800

    Fix for temporary file security whole
    
    We create temporary files in /tmp/ with predictable names.  These
    could be used by an attacker to DoS a box by setting a symlink to
    some other file (say, /etc/shadow) and waiting for us to overwrite
    it.
    
    The minimalistic solution employed by this patch is to wrap all such
    file writing with a paranoid wrapper that:
    
    1) Check to see if the target exists
    2) Issues a warning if it was a symlink
    3) Deletes it
    4) Waits (0.1 seconds if it was a file, 5 seconds if it was a symlink)
    5) Opens the file with EXCL, which will fail if the file has come back.
    
    If this succeeds (as it normally will) it has exactly the same semantics
    as the original code (a must, as we are right at a release boundary).
    However, under no circumstances will it follow a preexisting symlink (the
    operating system guarantees this with EXCL) so the danger of an exploit
    has been converted into the possibility of a failure, with an appropriate
    warning.

commit e7d98ccbc0021bace65dd8525e730462947e5049
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Jan 2 10:09:51 2010 -0800

    Fix for #2999 (absent package handling on solaris)
    
    The fix for #2940 resulted in a behavior change that could be seen as a
    bug.  This was consistent with many of the other providers (see #3000)
    but was not the desired behavior.
    
    This patch enhances the patch for #2940 to return {:ensure => :absent} as
    the present state in the case that the failure was due to the package not
    being installed (as opposed to a source/index failure, etc.).  The other
    possibility would have been {:ensure => :purged}.

commit 87136b4eb911f61bf85a5b315f6df79c51f50713
Author: Jeroen van Meeuwen <kanarip@kanarip.com>
Date:   Sun Jan 3 03:04:28 2010 +0100

    Fix typo in documentation: wheter vs. whether.

commit cbc2ef003d93e5162979cebc927b5d9a69397439
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Jan 1 23:28:19 2010 -0800

    Partial rollback of refinements to fix for #2994
    
    The fix for #2994 had been refined to only checksum links when @links was set
    to :follow to make the tests pass, but this caused partial reintroduction of
    the original issue since information about the source (the real file vs.
    followed link distinction) isn't available client side and thus there are
    paths on which @links winds up :managed when it had originally been :followed.
    
    In these cases the checksum is needed but not produced.
    
    Consequently, this patch relaxes the condition, and always tries to produce a
    checksum, with a rescue guard to gracefully handle cases where this is not
    possible (e.g. broken links).

commit fd631b9945cf33a1e5af849900cf6219b050e321
Author: Ricky Zhou <ricky@fedoraproject.org>
Date:   Fri Jan 1 15:39:36 2010 -0500

    Do not close stdout or stderr in execute.
    
    Closing stdout and stderr would sometimes cause failures when a program
    that is executed with squelched output tries to write to them.  This
    reverts to the previous behavior of reopening them to /dev/null.

commit f878fe836e13bd564e8cb4b612e6abead7fc0821
Author: Todd Zullinger <tmz@pobox.com>
Date:   Fri Jan 1 11:50:52 2010 -0500

    Update Red Hat spec file for 0.25.2

commit 4394c482c0487451299ec6b056880fe099024253
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jan 1 12:14:01 2010 +1100

    Updated CHANGELOG for 0.25.2rc3

commit 13cbf043c6e16c14b0ab9fccd5738a8c9e5925b3
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Dec 30 21:20:45 2009 -0800

    ReFix 2675 ending slash in directory should get stripped off
    
    There was an intermittent bug in Puppet::Parser::Resource::Reference,
    during initialization, and object could sometimes have its title set
    before its type is set. This prevented the title from going through
    type-specific canonicalization.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 5c6f07b404e946266b33f08855116f7bb1a1800c
Author: Ricky Zhou <ricky@fedoraproject.org>
Date:   Thu Dec 31 12:07:24 2009 -0500

    Use a pipe instead of a temp file for command output.
    
    This solves some SELinux issues with programs such as mount being denied
    from writing to temporary files and removes a race condition with
    temporary file creation.

commit 7e64393dd10023d528d2fc21383ead30c9ee94dd
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Dec 31 01:04:06 2009 -0800

    Additional fix for #2994 (followed symlinks do not have checksums)
    
    The first patch for #2994, to which this is an extension, exposed
    the fact that checksums were not being included in the metadata
    for followed links; checksums are needed for managing the contents
    of files that are represented on the server as links (links => follow).
    
    This patch adds checksums for followed links and tests to confirm that
    it works as expected.

commit 7e2e12be7827c2adb64a192b5b7176c7c541af44
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Dec 29 11:29:09 2009 -0800

    Fix for #2995 (don't fail to load PSON when UTF-8 missing)
    
    We don't actually rely on iconv's UTF-8 support, so its absence
    shouldn't cause the PSON feature to fail on system (e.g. HPUX)
    where it isn't fully implemented.
    
    This change exposed a dependency on library load order that was causing
    Puppet::Util::Log to raise an error. I've removed the dependency of
    Puppet::Type from Puppet::Util::Log.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit c84186ab0736a8e1379294546159d8f6cfec6894
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Dec 31 17:34:30 2009 +1100

    Revert "Fix for #2731 (problem communicating with processes in SELinux)"
    
    Due to problems introduced on HP-UX (See #2997)
    
    This reverts commit 6ab2453d966d1d48e12d8a8cec34b9e460597d04.

commit 74d9693516df7f15b2940537eb414ad78436e774
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Dec 31 11:33:15 2009 +1100

    Updated man pages for 0.25.2

commit 7e2b1e91e6930364c4b246a03a3f1c70b40da7f0
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Dec 29 11:29:09 2009 -0800

    Fix for #2995 (don't fail to load PSON when UTF-8 missing)
    
    We don't actually rely on iconv's UTF-8 support, so its absence
    shouldn't cause the PSON feature to fail on system (e.g. HPUX)
    where it isn't fully implemented.

commit d1ff4b3fca31ee99276c26bc1df6391cfc79254a
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Dec 29 11:14:44 2009 -0800

    Fix for #2994 (undefined method "_file" message)
    
    Attempting to call a constructed method name with a nil component
    (the checksum type in this case) causes an unhelpful error message
    in a case where either 1) the results were not needed anyway or 2)
    a more useful error message would otherwise be generated. It also
    opens (at least hypothetically) then possibility that some unrelated
    method (in this case "_file" would be called if it existed.

commit 53869e99149be0f60b4e415d061a76ab5421eadb
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 21 23:22:53 2009 +0100

    Fix #2818 - scope variable assigned with undef are not "undef"
    
    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>

commit 4d815117672a6f27ff368c9485edb4edf49e63aa
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Fri Dec 25 18:58:43 2009 +0100

    fix #2987 - check correct hash entry
    
    It looks like something got lost during transition to host_aliases.

commit 682000ba3872a8bc0d448f7bf55967cb70dffdbe
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Dec 24 00:07:35 2009 +1100

    Updated CHANGELOG for 0.25.2rc2

commit e4bb5294d9e13d73a87b79c65039e2f6a15b2815
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Dec 21 16:45:54 2009 -0800

    Fix for #2967 (RFC-1123 problem and regression on wildcarded domains)
    
    The core bug here was a regression introduced by my IPv6 patch.
    Wildcarded domains are stored as ["com","reductivelabs","*"] but
    the code in question was assuming it was in normal order.
    
    Added tests to prevet recurrence.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 776be7c8fe96bc2505d60470eedea220aa60d276
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Dec 23 19:26:03 2009 +1100

    Updated CHANGELOG

commit a73f799381fa7f397af73d77aae879febdaab123
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Dec 23 19:25:02 2009 +1100

    Updated version

commit 26e74867af84528bb527c4ec848aae258e8569c1
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Dec 22 16:08:53 2009 -0800

    Fixing failing tests

commit 05e897e100844335b4ecaa9088d2f927753010a7
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Dec 21 22:20:34 2009 -0800

    Fix for #2881 (ralsh doesn't find individual parsed resources)
    
    Rather than just creating a new featureless resource for cases like:
    
        ralsh host localhost.localdomain
    
    (and the analogous cases with other parsed resources such as ssh keys, etc),
    we first check to see if the appropriate provider can find a resource with
    the requested name.  If so, we use it; if not we fall back to the featureless
    form.
    
    There are a number of potential shortcomings with this fix:
    
    * It may not be particularly performant if there are many resources to
      be parsed.
    * It always (and only) checks the first provider; perhaps it should try
      all providers of the appropriate type.
    * It only checks the name property, and not any aliases or host_aliases.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit e04f9e4823208e2d8a48ecc25fdf5152ed09ae77
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Dec 21 15:10:40 2009 -0800

    Code smell reductions
    
    These are a grab-bag of code simplification changes I made in
    the process of figuring out what was going on with #2881; they
    should all be absolutely behavior neutral.

commit 24654a22c2d172b23cb1133f65da4e5a2801de0a
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Dec 21 14:47:41 2009 -0800

    Making provider/host/parser.rb compatible with host_aliases
    
    When I changed the alias property of hosts to host_aliases I missed
    these changes in the parsed file provider.

commit 49530adaaa302c4b4e3b9eefb05e9551503a0ba6
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Dec 21 22:59:23 2009 -0800

    Fixing #2964 updated resources cannot be collected until they are exported twice
    
    This logic had a bug where it would not insert data if it had just been
    deleted.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 6ab2453d966d1d48e12d8a8cec34b9e460597d04
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Dec 22 13:35:04 2009 -0800

    Fix for #2731 (problem communicating with processes in SELinux)
    
    In some cases communicating with child processes via temprary files is not
    viable.  This is Ricky Zhou's patch from the ticket, which solves the problem
    by using the more normal system of pipes.  It is a broader reaching change
    than suggested by the ticket (it affects all execs, not just SELinux) but IMHO
    is the right way to go.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 0e5d2647bd5f515dbaacf45f9e7dda5c27eb465a
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Dec 21 23:55:39 2009 -0800

    Fix for #2940 (propogating nil rather than reporting the error)

commit d60ea0e52debf03fddb2336704df10589108fe3a
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Dec 21 14:10:07 2009 -0800

    A slide down the RFC-1123 slope towards MS Windows compatibility and chaos

commit d921c459c14f7460fb209dea3b9194c91fee9fd1
Merge: 4226e01 740fd6b
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Dec 21 16:27:34 2009 -0800

    Merge branch 'merge'

commit 740fd6b301af89ab3aad89bca183ad1fcdc24ac4
Merge: 8971d8b 4a06379
Author: Luke Kanies <luke@reductivelabs.com>
Date:   Mon Dec 21 16:23:44 2009 -0800

    Merge branch '0.25.x'
    
    Conflicts:
    	lib/puppet/agent.rb
    	lib/puppet/application/puppetd.rb
    	lib/puppet/parser/ast/leaf.rb
    	lib/puppet/util/rdoc/parser.rb

commit b185801835cd656a8c3bab7654a8dddd2a74dba4
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Dec 21 13:08:02 2009 -0800

    Fixing #2960 Test Failed: 'Puppet::Type::Mount::ProviderParsed when modifying the filesystem tab should write the mount to disk when :flush is called
    
    I found this doing idempotency tests (#2879), but there are apparently
    other ways for external state to leak into this test, as reported by
    James.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 5e5c8b5414a69d79830b79392f0addce245c6911
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Dec 21 09:12:24 2009 -0800

    Fixing tests
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 0cb5e7d226934e74f8b53dc1f6425b47f536afab
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Dec 20 15:10:37 2009 -0800

    Fix for #2943 (Make puppet --apply respect --preferred_serialization_format)
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 08840356c88c2478f523189e668eb96e410e27e6
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Sun Dec 20 19:26:55 2009 -0800

    Fix #2970 spec/unit/provider/ssh_authorized_key/parsed.rb has order dependencies
    
    Some tests in this file were leaking a global setting, some other tests
    depended on those changes, and some tests were incompatible with that
    setting.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit b86decc0ea274eb6d9ffa3170fd4ec81d735519f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 17 14:47:19 2009 -0800

    Fix #2816 MySQL server has gone away
    
    As suggested in the ticket, set :reconnect to true. Our in-house Rails
    experts suggest that this is unlikely to cause any problems.
    The setting is silently ignored before Rails 2.3

commit 854c06502d1a8f6d6dfaf0abeaacb4791a6fb5ed
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Dec 17 09:24:26 2009 -0800

    Fix for #2813 (alias propety v. alias metapram)
    
    Renamed :alias property to :host_aliases / :port_aliases (in the
    sidelined port code) and corrected the comments.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 813cb58815f1f8f987ad64f7c7bfb640fbcdfa81
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Dec 17 19:58:27 2009 -0800

    Fix for #2765 (--no-fqdn regression in puppetrun)
    
    This is basically the fix suggested on the ticket, cleaned up and
    ruby-ized, with tests.  The only functional modification is leaving
    the default on entry2hash as --no-fqdn to preserve 0.25.1 behaviour
    as the default.
    
    Signed- ff-by: Markus Roberts <Markus@reality.com>

commit e9a0cb7a28a34fd04db4bfe1db347da5d774f2e8
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Dec 18 13:40:29 2009 -0800

    Fix for #2657 (retain old setting if config has syntax error)
    
    This appears to be regression introduced by threading changes.  The fix was
    to rearrange things to keep the old behaviour (don't clear the settings
    until you know the config file parses) and the new (don't nest calls to
    synchronize) by:
    
    1. Splitting clear into two parts--clear, which works as before, and
    unsafe_clear which it calls and which expects synchronization to be
    handled externally.
    
    2. Rearranging the code to recover the previous calling order
    
    3. Trapping syntax errors and turning them into logged messages and a
    no-op effect.
    
    4. Fixing reparse to not wrap a call to this code with a synchronize.
    
    5. Tests.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 727ee72b12125223b5d0d0704dc35f5c71a1a04e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 18 18:48:05 2009 -0800

    Fix #2966 spec/unit/util/queue.rb can't be run twice
    
    This spec wasn't cleaing up after itself, and raised several exceptions
    when trying to register the same queue type again.
    Part of the #2879 test idempotency suite.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 8c8e9210a2b538a1848d309ef9f3966d94a95de9
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 18 16:15:37 2009 -0800

    Fixing #2963 spec/unit/util/autoload.rb depends on global state
    
    An Autoload spec was depending on files having not yet been autoloaded.
    Detected as part of #2879.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit ea90daaf95493e3f49fb949b233932b7bf96aae1
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Dec 18 18:58:14 2009 -0800

    Fix for #2965 (Chatty SELinux message)

commit fc221ffdae07e4cae8fb6b280c00193d639d2043
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Dec 19 10:02:16 2009 +1100

    Fixed RSpec deprecation error

commit 4226e018d7c8e2d52ef59edf37d3a320aa823be0
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Dec 18 14:55:37 2009 -0800

    Fix for #2959 (calling exit status on a nil report)
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 037b99a27dc8b2aeb44c5cdfb20bfef672294405
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Dec 18 12:36:42 2009 -0800

    Fixing #2958 inconsistent errors in spec/integration/bin/puppetmasterd.rb
    
    I was getting inconsistent errors in this file, and it's really two
    separate issues but they're both trivial.
    
    1) The spec launches ./sbin/puppetmasterd, which may have trouble
    finding the puppet libraries. It could even load the system-installed
    puppet rather than the files in the repository -- I think this effect is
    why the tests were passing on Markus's machine, for example.
    
    2) There's a race condition in this test, and puppetmasterd has gotten
    slower to start up (perhaps due to the #2877 fix?)
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit d11c7503cc816e98b5deb890b49a7e8c47173e1b
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Dec 18 09:11:09 2009 -0800

    Fix for #2951 (SELinux test errors on OS X)
    
    This makes the SELinux library marginally more robust by dealing
    consistently with a missing proc/mounts, and also resoves the test
    failures in a way that allows meaningful test runs on non-SELinux
    systems.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 0dc2dbafe65b59bfbb3ab66e26f595260bdde356
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Dec 16 16:26:05 2009 -0800

    Fix for #2890 (the cached certificates that would not die)
    
    This patch implements the two-part suggestion from the ticket;
    
    1) a client that receives a certificate that doesn't match its current
    private key does not accept, store or use the certificate--instead it
    removes any locally cached copies and acts as if the certificate had
    never been found.
    
    2) a puppetmaster that receives a csr from a client for whom it already
    has a signed certificate now honors the request and considers it to
    supercede any previously signed certificates.
    
    In order to make the cache expiration work as expected, I changed a few
    assumptions in the caching system:
    
    * The expiration of a cached certificate is the earlier of the envelope
      expiration and the certificate's expiration, as opposed to just overriding
      the cache value
    * Telling the cache to expire an item now removes it from the cache if
      possible, rather than just setting an expiration date in the past and
      hoping that somebody notices.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 03f37acaeb4c90d0256059fdc96f717077240811
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Dec 17 21:17:25 2009 -0800

    Fix for #2950 (parens needed warning)

commit 61fd460cb0e9db08e21b2e9ce24b24bc2e96b0be
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 17 17:21:45 2009 -0800

    Fix #2924 Test Failed: Puppet::Indirector::FileContent::FileServer when finding files should find plugin file content in the environment specified in the request
    
    The change in #2590 (ea584787) clears the environment list that this
    spec relies on. Reordered the spec so that doesn't happen anymore.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 2432b235d46c056bcb35b64b9197585fd13ab22a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Dec 18 15:01:10 2009 +1100

    Fixed test typo

commit f5960ce2bde4af9af1af8bdf106e83d21afacb5c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Dec 13 08:41:11 2009 +1100

    Closed #2937 - Migrated a number of requires to features

commit 2d88926b76e14c8aa105ad7b1480cee9132fc699
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Dec 17 11:31:25 2009 -0800

    Fix for #2869 (SELinux tests failing under some load orderings)
    
    The problem was that the setup for the tests was expecting the defaultprovider
    for Selboolean and Selmodule to be called, rather than stubbing it.  This
    worked as long as no other spec which initializes the providers was run before
    it.
    
    The fix here (stubbing rather than expecting) is minimal but not ideal; if
    there were some other provider for these types it could result in a test
    indetermenacy (different results depending on which provider) but I'm not
    seeing an easy way to address that.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 18c5165bea26151d446ff9ae63aeee108cb210ef
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Dec 14 00:24:42 2009 -0800

    Adds partial IPv6 support to authstore
    
    This removes some of the IPv4 centricism from authstore's handling
    of IP addresses.  It isn't full IPv6 support (and doesn't even fully
    handle all the cases within its limited scope, as ruby's IPAddr
    library does not work with hybrid addresses), but it should simplify
    adding IPv6 support when the time comes.

commit 857047d956aa0e78e105df2330346dbd6fcd8c35
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Dec 13 22:44:07 2009 -0800

    Fix for #2567 (Authstore does unintended/pointless DNS lookups)
    
    This patch fixes #2567 by always pre-validating IP addresses with a
    strict regular expression check before calling IPAddr.new() on them.

commit dddbd2821b6602a8d358de1313553dc25b37a998
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Dec 12 21:07:02 2009 -0800

    Enabling steps for #2567 (Authstore does unintended/pointless DNS lookups)
    
    This commit refactors the code in authstore to enable a fix for #2567,
    goes part of the way towards fixing #2708 (DNS/reverse DNS dependence),
    and is a start on #2623 (authstore needs to be refactored), though it
    stops short of fully addressing some of the more egregious structural
    issues ("opaque", ill-placed pattern transformations, etc.).
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit ea0a43f1acaf24842d9e8159ba7d5c86bf6e9c30
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 17 15:21:22 2009 -0800

    Fix 2948 Failing rests in spec/unit/rails.rb
    
    Specs didn't reflect some recent changes.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit b6f4291cf4be7fd06839415e818796d47e89cf35
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 17 15:45:46 2009 -0800

    Fix #2923 failing tests in spec/unit/ssl/host.rb
    
    The fix for #2661 changed the behavior of Puppet::SSL::Host enough to
    confuse these mocks.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit bf7c108825ffdb5ea89cf3e500d55d27ab64b8d2
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Dec 16 10:14:04 2009 -0800

    Fix #2677 Proper OIDs on puppet.schema for LDAP
    
    We've got a real OID for LDAP, now.

commit e0488b26f04e931b17b104fd7f69f6527436e81d
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Dec 16 14:29:40 2009 -0800

    Fix #2808 puppetqd doesn't give an error when no config is given
    
    Added an info message about what database we're connecting to.
    In the case of the default database, it looks like:
    
    info: Connecting to sqlite3 database: /var/lib/puppet/state/clientconfigs.sqlite3
    
    Also squashes the deprecation warning #2941, since fixing that makes
    this patch smaller.

commit 7b2e2badec926f8c43e2c4087b64b13d2e109f48
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 10 17:27:13 2009 -0800

    Fixing 2851 spec/unit/network/rest_authconfig.rb test descriptions change
    
    Some test names change arbitrarily since they were interpolating
    hashes instead of strings.
    
    This patch replaces, for example:
    - should insert methodfindacl/certificate_revocation_list/caauthenticatedtrue if not present
    
    with:
    - should insert /certificate_revocation_list/ca if not present
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 1c69af2abea55579373e6111cf840197c7cb3494
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 3 16:10:49 2009 -0800

    Fixing 2855 Inadvertent zlib dependency
    
    Disables the b64_zlib_yaml format if zlib cannot be loaded.
    
    I've added a --no-zlib to make it possible to test this on a single
    machine, but it might also be useful if someone finds themselves failing
    to connect to a server that doesn't have zlib installed.
    
    FactHandler' format is still hard-coded to YAML rather than using
    facts.class.default_format
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 3528a7b98c300f3ffa363d232b5f577f298390eb
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Dec 14 23:47:48 2009 -0800

    2850 spec/unit/application/puppetd.rb generates warnings if run with certain other tests
    
    Puppet[:libdir] is nil due to stubbing, causing an exception in autoload.
    
    Depending on the order of loaded libs, sometimes this exception is
    logged using Kernel#warn, but sometimes it's logged using Puppet.err
    Only Kernel#warn writes to the terminal during unit testing!

commit d343af0f2d115889543540bd3cc8bf66e9a9473e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Dec 14 15:21:56 2009 -0800

    2876 spec/unit/indirector/catalog/compiler.rb changes behaviour
    
    1) Improve test so it doesn't fail if an autoload happens.
    2) Improve test so it doesn't show a warning.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit a7fae4741cc3d266faa53c871bbb4a62b90f699c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Dec 15 17:44:41 2009 -0800

    Fix 2936 Insufficient mocks for webrick in spec/unit/network/http/webrick.rb
    
    Fixing #2877 introduced some spec failures, by using more of the webrick
    API than was mocked here.

commit b96b757f1d091130b06542856c5b5b3a683a8e39
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Dec 12 10:56:37 2009 -0800

    Fix for #887 (safely setting pager to cat for blastwave)
    
    This is Luke's suggested fix, from the ticket.

commit d685f446ef88c2273a5e3f310d2ebb2bff9091f8
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Dec 14 13:33:19 2009 -0800

    2633 file and line info on bad params in type/file

commit 4326eb2f875523d9e6d6b97cd962ac98661e9eb2
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Dec 10 22:50:30 2009 -0800

    Fix for #2817 (links created even when links property set to follow)
    
    Commit 82714246b913087292f04190e03a885c99723f52 lost the distinction
    between links that were being followed and links that were being managed.
    This reinstated the distinction and (taking Luke up on his offer) also
    includes various cleanups.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 118adc1654396a4fd765d7b662f5993cc3bc5e84
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Dec 14 18:39:08 2009 -0800

    2875 spurious test failure in spec/integration/file_serving/content.rb
    
    Any test calling it_should_behave_like "Puppet::FileServing::Files"
    potentially was affected by this bug, as its stubbing was not sufficient
    if anything needs to be autoloaded.

commit 0f63a54b710e3a3390240404565515e362ce78d1
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Dec 14 16:41:17 2009 -0800

    2877 race condition in webrick
    
    Make sure that we don't try to do anything to webrick until it has
    really started.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 48953297137470c14ca084ec3fe8809ed3505b99
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Dec 15 00:37:18 2009 -0800

    Fix for #2921 (test not checking for what it really wanted)

commit f47fa4094df77bcc83d11885d2fab06cb1d2e65e
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Dec 12 10:40:45 2009 -0800

    Fix for #2925 (accept higher versions of rspec)
    
    What's there to say?
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit c2617211cf5037c5ddb7f59992c35c6dd62a529e
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Dec 11 15:25:00 2009 -0800

    Fix for #2911 (Allow capital letters in selinux contexts)
    
    This is Matthias Saou's patch from the ticket; it adjusts the regular
    expression to permit capital letters where needed.

commit bf7d650a65bc4b97ac72ddf38647766229b3182e
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Dec 11 08:23:07 2009 -0800

    Fix for #2900 (rug output parsing too specific)
    
    Andrew Forgue's suggested patch; changes the regular expression to
    accept any non-space characters, non-vertical bar characters in a
    version "number".
    
    Examples
    
    v | SLES10-SP1-Updates |  | resmgr          | 0.9.8_SVNr75-18.9  | x86_64
    v | SLES10-SP1-Updates |  | wireless-tools  | 28pre13-22.16.2    | x86_64
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit cccbca4e540db85e49428cae2c78390bfcdbf4a0
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Dec 10 13:59:06 2009 -0800

    Fix for #2786 (failed trying to backup directory in recursive purge)
    
    The refactoring in 8f60f0c50ee3dfb6453644f5dcded58e6e80e8bb lost the
    return code--should be true in all non-exception cases--and this was
    causing a false failure when the result was checked higher up.

commit 6dfac977d355593ee13dcb80f25ad02da466062c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 10 15:36:48 2009 -0800

    Fixing 2907 rspec crash when spec/unit/application/puppetrun.rb is run after spec/unit/util/ldap/connection.rb
    
    the ldap/connection spec creates a mock LDAP class that causes `require 'ldap'`
    to explode. If `require 'ldap'` happens first, then we're OK.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 1c8d272a7728387d0355704a5cb7bed3d1fbdddd
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 10 12:50:37 2009 -0800

    Fixing 2870 Spurious failures in spec/integration/ssl/certificate_request.rb
    
    There's a dependency on Puppet::SSL::Host.ca_location
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 979440f6e9131a71c0d600fc8bcbf2934afadaf4
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 10 14:30:16 2009 -0800

    Fixing 2862 spec/integration/file_serving/metadata.rb fails unless run with other tests
    
    Due to some heavy mocking, this code was failing to load a dependency.
    If the `require` happens earlier, then the test passes.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit e04d2998eac50b7d971a9057dd6ef06f26c34de7
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 10 14:56:07 2009 -0800

    Fixing 2858 spec/unit/application/puppetmasterd.rb fails if run twice
    
    @puppetmasterd.options[:node] leaks from test to test
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 53a980537a46117c94ba535bca818d7dc83c4931
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Dec 9 11:44:49 2009 -0800

    Minimal fix for #2822
    
    Fail rathing than raising the exception so that the line and file are
    preserved.  A more general solution to these sorts of issues is called
    for on the code smell list.

commit 9ac1ed6d11d0fd272dddbfe7c1455ff56523c6be
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Dec 7 22:02:56 2009 -0800

    Fix for #2863 (calling each on uninitialized tag list)
    
    This is a fix for the core issue of #2863, calling each on a nil tag (instead
    of empty) tag list for a resource with no tags, combined with various cleanup
    in related code to forestall reintroduction of a similar bug.
    
    * Replace the direct @var access with an initializing getter
    * Rename it from @tags_hash to @tags_list since it's not a hash
    * Do the same with the otherwise identical params setup.
    * Eliminate the now-redundant external initialization for params.
    * Remove the parameters method as it was never used and obviously
      faulty (calling a non-existent get_params_hash method).

commit bd9e06fe0c0be0b361f5b5299365f1385f429616
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Nov 24 19:34:15 2009 -0800

    Feature 2827 Option to disable managing internal files
    
    Add a flag "manage_internal_file_permissions" which is enabled by
    default. Disabling this flag prevents Puppet from managing the owner,
    group, or mode of files created from Puppet::Util::Settings::FileSetting
    
    I think this is a wide enough net to follow Luke's suggestion of
    "disable management of everything", and it certainly satisfies the
    requests I'm aware of, but if I've missed anything, let me know.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 8b669985427a0acc41b842ce89047592922fa760
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Nov 30 15:51:05 2009 -0800

    Fixing 2849 puppet changes sshkey alias every run if it is blank
    
    Puppet was mis-parsing sshkey aliases when the last alias is an empty
    string.
    This is due to the counter-intuitive behavior of Ruby's String#split.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 8971d8beae2c409f9052f27c3f80ad3bdfff4de2
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 1 16:41:38 2009 -0800

    Fixing #2596 - Node, Class, Definition are not AST
    
    This commit extracts these three classes into a single
    ResourceType class in the Parser heirarchy, now completely
    independent of the AST heirarchy.
    
    Most of the other changes are just changing the interface
    to the new class, which is greatly simplified over the previous
    classes.
    
    This opens up the possibility of drastically simplifying a lot
    of this other code, too -- in particular, replacing the reference
    to the parser with a reference to the (soon to be renamed)
    LoadedCode class.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 39d4a935d47f1d42241ce492c48818dc5b533c29
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 23 15:49:48 2009 -0700

    Adding a context method to the Errors module
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 22c642df7e705792373c605422d368236e6f5a94
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 6 09:03:25 2009 -0700

    Extracting language doc support into a module
    
    This is so that you can still use docs without AST
    being the parent class.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit adc211ad191568e84eb3e1f618f1cbf78df95ba9
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 2 12:08:56 2009 -0700

    Adding module metadata
    
    This is a first version that does very little -
    it has a few fields, and allows speciification of
    dependencies with other modules as well as compatibility
    with individual Puppet versions.
    
    It's not really sufficient, because it only allows specific
    versions, rather than a range of versions, but it's a good
    demo of what it takes and what we provide.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bf40f4f3a289aaacba047337a9d18d4a9bc5b997
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 7 15:26:51 2009 -0800

    Upgrading rspec for tests to 1.2.9
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7136c85877982804dbf99d239c4c74e59366d2a2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Dec 6 22:51:23 2009 +1100

    Fixed spellquote function documentation

commit de16fd35ef66ce19c2ef00b04882de138a056a6c
Author: Todd Zullinger <tmz@pobox.com>
Date:   Fri Dec 4 16:08:40 2009 -0500

    Updated yumrepo type documentation

commit d1fa7cf46072f601d433363912eed13ddfe5d4d7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Dec 5 07:46:13 2009 +1100

    Fixed --no-ca option in Gentoo also

commit 8b5b4b68b4e08a32373a4fe9c113f397751af83b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Dec 4 19:43:40 2009 +1100

    Fixed incorrect command line in Red Hat sysconfig file

commit 623d9c75ae7b195c1668fe5fc9b18da14c4bdb97
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Dec 3 14:46:28 2009 -0800

    Fixing 2886: Failing specs in format_handler
    
    Clean up warning messages so that they don't fail when run inside the
    test class.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit feb021f42a45dc2e9f32bdf6e11878706f7c1d76
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Dec 3 11:01:52 2009 -0800

    Avoiding rspec bug which causes 'be_all' tests to always pass

commit 228f105b2b6d240e01c03ab85702d955f42077e8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Dec 2 17:22:39 2009 +1100

    Removed some extraneous files from ext

commit 01c98f6a196d37d346ccb34863502409da212f8d
Author: Andrew Forgue <andrew.forgue@gmail.com>
Date:   Mon Nov 23 17:58:13 2009 -0500

    Fixed #2798 - Correct issue with crontab provider on AIX
    
    Clean up AIX crontab type:
    
      - The return "" if output.include?(...) prevented the
        raise from ever being reached.
      - Ensure the temp file is deleted after feeding it
        to cron.
      - Prevent dumping of the new crontab to STDOUT.
    
    Signed-off-by: Andrew Forgue <andrew.forgue@gmail.com>

commit f7c5ceb325da912e05457cd69eb74e03f541cc9f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Nov 23 16:57:04 2009 -0800

    Fixing 2725 Error message when permissions incorrect on file server directory
    
    No message was being displayed on the server if a file could not be
    opened by the file server.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 07b94b4687686acd4f1bc2567f7902e676c2338f
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Nov 25 01:38:04 2009 -0800

    2842 Format debugging should be removed
    
    Replace this message that looks like an error
      debug: Format s not supported for Puppet::FileServing::Metadata; has not implemented method 'from_s'
    with
      debug: file_metadata supports formats: b64_zlib_yaml marshal pson raw yaml; using pson
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 61d19116aa53dd62ff214300fba9ec03a6699876
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Nov 26 20:14:36 2009 +0100

    Fix 2841 - Puppetdoc/RDoc parses realize function
    
    Puppetdoc wasn't parsing the realize function.
    This patch let puppetdoc find realize and display in RDoc html
    mode the list of realized resource per class or node.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit e63d23e359e72e8cfea950c13b4fcc21cbf102e2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Dec 2 13:08:49 2009 +1100

    Added tickets/master/2596 to the testing branch

commit 3abcc896c84e1cd1c68fcb661c69090872294868
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Nov 26 19:58:39 2009 +0100

    Fix #2783, take2 - puppetdoc should use environment to get modulepath/manifestdir
    
    I was told that setting manifestdir in environment is not supported.
    Only the manifest setting seems to be supported in environments.
    This patch changes how puppetdoc handles manifestdir, instead
    of getting it through the manifestdir variable, we now get the
    manifest settings and infer the directory from this, exactly as
    the parser is doing.
    This allows puppetdoc to handle what user are doing with environments.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f5dd6c888a5e5011d2dac074373984604506ab12
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Nov 23 22:34:52 2009 +0100

    Fix #2831 - puppetdoc doesn't cope with regex node
    
    The problem is that regex node contains '/' which is a directory
    separator on unix.
    Since puppetdoc writes a file for each node this was creating empty
    directories and documentation for such node couldn't be stored.
    This patch removes the slashes in the node names.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 41da96281f6c8902191b2c6cc8e07e31363d8f45
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Nov 24 19:34:15 2009 -0800

    Feature 2827 Option to disable managing internal files
    
    Add a flag "manage_internal_file_permissions" which is enabled by
    default. Disabling this flag prevents Puppet from managing the owner,
    group, or mode of files created from Puppet::Util::Settings::FileSetting
    
    I think this is a wide enough net to follow Luke's suggestion of
    "disable management of everything", and it certainly satisfies the
    requests I'm aware of, but if I've missed anything, let me know.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 4a06379f8770c164e42bcc410d874076c6e95f24
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Nov 24 22:11:30 2009 -0800

    Fixing #2857 (quote nesting error)

commit 9a41c35a5160dbba10ec00f3ed45bafad3ebd06a
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Nov 24 09:09:07 2009 -0800

    Fixing #2791 fs_find should follow symlinks
    
    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>

commit 562909281f2e0bd21fed922600027f0e9a47f5ec
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Nov 25 10:50:35 2009 +1100

    Added additional documentation to file mode attribute.

commit dc8812c371810aa1d3c723d8b42b9773d1ded851
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Nov 23 17:40:03 2009 -0800

    Fixing 2792 selinux tries to set properties on unsupported filesystes
    
    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>

commit 57632a0497183b2ec205b83eea939c3159e44925
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Tue Nov 24 21:22:11 2009 +0100

    fix #2854 - parse timestamps
    
    Since 0.25.0 node's timestamps have to be parsed before processing.

commit cb6bc27b59bc7076b57abe04884cf62956226f81
Author: Benedikt Böhm <bb@xnull.de>
Date:   Sun Nov 22 18:34:20 2009 +0100

    fix regex for non-installed packages

commit 9cfe390515b464acae8268c2688543a9d816734c
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Thu Nov 19 01:18:53 2009 -0800

    Fixing 2812 authorized_keys without comments fail
    
    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>

commit 53b3b86681e3c56f8455e5d8458b4ea900a50406
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Nov 19 22:11:49 2009 -0800

    Fix for ticket #2844 (file recursion generated vs. explicit prefix)
    
    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>

commit c9f40be6c567d8de328b9d79dde357672323925a
Author: Richard Soderberg <rs@pi007.sv2.upperbeyond.com>
Date:   Mon Aug 24 19:57:07 2009 -0700

    Fixed #2568 - Add database option 'dbconnections'
    
    This sets the ActiveRecords connection pool size, when connecting to remote databases (mysql, postgres).  default is 0; the 'pool' argument is only passed to ActiveRecords when the value is 1 or greater.

commit 8129caabdab73fca8b4b8de0ecafe4c0dd31cc95
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Nov 19 12:34:40 2009 -0800

    Fix for ticket #2700 -- check for @explicit_waitforcert in puppetd --test

commit e32f980fd7c6291abc2841ede397c962798d9a9c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 9 16:03:42 2009 +1100

    Fixed #1806 - supplementary groups are not reset
    
    Patch thanks to Till Maas
    
    Signed-off-by: James Turnbull <james@lovedthanlost.net>

commit be7ff82f92a14f4f572d738eeeb2c77437069c49
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Nov 17 15:58:20 2009 -0800

    Fix 2768 maillist resource is broken
    
    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>

commit 2d137e2e1ce603ee2727d66b1aba57458bf4d1be
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 18 12:54:03 2009 -0700

    Fixing #1507 - Adding a :ca_name setting
    
    This allows one to specify the name to use in the
    CA certificate.  It defaults to the :certname,
    but for those stuck using mod_ssl it can be changed.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 089ac3e37dd1418751bc4dfe152e09fbacbc5122
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 18 12:48:12 2009 -0700

    Fixing #2617 - using the searched-for REST name
    
    This allows a separation between the wrapper class
    and its internals, which is (at least) necessary for
    the CA cert, which might not be found using the
    internal name.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 28e1bc6e7b866727adfd16cba5418e08f1dd2fd8
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 17 17:13:59 2009 -0700

    Always using the CA_name constant instead of "ca"
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 48beabadb6f234e6486cf32eebc389e8faba13f0
Author: Benedikt Böhm <bb@xnull.de>
Date:   Tue Nov 10 10:25:55 2009 +0100

    simplify and fix portage provider
    
    * 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

commit 0ac0ce9a2372d21983e085f913af32376fc15d13
Author: Steven Jenkins <steven@endpoint.com>
Date:   Tue Aug 25 20:41:11 2009 -0400

    Implement tasks for git-based workflow.

commit 2d4b795e81e4f7953210d51be56c77bed3b77609
Author: Deepak Giridharagopal <deepak@brownman.org>
Date:   Sat Oct 10 16:38:20 2009 -0500

    Fix #1934 - detailed-exitcodes for puppetd
    
    This option only works when --onetime is specified, as it doesn't make
    much sense to worry about exit codes in the context of a long-running
    daemon.
    
    This required a refactoring of the existing --detailed-exitcodes code,
    as "puppetd" wasn't directly creating a transaction object (like
    "puppet" does).
    
    Added Report::exit_status, which did what was previously hard-coded
    into the "puppet" executable.
    
    An Agent's "run" method now returns a value (the result of the
    individual client class' "run" method)
    
    The "puppetd" agent's "run" method now returns a transaction report, as
    that seems like the logical thing to return as the result of applying a
    catalog.
    
    Signed-off-by: Deepak Giridharagopal <deepak@brownman.org>

commit 0f6181680974f8307eb4ef5e4f6b75b58a195321
Author: Rein Henrichs <reinh@reinh.com>
Date:   Thu Oct 15 16:38:44 2009 -0700

    Fix #2649 Allow ssl dir creation in --noop mode
    
    Wrap Puppet::Settings.use in a block that disables noop mode during the
    execution of the block and ensures that noop returns to its original
    value afterwards. This allows internal puppet catalog operations like
    ssl directory creation to occur even when puppet is run in --noop mode.
    This should actually solve a broader class of related bugs.

commit bd5dc649ad55fc4724cafad99852b825adfde182
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Nov 12 23:30:13 2009 -0800

    Possible workaround for #2824 (MRI GC bug)
    
    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.

commit c1e47a43df40abd5da04bf147df17f0b53bf0868
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Nov 10 02:58:02 2009 -0800

    Fixing #2789 puppetrun fails without --tag
    
    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.

commit 106c9a91929f00a852f7027088cee6684f83ab63
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Nov 17 10:17:21 2009 -0800

    Fixing 904 RDoc::usage incompatible with rubygems
    
    Monkey-patch workaround for RDoc so it doesn't get confused by rubygems
    stub executables.
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 5ed2e2619fc366a9ea1e1b9866da055ba0cd57aa
Author: Christian Hofstaedtler <ch+git@zeha.at>
Date:   Thu Nov 5 11:03:44 2009 +0100

    rack: SSL Env vars can only be in Request.env
    
    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).

commit 7f2e5fc51b64d5a9281a7e65a88b378b1c99d03f
Author: Bruce Williams <bruce@codefluency.com>
Date:   Thu Nov 5 18:07:40 2009 -0800

    Fix #2671, preferred_serialization_format does not complain about invalid values
    
    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>

commit f0eaf20f863f0f1fdcf01b620529f68609d4e0da
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Sun Nov 8 15:36:52 2009 -0800

    Fixing #2764 ActiveRecord 2.1 support
    
    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>

commit eaab789ee08d3cc53b649a78d3cfe0ca833d2285
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 14 18:12:48 2009 +0100

    Fix failing tests introduced by #2797
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 55d8ffaaa3052dd0e8e2915d974d99827a92d61e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 14 16:21:05 2009 +0100

    Fix #2810 - adapt tidy to new FileSet api
    
    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>

commit 236bacc0a2c858ec25a48984e25834b91efc01c5
Author: Todd Zullinger <tmz@pobox.com>
Date:   Tue Oct 27 10:30:08 2009 -0400

    conf/redhat: Prevent killproc from removing /usr/sbin/puppetmasterd
    
    Mattias Saou ran into a serious bug cause by 9dff71 (Use -p option to
    killproc).  The puppetmaster init script lacked a pidfile variable,
    which ended up with /usr/sbin/puppetmasterd being removed.
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit 41f025c37d249f189d4b23022854edef345f8d27
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Nov 15 10:06:36 2009 +1100

    Fixed ldap typo again

commit 6c2daa36ded879763cfc1a6fac8f4e6d75a3cadb
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Nov 11 20:25:28 2009 +0100

    Fix #2783 - Puppetdoc rdoc should use environment to get modulepath/manifestdir
    
    Puppetdoc wasn't using the current environment to find the correct
    modulepath and manifestdir.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 56486664f25f495182dd3e3708e760d4220b1199
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Nov 11 22:47:42 2009 +0100

    Add Environment#manifestdir and small refactoring
    
    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>

commit 74a877e43d2113c5f60b08d998972e0722e63194
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Nov 14 10:55:05 2009 -0800

    Minimal fix for #2821 ("rake spec" is needlessly slow)
    
    At some point someone may want to get the coverage tests working, but
    the coordinates of that point is are not (now,me).  This patch just
    comments out the rcov and stops the time consuming trailing stack
    trace generation.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit cd10e6df8590ea0a9e81d9b09ba71bd1d5b1ae3d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Nov 14 17:44:21 2009 +1100

    Added package signing task

commit ca56aa7e5849a5489e8d38e29b25ea934caafcd7
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Oct 26 23:09:07 2009 -0700

    Least kludgy patch for #2675
    
    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>

commit adc0a4ed939a717e8735485d493bde28ceab5ac0
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Oct 19 21:51:32 2009 -0700

    Fix for #2661 and related issues
    
    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.

commit 65f601a99a0ca7ebacfda7a6becd8af9fe9eaacb
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Nov 11 23:22:03 2009 -0800

    Fixing 2806 Specifying multiple tags fails to apply any of them
    
    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>

commit e2c675edb5aecb5af6399ac53f9a85ed8214b8e9
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Nov 13 14:35:34 2009 +1100

    Updated generate function documentation to make it clear it runs on the master

commit 53f40bd336d709e717edb621a9d68dde9a4d5bce
Author: Rein Henrichs <reinh@reinh.com>
Date:   Wed Nov 11 11:17:13 2009 -0800

    Fix #2681 Incorrectly duplicating resources
    
    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

commit 3fdc8effbe25c9653d8bc86f2d4847984d4cb6f3
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Nov 9 15:10:46 2009 -0800

    Ticket #2770 (deserializing Exec[...]s with "\n"s)
    
    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>

commit b1722871ec27aa451be17e6fe6e099cc2f35cf7b
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Tue Nov 10 03:41:10 2009 -0800

    Fixing #2767 invoke-rc.d warnings
    
    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>

commit 40135609c8cfc7b70369a848a383a687a216f6a7
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Nov 11 18:29:05 2009 +0100

    Fix #2797 - tags are not inherited by recursed file sub child
    
    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>

commit 53be6f81261db1b7a022ec683e1a637cd2c5c93e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Nov 10 18:19:59 2009 +0100

    Fix #2796 - Fix puppetdoc rdoc selector parsing
    
    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>

commit 391786f0b43e514d58336f465bc53fb7a5c34884
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Nov 10 17:57:26 2009 +0100

    Fix #2795 - puppetdoc rdoc reports a better error message
    
    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>

commit f05a04eabdee2299f884933010234358c41ac46d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Nov 4 20:21:16 2009 +0100

    Fix #2784 - puppetdoc/rdoc didn't parse mono-instruction class content
    
    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>

commit 38ec9fcc5f3965942a74c8d7b7dfd1cf1796c0df
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Nov 10 18:19:59 2009 +0100

    Fix #2796 - Fix puppetdoc rdoc selector parsing
    
    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>

commit 5f7177efeae81c86086d73b3c7869302cfc6a40d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Nov 10 17:57:26 2009 +0100

    Fix #2795 - puppetdoc rdoc reports a better error message
    
    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>

commit 136949da70f1a6715734faa6ac3c464f386fccfb
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Wed Nov 4 17:57:20 2009 -0800

    Fixing #2631 show_diff sometimes doesn't happen
    
    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>

commit cb3e5e10d76a4a0f44e16c5bf36c69b65ae18fbb
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Nov 5 20:20:35 2009 +0100

    Fix #2787 - Storeconfig doesn't store/update node ip and environment anymore
    
    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>

commit ff23b5762532ef9bec84f0ad5cb32c807e048b90
Author: Bruce Williams <bruce@codefluency.com>
Date:   Thu Nov 5 10:57:48 2009 -0800

    Fix for #2670, Puppet silently ignores catalog_format
    
    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>

commit ee13efa50d83ea4ecb549763efca211111972edf
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Nov 5 07:28:44 2009 -0800

    Add docs to Mac OS X package creation script and clean out old docs in the preflight

commit b8470b8064503baea21d43d5c1dcf349bc4daf59
Author: Markus Roberts <Markus@reality.com>
Date:   Sat Oct 31 12:13:55 2009 -0700

    Fix #2757 & CSR 92 (symlinks in recursively managed dirs)
    
    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>

commit 5b750c225ff0c646341282aa867d92dbe15509cd
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Nov 2 19:24:48 2009 +0100

    Fix #2769 - default schedule are not defined
    
    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>

commit eca338c9fa78e1750bf70c034b1c211d8a0872d3
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Nov 2 19:16:55 2009 -0800

    Fix for #2772 (webrick test failures)
    
    This was my bad.  My patch for #2637 broke some test's assumptions and I
    never went back to update them.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit b1c57e9c15b1b7f079dc99dfc79e57fe3e5682e0
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Nov 4 17:36:43 2009 -0800

    Al Hoang's patch for #2781, removing obsolete when/: syntax
    
    This is just Al's patch with removal of trailing ";"s.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit b832d815c3211f22945cbce56dfbf61116f7a792
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Nov 4 20:21:16 2009 +0100

    Fix #2784 - puppetdoc/rdoc didn't parse mono-instruction class content
    
    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>

commit 50e9c98c3f7a54be48cc363696c2361a53e9e750
Author: Eric Sorenson <ahpook@gmail.com>
Date:   Wed Oct 28 12:07:45 2009 -0700

    Follow-on for #2724 - Adding an external node classifier
    
    Adds an ext/regexp_nodes/ directory containing a regexp-based
    classifier and some example files for it.

commit 2f0b1e5271d5859cff31b3b07e7c31141435fd10
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Oct 27 17:38:18 2009 +1100

    Updated CHANGELOG

commit 20e5222de71f68780063d774e83fd1debe64ba86
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 26 22:54:38 2009 -0700

    Fixing #2689 - file owner warnings are reduced
    
    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>

commit 09fb3f707dfce31a11eda2f35bd77e65c911c15f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 26 20:39:41 2009 -0700

    Fixing #2752 - "require" loads "include"
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6846c327e120b88334853bcc947f522b2cd9e377
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 26 20:36:01 2009 -0700

    Fixing some recently broken Scope tests
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0043392f170853df7311c3e823dcac9323a282f0
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Oct 27 12:39:22 2009 +1100

    Fixed typo in lib/puppet/indirector/ldap.rb

commit 6b254ebc606b128cbf4d778023da3c4cc396fe29
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Oct 26 20:07:20 2009 +0100

    Fix #2753 - Do not "global allow" plugins/modules mount if some rules have 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>

commit ff3a7bc17b66b73f5cf155a2ffb62ccd85f9e9bc
Author: John A. Barbuto <jbarbuto@corp.sourceforge.com>
Date:   Mon Oct 26 14:02:35 2009 -0700

    Re-fixed #2750 - Stop disabling the CRL or checking for a disabled CRL
    
    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>

commit 594c774dd466c85eae829eaba3898d02ae9538ca
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Oct 19 21:51:32 2009 -0700

    Revised partial fix for #2661 and related issues
    
    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.

commit 73d04c6b15e1b626cd7dea1f963a5ca02a810137
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Mon Oct 26 00:43:29 2009 -0700

    Bug #2534 Raise error if property appears twice
    
    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>

commit 7517572949e4e0efc419f97cf2663588af8b9756
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Sun Oct 25 23:14:13 2009 -0700

    Bug #1908 cron environment should allow empty vals
    
    Change regexp to allow cron environment => "MAILTO="
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit febe7074d2188e1133503ebc5eade5403a6e271e
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Sun Oct 25 22:36:53 2009 -0700

    Bug #1742 Invalid params to --color outputs 'nil'
    
    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>

commit d383ab897937a7e7e5fcf2929a63241e894f7616
Author: Todd Zullinger <tmz@pobox.com>
Date:   Thu Oct 15 19:07:22 2009 -0400

    Use notice() in the versioncmp() docs
    
    Use of notify() is an error, so replace it with notice, which is a
    function.  Alternately, notify { msg => '2.6-1 is > than 2.4.5' } could
    be used.
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit 9dff7167b71f392ec4706c5e220f52c9e1694d0a
Author: Todd Zullinger <tmz@pobox.com>
Date:   Sun Oct 25 11:00:42 2009 -0400

    conf/redhat/*.init: Use -p option to killproc
    
    If a puppetd run was started manually and 'service puppet stop' was run
    the killproc function used would kill the manually started puppetd.  On
    Fedora and newer RHEL (>= 5) we now use the -p option to prevent this.
    
    This fixes #2751 (Red Hat initscripts kill an independently started
    puppetd/puppetmasterd)
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit f47a70f46baa8b3c71c7e23471827a43abbbe598
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Oct 19 09:34:40 2009 -0700

    Ticket #2665: Regexp exception on ++ in package names
    
    This affects several providers:
    dpkg, rug, up2date, urpmi
    
    Fixed by escaping the package names with Regexp.escape
    
    Patch by Jesse Wolf
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit b6e4ef37f7ac4844697f1857cbcf03a2796db7d4
Author: John A. Barbuto <jbarbuto@corp.sourceforge.com>
Date:   Thu Oct 22 18:16:16 2009 -0700

    Fixed #2750 - Set :cacrl to nil instead of 'false' in puppetd
    
    The latter is deprecated and was keeping puppetd from starting.
    
    Also added a test and fixed a typo in another test.
    
    Signed-off-by: John A. Barbuto <jbarbuto@corp.sourceforge.com>

commit 2b57e065d2220be4f172ae429190bd116ddbdaf1
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Oct 22 20:09:27 2009 +0200

    Fix #2691 - Collection AR request should not include params if querying with tags
    
    f9516d introduced a change in the way the user tags are persisted
    to the database: user tags are now treated as regular tags (they are
    stored to the tags table).
    Thus this commit changed the AR collector request to also look at the
    tags tables when collecting.
    
    Unfortunately this added a performance regression since tag request
    were still importing the resources parameters tables and AR was
    issuing a large request which was returning all the resource parameters
    joined with the tags.
    
    This commit fixes the AR request to join to the needed table, instead
    of doing an include. Including (ie eager loading) parameter values was
    not working for resource parameters anyway since at least 0.24 because
    searching by parameter add a constraint to the joins and only the
    searched parameter was returned instead of all parameter for a given
    exported resource. So on a performance standpoint this new code should
    be as fast 0.24 was.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit e8bce7a6c3d0941fb3b461d2f0487b3f249ff5f1
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 24 19:35:03 2009 +0200

    Workaround #2668 - Compress facts so that the request size limit triggers less often
    
    This is not the right fix, but more a hackish workaround.
    
    Since 0.25, the facts are transmitted as GET parameters when a
    node asks for a catalog. Most proxies or webserver have a size limit
    which is sometimes reached. In this case the request is denied
    and the node can't get its catalog.
    
    The idea is to compress facts (some non-scientific studies show a
    57% fact size decrease for an average node) when transmitting
    those when asking for a catalog.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit e2ce790b57723453ac8f52e17b6c56335b64036c
Author: Martin Englund <martin.englund@sun.com>
Date:   Tue Oct 20 11:41:07 2009 +0100

    Fixed #2737 - The zone provider needs to get acquainted with OpenSolaris

commit b1deb89bae67f7d71ffe412ce4fd8e99c6e1c159
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Oct 13 23:31:54 2009 +0200

    Covers the RDoc Puppet Parser with specs
    
    This doesn't cover all the code, only the part that interacts with
    Puppet internals which is what matters when Puppet changes.
    This patch also contains an integration test.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ced5a7887836d1491273b5d6728589f494f8a337
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Oct 13 23:47:06 2009 +0200

    Fix #2376 - Display class/node inheritance in puppetdoc
    
    While we were keeping track of superclass/nodes during RDoc generation
    we weren't doing the reverse.
    This patch enhance Puppetdoc RDoc mode by tracking inheritance and
    for each base/super class/nodes displays the list of inherited classes
    /nodes.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 8d9fbbd4b9d7f1d467ea6123fedcf0ee74f4e8cc
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Oct 15 20:22:46 2009 +0200

    Fix #2703 - add 'require' to puppetdoc
    
    Puppetdoc wasn't parsing 'require'. This patch adds a 'require' section
    to list all required class from nodes and classes.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 41b7c3c70082a03563a6b59f23e72ba3735e6efe
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 14 17:12:56 2009 -0700

    Adding an example yaml node script
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 66a44ddc3032654109036371a5f3a60dd2ab4a9f
Author: David Lutterkort <lutter@redhat.com>
Date:   Mon Oct 5 20:32:38 2009 -0700

    type augeas: add 'incl' and 'lens' parameters
    
    These parameters allow loading a file anywhere on the filesystem; using
    them also greatly speeds up processing the resource.
    
      * lib/puppet/type/augeas.rb: add 'incl' and 'lens' parameters; change
        default for 'context' when 'incl' is given.
      * lib/puppet/provider/augeas/augeas.rb: when 'lens' and 'incl' are given,
        only load that file
      * spec/unit/type/augeas.rb: check that constraints on new parameters are
        enforced
    
    This fixes ticket #2694

commit c61335f66f897bc64992c4e9209ea517193c8e30
Author: Avi Miller <avi.miller@gmail.com>
Date:   Fri Oct 2 21:55:35 2009 +1000

    Patch to address feature #2571 to add Oracle support to Puppet
    
    Adapter requires specifying database, username and password.
    
    Signed-off-by: Avi Miller <avi.miller@gmail.com>

commit aea1e5fa34412dd843b937263d92c4fab9628b83
Author: Todd Zullinger <tmz@pobox.com>
Date:   Tue Oct 20 13:35:08 2009 -0400

    Update Red Hat spec file for 0.25.1
    
    Minor packaging fixes included since 0.25.0:
    
    - Include the pi program and man page (R.I.Pienaar)
    - Move puppetca to puppet package, it has uses on client systems
    - Drop redundant %doc from manpage %file listings

commit fbdded7647b1b625b5d695ea85b706298924f259
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Oct 8 14:36:20 2009 -0700

    Ticket #2685 (Type error in ssh_authorized_keys)
    
    In post processing a Symbol was being passed to StringScanner.
    StringScanner was not happy with this.  The error message lost
    backtrace information and the test coverage was both inadequate
    and broken (see #2745).
    
    To be fully effective, this patch needs/assumes the patch for
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 4d9f76ad2653542e53a8020be9eeadb8f354837c
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Oct 21 22:10:02 2009 -0700

    Fix for #2745 fakedata tests not working
    
    The old fakedata test facility was not playing nicely with the
    spec tests; although it looped through all the files failures
    in any example file after the first were being ignored because
    of the way fakedataparse was interacting with the before blocks.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit b4bcfe9106c43855fbb4d1d147945ddb0e08ab34
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Oct 20 19:52:50 2009 -0700

    Fix for #2736, target doesn't work for ssh_authorized_keys
    
    There were a number of problems here (duplicated code, meaningless
    tests, etc.) but the core was that the last definition of target
    ignored the provided value if there was also a user specified.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit ae528f62e898fac37ea7d37c6fcff2e5c0954782
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Oct 19 09:25:55 2009 -0700

    Ticket #2734 PSON/JSON not serializing classes of a catalog
    
    Now it does, there are tests to prove it, and the related tests
    for tags and version have been strengthend.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit f59f8054dc0d1c86169b954fab96df650f38dd23
Author: Jesse Wolfe <jes5199@gmail.com>
Date:   Fri Oct 16 23:45:02 2009 -0700

    Bug #1900 Parsing of quoted $ in stdin
    
    When code comes in via STDIN or --code ,
    Puppet::Util::Settings interpolates $values in the code,
    which is probably never the intended behavior.
    
    This is the least destructive fix I could think of:
    have Puppet::Parser::Interpreter ask for the uninterpolated value.
    
    More general fixes could be to:
      a) Add an escape character to Settings's interpolator, and escape STDIN
      b) Add a mechanism to Settings to mark some values as uninterpolated
    
    Signed-off-by: Jesse Wolfe <jes5199@gmail.com>

commit 6ba122f62bf22c955a6923604a46a8ab22d8770b
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Oct 18 17:06:28 2009 -0700

    Fixing #2735 - node classes are immed. added to classlist
    
    This commit adds any external node classes to the classlist
    at compiler initialization, so that at least those classes
    will be isolated from any ordering issues encountered when
    testing the contents of the class list during compilation.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bca3b70437666a8b840af032cab20fc1ea4f18a2
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Oct 9 15:23:19 2009 -0700

    Bundling of pure ruby json lib as "pson"
    
    Bundeling and renaming the pure ruby json library to addresses a
    number of cross version serliaization bugs (#2615, et al).
    
    This patch adds a subset of the files from the json_pure gem to
    lib/puppet/external/pson (renamed to avoid conflicts with rails) so
    that we will always have a known-good erialization format available.
    
    The pure ruby json gem as distibuted defers to the compiled version
    if it is installed.  This is problematic in some circumstances so the
    files that have been brought over have been modified to always and
    only use the bundled version.
    
    It's a large patch, so here's a breakdown of the change categories:
    
    The majority of the lines are only marginally interesting:
    
    * The json lib itself (in lib/puppet/external/pson) make up the bulk
      of the lines.
    * Renaming of json to pson make up the second largest group.
    
    Somewhat more interesting are the following, which can be located by
    searching the diffs for the indicated strings:
    
    * Adjusting tests to reflect the changes
    * Changing the encoding/decoding behavior so that nested structures
      (e.g. resources) don't serialize as escaped strings.  This should
      make it much easier to process the results with external tools, if
      needed.  Search for "to_pson" and "to_pson_data_hash"
    * Cleaning up the envelope/metadata
        * Now provides a document_type (as opposed to a ruby class name) by
          using a symple registration scheme instead of constant lookup
          (search for "document_type")
        * Added an api_version (search for "api_version")
        * Added a hash for document metadata (search for "metadata")
    * Removing the yaml monkeypatch and instead disabling yaml serialization
      on ruby 1.8.1 in favor of pson (search for "yaml")
    * Cleaning up the json/rails feature interaction (they're now totally
      independent) (search for "feature")

commit ce46be5773656f68eddc7edd6212e283b46f9320
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Sep 23 16:58:14 2009 -0700

    Proposed alternative solution for #2664 (REGEX / DIV lexing)
    
    This is my proposed attack on the lexing problem, with a few minor
    cleanups to simplify its integration.  The strategy:
    
    * Anotate tokens with a method "acceptable?" that determines if
      they can be generated in a given context.  Have this default
      to true.
    * Give the lexer the notion of a context; initialize it and
      update it as needed.  The present context records the name of
      the last significant token generated and a start_of_line flag.
    * When a token is found to match, check if it is acceptable in
      the present context before generating it.
    
    These changes don't result any any change in behaviour but they
    enable:
    
    * Give the REGEX token an acceptable? rule that only permits a
      regular expression in specific contexts.
    
    The other changes were a fix to the scan bug Brice reported,
    adjusting a test and clearing up some cluttered conditions in the
    context collection path.
    
    Added tests and subsumed change restricting REGEX to one line.

commit b0518c3938be6cef34eafeb0460116d98b2a64ca
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Sep 30 15:00:19 2009 -0700

    Fix for #2681 (duplicate resource)
    
    Refactor to not generate explicit resources and to not bail out if
    one of a set can not be ensured absend.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 8a7308249783fc75d450fc2428cba52a5ad30a10
Author: Rein Henrichs <reinh@reinh.com>
Date:   Tue Oct 13 18:21:06 2009 -0700

    Fix #2707 config_version fails more helpfully
    
    Use Puppet::Util.execute to run the config_version command and reraise
    its potential Puppet::ExecutionFailure exception as a more useful
    Pupppet::ParseError

commit 54ded1bd2b8c023d6e480c21f1b2b03f3b7859ba
Author: Ohad Levy <ohadlevy@gmail.com>
Date:   Mon Oct 12 10:17:22 2009 +0800

    Fixes #1719, this avoids calling the external binary *which* everytime we are looking for a binary

commit 4c3c2799364cc970a144c63eb92ae58f086f280c
Author: James Turnbull <james@rhizome-lovedthanlost-net.local>
Date:   Sat Oct 10 19:33:05 2009 +1100

    Updated required Facter version in README

commit fcce46aaf1413ef1cd275d1e3db76324ea2e1088
Author: John A. Barbuto <jbarbuto@corp.sourceforge.com>
Date:   Tue Oct 6 14:32:07 2009 -0700

    Fixed #2702 - Set :outputdir to "doc" if not specified
    
    Signed-off-by: John A. Barbuto <jbarbuto@corp.sourceforge.com>

commit 3940dfb3082789a5a800ec2c131ee206ed3235ca
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Oct 7 10:59:26 2009 +1100

    Fixed #2674 - createpackage.sh: problem finding install.rb
    
    Thanks to Allan Marcus for the fix.

commit 3b548f412a2eed36fd06ceb5d23039c1e075de0f
Author: Matthias Saou <matthias@rpmforge.net>
Date:   Tue Oct 6 09:10:15 2009 -0400

    Fix #2699 - Use --masterport for PUPPET_PORT variable
    
    The sysconfig file shipped on Red Hat systems includes a PUPPET_PORT
    variable.  When set, this should specify the port used by puppet to
    connect to the puppetmaster.  The init script was incorrectly passing
    this argument via the --port option, which sets the port on which
    puppetd listens.
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit a75bf5015dfaf068e7574ae8192a6163949907d3
Author: Benedikt Böhm <bb@xnull.de>
Date:   Sun Oct 4 16:48:23 2009 +0200

    This updates the portage provider in three ways:
    
    * update-eix is deprecated and will be removed from stable soon
    * update format string form eix-0.18
    * fix format string for >=eix-0.18

commit ad86e9e7b6c67280fb5b687211d15f3df103b0e0
Author: Nigel Kersten <nigelk@google.com>
Date:   Wed Sep 30 11:57:41 2009 -0700

    Fixes #2688. Macauthorization provider now handles booleans internally correctly.

commit d891f7acd190637ea7adc19d51f1961e2021e835
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Sep 24 13:45:49 2009 -0700

    Ticket #2676 (a typo)
    
    Signed-off-by: Markus Roberts <Markus@reality.com>
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit bfba2cdf8787f1e7fa778bba1b74c03fc06634cd
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Sep 23 20:22:44 2009 +0200

    Fix #2672 - Make sure nodenames keep their underscores when used as classname
    
    The #2627 fix was modifying nodename in case of string nodename, but
    was removing '_'. Since underscores is a valid character in a class
    name, we now allow it.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit db67e5fd4e2241f59341c38c5a1e291e68aec523
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 22 19:07:52 2009 +1000

    Added rcov exclusion to Rakefile

commit 6912a7e618631663834576a85373a32ca4aea851
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 22 18:10:32 2009 +1000

    Incremented version to 0.25.1

commit fd322daa42f751bfc6200b95e6151540b3eb541e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 22 13:24:31 2009 +1000

    Fixes #1538 - Fixes the yumrepo backtrace in noop mode.
    
    Yumrepo type will now chmod on all files when a change happens.  If the content is not changed then no chmod will occur.

commit 6551e86a03f5fa1f499386c96faa4587bdfac24e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Sep 21 22:48:30 2009 +0200

    Fix #2664 - Mathematic expressions mis-lexed as Regex
    
    This is not the real fix. It is just an hot-fix to limit
    the issue.
    The issue is that the lexer regexes have precedences over simple
    '/' (divide).
    In the following expression:
    $var = 4096 / 4
    $var2 = "/tmp/file"
    
    The / 4... part is mis-lexed as a regex instead of a mathematical
    expression.
    The current fix limits regex to one-line.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit a5950339f43e08516130ff0b7463dbe3fa925890
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Sep 18 16:12:08 2009 -0700

    Fix for #2654 (error generating error message)
    
    Since required_features can (and frequently does) return a single
    item instead of an Array, the error message needed to be more robust.
    
    The tests were not specific enough to catch the fact that an error
    was being raised in the generation of the error, so a more specific
    test was added and the required_features accessor test was beefed up
    a little.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit a951163d3d8a52fff4f0340b4ed1e827f2399147
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Sep 16 20:31:25 2009 +0200

    Fix #2642 - Runit provider rework
    
    The runit provider was left broken after some work on daemontools
    on which runit is based, and #2640 didn't override the
    restart command, so daemontools once was called.
    
    This patch aims to fix this provider and bring it on par with
    daemontools.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 96b5087d4e8e6eb8e95f6dfab44163b486e1fd86
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Sep 17 18:56:56 2009 -0700

    Fix for ticket #2639 (Puppet[:user]/Puppet[:group] vs. 'service')
    
    Internally the service user & group should only be referenced by the
    place-holder string 'service' which is replaced with the actual user
    or group as needed at the puppet/OS border.  This patch corrects to
    places in reports where Puppet[:user] and Puupet[:group] were being
    used instead.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit af57483e618ace39c0d4540fd0f8479f5430f0ef
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 19 21:56:05 2009 -0700

    Fixing #2632 - 'require' works for 0.25 clients
    
    I couldn't find a way to make it compatible with
    earlier clients, so the docs specify that
    it doesn't work with them, and it helpfully fails.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d42bda1f22e3beca321700a78aab9c1399537c30
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 19 21:33:34 2009 -0700

    Fixing relationship metaparam backward compatibility
    
    We broke some cases of metaparam compatibility in 0.25.
    Most of it was pretty esoteric, but one thing that wasn't working
    was relationship metaparams specified on defined resources.
    
    This adds a compatibility method for older clients.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d53bc169861815ce7cffac431f76304c995bb4fa
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 19 21:21:33 2009 -0700

    Adding version information to the catalog for compat
    
    We need to be able to do compatibility testing, and this
    allows us to do so.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5f2558939bbf4ce180aa5d7c0d534e974bd01a4f
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Sep 17 19:49:18 2009 -0700

    Ticket #2626 (unhelpfull error messages)
    
    Reworks the error message to 1) make it clearer that it's an internal
    error, not something the user did, 2) rearrange the sentence to make
    it clearer that "setting" is being used as a noun 3) combined several
    fields to increase the chance that the identifying information would
    suffice to lead someone to the actual source of the error.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit a1d3b04296babc42b6a00956508c86c18e2b39bc
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 18 12:09:44 2009 -0700

    Fixing #2617 - use the cert name as specified
    
    This allows us to search for a cert, and we use the searched-for
    term as the cert name (for the wrapper, not the actual cert object),
    rather than the real cert name.
    
    This allows us to use symbolic names like 'ca', as we're currently doing.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8987509aa171101fc64d5166851e866752f41d8c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Sep 19 12:20:16 2009 +1000

    Refactored Puppet packaging and gem creation

commit 5c2ba479d17b6a88fa018947de0b00d16d531220
Author: Steven Jenkins <steven@endpoint.com>
Date:   Fri Sep 18 14:15:32 2009 -0400

    FIXES 2616: Remove sync.syncronize and Puppet.info

commit a53a77cef6fe8f4216df3ac2a8a0d387021adb9b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Sep 19 09:18:11 2009 +1000

    Renamed test branch to testing in rake task

commit d054fd91c9f6e4689b28a1db7206574c2c67ef14
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 18 12:57:09 2009 -0700

    Fixing #2656 - puppet parseonly tests don't hang
    
    It was hanging reading stdin because no code had
    been supplied.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit cde70cf0dc651bf1afb020d93a65cf2a175af33f
Author: Nigel Kersten <nigelk@google.com>
Date:   Wed Sep 16 12:59:54 2009 -0700

    Fixes #2648. Spurious macauthorization parameter changes

commit dcf0d0d726ecec8c6180e2443b4b94b6d4ea4abf
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Sep 18 06:50:18 2009 +1000

    Fix #2652 - Fix SELinux syntax error

commit ba269f2ee083408ecb3fe92620bf7b44cac33ab4
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Sep 18 06:41:15 2009 +1000

    Fixed #2651 - Corrected install permissions on man page directories.

commit 361c50210172ffe484550a19db3a8d10d86edc09
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Sep 15 21:01:48 2009 +0200

    Fix #2638 - Allow creating several nodes with matching names
    
    When we are checking if a node exists before creating a new one
    we were also trying to match with regex node names, finding matches
    where in fact there is no equality.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 2283605ba63b39deec30bd71b5d0879630f63e6d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Sep 17 12:47:27 2009 +1000

    Added automatically constructed test branch task and file

commit fd2a1904f61c8dc1d47445833a91e365bd8ab708
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Sep 15 16:02:45 2009 -0700

    Fix for #2621 (JSON serialization of exec)
    
    Removed the array wrapping of values for JSON serialization, and
    the associated test.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 577a45b45711942f71c31ff2db0c7fbcd82e1b1d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Sep 10 21:30:42 2009 +0200

    Fix #2622 - Puppetdoc in single manifest to console is broken
    
    After the LoadedCode refactoring I forgot to update this (mostly)
    unused part of puppetdoc which unfortunately is not covered
    by unit tests.
    This commit fixes this issue.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d2d7070fb614840db56ca3672548bf5c58a3e4f0
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Sep 15 21:18:46 2009 +0200

    Fix #2640 - Daemontools and Runit were not creating the enable symlink
    
    Due to an incorrect tests, those providers weren't enabling themselves
    when starting, thus failing to create the symlink necessary for them
    to run.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d21b2664abcb13df2967af8caa881e41b19b3b81
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Sep 13 23:00:41 2009 +0200

    Fix #2627 - regex node name could lead to invalid tag
    
    We're converting the regex to a straight name to be used as the node
    class name which later on will be used as tag.
    It was possible to generate an invalid tag name (containing leading
    or successive dots).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit cb90528c041b63c1c483ac8650d1d9c67a12d791
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Sep 15 13:18:22 2009 -0700

    Merged fix for #2601
    
    This patch rolls up the changeses discussed on the list & the ticket
    The fqdn_rand now takes any number of additional arguments of any
    type that has a string representation (typically integers or strings)
    and concatenats them on to the salt.
    
    The tests have been adjusted to reflect this.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit b1554a1a38aa7a4da6c9927e26c9411af4ce1dff
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 15 23:30:29 2009 +1000

    Updated changelog task and CHANGELOG to version aware

commit f5a106dd61947146138148f64967122a4c9021d1
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Sep 14 17:03:41 2009 -0700

    Fix for #2637 (Webrick accpting connections on dead sockets)
    
    There was a race condition between the layers (SSL vs. TCP/IP) that
    permitted the creation of non-functional connections when webrick
    managed the connection.  This patch moves the responsibility into
    our code via the provided callbacks and makes sure the socket is
    valid before accepting the connection.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 19e98f994916482c930005efe938c5f0cac66dec
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 15 09:43:48 2009 +1000

    Fixed #2608 - install.rb will not run on ruby 1.9.1 due to ftools being deprecated

commit b77d6e8083606f64aad1a9683f1bd92d14be1179
Merge: 40cd6d4 f2bc8aa
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 15 09:37:01 2009 +1000

    Merge branch 'tickets/0.25.x/2634' into 0.25.x

commit 40cd6d413257e840b357ddd243499b8c441b0ff0
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Sep 8 13:33:33 2009 -0700

    Fix for #2605 by falling back to alternative solution to #1963
    
    Two solutions were proposed and tested for #1963; both worked but one
    (the read_nonblock solution) was used for performance reasons.  This
    solution does not work on older ruby implementations (1.8.1) because
    read_nonblock is not available.  This patch implements the alternative
    fix (IO.popen) as a fallback to handles such cases.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 630407d527905a9c874ae4b32a62849fdf6864b7
Author: Thomas Bellman <bellman@nsc.liu.se>
Date:   Fri Jul 31 18:13:44 2009 +0200

    Make regsubst() function operate on arrays (feature #2491).
    
    Allow the first argument to the regsubst() function be an array,
    and perform regexp replacement on each element of the array in
    that case.
    
    This patch also adds more error checking to give better error
    messages to the user when given bad parameters.
    
    Signed-off-by: Thomas Bellman <bellman@nsc.liu.se>

commit a45c4354b9ed8deaeb3173a495f06602472faebe
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Sep 8 17:28:21 2009 -0700

    Fix for #2600 (wrong number of arguments under older mongrel)
    
    This was an API compatibility problem with mongrel's HTTPResponse.start()
    method between Mongrel 1.0.x and 1.1.x (the number of parameters changed).
    The older version does not provide the option to set the response header
    message which was used (redundantly with the response body) to return the
    error message when the HTTP response was signaling an error.
    
    In order to suport the older version the call was wrapped with a fallback
    and the coresponding code in the other rest implementations was adjusted
    to always send the error message in the response body.  Then the rest
    terminus was adjusted to pull the message from the response body (if it
    is present) rather than from the header (which is only used as a fallback
    for dealing with older puppetmasters), and the tests were augmeted to
    verify this behaviour.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit f2bc8aafcb9965b08a2442ed22b8942ade1f9b9d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 15 06:42:57 2009 +1000

    Fixed #2634 - Added servicegroup_name parameter to serviceescalation type

commit 7404e31d1ec418e9fdc276e0e619c045567cc00c
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Sep 10 12:31:35 2009 -0700

    Fixs #2620 authconf interpolation, #2570 0-9 in domain names
    
    Partial refactoring to clean up the case in the ticket (host
    name containing dots, begining and ending with a digit, was
    mistaken for an IP address) and a range of related edge cases.
    
    Stopped short of a full refactoring (put off to 0.26 as #2623)
    
    Added tests for numerous edge cases.
    
    This also fixes the issue raised in #2570.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 43443390ec210a9462631d400b27d68b33d6592d
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Sep 9 15:38:54 2009 -0700

    Fix for ticket #2618 (stubbing so redhat tests run under debian)
    
    This adds stubs so that the service script used by redhat appears
    to exist while the tests are running, regardless of the operating
    system being used to test.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit c2e26b9bb28ebcb8e07822015f99bd6a971b51c8
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Tue Sep 8 23:44:56 2009 +0200

    vim: match regexp language features
    
    Signed-off-by: Marc Fournier <marc.fournier@camptocamp.com>

commit 1494bd7e53a87d2cb75a23f78f4178975790199d
Author: Todd Zullinger <tmz@pobox.com>
Date:   Sun Sep 6 20:46:16 2009 -0400

    Require active_record/version to support ActiveRecord < 2.3
    
    ActiveRecord < 2.3.0 did not autoload active_record/version which
    caused puppet to incorrectly believe ActiveRecord was not available.
    This compliments 1a5c5b3 (Fixing #2508 - removing mention of
    ActiveRecord 2.3).
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit a5c56fcb79b45568b592111959ebda6b11c4c43e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 8 12:33:05 2009 +1000

    Fixed #2607 - Added Facter dependency for Puppet Gem

commit b1eddbb6acf2b8ad2a564b0d75ef52c196357427
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Sep 5 09:39:36 2009 +1000

    Updated and created new CHANGELOG format

commit 994d6e08e8cb43b871fbac0b255718a7050a67b3
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 4 16:22:42 2009 -0700

    Adding tests for the #2599 fix
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 42ab73f29ada8e045e6638ccb454b12595220fe1
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Sep 4 16:10:20 2009 -0700

    Ticket #2525 don't fail find_manifest on invalid module names
    
    The patch that put validity assertions in for module names broke
    find_manifest because rather than returning a failure it now rasies
    an exception.  This patch catches the exception and treats it as
    a negative result.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit a0f0dccb0f42140b9e1cec0cc551b3860c7089c1
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Sep 5 09:27:26 2009 +1000

    Updated permissions on test files

commit d45812bc31a5a4517bbafb50fc7f9a15fca8d0a9
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Sep 3 22:05:11 2009 -0700

    Refactoring tests to reduce code size, increase coverage, and make
    Luke happy.

commit aba2f6600062c6935b65ebc2eeae0802e1f89a89
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Sep 3 17:43:24 2009 -0700

    This further normalizes the handling of init-style services (including
    the redhat "service" wrapper script).  Removes special case handling of
    non-zero exit code in redhat (base already did this) and centralizes
    scattered @resource[:has_____] checks.  Tests that proper versions of
    each are called and one level of fallbacks.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit fb236a00459c375e4f2a94bdd924ed4e7fbd25eb
Author: Markus Roberts <markus@phage.local>
Date:   Tue Sep 1 15:11:05 2009 -0700

    Combined fix for #2525, #2552 -- RedHat service issues
    
    This patch normalizes the structure of the RH service routines which
    should clear up any lingering issues; xxxcmd routines always return
    an appropriate array, while the coresponding routines (status/restart/
    etc.) either call super or take the needed actions.
    
    Signed-off-by: Markus Roberts <markus@phage.local>

commit d40b942d14d1da0341fb95835a28e0f7b8d88ab8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Sep 4 15:47:00 2009 +1000

    Fixed #2589 - Renamed zfs delete to destroy and added tests

commit 4aa7fcec3d05a45c3a9d8b76fd9892ae28e7618b
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Sep 4 13:00:30 2009 -0700

    Monkey patch to improve yaml compatibility between ruby versions
    
    Ruby 1.8.1 can not parse the yanl produced by later versions because
    it requires explict type tagging of symbols.  This patch adds the
    tagging on to later versions so that mixed version instalations can
    use yaml.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 1f6c74dbdfe8e0d27f74dd08c474747d24fafb61
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Sep 5 09:11:45 2009 +1000

    Fixed typo in parser test

commit 2e9b706898225f319ab90123d24efc215173d25f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Sep 5 09:00:00 2009 +1000

    Updated Red Hat spec file and RH patches for 0.25.0.
    
    Thanks to Todd Zullinger for the patch and the updates.

commit 19815dd32891eb182a3ad4d5937ba6ec9eda1261
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 3 17:22:08 2009 -0700

    Fixing #2592 - you can escape slashes in regexes
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ea5847875b5fd7e2d13470d9e74bb0f671ee4d95
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 3 17:41:42 2009 -0700

    Fixing #2590 - modulepath is not cached inappropriately
    
    It was getting cached by Environment instances too early, thus causing some
    executables to use the default even when it was overridden.
    
    We're taking the slightly extreme step of clearing the environment
    list if any parameter is set, but this is relatively inexpensive and
    is the only way to always be correct.
    
    The reason that the environments cache this value at all is that to build
    up their module path they have to search through every known module for a lib
    or plugins directory, which is then done every time a class is sought in
    the language.  Caching it saves a *ton* of file accesses.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1a3d0c876121561173c485b2e4d0dd7131f43eab
Author: John A. Barbuto <jbarbuto@corp.sourceforge.com>
Date:   Thu Sep 3 12:16:50 2009 -0700

    Fixed #2593: puppet init script status command not returning proper exit code
    
    Signed-off-by: John A. Barbuto <jbarbuto@corp.sourceforge.com>

commit 8dabc72dd016aa24a86311c81049793eb139ccce
Author: Steven Jenkins <steven@endpoint.com>
Date:   Thu Sep 3 14:19:38 2009 -0400

    Update documentation string to reflect actual intent of Puppet::Node::Facts::Rest

commit b30a3c772f5f2cbedacfe596c5fbd376d30994f6
Author: Nigel Kersten <nigelk@google.com>
Date:   Tue Sep 1 12:04:45 2009 -0700

    Fixes #2581. Use new 10.6 global launchd overrides file for service status/enabled

commit 7f054695e2b80c00d3b3fd821a7845be91ab6092
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Sep 3 09:46:55 2009 +1000

    Fixed Naginator link

commit e589cd39cc1d76de59cf4758bb986fa15f64571c
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 31 23:23:57 2009 -0700

    Fixing #2582 - / no longer autorequires /
    
    This was obviously resulting in a dep cycle.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 3342b73b6acf5e7c492fa352b16ba9aba3c60da8
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 31 23:38:26 2009 -0700

    Fixing #2577 - clarifying and demoting the deprecation notice
    
    It's now just notice instead of a warning, and it clarifies
    that 0.24 clients can't be present.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d397f8d1d1092067f7ca52449ce9af63f02f44e1
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 31 16:01:17 2009 -0700

    Fixing #2574 - autoloading finds plugins in modules
    
    We had some stupid errors that were preventing this
    from happening; this fixes them and adds an
    integration test.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 800a78b993f15e2d77312bf207929ec876e9b227
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 1 00:20:15 2009 -0700

    The first regex node now matches first
    
    Before it was undefined, but now we always match
    the first defined node.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6750aeb90a4d19a2cd1de3ff007f216d31c4e65d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 1 00:12:07 2009 -0700

    Fixing #2563 - multiple regex nodes now work together
    
    The problem was that we were needing to convert
    one of the regexes to a string, which wasn't working well.
    
    This adds specific rules for how regexes vs. strings
    get compared.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b728b931e5914cfeaf3d072fb77870e9a8ecf6cd
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Mon Aug 31 15:18:05 2009 +0200

    Fixes #724 - false is equivalent to 'ruby -W1'
    
    Signed-off-by: Marc Fournier <marc.fournier@camptocamp.com>

commit a9d5863145ef2373bbd25e92e1fc1a0071076afd
Author: Todd Zullinger <tmz@pobox.com>
Date:   Sun Aug 23 21:30:35 2009 -0400

    Fix parser error output
    
    The 'value' passed to on_error in Puppet::Parser::Parser is a hash, and
    we only want to print the 'value' key, rather than a flattened string of
    the hash.

commit ee4f6ba312387c1b93f850cee1507f6ab749f953
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 23 23:54:03 2009 -0700

    Fixing #2551 - fixing content changed logs
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c8f859e5def012ce582d73152fae54bb039c4155
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Aug 23 15:45:58 2009 -0700

    Fix for test isolation portion of Ticket #2511
    
    Ticket #2511 comprises two distinct problems with very similar
    symptoms.  This patch addresses one of them, the test failures
    which result from spec/units/util/backups.rb directly requiering
    type/file.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 6fa9271a944f4167f82cb51affe1c0b795428b73
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 18 18:14:19 2009 -0700

    Fixing #2549 - autoloading of top-level classes works again
    
    This was broken in the recent refactor around autoloading,
    which didn't special-case classes that specified that they
    were top-level.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c7526808c9d2d7efbcc39f33112001bd9bd42b56
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 18 18:14:10 2009 -0700

    Fixing a heisenbug resulting from a race condition
    
    We had a case where an expectation could be triggered
    before the thread finished, in which case it was marked
    as a failure.
    
    We just stub the Thread.new to avoid creating a "real"
    thread, thus skipping the race condition.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ea417d60915fcb68aeebaf750abb57cb5604fe6d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 19 17:49:04 2009 -0700

    Fixing #2460 - puppetmasterd can now read the cert and key
    
    This follows on to the previous commits which made Puppet
    resilient to the service user being absent.  This just
    changes the default owner of all of the cert-related files
    to now be the service user, which means that on the server
    all of these files will be owned by that user and on
    the client, at least when the service user does not exist,
    they will be owned by root.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a49915ad928e01aa1a5505ae52125fac6f4f2744
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 19 17:27:35 2009 -0700

    Not using the service user in settings when it's unavailable
    
    This gets us most of the way toward fixing #2460 - we can
    now have the certificate information owned by the service
    user when it's available, thus making it so that puppetmasterd
    (not running as root) can read it.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 14ec838c0aad75098c5c86f77603640f6b1e7efc
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 19 17:26:36 2009 -0700

    Explicitly loading all facts in the directory service provider
    
    We otherwise have load-order issues, where this provider tries
    to use the facts but they aren't currently autoloaded by default
    in Facter.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5ee660276f3e4f6519b1257673fa690be0416fbd
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 19 17:04:20 2009 -0700

    Adding an 'exists?' delegator from user type to provider
    
    We need this knowledge from the Settings class, and it makes
    more sense to delegate than to use direct access to the provider.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 06fcece75ef52168a73013eba2b8bfc50cf71c97
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 19 15:24:10 2009 -0700

    Switching the owner/group settings to use symbolic values
    
    We previously allowed the owner and group to be set to
    arbitrary values but we never actually used it -- we always
    just set them to '$user' or '$group'.  This commit changes
    the model to allow 'root' or 'service', where 'service'
    is converted to the actual service user/group.
    
    This has the potential to have backward compatibility concerns,
    because users could have changed the owner/group in puppet.conf,
    but the chances of that are fantastically small.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4eb325a1839e7803e50f148b999952a0c5abd959
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 19 14:25:52 2009 -0700

    Fixing the yamldir group to be a group instead of user
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 058514aaf44f981a3239b402f2ff116ebf0d951f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 19 11:31:19 2009 -0700

    Moving Setting classes into separate files
    
    This isn't really a refactor, just moving code around.
    
    I did some simple method renaming, also.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b0f219ad177c8e9c261578586f0324cef0c71cd2
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 19 11:20:14 2009 -0700

    Removing chuser on darwin restriction
    
    For too long we have refused to change users
    on Darwin because a long time ago the ruby they
    shipped with was really, really broken.
    
    It's been fixed for a while, so this just removes
    the restriction.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7f749cb93787dc3a0f70b0e24ddda1e0cdfecb3d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 19 11:17:45 2009 -0700

    Fixing a ruby warning in the authstore test
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c0da3bfebb40198703d7d99f2809b315682e28fc
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 23 12:10:35 2009 -0700

    Fixing #2558 - propagating recent fileserving changes
    
    I'd made changes to the internals of the fileserving
    system to fix #2544 (mostly switched from passing
    the node around and then calculating the environment to just
    passing the environment around), but those changes weren't consistent
    throughout the fileserving code.
    
    In the process of making them consistent, I realized that the
    plain file server actually needs the node name rather than
    the environment, so I switched to passing the request around,
    because it has both pieces of information.
    
    Also added further integration tests which will hopefully keep
    this from cropping up again.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ff39bc707e7f37ddeb28203a9e1bfaddcb9dc641
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Aug 19 17:06:41 2009 -0700

    Fixes #2550 Handles case where metadata is nil
    
    The checksum function assumed that if the source was present the
    metadata (including checksum) was also, and thus that the type of
    the checksum could be extracated with a simple RegExp match.  When
    metadata is nil it returns nil for the source checksum and the
    modified function passes this on.
    
    Alternatives would be to default to :md5 or to pass on to checking
    the :checksum parameter as if there were no source.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 47dee83464cd2ba95c931e1e4f7d2a018225c351
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Aug 21 17:46:57 2009 -0700

    Ticket 2559 -- parseonly ignored specified file
    
    In the command-line option parsing refactor from 0.24.x the manifest
    specification was lost for --parseonly, so site.pp was always used.
    This patch adds the parsing back in.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit a4f68969c04bc19b3382a9d068dee6721caec1c7
Author: John A. Barbuto <jbarbuto@corp.sourceforge.com>
Date:   Fri Aug 21 20:18:32 2009 -0700

    Fixed #2562 - Recognize the usecacheonfailure option again
    Signed-off-by: John A. Barbuto <jbarbuto@corp.sourceforge.com>

commit e408d6c7d562f126df97cd57e04fd7802bc53390
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 18 16:00:21 2009 -0700

    Refactoring the Module/Environment co-interface
    
    This simplifies who owns what code in these two classes,
    and the result should be much cleaner and simpler.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 796ba5c4ccec117bbc4dec69c670337e70b48634
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 18 15:58:38 2009 -0700

    Fixing #1544 - plugins in modules now works again
    
    We had to fix the fileserving plumbing to use the request
    environment instead of trying to use the node environment.
    This was apparently never fixed after we added the environment
    to the URI in REST calls.
    
    There's still a bit of refactoring left to clean up the APIs used
    in some of this code.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6bd3627d606cde4bea9293b855be0dd2b1170a92
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 18 15:57:55 2009 -0700

    Adding a global cleanup to the spec_helper
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0ef5f228c20a34a562a1c20b206acf2af0eb41ba
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Aug 17 21:30:44 2009 -0700

    Removed misguided case sensitivity tests
    
    Removed two failing tests added in the process of reproducing #2493
    because they enforced case-insensitivity in excess of that provided
    by 0.24.8 and thus contrary to user expectations.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit c1967bb8d2e98d53182ea15fb13ac68d7bff7d84
Author: Nigel Kersten <nigelk@google.com>
Date:   Fri Aug 14 13:35:24 2009 -0700

    Fixes #2513. debian service provider now uses invoke-rc.d to determine enabled? status

commit 7e0924737d817644402b1c3d2d5abb2cf006e76b
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Aug 14 13:52:03 2009 -0700

    Fixing fact-missing problem when puppet.conf is reparsed
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a35e9bf918db0f6fca45d8b0b002a372cff4f982
Author: Markus Roberts <Markus@reality.com>
Date:   Fri Aug 14 19:41:54 2009 -0700

    Fix for #2531; adds tests to confirm problem and related cases,
    notes fixes specific issue by eliminating the specal case for
    opaque strings which caused them to be strings when everything else
    was arrays; adds nots and pending tests where FQDN support could be
    added but stops short of a full refactor.

commit 299eadb7d903d250c8340049bd78611f0c705920
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Aug 13 21:10:26 2009 +1000

    Fixed #2530 - Fixed status setting in the SMF provider

commit e6a7e82dd549ee2aa1dc864937a2d0e5577d50e2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Aug 15 00:31:13 2009 +1000

    Fixed spec typo

commit 75c6e4aed8bf60fbb1bd535fcdd5504f48ce9dde
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Aug 6 22:26:27 2009 -0700

    Fixes #2493
    
    Added downcasing into find_or_load (which replaced fqfind) to get
    back the old behaviour.  Adjusted tests so that they would catch
    the problem & confirmed that they fail without the downcasing.
    
    Added tests to confirm the existance of #2493; improved
    existing autoload tests (removed inter-test interactions)
    and noted (with a TODO) that there was dead code in the
    feature loading test; added analogus case sensitivity tests
    where apropriate.

commit b62d9668e04f40f2e3aa6c0f26dd26d1f75d8e22
Author: Todd Zullinger <tmz@pobox.com>
Date:   Thu Aug 6 12:36:20 2009 -0400

    conf/redhat/*.init: Fix condrestart/try-restart
    
    Previously, the Red Hat init scripts used the $pidfile or $lockfile as a
    test for whether to restart the daemons.  This caused condrestart to
    start the daemons even when they were not running, in cases where they
    had died or been killed without cleaning up the $pidfile/$lockfile.
    
    This was reported by Ingvar Hagelund in Red Hat bug #480600.
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit e9fbd4c9a21f1030f8fef1cd561fc3951399ad31
Author: Todd Zullinger <tmz@pobox.com>
Date:   Thu Aug 6 12:34:56 2009 -0400

    conf/redhat/client.init: Fix #2123, status options on older RHEL
    
    On RHEL < 5, the status function does not accept a -p option.  Using it
    causes 'service puppet status' to produce erroneous output.  This was
    also reported by Aaron Dummer in Red Hat bug #501577.
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit 0461a0250dd8641523e27a22901988564fe94aae
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Aug 11 21:56:10 2009 +1000

    Updates to Solaris smf files to reflect new binary locations

commit 55a9cdbac71ef303c4905330b946586262297672
Author: Markus Roberts <Markus@reality.com>
Date:   Tue Aug 11 22:58:34 2009 -0700

    Fix #2517 - Stack overflow when CA cert missing
    
    This was a "There's A Hole In The Bucket" problem caused when trying
    to establish a connection to get a certificate before there was
    a certificate with which to establish the connection, ad
    infinitum.  The solution was to test for the presence of the
    CA cert as well as the host cert before attempting to use them.
    
    This patch modifies existing tests to pass with the new code (by
    stubbing out the additional FileTests) and adds a new test which
    catches the original problem.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 601a2e54aecccedfc0bdd94939d44cc07b4d6588
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Aug 10 23:08:21 2009 +0200

    Fix #2516 - Fix format detection when content-type contains charset
    
    Even though Puppet never transmist a charset information in its
    response/request content-type, some proxy (especially Apache with the
    infamous AddDefaultCharset configuration) may add this "incorrect"
    information.
    
    This patch makes sure that only the mime-type is used when looking
    for the format associated with a response or a request.
    
    The patch also provides a better error message when the client or server
    code is fed with a request whose mime-type can not be mapped to a known
    format.
    
    It also fixes a typo noticed by the original reporter.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d86bc889390e56aa007b0099f9f407d4be98c876
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Aug 10 20:08:18 2009 +0200

    Fix #2507 - Add missing integration tests
    
    Some of the integration tests were either missing or not complete,
    especially tests about exported non virtual resources or virtual
    and exported resources.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit aad3b76da045d2fd845866fb6e8a7c9866307cd8
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Aug 7 22:45:12 2009 +0200

    Fix #2507 - Exported resources were not correctly collected.
    
    #2507 contains two issues:
    * a crash when we filters-out an unwanted resource which had edges
    pointing to it.
    
    * resources are losing their virtuality when they are transformed from
    Puppet::Parser::Resource to Puppet::Resource. This means we weren't able
    to distinguish anymore between an exported resource collected in the same
    node as it was exported and an exported resource collected in another node.
    The net result is that we can't apply exported resources that are
    collected in the same node because they are filtered out by the catalog
    filter (see the commits for #2391 for more information).
    
    The fix is to keep the virtuality of the resources so that we can
    differentiate those two types of exported resources. We keep this until
    the catalog is ready to be sent, where we filter out the virtual resouces
    only, the other still exported ones needs to be sent to the client.
    To be real sure, the transaction also skips virtual resources.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 63cb1ade80187ebc6f7f24c74e4d1e4db53422c1
Author: Markus Roberts <Markus@reality.com>
Date:   Thu Aug 6 14:52:16 2009 -0700

    Fixes #2503
    
    Added a random suffex to the temporary file name and verify that
    the name is not in use (retry on collison).  No additional
    tests added as the lifetime of the temporary file is bound by
    the routine, making spec driven tests impraticable.
    
    Includes logic to account for dead-end symlinks as well, as per Luke.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit c129f2a15fdccc12baa3d929531221cbade7ff10
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Mon Aug 10 18:24:48 2009 -0600

    Fixes #2360 - Removed annoying log message
    
    This change will effect all the properties implemented with list.rb
    (groups, roles, auths, profiles). The change will match [] values for
    should as insync when none exist. (so no more log message)

commit b1ffffada99ce12b64bed7f93d4352317d1263b9
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Aug 11 08:17:42 2009 +1000

    Fixed #2525 - Wrong method being overridden in Red Hat services

commit a88fc4d24c50d91aa764fa8f52797e86bb6d8965
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 10 04:31:26 2009 +0000

    Fixing more tests broken from missing libraries
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 9a356ab289a64245cf59cd763dc953a93d71682b
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 10 04:20:54 2009 +0000

    Fixing ActiveRecord Indirector tests to skip w/out Rails
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit acc5a964738871539cf38675ad3b56d512d3c860
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 10 04:10:51 2009 +0000

    Fixing #2489 - queue integration tests are skipped w/out json
    
    All of the tests were failing because we had a call outside
    of any of the tests, just to autoload the constant.  Removed
    that call and stubbed things so the tests don't run without
    json.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1a5c5b3fdbcf705d1fcd16f8f26e2b0f85b9e160
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 9 21:03:06 2009 -0700

    Fixing #2508 - removing mention of ActiveRecord 2.3
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0cb9072c0e3b37332f4eeaeff061950d6f73d021
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Aug 7 17:39:44 2009 -0700

    Fixing #2541 - file cache is more resilient to failure
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 23948d0b7efb482f891a333d4af56dc5ac59c00f
Author: Todd Zullinger <tmz@pobox.com>
Date:   Thu Aug 6 22:54:42 2009 -0400

    vim: Mark puppetFunction values as contained
    
    This prevents 'file' from being highlighted as a function when it is
    used as a resource.
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit 79a4339e1f614647d8b3e074752d8bf0e583aef2
Author: Thomas Bellman <bellman@nsc.liu.se>
Date:   Tue Aug 4 14:47:12 2009 +0200

    Add shellquote() function.
    
    This adds a new function shellquote() which can be used for quoting
    arguments in shell commands used in the exec type.
    
    This only supports Unixoid operating systems.  Other systems would
    likely require some other quoting.
    
    Signed-off-by: Thomas Bellman <bellman@nsc.liu.se>

commit 79d705faec6b7de2bd644e77e5e4c88e8974f207
Author: Nigel Kersten <nigelk@google.com>
Date:   Tue Aug 4 16:38:06 2009 -0700

    Fixes #2499. Allows execs to specify an array for the returns parameter

commit b611c34de2ff9fe35633ca2154bc64c6c793af7d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Aug 5 09:48:40 2009 +1000

    Updated fix for #2481

commit f3850729c691fc04482663a115b1b61938db4697
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Aug 5 09:34:51 2009 +1000

    Revert "Fxied #2481 - Added status and restart overrides for Red Hat service provider."
    
    This reverts commit 967eb9f52938d8849b99686bf2c0b9da9a183399.

commit cc379b6d72c8d968fc9fa2f6b07db4e88869b159
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Aug 5 08:21:14 2009 +1000

    Fixed #2498 - logcheck update

commit 85a36334b487f2f3fce3c4bc5c8496eaede58b46
Author: root <root@absinthe.lovedthanlost.net>
Date:   Tue Aug 4 15:30:50 2009 +1000

    Removed extraneous debugging

commit bf94de9939b31dbdbbce787696d331eb8e5f1e83
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Aug 4 11:40:59 2009 +1000

    Updated two more tests

commit 5b87dba681cc0aa3144dca59216223bb16d10a4a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 3 16:14:26 2009 -0700

    Logs now assume resource params have metadata
    
    We were previously not assuming they had it,
    because I figured there were just a couple that didn't.
    On closer inspection, none of them did.
    
    The previous commit fixed that, so this commit
    fixes the assumption.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1410bed5a40fe945f68b805474b7c022403c3d47
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 3 16:07:30 2009 -0700

    Adding metadata delegation from param to resource
    
    This is for file, line, version, and tags, with the
    parameter name added to the tags.
    
    This is mostly so logs generated by the parameters
    work better.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 3ab3a5c7ab9f01b78e0e6d27fce6377de0cfaeec
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 3 15:50:44 2009 -0700

    Removing unnecessary debug output
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 488e368efcb0ad6d896743edb76088242c58fb05
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 2 17:50:54 2009 -0700

    Adding integration tests for #2371 (backup refactor)
    
    Also removed old conflicting file tests.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f1406bfbedc593033f0c46241ec34fdc3bfdfbd2
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 2 17:51:53 2009 -0700

    Adding many tests for #2371, and slightly refactoring
    
    This mostly focuses on adding all of the detailed tests
    for this new code, but it also cleans the code up
    just a little bit.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8f60f0c50ee3dfb6453644f5dcded58e6e80e8bb
Author: Steven Jenkins <steven@endpoint.com>
Date:   Fri Jul 24 12:31:36 2009 -0400

    Fixes for Redmine 2371.
    
    This changes the condition checking of handlebucket, as well as
    moves it (and remove_backup) into a separate module.  It
    additionally refactors common code out of handlebucket into
    separate private methods.
    
    Some new RSpec tests which use mock and stubs are added as well,
    including removing the old test/ral/type/filebucket.rb tests
    since they are already covered by RSpec tests.

commit cd224c6c9f5dedd27bb59822e240b5bae6202ab0
Author: Nigel Kersten <nigelk@google.com>
Date:   Fri Jul 31 17:36:50 2009 -0700

    Fixes #2464, #2457. Deprecate reportserver for report_server. Add report_port setting. Add tests.

commit 401a9ec546adab01afa1a62477010797bf6fb221
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 3 14:34:20 2009 -0700

    Fixing #2484 - "format missing" messages are better
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f6cc59803b32dd1d62cbc5e8ae16ac675ffb296d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 3 11:53:58 2009 -0700

    Fixes #2483 - Log only copies metadata from RAL objects
    
    We were previously trying to figure out what data
    was available based on what methods existed, but
    that caught a different method profile from
    modules.
    
    This fixes it so we only look for this data from
    Puppet::Type or Puppet::Parameter instances.
    
    I had to add the ability to skip data that's
    not available, since File's 'ensure' parameter
    doesn't have 'file' data, I assume because of
    the metaprogramming we do around the 'file' value
    for 'ensure'.  It's a workaround for now, and there's
    a test in there to verify it, anyway.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7c4c00f9e0a8120f6ee273c81cf1aff4379b83c2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Aug 4 07:24:46 2009 +1000

    Fixed #2486 - Missing require 'monitor' in parser_support.rb

commit ea34ee6ce64436b41ddb5a9bf71ef311fdf8b92b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Aug 3 23:12:13 2009 +1000

    Added R.I.Pienaar's extlookup.rb to the ext directory

commit 36d3f588b7807a9dab26c27c3118c3ced62d75c2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Aug 3 21:36:03 2009 +1000

    Added example conf/puppet-queue.conf

commit 967eb9f52938d8849b99686bf2c0b9da9a183399
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Aug 3 11:34:56 2009 +1000

    Fxied #2481 - Added status and restart overrides for Red Hat service provider.

commit c702f76b271515e9c42dcb923d379fbfac4c83cd
Author: Christian Hofstaedtler <hofstaedtler@inqnet.at>
Date:   Sun Aug 2 08:26:04 2009 +0000

    rack: SSL Env vars can be in Request.env or ENV
    
    Fix #2386, by checking either Request.env or ENV for the SSL environment
    variables. This is necessary as Passenger 2.2.3 changed the location of
    these vars, even though the Rack spec says nothing about ENV or these
    variables.

commit ca17b3c4dec9a095b7e1bf24a55edbaaa6561a00
Author: Christian Hofstaedtler <ch+git@zeha.at>
Date:   Fri Jul 17 13:31:56 2009 +0200

    rack: don't directly use the forbidden HTTP_CONTENT_TYPE env var (fixes rack specification conformance)

commit a002e58fe91a679ef75b32f09ffbdebd0ad61b81
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 2 08:51:43 2009 -0700

    Removing old filebucket test
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d8de446995358b9ee06f943a6de90138c078756d
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 2 08:49:07 2009 -0700

    Cleaning up tests for #2469
    
    This is a small refactor of the filebucket type, and a
    larger refactor of the tests.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 266aafa6efa9dff5fb0b49ffdafc9372edcafdfe
Author: Till Maas <opensource@till.name>
Date:   Sun Aug 2 11:20:30 2009 +0200

    default server in remote filebuckets
    
    With the path parameter set to false, the server defaults
    to Puppet[:server]. This allows to use a remote filebucket without
    syncing the servername there with the one used on the config file.
    
    To use the default server, this manifest can be used:
    filebucket { main: path => false }
    
    A related bug report is:
    http://projects.reductivelabs.com/issues/2456

commit 1f8ef6086cc1bb27035cc2534fac781a0349bfb5
Author: Markus Roberts <Markus@reality.com>
Date:   Sun Aug 2 11:13:07 2009 -0700

    Fixes #2444 - Various JSON test failures

commit 11c0fb77230ea5ba28bfe86a1c2a1469095b6c70
Author: Markus Roberts <Markus@reality.com>
Date:   Wed Jul 29 20:55:24 2009 -0700

    Fixed #2294 - Classes sometimes cannot be found
    
    This patch should fix the race condition causing ticket 2294; it extends the loading logic so that:
    
        * initial load attempts are processed (as before),
        * recursive load attempts return immediately (as before),
        * but subsequent concurrent load attempts from different threads
          wait on a semaphore (condition variable) and then retry (e.g.
          use the now-valid results of the first thread).
    
    This is a slight modification of the solution I'd originally proposed, to prevent a deadlock
    that could have arisen if three or more threads simultaneously attempted to load the same item.
    Though it solves the bug as reported, it has room for improvement:
    
        * Failures aren't cached, so repeated attempts will be made to
          import invalid items each time they are encountered
        * It doesn't address any of the underlying referential ambiguity
          (module vs. filename)
        * The threading logic should probably be refactored into a separate
          class (as a start I encapsulated it in an ad hoc singleton class,
          so at least it isn't cluttering up the load method)
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 7e5b56212eef22be381a480dcaf38b33620674dd
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 1 12:45:55 2009 -0700

    Adding #2477 - puppet can apply provided catalogs
    
    This provides the other half of #2440 - you can
    compile catalogs into json with puppetmasterd,
    and now you can take those json catalogs and apply
    them.
    
    This allows you to use whatever mechanism you want
    to ship the catalogs around.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 97274ad976e3584ae850ad91cc886fae1dcdbbc6
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 2 07:27:16 2009 +0000

    Fixing problems my Feature refactor caused
    
    The problems were that I wasn't propagating return
    values sufficiently, such that false values didn't
    travel enough, and the 'name' attribute was necessary
    in the private method but wasn't actually passed in.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6fb8bf625fcfa12b085101838813ab7bc4635dae
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 1 23:58:47 2009 -0700

    Fixing ruby warning in definition test
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b3545fc528104c9b2431d8ffddd480c30207b38e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Aug 2 17:03:13 2009 +1000

    Fixed global deprecation error in useradd Unit tests

commit dc244723bb23fe49b51cbb74bc372303d29fd180
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 1 16:39:27 2009 -0700

    Adding a test for the Exec type
    
    I thought I'd found a bug, but I couldn't reproduce
    it.  This test was supposed to demonstrate the bug,
    but is at least good enough to leave in.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 58d95872ce5afddc158ac4b229363c5f63859c5d
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 1 16:29:26 2009 -0700

    Speeding a test up through stubbing
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d4d8372bf8174dfebcd6ae549710c9750b70bb30
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 1 23:32:57 2009 -0700

    Fixing a small test by stubbing instead of mocking
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f7e1c36c6c0c03e1f969da7856828c92fdee2b61
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 1 23:28:55 2009 -0700

    Fixing a test broken by the regex features
    
    Unsetting scope vars was broken, but it was
    only ever used in testing (and apparently rarely
    at that), so it wasn't caught.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 54a225dd26d867d5672df48a5bc0ed858821bf40
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 1 23:24:54 2009 -0700

    Fixing tests broken by caching autoload results
    
    These tests tried to load something, verified
    the loads didn't work, and then created
    the thing to load.  This is a bit silly,
    so I just removed those sections of the tests.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1ce31b4f5c5a38aa6914a5367ea6dd8db53174ab
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 1 23:19:02 2009 -0700

    Migrating Handler base tests from test/ to spec/
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit cc3f56a68b04ba26c0234e1434abe7f58e6c7218
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 1 23:11:37 2009 -0700

    Migrating Feature tests to spec
    
    This was to fix a failing test/unit test.
    
    Test coverage is now a bit better, more maintainable,
    and I refactored the code just slightly to make it a bit
    cleaner.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 21d1d257a804e472607989ef63fb7d7ce1ddee77
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 1 22:47:32 2009 -0700

    Fixing cron test to match new behaviour
    
    7 was added as a valid weekday in #2293, and this
    test just corrects that.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 849fa67b6ebc69df9a5b8c95eb68281ccf45d376
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 1 22:45:46 2009 -0700

    Migrating tests to spec and removing an obsolete test
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6f458cca5379229da066787045b74acafb184c07
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 24 00:33:55 2009 -0700

    Logging the configuration version we're applying
    
    This is just an additional info log in the transaction,
    and is only done if the version is non-nil.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ac58e274c409b69073e304a8355bbe4ccb37350a
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 24 00:27:44 2009 -0700

    Configuration version information is now in logs
    
    The log instances have file, line, and config version
    information, although it's not currently printed.
    
    It's available in the reports, and you can strip it
    out with your own processors.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6ed01037ad8b6d8d5ff7158ef6e09c785ed8b9fe
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 23 23:52:44 2009 -0700

    Adding support for an external catalog version
    
    This allows you to specify a command used to determine
    the catalog version.  Also added an integration test
    to verify the version cascades.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 39320b8794549fa7806f2e9e57346242b0b7e847
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 23 23:49:07 2009 -0700

    Cleaning up duplication in another test file
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 25fae5f3e991cccc6dcebb6ea5b0967d99200218
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 23 23:34:05 2009 -0700

    Removing duplication in the test structure
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 36c0662f13b0f00fe0b75ba45f892a1c7c3218bf
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Aug 2 02:15:34 2009 +1000

    Simplified Rakefile and moved tasks to tasks/rake directorya

commit b45ccf8d38a10d3f5226cbabe494240901e4e383
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Jul 28 19:37:11 2009 +0200

    Implement node matching with regexes
    
    This patch enhance AST::HostName to support regexes, and modifies
    the parser to allow regex to be used as node name.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>]

commit 58a73b5c68485dc5d41a46936c31e5fad5f037b5
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Jul 28 19:42:24 2009 +0200

    Make sure node are referenced by their names
    
    This patch uses the unused AST::HostName as the only way to reference
    a node in the AST nodes array.
    The AST::HostName respect the hash properties of the underlying
    string, to keep the O(1) hash properties.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 3ebf148bf3d82d25e690aec6ec49975e0837e604
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Jul 28 19:56:34 2009 +0200

    Enhance selector and case statements to match with regexp
    
    The case and selector statements define ephemeral vars, like 'if'.
    
    Usage:
    
    case statement:
    $var = "foobar"
    case $var {
        "foo": {
             notify { "got a foo": }
        }
        /(.*)bar$/: {
             notify{ "hey we got a $1": }
        }
    }
    
    and for selector:
    $val = $test ? {
      /^match.*$/ => "matched",
      default => "default"
    }
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ef68967f2b72e609a9d69e53771a61fd9f522149
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Jul 28 19:13:54 2009 +0200

    Fix #2033 - Allow regexp in if expression
    
    This changeset introduces regexp in if expression with the use of the
    =~ (match) and !~ (not match) operator.
    
    Usage:
    
    if $uname =~ /Linux|Debian/ {
      ...
    }
    
    Moreover this patch creates ephemeral variables ($0 to $9) in the current
    scope which contains the regex captures:
    if $uname =~ /(Linux|Debian)/ {
      notice("this is a $1 system")
    }
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 17e62b1ec806815abea909291df1e591a825c375
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Jul 28 19:11:03 2009 +0200

    Add AST::Regex, an AST leaf node representing a regex
    
    Add a regex rule (unused for the moment) to the parser.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 4f9545f2f6cb377eff126c9d52b421ab405aa677
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jul 26 13:44:35 2009 +0200

    Add regexes and regex match operators to the parser
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 0ccd2590b2bf0494388c4656759b47612776bc53
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jul 26 13:44:06 2009 +0200

    Add regex, match and not match token to the lexer
    
    The lexer recognizes regex delimited by / as in:
    /^$/
    
    The match operator is defined by =~
    The not match operator is defined by !~
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 201ae59eacaff289a8a5bb45f7d301c1a490a119
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Jun 12 23:24:36 2009 +0200

    Allow variable $0 to $9 to be interpolated, if ephemeral
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f357a9192647fc5d436d4c934b1912f59996389f
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jul 26 14:03:14 2009 +0200

    Implement ephemeral scope variables
    
    Those variables have been created to be short lived and used mainly
    to define temporary special variables.
    They do not persist after a call to unset_ephemeral_var.
    Also Scope#set_ephemeral_from can be used to promote a regexp
    MatchData to ephemeral values.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d40ef291191e627a91d6ec73b438853e2d3a73e8
Author: Eric Sorenson <eric@leterel.apple.com>
Date:   Thu Jul 30 17:46:07 2009 -0700

    Signed-off-by: Eric Sorenson <ahpook@gmail.com>
    
    Apologies if this violates the no-trivial-patches rule. I am getting
    used to git and this seemed like a harmless place to start.
    
    Documentation fix for help text, configuration reference URL is 404 now.
    Updated to equivalent page on wiki, fixes #2466
    Signed-off-by: Eric Sorenson <ahpook@gmail.com>

commit 6d22afb241b290dcfc6a95079a2297afedb8ce96
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 23 16:07:05 2009 -0700

    Modifying the REST client error to make server errors more clear
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 21f477a57c2e1dc1ce4b47ea6ee37f8eef46e40c
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Jul 30 10:15:46 2009 -0700

    Fixes #2472. Load Facter facts when ralsh is invoked, plus test.

commit 2e41edbd235ddf8278073fd645821f48523a0af3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 31 22:49:57 2009 +1000

    Update CHANGELOG.git

commit ebb5a1f6fff6bdd143a6d64ffe9f9f8fa70d649e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 31 19:00:40 2009 +1000

    Fixed ci_spec task for RubyGems 1.3.5

commit b6b903eedd383e66593315fdc8163614ad22db79
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Jul 30 09:59:32 2009 -0700

    Fixes #2461. Provide new and old code paths for macosx_productversion_major with deprecation warning

commit 26b0c70dcd5f6ef8685280dd039dcac96b1307df
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jul 27 15:13:12 2009 -0700

    Fixing typo in two tests which caused them to always pass

commit 76fc2b177a026e49d8370de2092f77108769110a
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 23 19:10:29 2009 -0700

    Fixing #2440 - catalogs can now be compiled on demand
    
    This uses the locally cached yaml facts and prints the
    catalog in json.  It's meant to be used one-time, but
    you have to use puppetmasterd since we assume it's the
    executable correctly configured for compilation.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 832b6ff1e18cf403213cbeb42646b5740669e6a5
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 23 18:48:18 2009 -0700

    Exiting from app failures instead of raising
    
    This protects the user from seeing stack traces in normal situations.
    It makes sense here because this is explicitly for user interactions.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4ea3f17eee236bcbc4481b08eeb5ece1e51cc929
Author: Markus Roberts <Markus@reality.com>
Date:   Mon Jul 27 17:29:20 2009 -0700

    Minimal patch to fix #2290 (/tmp permissions)
    
    This patch rectifies the specified problem by resetting the
    permissions to 1777 after the offending tests have run.  I
    am providing it for testing but suspect there may be a deeper
    bug hiding behind this one--specifically, it isn't clear to
    me that an analogous problem could not occur in production use
    (which this patch to the spec would not fix).
    
    This patch also fixes the specific test isolation failure which was
    causing ticket #2290; if spec/unit/util/storage.rb was run by
    "rake spec" before spec/integration/network/server/webrick.rb
    without any intervening tests which did a Puppet.settings.clear,
    the the webrick test would change the permissions on /tmp.
    
    Signed-off-by: Markus Roberts <Markus@reality.com>

commit 08ff9e84de18e9b1db69c73ea3e49b90fe5fd7c0
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Wed Jul 29 23:08:44 2009 +0200

    Fix #2467 - rack: suggest putting puppet/lib at beginning of RUBYLIB search path
    
    If you happen to already have puppet code somewhere in your ruby path, you
    might get unexpected behaviour when trying to run puppetmaster with passenger.
    
    Suggesting that the path to puppet/lib gets prepended instead of appended to
    RUBYLIB could save time to some.
    
    Signed-off-by: Marc Fournier <marc.fournier@camptocamp.com>

commit fb60f90d13f1d1dc1ccc884030230764be642d09
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Jul 29 21:58:02 2009 +0200

    Fix #2465 - Default auth information is confusing with no auth.conf
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 0ca9b5322117879cf930c88a0473558d9e437ece
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Jul 29 21:21:25 2009 +0200

    Fix #2459 - puppetdoc added namespace classes as RDoc modules instead of classes
    
    Puppetdoc while parsing a class name creates intermediate RDoc classes
    to form a hierarchy. Due to a coding error, those intermediate classes
    were created as RDoc modules.
    Later, when puppetdoc was parsing the definition of one of this class,
    it wasn't finding it in RDoc list of classes (since it was recorded
    as a module).
    Puppetdoc was then creating documentation for two objects of the same
    name.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 18b5d614462e2af8faca92fa1881f4968487d3e7
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Wed Jul 29 20:18:24 2009 +0200

    Fix #2429 - vim: class/define/node should only be followed by whitespace
    
    Thanks to Charles Duffy for noticing this and providing this patch.
    
    Signed-off-by: Marc Fournier <marc.fournier@camptocamp.com>

commit da828a4234754e9122034706ca65f6b6f7d5c2ab
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jul 25 12:55:20 2009 +0200

    Fix #2448 - fix the broken runit provider and tests
    
    The runit provider was broken when the daemontools provider
    was enhanced.This patch aims to fix this.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 389843629c5ec2950f44b0fdaacb1d7470bc4aec
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jul 29 07:46:49 2009 +1000

    Fixed #2405 - Mount parameter "dump" doesn't accept all valid values on FreeBSD

commit 9825bec3ad612eb3ec980cbae3a80f611b4a70a0
Author: Nigel Kersten <nigelk@google.com>
Date:   Fri Jul 24 17:23:00 2009 -0700

    Fixes #2362. Do not validate users/groups when supplied with numeric uid/gids

commit 450a19c405810358684a47b87ef9eca26589b95f
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Jul 28 20:50:01 2009 +0200

    Fix #2454 - Definition named after a module don't show in puppetdoc
    
    RDoc#find_local_symbol can return a module. So if you have a defition
    of the same name as the module in which it is defined we weren't
    producing documentation for it.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 8551ece0d55dafceab633ee6eec46fb1c54c1446
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Jul 28 20:47:48 2009 +0200

    Fix #2453 - puppetdoc mixes long class names that look alike
    
    The issue is that RDoc (the engine producing the documentation) is
    buggy:
    With a class named: A::C
    and a class named: D::A::E
    Then RDoc was attaching E under the root ::A and not D::A.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit e3ee594fdfa0e7a6d9de26c4307e217de866f462
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jul 18 13:08:57 2009 +0200

    Fix #2422 & #2433 - make sure puppetdoc transform AST::Leaf boolean correctly
    
    AST nodes don't have a valid to_s that is producing a correct
    representation of said node.
    This patch adds some of the AST node to_s to produce correct
    values that can be used verbatim by puppetdoc to render
    the documentation.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b3b76dffdd9cd8ed5c3d0230624bf05015bec5b8
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 23 16:51:22 2009 -0700

    Fixing #2296 - overlapping recursions work again
    
    This fixes the behaviour when you have file recursions
    that overlap - we again correctly use the most
    specific information.
    
    It's still a bit expensive when you do this, but
    at least it behaves correctly, and it should be
    a rare circumstance.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 9120712f97c12dad0c743271b4f64cf545319b69
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 21 17:47:28 2009 -0700

    Fixing mocks to remove warnings
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit eeec8e99eaeb6bb97173f2bc04148bff3be58036
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 21 17:38:57 2009 -0700

    Fixing #2423 - no more strange dependency cycles
    
    We were getting strange dependency cycles because our class structure
    mirrored our scope structure.  We can't change the scope structure
    without switching from a dynamically scoped language to a lexically scoped
    language, which is too big of a change to make right now.  Instead,
    I'm changing the resource graph so that all classes default to just
    having an edge to the 'main' graph.
    
    This will be a behaviour change for many, in that you were getting
    automatic dependencies from this old behaviour, but it will bring
    consistency.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7d40f9e039964e2c3f9e94b5ef2ccbded45a59a5
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 24 09:42:09 2009 -0700

    Fixing #2443: Adding debugging guidance to dep cycle errors
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b4facb0bacaa6e3bc1eb3123c69e037e0ba8ec69
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 24 15:35:34 2009 -0700

    Fixing a test broken by changing the default os x package type
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b418921fb846e7d083c39a9556810ff067878e86
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 24 15:32:48 2009 -0700

    Fixing selinux tests broken in the fix for #1963
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 719e76b8ce5293cb30c70e62cf3182c6149e2620
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 24 15:26:38 2009 -0700

    Fixing #2445 - fixing the mount test mock
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f13f08dfbf659cba6317aac2d77096a8688fc3bd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 24 20:17:32 2009 +1000

    Minor fix to URL for LDAP nodes documentation

commit 7c859a7dd72eeddc6364708077862ca8ed40eee7
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 23 22:42:20 2009 -0700

    Fixing #2399 - removing client-side rrd graphs
    
    This feature has been broken since who knows when,
    yet no one's noticed.  Thus, it's a good
    candidate for removal.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f6d61455be01a1e81c2f48a720e83fbb646e9ab9
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 23 16:32:50 2009 -0700

    Fixing #2421 - file renaming errors now propagate
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit db82523a0ec12fcd63b4b52173268b1e6c41df36
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Jul 23 09:01:24 2009 -0700

    Fixes #2438, get major OS X version from Facter and replace Puppet::Error invocations with fail builtin

commit 22145e759cf52d89c685b961d539ce73735258b0
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Jul 23 08:18:13 2009 -0700

    Update install.rb to cope with all OS X versions, not just 10.5

commit 935c46351f6f6730569c50fd0c59e8157486b827
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 15 16:03:44 2009 -0700

    Fixing #2403 - provider specificity is richer and better
    
    We have extended the concept of provider specificity so it
    now includes both specified defaults and class depth, so:
    
    * We are much more likely to choose the correct provider;
      e.g., 'init' will be chosen over 'base'
    
    * We're much less likely to print this warning, because it's
      only printed when provider specificities are equal which
      is much rarer
    
    lib/puppet/provider.rb   |    4 ++--
    lib/puppet/type.rb       |    4 ++--
    spec/unit/type.rb        |   17 +++++++++++++++++
    test/ral/manager/type.rb |   22 ----------------------
    4 files changed, 21 insertions(+), 26 deletions(-)
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d95b687045920c7d7fed5da1fe03b0feac86327a
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Jul 23 23:09:34 2009 +0200

    Fix #2439 - let puppetdoc use loaded_code
    
    Since there isn't any unit test for puppetdoc rdoc code (my fault),
    nobody noticed it was using direct access to the parser AST array.
    This changeset fixes the way puppetdoc uses the parser results.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ef5c4aeb1f58bd37e8b4ea0fa17fbdbc2fbf7677
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 23 14:45:29 2009 +1000

    Fixed #2436 - Changed ralsh to use Puppet::Type.new and avoid deprecation notice

commit 0c18013cb6bf9faff21bd049410e2baf1ef8aa90
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 23 09:15:02 2009 +1000

    Fixes #2430 - Stock apache2.conf for passenger incorrect

commit c383ceb282d018b6d8ec348628353a2e3363da3b
Author: Nigel Kersten <nigelk@google.com>
Date:   Tue Jul 21 09:29:27 2009 -0700

    Make pkgdmg default Darwin provider, make confines consistent on Darwin package providers.

commit 98599c4a8d11cad4ecc11ee813a8c33a6aa9e5bb
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon Jul 20 07:59:32 2009 -0700

    Convert to using sbindir for OS X packages, clean out previous executables in bindir

commit c65974376700f54548a9412e04889ad54be84ff9
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Jul 20 20:56:23 2009 +0200

    Fix #2425 - make sure client can contact CA server with REST
    
    The various REST SSL terminii were never setup to use the
    ca_server/ca_port if one is setup.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 17205bb4e5d246f7a47b995826927a38b83fb3d0
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Jul 20 23:09:09 2009 +0200

    Fix #2424 - take 2, make sure default mounts allow every clients
    
    If there isn't any default mounts for plugins/modules, puppet
    auto creates them. The issue is that they don't have any
    authorization attached, so they default to deny all.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f2c55cc6b4dd6a4db307ea1c031120398fe5fc7e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Jul 9 20:59:41 2009 +0200

    Fix #2378 and #2391 tests
    
    Fix #2378 - Add some integration tests for catalog filtering
    Fix #2391 - Fix up some of the tests
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 8bbd8b4bb295fee7ad99f6137c9851528f1729cc
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jul 18 15:34:44 2009 +0200

    Fix #2424 - File server can't find module in environment
    
    Actually, the issue is:
    *  when the web server gets the request, it creates an indirection
    request, filling attributes like ip or node from the HTTP request.
    To do this, all the interesting attributes are given in a hash
    (called options, see P::I::Request#new).
    Once the request is properly initialized the options hash doesn't
    contain the ip or node information (see set_attributes)
    
    * the request is then transmitted to the file_serving layer,
    which happily wants to use the node attribute to find environments or
    perform authorization.
    Unfortunately it fetches the node value from the request options hash,
    not the request itself.
    Since this node information is empty, puppet fails to find the
    proper mount point, and fails the download.
    
    This change makes sure we pass all the way down the node and fix
    the authorization check.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit effaf80ae662076e3578c3eb7a18b863ef104bb4
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jul 18 15:24:12 2009 +0200

    Fix small typo in the fix for #2394
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit a06094ea0f3a38446859de55100ac7fdb0488a9d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jul 4 12:49:11 2009 +0200

    Feature #2378 - Implement "thin_storeconfigs"
    
    Thin storeconfigs is a limited version of storeconfigs that is
    more performant and still allows the exported/collected resources
    system wich is the primary use of storeconfigs.
    
    It works by storing to the database only the exported resources, tags
    and host facts.
    
    Since usually those exported resources are less than the number
    of total resources for a node, it is expected to be faster than
    regular storeconfigs (especially for the first run).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b2a008e30ea57f0c94d605de855c45c0fdf0e5ce
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Jul 9 20:59:41 2009 +0200

    Fix #2391 - Exported resources never make to the storeconfigs db
    
    The issue is that when we convert Puppet::Parser::Resource catalog
    to a Puppet::Resource catalog before storing it to the database,
    we don't allow virtual resource to be converted.
    Unfortunately exported resources are virtual by design, and as
    such aren't converted, and we lose them, so it isn't possible
    to store them in the database.
    Unfortunately, the client will get the exported resources too.
    
    The fix is dual-fold:
     * we make sure exported resource are skipped when the transaction is
    applied as a last safeguard
     * we filter-out the catalog through the catalog compiler terminus before
    the catalog is returned to the client
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 8f8240763b0a8ab74b5b78eeb2372a2aa7848049
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Jul 16 20:53:36 2009 +0200

    Fix #2261 - Make sure query string parameters are properly escaped
    
    The problem is that URI.escape by default doesn't escape '+' (and
    some other characters). But some web framework (at least webrick)
    unescape the query string behind Puppet's back changing all '+'
    to spaces corrupting facts containing '+' characters (like base64
    encoded values).
    
    The current fix makes sure we use CGI.escape for all query string
    parameters. Indirection keys/path are still using URI escaping because
    this part of the URI format shouldn't be handled like query string
    parameters (otherwise '/' url separators are encoded which changes
    the uri path).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit c86d44ed826b99752fd0ee85b2a77eaadd8a57ae
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 16 21:28:09 2009 +1000

    Fixed #579 - puppet should try to clear solaris 10 services in maintenance state

commit 910a5e2f39d2fefab28768f2a2d3d02de7abd54d
Author: Ricky Zhou <ricky@fedoraproject.org>
Date:   Sat Jul 11 01:57:52 2009 -0400

    Fix #1963 - Failing to read /proc/mounts for selinux kills file downloads
    
    This works around a linux kernel bug that causes a select() on
    /proc/mounts to hang.

commit ba824e94fd0c7652b9b7bb7878f76a935dc7927d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 15 14:44:31 2009 -0700

    Fixing #2245 - provider lists are not lost on type reload
    
    We've moved the @providers class instance variable from
    the individual Puppet::Type subclasses into a single
    class instance variable in the Puppet::Type base class,
    and are using an accessor to retrieve the per-class
    providers hash.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit eb40966777beaff2ceca8b91e10e3cb0132ec218
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 16 13:25:07 2009 -0500

    Ruby no longer clobbers puppet autoloading
    
    We basically just make sure that we tell Ruby
    about files we've loaded, so you can 'require' these
    files and doing so will essentially no-op, rather
    than clobbering the already-loaded code.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a42e8788b1fde5273ba1e34f6d90c451394849b8
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon Jul 13 16:18:51 2009 -0700

    deprecate NetInfo providers and examples, remove all NetInfo references and tests.

commit 22f56327e74a1201cf25d82e980b2500057d698e
Author: Sam Livingston-Gray <geeksam@gmail.com>
Date:   Mon Jul 13 15:22:54 2009 -0700

    Fixed #2410 - default acl logs as info instead of warn.
    
    Signed-off-by: Sam Livingston-Gray <geeksam@gmail.com>

commit 65b01375cedd878818f433a2c09fc8128f912d36
Author: Sam Livingston-Gray <geeksam@gmail.com>
Date:   Mon Jul 13 15:18:57 2009 -0700

    Adding test for current auth config warning.
    
    This is a step in fixing bug #2410.

commit 74f5ad457a95580e7cef20fa850afd98eabaa6ed
Author: Sam Livingston-Gray <geeksam@gmail.com>
Date:   Mon Jul 13 15:56:59 2009 -0700

    Fixed #2394 - warn once on module mount deprecation.
    
    Signed-off-by: Sam Livingston-Gray <geeksam@gmail.com>

commit f46a52a3344bdc8c3caf8a80c7af3ea5dec5e66b
Author: Sam Livingston-Gray <geeksam@gmail.com>
Date:   Mon Jul 13 15:54:16 2009 -0700

    Add test for current module mount deprec warning.

commit 858d3334004bbcd642443a5de061b9733a8e765c
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon Jul 6 14:55:52 2009 -0700

    Fixes #2258,#2257,#2256. Maintain correct type for integers/booleans, allow correct values, and fix rule array handling

commit 44f127f738f6427bdf2adbe1d06d57b7b62e715e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 2 14:01:39 2009 +1000

    Added Markdown mode to puppetdoc to output Markdown.
    
    Requires the pandoc binary to function (http://johnmacfarlane.net/pandoc/).

commit 8a8ce9d40fd97b26906301b0587395c9fb9fddf6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 10 12:19:26 2009 +1000

    Excluded directories from rcov coverage report

commit d152c5e358cad1241ce6cdcc302c1b2f3175f480
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jun 28 13:55:50 2009 +0200

    Allow boolean value for boolean cli parameter
    
    This is to fix puppetdoc boolean parameters.
    Puppetdoc defers sending parameters to Puppet::Util::Setting, and
    in this case, boolean parameters are stored as a boolean value.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 911b490f2288f81b36d484b40dd3d875320cf624
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jun 28 14:20:35 2009 +0200

    Fix #2364 - Associates the correct comment to the right statement
    
    Due to the problem that we associate documentation in the lexer and
    not in the parser (which would be to complex and unmaintenable to
    do), and since the parser reads new tokens before reducing
    the current statement (thus creating the AST node), we could
    sometimes associate comments seen after a statement associated
    to this one.
    Ex:
    1. $foo = 1
    2. # doc of next class
    3. class test {
    
    When we parse the first line, the parser can reduce this to the
    correct VarDef only after it lexed the CLASS token.
    But lexing this token means we already pushed on the comment stack
    the "doc of next class" comment.
    That means at the time we create the AST VarDef node, the parser thinks
    it should associate this documentation to it, which is incorrect.
    
    As soon as the parser uses token line number, we can enhance the lexer
    to allow comments to be associated to current AST node only if
    the statement line number is greater or equal than the last comment
    line number.
    
    This way it is impossible to associate a comment appearing later in the
    source than a previous statement.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit faefd92c78f69580204c40179f3f0b766b0208fb
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jun 28 14:12:59 2009 +0200

    Make sure the parser sees the correct line number
    
    Careful inspection of the parser code show that when we
    associate a source line number for an AST node, we use the
    current line number of the currently lexed token.
    In many case, this is correct, but there are some cases where
    this is incorrect.
    Unfortunately due to how LALR parser works the ast node creation
    of a statement can appear _after_ we lexed another token after
    the current statement:
    
    1. $foo = 1
    2.
    3. class test
    
    When the parser asks for the class token, it can reduce the
    assignement statement into the AST VarDef node, because no other
    grammar rule match. Unfortunately we already lexed the class token
    so we affect to the VarDef node the line number 3 instead of 1.
    
    This is not a real issue for error reporting, but becomes a real
    concern when we associate documentation comments to AST node for
    puppetdoc.
    
    The solution is to enhance the tokens lexed and returned to the parser
    to carry their declaration line number.
    Thus a token value becomes a hash: { :value => tokenvalue, :line }
    
    Next, each time we create an AST node, we use the line number of
    the correct token (ie the foo line number in the previous example).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 869ec273a085c1fa28da14bfd627ffc24af87a07
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jun 27 12:21:30 2009 +0200

    Fix #2366 - puppetdoc was parsing classes in the wrong order
    
    It could happend that we were generating doc for subclasses
    before classes, in which case we were forgotting some
    parent class instance and recreating them.
    We ended up generating doc for some classes multiple times, from
    which some were missing documentation.
    The fix is to sort the parsed classes alphabetically, which auto-
    matically puts enclosing class before enclosed classes.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 4c659b768f9ab9f0468245af789b3c817f5c4be4
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 10 10:53:20 2009 +1000

    Added rcov coverage to Spec tests
    
    You will need to install the relevance-rcov gem:
    
    gem install relevance-rcov --source http://gems.github.com

commit 1fd98b15a4f93c77182b080c68960d6d1c0bcd59
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jul 8 08:44:19 2009 +1000

    Fixes #2367 - Mongrel::HTTPRequest returns a StringIO object
    
    When the PUT body is large enough that Mongrel::HTTPRequest#body returns a StringIO object instead of a String. StringIO#to_s then returns "<StringIO#8236987299>" instead of the string contents.
    
    When that string is passed to YAML it returns false which is then passed to save_object without any real time checking.
    
    This is a combination of patches from Jordan Curzon and Ricky Zhou.

commit 8b09b8316e5f385522fcc4353b3cea725076fb25
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jul 5 19:45:40 2009 +0200

    Fix #2082 - puppetca shouldn't list revoked certificates
    
    This patch does two things:
     * it enhance puppetca to list revoked certificates (prefixed by -)
     * it fixes the ca crl verification which was broken
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ea66cf6b9a5de1dd784dfed8995babf90225f8a0
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jun 28 14:42:04 2009 +0200

    Fix #2348 - Allow authstore (and REST auth) to match allow/deny against opaque strings
    
    This patch removes the limitation of allow/deny which were
    only matching ip addresses or hostname (or pattern of).
    
    It makes sure any kind of string can be matched (by strict
    equality) while still keeping the old behaviour.
    
    Opaque strings can only contains: alphanumeric characters, -
    _ and @.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 1e83aadc749aea9d52281d4f4041f6144a7229c7
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jul 5 19:38:01 2009 +0200

    Fix #2392 - use Content-Type for REST communication
    
    There were two problems:
     * server->client communications is using Content-Type with the
    direct format name instead of the format mime-type.
     * client->server communications is not using Content-Type to
    send the format of the serialized object. Instead it is using the
    first member of the Accept header. The Accept header is usually
    reserved for the other side, ie what the client will accept
    when the server will respond.
    
    This patch makes sure s->c communication contains correct Content-Type
    headers.
    
    This patch also adds a Content-Type header containing the mime-type of
    the object sent by the client when saving.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit aaca17a26092f3fece9a835eddf3ad6b9cf82300
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jul 5 18:50:24 2009 +1000

    Fixed #2293 - Added cron syntax X-Y/Z and '7' for sunday

commit cddc365e9bac786c7a64240073b69bc54b6d2f2e
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jun 4 00:33:25 2009 -0500

    Switching to LoadedCode from ASTSet
    
    I also took the opportunity to clean up and simplify
    the interface to the parts of the parser that interact
    with this.  Mostly it was method renames.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit fc1f8cdbee606da0d2a1a162942295d28cdcbf64
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jun 4 00:32:12 2009 -0500

    Adding a special class to handle loaded classes/defines/nodes
    
    This class is extracted from the Parser class,
    and the main driver for it is to enable us to put mutexes
    around some of the hashes to see if they're the source
    of a race condition.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 325b8e4f6f21341d0c8d04297b019db47af2abc6
Author: Christian Hofstaedtler <ch+git@zeha.at>
Date:   Thu Jul 2 09:45:15 2009 +0200

    Fix #2383, an incompatibility with early ruby 1.8 versions
    
    Earlier ruby 1.8 versions do not have start_with? for Strings.
    Found by John Barbuto.

commit 46112daf979c71fb004d51289096ae37561d23bb
Author: Jordan Curzon <curzonj@gmail.com>
Date:   Thu Jul 2 12:47:42 2009 -0700

    Fixing #2238 In some cases blank? is not available on String.
    
    Signed-off-by: Jordan Curzon <curzonj@gmail.com>

commit cdd166244ab55c9f3129bdbffd16bd55bd8ed10e
Author: Jordan Curzon <curzonj@gmail.com>
Date:   Wed Jul 1 21:39:22 2009 -0700

    Fixing #2238 - Deal with nil hash keys from mongrel params
    
    Mongrel::HttpRequest.query_parse outputs a params hash with nil
    keys given certain query strings. Network::HTTP::Handler.decode_params
    needs to check the incoming values.
    
    Signed-off-by: Jordan Curzon <curzonj@gmail.com>

commit 769c8aa71e5b4855662314f13b1197853cdc843a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jun 28 15:12:32 2009 +1000

    Final fix to CI test rakes

commit a6816fff5a0421d614da50eeaf12aa7178a82b09
Author: Nigel Kersten <nigelk@google.com>
Date:   Fri Jun 26 13:28:44 2009 -0700

    Set ENV['PATH'] to an empty string if non-existent
    
    Signed-off-by: Nigel Kersten <nigelk@google.com>

commit 64a47203e69746e7e3724e3433702856e68c068d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jun 27 08:58:59 2009 +1000

    Fix to CI rake tasks

commit 5680cd5029c8b3a2cf5a2a3b10df6acf7a9fc870
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 16 13:11:26 2009 -0700

    Fixing #2197 - daemontools tests now pass
    
    This actually involved a bit of rewriting
    of the code, but the code's simpler now, too.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 603b9cf1a435f6662db39be66f91527a8e20c112
Author: Stig Sandbeck Mathisen <ssm@fnord.no>
Date:   Sun Jun 14 21:47:46 2009 +0200

    Change the diff default output to "unified"

commit 9bc9b5c0c062ff60af4272fd6d176b8a8a1d6c91
Author: Martin Englund <martin.englund@sun.com>
Date:   Wed Jun 24 21:53:33 2009 -0700

    Added missing colon to suntab

commit 0f2d70dc91a10d38d088ad5d8a351187b143e144
Author: Martin Englund <martin.englund@sun.com>
Date:   Wed Jun 24 21:27:34 2009 -0700

    Fixed #2087 and refactored the code that gets the smf service state

commit 3f070c118b1ae2f3c76172d320ff04e92618a9b3
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 16 11:03:46 2009 -0500

    Using the logging utilities to clean up module warnings
    
    This just makes it easier to add context to warnings
    and other logs from the module.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit feb7f89078f038e20895ff2c8042326e6b85b957
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 16 10:57:54 2009 -0500

    Fixing #1064 - Deprecating module 'plugins' directories
    
    You should now use 'lib' instead of 'plugins'.
    
    The old directory still works, but you get a warning
    for every module that uses it.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ccf4e69b684e6620c457475c4da6a70975d52dd5
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 16 10:40:44 2009 -0500

    Removing deprecated :pluginpath setting
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4036de9591bc1ab19df3a0c3bae4567240a4ec85
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 16 10:26:38 2009 -0500

    Fixing #2094 - filebucket failures are clearer now
    
    We just add a bit of information to the exception.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ed876e0264bbb1ba86bc302d517d8f48f388da3e
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jun 14 19:27:30 2009 -0500

    Refactoring part of the file/filebucket integration
    
    The goal of this commit is to fix ordering issues
    that could result when the filebuckets are added
    to the catalog after the resources that use them.
    
    This condition showed up somewhat arbitrarily.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bd81c25b4072c3426af67e0366b18436c8236dc4
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jun 14 15:40:33 2009 -0500

    Adding tests for file/backup behaviour
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c45ebfad1b5525a8297bef97c04aed9e485eff76
Author: David Lutterkort <lutter@redhat.com>
Date:   Fri Jun 12 16:13:07 2009 -0700

    Fixed pi binary so --meta option works and updated documentation
    
    Signed-off-by: James Turnbull <james@lovedthanlost.net>

commit d2080a5524f993ee746e33364582244cf0e17561
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jun 12 17:41:02 2009 -0500

    Fixing #2323 - Modules use environments correctly
    
    Previously, modules were not using their environments
    when looking up their paths, which meant that they
    often found files in the wrong environment.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit aab20201f44271df49d57fbf7c0925f09246b8f0
Merge: 1c4ef61 b9e632f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jun 13 01:57:26 2009 +1000

    Merge branch 'tickets/master/2102'

commit b9e632f4e1b8cec9720ed0bb80caf2bab74209d6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jun 12 23:19:55 2009 +1000

    Fixed #2102 - Rails feature update fixed for Debian and Ubuntu

commit 1c4ef61a13c89bc946b9167832f889bfd29c0681
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jun 12 23:33:21 2009 +1000

    Fixed #2052 - Added -e option to puppet --help output

commit d3323331e96cbc79563febc249e106a3ae8e7647
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Jun 12 13:40:15 2009 +0200

    Fix #2333 - Make sure lexer skip whitespace on non-token
    
    Comments and multi-line comments produces no token per-se during
    lexing, so the lexer loops to find another token.
    The issue was that we were not skipping whitespace after finding
    such non-token.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 5fbf63ce789b015da9abb95d7e9fbbf4a44ba7d1
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jun 12 22:39:33 2009 +1000

    Updated split function and add split function unit tests (courtesy of Thomas Bellman)

commit a585bddadf49b1c1d41052f6fdd62db832bca49c
Author: David Lutterkort <lutter@redhat.com>
Date:   Thu Jun 11 16:46:27 2009 -0700

    * provider/augeas: strip whitespace and ignore blank lines
    
    Signed-off-by: James Turnbull <james@lovedthanlost.net>

commit a94d2de421fbc107f08e1eb78f90dd2dc8861ab0
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jun 12 12:21:16 2009 +1000

    Fixed pi tests

commit 5f7455ea2f618ca7db4b45ee25666e0109f2abf6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jun 10 18:10:40 2009 +1000

    Fixed #2222 - Cleanup pi binary options and --help output

commit 134ae3e78f8562b2735737a36d994989a4614e4a
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jun 11 18:44:56 2009 -0500

    Fixing #2329 - puppetqd tests now pass
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit de55e19074502f6a0286a4b90edcdf51985dd69f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jun 11 18:36:33 2009 -0500

    Cleaning up scope tests a bit
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e4ae870f6103aacbba48a06e366168aaaa67402b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jun 11 18:35:14 2009 -0500

    Fixing #2336 - qualified variables only throw warnings
    
    We were previously throwing exceptions.
    
    This also ports all of the tests for variable lookup
    over to rspec.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 607b01e82ea294068fdd554e59bc8e5fe3f9761a
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jun 6 12:58:26 2009 +0200

    Fix #2246 - take2: make sure we run the rails tag query only when needed
    
    Adding the tags to the rails collect query can reduce performance
    because there are 2 more tables to join with.
    So we make sure to include tags in the query only when it is
    necessary.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 06b919ddb7d635abfe7855336e0e5af67675b44e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jun 6 12:55:48 2009 +0200

    Fix collector specs which were not working
    
    The various collector specs covering the rails query code were not
    in fact covering anything.
    This patch fixes the specs to integration tests that actually verify
    the rails query building code works fine.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 2945f8d315d265cfb527443cca27d191b7f3d8be
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jun 6 12:52:25 2009 +0200

    Make sure overriding a tag also produces a tag
    
    This is so that overriding the "tag" metaparameter ends-up in the
    resource tags on the server.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit e142ca656cb5a44005edc9c9d0c767664768362e
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Wed Jun 10 07:31:05 2009 -0400

    Removed a unit test which tested munging which is no longer done in the type

commit d8ee6cfaedf8846f65ec0fe32c5badcf569b20c7
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Wed Jun 10 07:02:38 2009 -0400

    Clearn up a parsing error reported by the tests

commit 446557fbdf2051d59554f2d2cf6aa18c1f6eec83
Author: Marc Fournier <marc.fournier@camptocamp.com>
Date:   Mon Jun 8 22:54:03 2009 +0200

    vim: several improvements + cleanup
    
     * added highlighting for different type of keywords:
       * if/else
       * undef
       * puppet function names
       * parameters passed to "ensure"
       * unquoted digits
    
     * fixed regexps to match resources containing "::", "-" and "_"
    
     * handled escaped variables (variable which don't belong to puppet)
    
     * removed unused definitions and added comments

commit 91526785f5c71d0750c48c0876c8148894bb9be6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jun 10 15:43:38 2009 +1000

    Fixed #2229 - Red Hat init script error

commit b5a8c4db028c69793c1c9172adca4d9930c8cd1d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun May 31 15:38:14 2009 +0200

    Fix #1907 (or sort) - 'require' puppet function
    
    This function acts exactly as the 'include' function, but also
    adds an ordering relation between the included class and the class
    where the require function is.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 74730df475f21848027a4d2dda9ab849d3038c49
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Tue Jun 9 07:42:19 2009 -0400

    #2332: Remove trailing slashes from path commands in the plugin

commit 1a894554990d145652e375359a1a5d26e7f22636
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 3 17:39:04 2009 -0500

    Changing the preferred serialization format to json
    
    This won't affect most people, but it's a good
    default to have for those who can support it.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>
    
    Minor changes to previous commit

commit 0de70b7035ebc7f00ede73098684ee5db4b2de14
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 2 23:08:52 2009 -0500

    Switching Queueing to using JSON instead of YAML
    
    This provides about a 75x speedup, so it's totally
    worth it.  The downside is that queueing requires json,
    but only on the server side.

commit 7b33b6da4bdcd2263e2c63b443e9bea6fbe8d161
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 2 17:34:43 2009 -0500

    Adding JSON support to Catalogs
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c0bd0aa1a5aaed94dfab25f390199a722d0d5c0d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 2 17:12:38 2009 -0500

    Providing JSON support to the Resource class
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c16fd1bff64fd426d36e07648a7f8550563ae6e1
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 2 17:11:03 2009 -0500

    Adding a JSON utility module for providing Ruby compat
    
    This provides the class-method behaviour that Ruby's JSON
    support expects but that we don't provide.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f059c518411f2f12bbe9108094b12f9bfc13e080
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 6 15:22:43 2009 -0700

    Adding JSON support to Puppet::Relationship
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7f322b315a7890f1b3cee035d023f09814cc6075
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 6 14:32:25 2009 -0700

    Adding a JSON format
    
    Also making some log messages more informative.

commit 7666597edc335055275569f5626a897453402d5b
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 25 21:07:20 2009 +0100

    Allowing formats to specify the individual method names to use
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d40068f7e70d1dc09334cac34d1bc48579b5a717
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 25 20:55:22 2009 +0100

    Allowing formats to specify the methods they require
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 024ccf5b9a30977e9eee4ecf1d91eaf64f44a509
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 25 19:55:05 2009 +0100

    Adding a "json" feature
    
    We have to guarantee that the Rails code is loaded before the JSON code,
    because Rails includes its own incompatible JSON support.

commit c8b382df2b6664333eaa339237cfbefd3eb12b96
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Jun 3 21:11:16 2009 +0200

    Fix some tests who were missing some actions
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f9516d49a02facb43e2856766b6439673450fdd1
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Jun 3 21:10:36 2009 +0200

    Make sure virtual and rails query use tags when tag are searched
    
    Up to now, when trying to match with tags:
    File<<| tag == 'value' |>>
    in fact we were querying parameters. Hopefully all the user tags
    are stored in parameters so it was working.
    But it wasn't possible to search on auto-tags (like class name).
    This patch makes sure searching by tag is done on tags both on the
    rails side and the resource side.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b5855ec1a5af2bec6c4ac35f8e6a885999b09bf9
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Jun 3 20:09:56 2009 +0200

    Make sure resources are tagged with the user tag on the server
    
    It appears that resources were not tagged with user tag on the
    server, which prevents those tags to be persisted as tag in
    the storeconfigs.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d69fffb63ca9efe3cca67167430b23d3b8d38fa4
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat May 30 20:15:08 2009 +0200

    Fix #2246 - Array tagged resources can't be collected or exported
    
    I don't know why we imposed the restriction that we shouldn't match
    with parameter containing arrays in exported mode.
    That doesn't seem right, as the produced rails query works fine with
    arrays.
    
    Note: the user tags are not stored in the rails database except under
    the special resource parameter tag. This also doesn't seem right.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 6ce0d1e633780a71ec3597a90120d67d77a5d89f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jun 6 09:42:45 2009 +1000

    Partial fix for #2329

commit 4f2c066a97e59a89df64af4b25beac6f3f0553c2
Author: Ian Taylor <ian@lorf.org>
Date:   Fri Jun 5 12:39:04 2009 -0400

    Removed extra whitespace from end of lines

commit 97e6975d69f239e24993315a25a3117b1daa48c3
Author: Ian Taylor <ian@lorf.org>
Date:   Fri Jun 5 12:38:52 2009 -0400

    Changed indentation to be more consistent with style guide (4 spaces per level)

commit 41ce18cc8ea239d1633fc6cd9e9f599957a82e74
Author: Ian Taylor <ian@lorf.org>
Date:   Fri Jun 5 12:38:35 2009 -0400

    Changed tabs to spaces without interfering with indentation or alignment

commit f3b40923605420f774dac298fb1708de180c0a81
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat May 30 23:25:08 2009 +0200

    Fix #2308 - Mongrel should use X-Forwarded-For
    
    Mongrel puppet code uses REMOTE_ADDR to set the ip address which will
    be use to authenticate the client access.
    Since mongrel is always used in a proxy mode with Puppet, REMOTE_ADDR
    is always the address of the proxy (usually 127.0.0.1), which defeats
    the purpose.
    With this changeset, the mongrel code now uses the X-Forwarded-For
    HTTP header value if it is passed over the REMOTE_ADDR.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 7b0413e59ed0d4391a5ff54fb3cd08f0d005c26d
Author: Stéphan Gorget <gorget@ocre.cea.fr>
Date:   Thu Jun 4 11:17:55 2009 +0200

    Fixes Bug #2324 - Puppetd fails to start without rails
    
    Signed-off-by: Stéphan Gorget <gorget@ocre.cea.fr>

commit 48d5e8c61cdd0e5e777bbac3adb71d06c109f0da
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Jun 4 20:48:13 2009 +0200

    Enhance versioncmp documentation
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ef56ba5822d41672fb70e24650d60bfbeb73715d
Author: David Lutterkort <lutter@redhat.com>
Date:   Mon Jun 1 13:57:39 2009 -0700

    * provider/augeas: minor spec test cleanup
    
    - rename some tests to make their purpose clearer
    - add a test for nested predicates
    - remove trailing whitespace

commit d322329ab671656b072cceb5aef8e3634e0fb2b1
Author: David Lutterkort <lutter@redhat.com>
Date:   Mon Jun 1 13:47:19 2009 -0700

    * provider/augeas: allow escaped whitespace and brackets in paths

commit 9735c5055cbb267e740838cd50b2205b87fffe57
Author: David Lutterkort <lutter@redhat.com>
Date:   Mon Jun 1 13:04:04 2009 -0700

    * provider/augeas: match comparison uses '==' and '!=' again
    
    Change the syntax for match in an onlyif back to using '==' for equality
    comparison instead of 'eq' (this was the behavior before 9a2642) and make
    operator for inequality '!='.

commit dbfa61b5dcfa42f9fe12ad0d173f9195732d1bc3
Author: David Lutterkort <lutter@redhat.com>
Date:   Sat May 30 23:47:23 2009 -0700

    * provider/augeas (process_match): no match results in empty array

commit 386923ea95f161683fbdc2fe182193f3f3fe5485
Author: David Lutterkort <lutter@redhat.com>
Date:   Sat May 30 23:46:11 2009 -0700

    * provider/augeas: remove useless checks for nil

commit 171669ad3d3d1f0b7f72cd5cb2c36ad97e7d315c
Author: David Lutterkort <lutter@redhat.com>
Date:   Sat May 30 23:44:14 2009 -0700

    * provider/augeas: simplify evaluation in process_get/match

commit 51cc752a2e6d2e6ec5b826ae9f447ed516020086
Author: David Lutterkort <lutter@redhat.com>
Date:   Sat May 30 23:36:14 2009 -0700

    * provider/augeas (open_augeas): use Augeas flag names, not ints

commit 4951cdf4c66bfbad6495ffcab0b53d7601e73a44
Author: David Lutterkort <lutter@redhat.com>
Date:   Sat May 30 23:23:11 2009 -0700

    * provider/augeas: ensure Augeas connection is always closed
    
    Turn code like
    
      open_augeas
      ...
      close_augeas
    
    into
    
      begin
        open_augeas
        ...
      ensure
        close_augeas
      end
    
    Would have liked to pass the '...' as a block into a 'with_augeas' method,
    but that makes the spec tests fail in ways I don't understand.

commit 0d5a24dd0ba4c7d1cc4827cb2d52411447202eae
Author: David Lutterkort <lutter@redhat.com>
Date:   Sat May 30 23:01:51 2009 -0700

    * provider/augeas: minor code cleanup
    
    - remove '()' for empty method calls
    - remove 'self.' for calling methods on self
    - use the fact that nil is false
    - remove redundant parens around some expressions

commit cea7bb555caf305add4864c15b5c88e72db10eb5
Author: David Lutterkort <lutter@redhat.com>
Date:   Sat May 30 22:54:27 2009 -0700

    * provider/augeas (parse_commands): use split to split string into lines

commit 95bd82610b2fb57d45db2535758cda5bbb297152
Author: David Lutterkort <lutter@redhat.com>
Date:   Sat May 30 22:46:16 2009 -0700

    * provider/augeas: remove trailing whitespace (no functional change)

commit 7c5125bb6dec630d2509905e3c202e0dfe59d959
Author: David Lutterkort <lutter@redhat.com>
Date:   Sat May 30 22:43:55 2009 -0700

    Brought in lutters parse_commands patch and integrated it into the type.
    This includes reworking the get and match commands as well. This change
    introduces a few small changes. These are:
    
    1) There can be no ' or " characters around path elements.
    2) The context is now only prepended to relative paths. So, if a
    path is specified as /foo/bar the context will not be appended. It
    will only be appended if it is foo/bar
    3) The syntax for array matching in the onlyif is now eq or noteq.
    It was == before.
    4) The get and set commnands used to concatenate all items at the end
    of a string so "set path to some value" would be interpreted as
    "set" "path" "to some value". This is no longer supported. The caller
    must put ' or " around the "to some value" for it to work"
    
    Cherry-pick of 9a2642 from 0.24.x
    Conflicts:
    
    	lib/puppet/provider/augeas/augeas.rb

commit 6ce81546ccfab2aefbec7fced5c38226bdd83297
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jun 3 07:37:28 2009 +1000

    Removed --no-chain-reply-to in rake mail_patches task

commit 4ef7bbae5130605ddfbdab80e0c73d2088004b11
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 1 18:16:03 2009 -0500

    Removing --no-thread from the mail_patches rake target
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 508934b11cdad82ed1022bffcdb88e66f4d5e4d8
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 1 18:12:54 2009 -0500

    Fixing a bunch of warnings
    
    This commit should have no functional effect.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit fb0ed7a50bdd576bc7d0317aab32d36828e964d2
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 1 18:03:40 2009 -0500

    Fixing tests broken by a recent fix to Cacher
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 650029e3730431dcc21863d92fd50c74665cea38
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 1 17:50:55 2009 -0500

    Always providing a value for 'exported' on Rails resources
    
    We often didn't set a value, unless it was true, which
    meant that if it had previously been true but was now
    false, we didn't fix it.
    
    We also were not always saving modified resources, which
    in some cases resulted in work not getting saved.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f1dba91bbde7919cb0a0fd412faacb1f7dd2c84d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 27 11:11:28 2009 -0500

    Fixing #2230 - exported resources work again
    
    This somehow got lost in the conversion from
    Parser resources to Puppet resources.  We now
    copy over the 'exported' value.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5522eb85a041d9ec77cf8c2b04f3351f48716246
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 1 21:17:47 2009 -0500

    Disabling the catalog cache, so puppetqd is compatible with storeconfigs
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit abbb282211096780eea4efa461b2d7f958dc29ae
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 19 18:23:42 2009 -0500

    Fixing the rails feature to be compatible with 2.1+
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 907b39b9708cbca10446336c424754e13d55e683
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 28 10:10:40 2009 -0500

    Using Message acknowledgement in queueing
    
    This allows a more fine-grained load-balancing
    of the queue, which makes it easy to spin up
    multiple puppetqd instances and process the
    queues faster.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 42247f0f5d08bce4d3fd2b020b770a12cc2f91db
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 1 21:31:49 2009 -0500

    Fixing #2315 - ca --generate works again
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d7be0333ae1fc03bb5b639e7ab8f5431b56d1071
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed May 27 21:13:59 2009 +0200

    Fix #2220 - Make sure stat is refreshed while managing Files
    
    Since the introduction of the attribute cacher, Files couldn't refresh
    their 'stat' attribute while applying the properties.
    This could led to misunderstanding (like not setting mode) because
    the stat didn't reflect the physical state of the entity, especially
    when creating directories, where puppet was taking decision thinking
    the directory didn't exist although it was just created.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit e4d59665b75c6a2cf0bc858bcf131d9c9c83dffc
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jun 1 07:40:27 2009 +1000

    Added puppet branding to format patch command

commit 00d5139639afe9b206f2f68df95cebfeb28f28b1
Author: Todd Zullinger <tmz@pobox.com>
Date:   Fri May 29 19:33:42 2009 -0400

    vim: Remove another mention of 'site' from syntax
    
    Noticed-by: Marc Fournier <marc.fournier@camptocamp.com>
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit 9067abd5fcb3202fc7ac120d925e3e9f39d5933e
Author: Todd Zullinger <tmz@pobox.com>
Date:   Fri May 29 19:48:34 2009 -0400

    vim: Highlight parameters with 'plusignment' operator
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit 736b0e4ac86a1380927f267583eb5b86ae8104f8
Author: Todd Zullinger <tmz@pobox.com>
Date:   Fri May 29 11:03:07 2009 -0400

    vim: Highlight strings in single quotes
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit ce01c9569ca7a7b6c2eeb260d5fc8c215e11ac40
Author: Todd Zullinger <tmz@pobox.com>
Date:   Fri May 29 11:01:17 2009 -0400

    vim: Clean up syntax spacing
    
    Signed-off-by: Todd Zullinger <tmz@pobox.com>

commit 3af2dbf32e4d74d5027b936ed652d488ecd7881f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat May 30 10:39:10 2009 +1000

    JRuby OpenSSL implementation is more strict than real ruby one and
    requires certificate serial number to be strictly positive.

commit 62534a1622c710eb52b681d96aca8687c597190c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 27 10:47:36 2009 -0500

    Logging when a cached catalog is used.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ff5c44f2420864357d1c37635c311913c14d7a8b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 27 10:45:42 2009 -0500

    Changing Puppet::Cacher::Expirer#expired? method name
    
    This method name clashed with Puppet::Indirector::Envelope#expired?,
    and its name wasn't actually very appropriate.
    
    The new method name is 'dependent_data_expired?'.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e3d4c8e3873f287412d29701ff774e61a247c6d4
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 27 10:35:21 2009 -0500

    Fixing #2240 - external node failures now log output
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bc1445b5cefb5742ca906632cc99a82a769ead97
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 27 10:55:28 2009 -0500

    Fixing #2237 - client_yaml dir is always created by puppetd
    
    This is just a simple call to Puppet.use in the puppetd
    setup method.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e0c19f99f44d94715984d5533daed25e35ac6f3b
Author: Luke Kanies <luke@madstop.com>
Date:   Sat May 9 13:40:59 2009 -0700

    Fixing #2228 - --logdest works again in puppetd and puppetmasterd
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ab34cf610ee529fcbbf777aae7b382090af1a8b2
Author: Luke Kanies <luke@madstop.com>
Date:   Sat May 9 13:27:46 2009 -0700

    Fixing puppetmasterd tests when missing rack
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 9d5d0a0d17d1043754c759b27b58697749b1b87e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 27 10:18:44 2009 -0500

    Fixing the Agent so puppetrun actually works server-side
    
    We weren't correctly propagating options through
    to the Configurer instance.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b0ef08bfdfe3a1cdb81aa7622de0807786b24e3f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 27 10:11:25 2009 -0500

    Fixing #2248 - --no-client correctly leaves off client
    
    All of the settings were there, we just weren't doing anything
    about them.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b83b159b69e1952c20f23629fc1255069ad5abb0
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 27 09:57:57 2009 -0500

    Fixing #2243 - puppetrun works again
    
    The problem was that some defaults were nil but had
    to be 'false', because xmlrpc can't serialize 'nil'
    as an rpc argument.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 3d2189f3b6173171b37eaf814fdda2756c5a348a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu May 28 00:47:50 2009 +1000

    Fixed #2304 - Added naggen script to directly generate nagios configuration files from a StoreConfigs Rails database

commit 700ad5b8ed3b12c633b262e43f8d684a9fab2833
Author: Todd Zullinger <tmz@pobox.com>
Date:   Mon May 25 10:57:56 2009 -0400

    Sync conf/redhat/puppet.spec with Fedora/EPEL
    
    The install.rb script is now used for installation.  The spec file is
    also updated for the 0.25.0beta1 release.

commit 3ec3f915306dac13370f64795c399df97fc2d992
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed May 27 22:49:16 2009 +1000

    Fixed #2280 - Detailed exit codes fix

commit f98d49f2d20ed52cd33504c5d0ef97d0edf9107f
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 24 15:26:44 2009 -0500

    Fixing #2253 - pluginsync failures propagate correctly
    
    This keeps the destination directory from getting
    purged if the remote source is invalid.
    
    This mostly just removes an optimization that worked
    fine when we queried the server for every directory,
    but doesn't work now that we do one big query.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d860a2fb71858706ff318cfcdc0ff387840eef80
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 24 15:15:33 2009 -0500

    Fixing a transaction test that had some broken plumbing
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a72875799ecfa78ed91ff31047971441f0f169c3
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 24 14:20:49 2009 -0500

    Refactoring resource generation slightly
    
    I found some cases where duplicate resources
    weren't correctly skipped, but I couldn't get
    the test to really demonstrate them.
    
    The code at least is demonstrated to work,
    anyway.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6e824d8ca58c5d6f27a4cfcf44fad579a24133d4
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 24 14:13:02 2009 -0500

    Adding a Spec lib directory and moving tmpfile to it
    
    We had a common pattern for creating a temporary
    file during integration tests, and this just
    makes that common pattern explicit by
    moving it to a module in the newly-created
    lib directory in the spec directory.
    
    We definitely don't want to go overboard in
    using libraries in our tests, but sometimes
    it gets a bit excessive to completely avoid them.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1d69dbfd0351d3f4d23c15904061d98f8bf42ca6
Author: Luke Kanies <luke@madstop.com>
Date:   Fri May 22 15:07:54 2009 -0500

    Extracting a method from eval_resource in Transaction
    
    Just cleaning up the code a bit before a modification.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7650fb299768c23241784671e3abeb272ee87fab
Author: Luke Kanies <luke@madstop.com>
Date:   Fri May 22 14:45:35 2009 -0500

    Not trying to load files that get removed in pluginsyncing
    
    Previously any changed file got loaded; now we only try to
    load files that are still present.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 3995e7026dd40778cff1025a8e7e28eec833545f
Author: Francois Deppierraz <francois@ctrlaltdel.ch>
Date:   Mon May 25 09:44:59 2009 +0200

    Fix #2300 - Update ssh_authorized_key documentation

commit cb4a4d3344169a75224caa6488e3aa59f85218de
Author: James Turnbull <james@ubuntu904.lovedthanlost.net>
Date:   Tue May 26 13:41:29 2009 +1000

    Changed version to allow Rake to work.  Minor
    edit to Rakefile

commit 99f666f31c79c6c163881f3f664e59707a176753
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Thu May 21 12:42:28 2009 +0200

    enable maillist on centos, redhat, fedora
    
    Fedora and RedHat (so CentOS as well) put the mailman data and binaries
    in different locations than other systems (looks like the provider
    have been mainly for debian so far). For the former os we set
    explicit paths for the different used binaries, so this provider works
    now as well on those.

commit e13befa963323dfcd4b6d8e14b0f6980946b7e1b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 21 10:00:45 2009 -0500

    Fixing #2288 - fixing the tests broken by my attr_ttl code
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a406d585ce861757d6c14e0696a3847b46e4319d
Author: Christian Hofstaedtler <hofstaedtler@inqnet.at>
Date:   Mon May 11 21:55:51 2009 +0000

    Fix for #2234: test fails with old Rack version

commit c189b46e3f179ca60dfeb8e65080d19fe653e926
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 18 00:28:50 2009 -0500

    Fixing #2273 - file purging works more intuitively
    
    It now correctly purges files whether we're recursing
    locally or remotely.
    
    *Please* test various scenarios you can think of with
    this.  I've tested:
    
    * Local recursion with no remote source
    * Remote recursion with a source
    * Recursion with an extra locally managed file
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 138f19fc6e7bb1d8ebf305decaa045c53787297c
Author: Luke Kanies <luke@madstop.com>
Date:   Sat May 16 00:08:35 2009 -0500

    Caching whether named autoloaded files are missing
    
    This is the big win, because it causes us to just
    skip the whole loading infrastructure, including
    skipping looking through the modulepath.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 415553e9485d7ba3ed867033ac9c3315107d3c92
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 17 17:20:55 2009 -0500

    Adding caching of file metadata to the autoloader
    
    The cache isn't actually used yet - this just adds
    all of the plumbing.
    
    It was found that stat'ing files that didn't exist
    could take up to 85% of a run, so this is progress
    toward getting rid of those stats.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d489a2b9e2806beefd41627adf7e20d23b0924d6
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 17 17:10:16 2009 -0500

    Adding modulepath caching to the Autoloader
    
    There's more caching to add, but this simplifies
    the interface to the list of paths and then caches
    that list so we aren't constantly searching the
    filesystem.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5f1c228767432591a7e4b77666e9b1c7d70a095c
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 17 16:54:06 2009 -0500

    Adding caching to the Environment class
    
    Caching the module path (because we check which
    directories exist, and this method can get called
    often), and the complete list of modules.
    
    The cache ttl uses the filetimeout, which defaults to
    15 seconds.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 047ab782aed5555a6812131acdba3925b1274a55
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 17 15:52:52 2009 -0500

    Adding TTL support to attribute caching
    
    Previously you had to have an Expirer, but now
    you can declare a TTL for a cached attribute
    and it will be expired automatically when the
    cached value is older than the ttl.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6a413d21a71da2b330f9b147532f3256fc29be3c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed May 20 18:27:02 2009 +1000

    Fixed #2666 - Broken docstring formatting

commit 469604f33645e136725e34b57ce270b4397d3536
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 19 22:24:28 2009 -0500

    Deprecating factsync - pluginsync should be used instead
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d39c4850904cc9b27110d753ddd94849bdec7644
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed May 20 15:42:01 2009 +1000

    Added spec and unit tests to the Rakefile files list and fixed CI rake tasks

commit e1a7f845cc543bd4c7fb852974d563e50db128dd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed May 20 02:22:30 2009 +1000

    Added install.rb to Rakefile package task

commit e180a918a98c9b16b0b8fc1486f45c4c5de91dea
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon May 18 17:23:07 2009 +1000

    Fixed #2271 - Fix to puppetd documentation

commit 4bf2980577c2e1233b7102540237aae01c70bde5
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 12 22:12:45 2009 -0500

    Protecting Stomp client against internal failures
    
    Apparently the stomp client is really unhelpful with
    failures; this attempts to provide at least a bit
    more information.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f4cb8f36dfb2ae05d64ef609d03795537b0720fa
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 17 23:22:44 2009 -0500

    Adding some usability bits to puppetqd
    
    There's better logging, and it's a bit more
    exception-friendly.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a18298a0a9a0d465348164c21fc3dd433aeaa7fc
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 17 23:20:34 2009 -0500

    Refactoring the stomp client and tests a bit
    
    The main goal of this refactor is to tell the client to
    be resilient to failures (configured at initialization time),
    and to send all messages as persistent messages (configured
    for each message).
    
    In the process, the client now parses the queue source URI
    and handles each argument separately.  The tests are more
    thorough, also.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2771918b9eef9ed26e59688c17c64e86de1b9983
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 17 23:16:22 2009 -0500

    Relying on threads rather than sleeping for puppetqd
    
    We previously manually slept, but this uses
    the queue client to handle keeping the process running,
    by just joining all running threads.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 07ff4be92a1d46fe0f6ec3de3c33b5a3b99be755
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 17 23:08:40 2009 -0500

    Fixing #2250 - Missing templates throw a helpful error
    
    This changes the behaviour of template searching a bit -
    we previously usually returned a file name, whether the template
    existed or not.  Now we only return a path if it
    exists.
    
    Refactoring a few of the the tests for TemplateWrapper, also.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7ce42daf5a0c2e3946732f7acb1c0ce680dc432e
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 17 23:38:39 2009 -0500

    Fixing #2273 - CA location is set correctly in puppetca
    
    It's set to 'only' instead of 'local'.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e1779c7711458f718babca5db27427eeb14ae724
Author: Christian Hofstaedtler <ch+git@zeha.at>
Date:   Fri May 15 14:30:14 2009 +0200

    RackXMLRPC: buffer request contents in memory, as a real string.
    
    Fixes #2268 "Rack::RewindableInput is not a valid input stream."

commit fb957ccb6636ce86bd98c141d5818c54bc0d4659
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 14 11:36:20 2009 -0500

    Modules now can find their own paths
    
    Previously, when you created a module you had to specify
    the path.  Now Module instances can use the module path
    to look up their paths, and there are methods for determining
    whether the module is present (if the path is present).
    
    Also cleaned up the methods for figuring out what's in
    the module (plugins, etc.).
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c6084093e67b1e415e49c192b3ac6f6b9aebc4ba
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 17 12:47:41 2009 -0500

    Moving file-searching code out of Puppet::Module
    
    The Module class had a bunch of code for finding
    manifests and templates even when not in a module,
    and it complicated the class unnecessarily.  This
    moves that code to a new, hackish-but-sufficient
    module for just that purpose.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 83ba0e5efe4514201c1a627ceffdaef992431734
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 14 12:11:14 2009 -0500

    Fixing #2234 - fixing all of the tests broken by my bindaddress fix
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4f3a67f21568394dd89a969bd373cbbd59784f7e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 6 12:00:23 2009 -0700

    Fixing #2221 - pluginsignore should work again
    
    We weren't splitting on whitespace, which is necessary
    since the settings don't support arrays but files
    expect them.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2d580c257e6d8aa0821fd443e8b817027407212c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri May 1 13:26:00 2009 +0200

    Fix snippets tests failing because of activated storeconfigs
    
    All the snippets tests were failing because some parser and scope
    tests activated storeconfigs without reseting the state.
    Activating storeconfigs is not undoable at the moment by just
    setting storeconfig=false as some terminus are changed.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 8c718c9f678809ad7bc6a0cc5b5356847a625ca5
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri May 1 13:12:40 2009 +0200

    Fix failing test: file.close! and file.path ordering fix
    
    On ruby 1.8.7 file.close! nils the internal file path.
    So the following pattern:
    file = temp
    file.close!
    file = file.path
    doesn't work.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 17f2c7d1255d79a79060ca93f9d73642a804ed10
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Apr 30 22:30:35 2009 +0200

    Confine stomp tests to Stomp enabled systems
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 6a80b764ef2ac3bad5d7ecdf29aafd9e17887fe1
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Apr 29 23:13:19 2009 +0200

    Fix some master failing tests
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 172422fc0422e2646c4cc3afb7955876651cbf3e
Author: Francois Deppierraz <francois.deppierraz@camptocamp.com>
Date:   Fri May 8 19:52:04 2009 +0200

    Fix bug #2124 - ssh_authorized_key always changes target if target is not defined

commit f945b66aee03c0c06248f3809773f444a25ff00f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 14 11:46:04 2009 -0500

    Fixing #2265 - rack is loaded with features rather than manually
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5aef9151e6514ea6c7bd9aefcd29018e37906281
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat May 9 09:25:55 2009 +1000

    Added .git to pluginsignore default list of ignores

commit 6db5e8d9d7ed4cbd47652a33123118fd8640c8f2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu May 7 18:16:40 2009 +1000

    Cleanup of the Puppet Rakefile and removal of the requirement for the Reductive Build Library

commit 5cc491060f35a29faff20911f54c57e9e065b6a3
Author: Francois Deppierraz <francois@ctrlaltdel.ch>
Date:   Thu Apr 30 02:33:50 2009 +0200

    Fix #1409 once again, including test
    
    "user doesn't exit" error appeared once again after the changes which were
    applied in order to fix #2004.
    
    Validation must only check attributes presence, not their value.

commit a6af5bf8aa45af05186088b02e68acff41f404a6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun May 3 19:25:08 2009 +1000

    Added split function

commit 2dd55fcc542b935146f4eb385356fee0d7d3ea2a
Author: Luke Kanies <luke@madstop.com>
Date:   Sat May 2 17:33:59 2009 +0200

    Fixing #2200 - puppetqd expects Daemon to be a class
    
    I *swear* I wrote tests for the daemon, but I
    can't find them in any of my branches so I rewrote
    them.
    
    In the course of writing them, I also fixed the
    usage of Daemon.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c016062706d541a6255303db0624c8d96d31cfd6
Author: Luke Kanies <luke@madstop.com>
Date:   Sat May 2 20:08:43 2009 +0200

    Removing unneeded test stubs
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1a2e1bcdd31e00a925e1e55693e9dbe241289950
Author: Luke Kanies <luke@madstop.com>
Date:   Sat May 2 20:05:19 2009 +0200

    Fixing #2195 - the Server class handles bindaddress
    
    The Server class has all of the logic now,
    instead of doing weird things in the defaults.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit df3a8f67193c8c6089a84ea6023c84c52b3d3205
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun May 3 19:05:03 2009 +1000

    Minor fixes to function RST documentation

commit 305fa80785f89e8015810531e09854bd23d1c85e
Author: Christian Hofstaedtler <hofstaedtler@inqnet.at>
Date:   Fri May 1 20:31:02 2009 +0000

    Remove the old 0.24.x rack support, which is now useless cruft

commit d85d73c570a60891607d2ce5b42dba4617f4ca6c
Author: Christian Hofstaedtler <hofstaedtler@inqnet.at>
Date:   Tue Apr 28 13:30:48 2009 +0000

    puppetmasterd can now run as a standard Rack application (config.ru-style)

commit d6be4e1206e9285dee9fc4d8cde9608c029d4001
Author: Christian Hofstaedtler <hofstaedtler@inqnet.at>
Date:   Tue Apr 28 12:29:20 2009 +0000

    Add XMLRPC compatibility for Rack

commit 6e01e7ab403d090f29f13c938ca5b19930c4b408
Author: Christian Hofstaedtler <hofstaedtler@inqnet.at>
Date:   Tue Apr 28 12:23:58 2009 +0000

    Puppet as a Rack application
    
    This lays the ground: a wrapper for the REST handler, and an application
    confirming to the Rack standard. Also includes a base class for Rack
    handlers, as RackREST will not stay the only one, and there needs to be
    a central place where client authentication data can be checked.

commit cc09c1af21e218917cc02c0ad9d8c44300803f49
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Mar 13 23:33:17 2009 +0100

    Use FileCollection to store the pathname part of files
    
    Using the FileCollection to store the path parts allows to represent
    a common path prefix by an integer.
    This way the memory used to manage deep hierarchies is reduced.
    The reduction factor depends on the number of managed files per
    directories: the more files in a directory, the more they will share
    the same common prefix, and the better we'll gain.
    Early tests on a 5 level deep hierarchy containing 100 files
    per level show about a 50% less memory consumption.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d51d87e1f04b643f4efb5c6453a2c1fc9a1ca8e5
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Mar 13 23:30:03 2009 +0100

    Add an unmunge capability to type parameters and properties
    
    Unmunge is the reverse of munge.
    While munge allows the type to return a different parameter value
    or properties should than the one it was created with, unmunge
    does the reverse.
    
    It can be used for instance to store a value in a different
    representation but still be able to return genuine value to the
    outside world.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit a1c0ae0fe3c4bef6f21240c4d0a8da985cc7c8af
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri May 1 16:59:51 2009 +0200

    Fix #2218 - Ruby YAML bug prevents reloading catalog in puppetd
    
    Because of ruby bug:
    http://rubyforge.org/tracker/?group_id=426&atid=1698&func=detail&aid=8886
    and
    http://redmine.ruby-lang.org/issues/show/1331
    
    YAML dump of hashes using ruby objects as keys is incorrect leading
    to an error when deserializing the YAML in puppetd.
    
    The error is easy to correct by a post-process fix-up of
    the generated YAML, which transforms:
    &id004 !ruby/object:Puppet::Relationship ?
    
    to the correct:
    ? &id004 !ruby/object:Puppet::Relationship
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit bf054e1b2c0117135de5f54421c112523e83a88c
Author: Stéphan Gorget <gorget@ocre.cea.fr>
Date:   Wed Apr 29 11:23:58 2009 +0200

    Fixes #2209 - Spec is failing due to a missing require

commit 1c4620544520d2b5e2967be8dd525bd584ad3886
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Apr 29 19:32:38 2009 +0200

    Fix #2207 - type was doing its own tag management leading to subtile bugs
    
    This patch moves Type to use Puppet::Util::Tagging as the other
    part of Puppet. This brings uniformity and consistency in the
    way the tags are used and/or compared to each other.
    Type was storing tags in Symbol format, which produced #2207.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 929130bafc5f88512b256cfdb772299b3a54cfdb
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Apr 28 22:40:17 2009 +1000

    Moved puppetqd binary

commit 36d04187fae6b091336ce52d3e428176b39207ae
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 27 23:33:28 2009 +1000

    Fixed #2188 - Added set require to simple_graph.rb

commit 51af2398ea96cd5abfb932ec12fceb5325b6605f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Apr 26 20:45:25 2009 +1000

    Fixed puppetqd require and tweaked stomp library error message

commit dc0a9978df57b0ca730f9d90a132772474d34a5a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Apr 26 20:16:28 2009 +1000

    Fixes #2196 - Add sharedscripts directive to logrotate

commit 4d3b54e8c96df5da0d8618c1965f7fc7fa5cee8e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Apr 26 01:59:21 2009 +1000

    Added puppetqd binary to Rakefile

commit 1fee506187af09bca997f77f414fdc306ffe8f3e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 25 14:39:49 2009 +1000

    Updated version to 0.25.0beta1

commit 0fbff616af30f74d07515ffb84c89f6a55af1f57
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 25 14:39:14 2009 +1000

    Updates to CI tasks

commit aa6dcef408284b39dc0001683c61c149a0578156
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 24 18:18:41 2009 -0500

    Fixing #2183 - checksum buffer size is now 4096b
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c0b119aac7fdc1306270bbe6d1279a4b8e61a99c
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 24 18:08:27 2009 -0500

    Fixing #2187 - Puppet::Resource is expected by Rails support
    
    We previously used and expected Puppet::Parser::Resource
    instances, but 0.25 converts them all to Puppet::Resource
    instances before they're passed out of the compiler,
    so the Rails integration had to be changed to expect that.
    
    There's still some muddling, because the rails resources
    only generate parser resources, but that works for now
    because that's what we expect when collecting resources.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5ec4f66ba1e5dc8788636862d90d6521e0217e86
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 24 18:08:03 2009 -0500

    Adding an 'Exported' attribute to Puppet::Resource
    
    This is required for Rails support.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit adff2c5a2703cabb7ab1438ac5b54571c2b2dfb0
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 24 18:05:19 2009 -0500

    Removing a non-functional and horrible test
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 606a6891a5662a37f481cbada7cfd59c81cf9469
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 24 18:03:34 2009 -0500

    Making sure the cert name is searched first
    
    The cert name should be searched first in default
    circumstances, even if it disagrees with the hostname.
    
    Brice's change to the way catalogs are searched for didn't
    quite work when the hostname and certname didn't agree *and*
    the certname was fully qualified.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f489c30411e8fdee4e43a4f580d135acdaeae946
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 24 17:46:20 2009 -0500

    Removing an "inspect" method that often failed in testing
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 93c3892e729de48da78fed309c7107ce3e191254
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 24 17:42:27 2009 -0500

    Removing deprecated concurrency setting usage in rails
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6f8900d2931acfb96b810904572aecc675d28168
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 24 16:24:18 2009 -0500

    Always making sure graph edges appear first
    
    If we don't do this, there's a chance we'll get hit
    by the ruby yaml bug again.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 3f7cd18604e972e78bc9182e09cc4defa46b7d8d
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 24 16:14:00 2009 -0500

    Reverting part of the switch to sets in SimpleGraph
    
    Unfortunately, again because of a Ruby bug
    (http://rubyforge.org/tracker/?group_id=426&atid=1698&func=detail&aid=8886)
    Ruby can't print yaml that it can read, if custom
    classes are used as keys in hashes, which Sets use internally.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bf46db7452ae72d3a40ecc5cf14ae62692c47e84
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 24 19:48:22 2009 +0000

    Fixing rails feature test
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5f6b5c0efe5210583a1040f902af2ff0709f3ca9
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 23 18:56:57 2009 -0500

    Failing to enable storeconfigs if ActiveRecord isn't available
    
    This is the last step to fixing #2189.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8ed7ae3a23dd84dfc7ef835c2bb36f7ee4cfe9e5
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 23 18:56:30 2009 -0500

    Fixing the Rails feature test to require 2.3.x
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a0c1edec69c7eea70fe1ca9f4e0e1dc6fc3d688b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 8 19:45:59 2009 -0500

    Modifying the Settings#handlearg prototype
    
    I'd made the argument no longer optional
    because I thought the method was rarely used,
    but it's used in puppetd a good bit.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 284cbeb6a6b4b8d633890139b8e5c5319f67bde3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Apr 24 19:02:08 2009 +1000

    Fixes #2172 - service provider for gentoo fails with ambiguous suffixes

commit 68ba1f135a587d2dbfbf7a371540a83908c9d590
Author: Bryan Allen <bda@icgroup.com>
Date:   Thu Apr 9 17:20:53 2009 -0400

    SMF import support working and documentation update

commit f1f0a57e4cafc5a9a4378f367022f7cc591033d7
Author: Bryan Allen <bda@icgroup.com>
Date:   Thu Apr 9 05:45:44 2009 -0400

    Fixes #2145 and #2146
    
    Adds manifest param for service type, defines a command or manifest to set up a service
    Add service setup (import) support

commit ec478da93a03d0a9c5cd7b782d86deea6d3b4a8b
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Apr 22 19:30:09 2009 +0200

    Fix configurer to retrieve catalog with client certname
    
    Rationale:
    Before this change, the catalog was retrived with this uri:
    /catalog/hostname
    
    On the server side, the corresponding node was found by using the
    request node, then finding if this node also match hostname
    (which it does of course).
    But it is not possible to have an ACL matching the hostname part
    of the uri, because it:
     * it would be compared to the node name (certname), which obviously
    is not the same
     * it is not possible to create a dynamic allow/deny rule on a non-fqdn
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit e623f8a32a7363d98843fdb361c717b6198d32de
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Apr 19 17:44:55 2009 +0200

    Unify auth/unauthenticated request authorization system
    
    Before this change, unauthenticated REST requests where inconditionnaly
    allowed, as long as they were to the certificate terminus.
    This could be a security hole, so now the REST requests, authenticated
    or unauthenticated are all submitted to the REST authorization
    layer.
    The default authorizations now contains directives to allow unauthenticated
    requests to the various certificate terminus to allow new hosts.
    The conf/auth.conf file has been modified to match such defaults.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 037a4acfb6c9b498424e278caac88687e3f4cfa1
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Apr 21 23:48:44 2009 +0200

    Allow REST auth system to restrict an ACL to authenticated or unauthenticated request
    
    Introduces a new auth.conf directive (auth or authenticated) which
    takes an argument (on,yes/off,no/all,any).
    This can be used to restrict an ACL to only some state of
    authentication of a REST request, or any.
    If no auth directive is given, the ACL will only trigger for
    authenticated requests.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 3ad79609183c5a4448595f85411179ac448d2ef9
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Apr 19 16:37:46 2009 +0200

    Fill REST request node with reverse lookup of IP address
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit c0c824548e03e603f5a51c61262ae6a58e7549fb
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Mar 30 23:10:19 2009 +0200

    Refactor rest authorization to raise exceptions deeper
    
    The idea is to raise an AuthorizationException at the same place
    we check the authorization instead of in an upper level to be
    able to spot where the authorization took place in the exception
    backtrace.
    
    Moreover, this changes also makes Rights::allowed? to return
    the matching acl so that the upper layer can have a chance to
    report which ACL resulted in the match.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit aac996ed17e0ec72c5098b1225eb159aae4901fc
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Mar 30 20:24:53 2009 +0200

    Add environment support in the REST authorization layer
    
    With the help of the new auth.conf directive 'environment',
    any ACL can now be restricted to a specific environment.
    Omission of the directive means that the ACL will apply
    to all the defined environment.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 72e28aeccc36092e7edf9dc25e44acdb08fa5e79
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Mar 23 23:36:48 2009 +0100

    Fix some indirector failing tests
    
    The authorization system should stubbed to let all the rest tests
    to succeed :-)
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit dc1cd6fb6b143b6525953e619a716f04e678727c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Apr 21 23:53:48 2009 +0200

    Fix #1875 - Add a REST authorization system
    
    This patch introduces a new configuration file (and configuration
    setting to set it).
    Each REST request is checked against this configuration file, and is
    either allowed or denied.
    
    The configuration file has the following format:
    
    path /uripath
    method <methods>
    allow <ip> or <name>
    deny <ip> or <name>
    
    or
    path ~ <regex>
    method <methods>
    allow <ip> or <name>
    deny <ip> or <name>
    
    where regex is a ruby regex.
    This last syntax allows deny/allow interpolation from
    the regex captures:
    
    path ~ /files[^/]+/files/([^/]+)/([^/])/
    method find
    allow $2.$1
    
    If you arrange your files/ directory to have files in
    'domain.com/host/', then only the referenced host will
    be able to access their files, other hosts will be denied.
    
    For instance:
    files/reductivelabs.com/dns/...
    files/reductivelabs.com/www/...
    then only files in dns can be accessible by dns.reductivelabs.com
    and so on...
    
    If the auth.conf file doesn't exist puppet uses sane defaults that allows
    clients to check-in and ask for their configurations...
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 85233768f080b4cbc4e20eb0c354b6d859a2fb23
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Mar 31 20:29:37 2009 +0200

    Enhance authconfig format to support uri paths and regex
    
    This patch introduces a new set of directive to the authconfig
    parser/file format:
    
    path /uripath or patch ~ <regex>
    This directive declares a new kind of ACL based on the uri path.
    
    method save, find
    This directive which is to be used under path directive restricts a
    path ACL to only some REST verbs.
    
    The ACL path system matches on path prefix possible, or
    on regex matches (first match wins).
    If no path are matching, then the authorization is not allowed.
    The same if no ACL matches for the given REST verb.
    
    The old namespace right matching still works as usual.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 22b82abcd27834e43426f2758fba5728c146be61
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Apr 11 18:58:56 2009 +0200

    Add dynamic authorization to authstore
    
    The idea is to have allow/deny authorization directives
    that are dynamic: their evaluation is deferred until
    we perform the authorization checking in allowed?.
    This is done to allow replacing backreferences in allow/deny
    directives by parameters of the match that selected this right.
    For instance, it is possible to:
    allow $1.$2
    And using Right::interpolate() with the result of a regex match
    using 2 captures, will evaluate $1.$2 to those captures.
    For instance, if we captured [host, reductivelabs.com], then the
    allow directive is replaced by:
    allow host.reductivelabs.com
    It is then safe to call allowed?, after which we can reset the
    interpolation.
    This interpolation is thread-safe.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
    
    authconfig regex support

commit 15abe1709aa52bb45fe228139f4c0352dc8905df
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Apr 21 23:53:17 2009 +0200

    Add RSpec unit tests for network rights
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 86c79777bd190bab425be036ec01378793d059b5
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Apr 21 23:52:46 2009 +0200

    Add RSpec unit tests for authconfig
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f04a938084e0a68884af95378a3a9f81227c578f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 16 19:18:31 2009 -0500

    Adding support for specifying a preferred serialization format
    
    This isn't that great, but at least it provides
    basic tuning of the format.
    
    Also removing the catalog_format default, since it's
    no longer used.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6a51f6fb2184f25bf45a1328e0ba889aa066ffd3
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 16 19:03:31 2009 -0500

    Fixing the FormatHandler test to use symbols for format names
    
    Formats guarantee that symbols are used, so it makes sense
    for the tests to do so.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b249f87a8c9a7e358e8d82d658247cd4be01a3d7
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 16 18:47:23 2009 -0500

    Fixing #2149 - Facts are passed as part of the catalog request
    
    This removes the requirement of shared fact caching
    on the servers, since the server responding to the catalog
    request will receive the facts as part of the request.
    
    The facts are serialized as a parameter to the request,
    rather than each being set as a separate request parameter.
    
    This hard-codes yaml as the serialization format for the
    facts, because I couldn't get marshal to work and it's just not
    as big a deal for such a small amount of data.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1cde0ae606b0ea48d4dd8f7a0c0a4f84f7ed8af6
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 16 18:40:53 2009 -0500

    Adding better logging when cached indirection resources are used
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 828b1ea605786183c69a8be3bca2272b50761790
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 21 17:49:05 2009 -0500

    Fixing #2182 - SimpleGraph#walk is now iterative
    
    It was previously recursive, and was causing
    significant performance problems for large, wide
    graphs.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 9f32172e7d93f926b2ab291e68bdd0cc955ff3d2
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 21 17:39:35 2009 -0500

    Fixing #2181 - Using Sets instead of Arrays in SimpleGraph
    
    This can cause a huge speedup for large numbers of edges.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7a98459706318c2fbbfd11749333a61767ec9aae
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 21 01:20:36 2009 -0500

    Removing code that was backported and is now not needed
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d06bd3ede2a5ba0017e90e2937092a986d5b356c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 21 01:13:49 2009 -0500

    Finishing class renames
    
    I missed some of the Catalog mentions, and its
    constant changed.
    
    I've also added tests so this will get caught
    next time.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b694b3c0696cc9bd0f109bf0a7c790f592bc6180
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 21 01:00:52 2009 -0500

    Fixing tests that apparently only worked sometimes
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 93246c0c70796a606fc8c05b51e1feb09c94e377
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 21 00:56:32 2009 -0500

    Removing the old rails tests.
    
    They don't work with the modified code, and we
    rely almost entirely on manual integration testing
    for this stuff anyway.
    
    We definitely need to add tests where we can, but
    these tests are totally useless.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5cb0f76f3ccb0b179de5f2735749ff91ae7346cc
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 14 17:53:49 2009 -0500

    Fixing some rails tests that sometimes failed
    
    At least, I think they're fixed; it's hard to test.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bdbf9db5f0c0d30e554f274591b24692b866ca29
Author: steve mcintosh <stevemac@endpoint.com>
Date:   Thu Apr 9 16:10:23 2009 -0400

    Added class_name tags to has_many relationships

commit 2e62507a81dc5c497be302b77fe368c6387a2f40
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 14 12:59:47 2009 -0500

    Adding time debugging for catalog storage to active_record
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a705809b1e5a27062d683c138135046cc7e70ae1
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 14 12:59:10 2009 -0500

    Adding defaults necessary for queueing
    
    These are all of the defaults needed to configure queueing.

commit 8a67a5c4e059398193b94a06df3f1ac6cc6f095b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 14 12:58:35 2009 -0500

    Adding daemonization to puppetqd
    
    This will need to be modified on the merge into 0.25,
    because the daemon module becomes a class, but that should
    be easy enough.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit fcd1390dd95054fdb529481c4603860b9d53be68
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 14 12:14:08 2009 -0500

    Adding Queueing README
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 9b90f34cdc2c7c462e2e20028b115209e9748969
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 14 11:18:02 2009 -0500

    Using a setting for configuring queueing
    
    Removing class methods and such, and switching to
    relying solely on a setting for the queue configuration.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 444ae9f8341348b0b8163788ada35892bc98f562
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 13 16:51:56 2009 -0500

    Adding puppetqd executable.
    
    This uses the backported Application class, with a couple
    of backported monkey-patches so the class works as expected
    but in 0.24.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 22ae661263b9b42c3ad4d4d6dee3d3b1d1d2e25b
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 10 15:23:31 2009 -0500

    Adding "rubygems" and "stomp" features
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit efe68165b382d6860e83b0bb1d1108f36fa3d2fd
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 7 18:41:51 2009 -0500

    Removing unnecessary parser variables when yaml-dumping
    
    Also working around a YAML bug in Ruby.
    
    And fixing tests that were broken in a previous commit
    in this rebase but not caught earlier.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a3b1e8ce9c8ad97ed3bcf65c0554ae34690716fa
Author: Ethan Rowe <ethan@endpoint.com>
Date:   Mon Apr 13 07:46:53 2009 -0400

    Add queue indirection as an option for catalog storage.
    
    This eventually will allow catalog storage ("storeconfigs") to be taken out of the critical request-handling path of puppetmasterd, such that:
    * Puppet::Node::Catalog can be serialized to a message queue via the indirector's "save" method
    * a separate process can use Puppet::Node::Catalog::Queue.subscribe to pick up these catalog objects as they come in and can save them to the database through the :active_record terminus

commit bccfcc9d3a316e79f7e07e7f0d837b82940c071a
Author: Ethan Rowe <ethan@endpoint.com>
Date:   Mon Apr 13 07:41:12 2009 -0400

    Introduce abstract queue terminus within the indirection system.
    
    The queue abstract terminus allows the standard indirector behaviors to interact with a message queue broker, such that the indirector's "save" method writes the relevant model object out to a queue on the message broker.  While the indirector's "find" method does not map to a message queue, the queue terminus class offers a "subscribe" method that allows for easy implementation of an event loop, receiving indirected objects saved to a queue as they come in.

commit 7947f100a9d9d60d1038e220aa41d44cf59d5af0
Author: Ethan Rowe <ethan@endpoint.com>
Date:   Mon Apr 13 07:33:11 2009 -0400

    Introduce queue client "plugin" namespace and interface, with a Stomp client implementation.
    
    Puppet::Util::Queue provides queue client mix-in behaviors that enable easy queue client management for consumer classes.  Some relevant behaviors include:
    * standard Puppet instance loader behavior for loading queue client modules on-demand based on the client module specified by symbolic name
    * singleton registry of known queue client types (based on symbol-to-class mappings from the instance loading behavior)
    * simple interface for working with an actual queue client instance
    
    Puppet::Util::Queue::Stomp wraps the Stomp::Client class to provide an initial queue client option supporting the Stomp messaging protocol.  This defines the interface for all Puppet queue client plugins going forward.

commit 80dc83715190335ec0aac142e383d60ca28ea3b3
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 11 21:06:14 2009 -0500

    renaming a method
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f7ccaaaf5ee9e4ecc4f99a7c70cac5489ce2b3bf
Author: Ethan Rowe <ethan@endpoint.com>
Date:   Fri Apr 10 16:01:25 2009 -0400

    Adjusted parameter name and puppet tag classes to use new cache accumulator behavior for storeconfigs.
    
    Removed per-class implementatiosn of accumulate_by_name from affected classes.

commit 75f1923049d5e1edfd3b9e9790a96b487cdef305
Author: Ethan Rowe <ethan@endpoint.com>
Date:   Mon Apr 6 11:34:12 2009 -0400

    Initial implementation of a "cache accumulator" behavior.
    
    Mix Puppet::Util::CacheAccumulator into an ActiveRecord-like class, and then for any
    attribute in that class on which you are likely to call find_or_create_by_*, specify:
    
     accumulates :foo
    
    and instead of :find_or_create_by_foo use :accumulate_by_foo.
    
    The class will cache known results keyed by values of :foo.
    
    Do an initial bulk-lookup: class.accumulate_by_foo('foo1', 'foo2', 'foo3', 'foo4')

commit bab45c4a3006867c500b30df9b91b7b46c17dff9
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 9 21:18:28 2009 -0500

    Saving rails resources as I create them, which saves about 10%
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7a91e1f5c03ed02eed4c45fddd740b899650bf36
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 9 17:43:17 2009 -0500

    Changing rails value serialization to deal with booleans
    
    The database was automatically converting booleans
    to strings, and value comparison was not working correctly
    as a result.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c30ede56f576aa6032221ed45510f50b0303ef7a
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 9 17:31:39 2009 -0500

    Adding equality to ResourceReference
    
    This is used by the Parser subclass when testing
    equality with db-backed references.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 589f40f8e8769d3bd8de8692222eac8a2f6f30cb
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 8 18:47:26 2009 -0500

    Adding some more fine-grained benchmarks to Rails support
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 042689e06bcee2882a2937b2caeab4529ae5c048
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 8 18:26:36 2009 -0500

    Adding a Rails-specific benchmarking module
    
    This just slightly simplifies adding lots of time-debug
    stuff in Rails.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 89d91392b9fb98cc14a194729bb35cb1d87a72e2
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 8 18:05:34 2009 -0500

    Adding simplistic param_name/puppet_tag caching
    
    This has a drastic affect on performance - cuts
    about 25% off of the store time.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ea4e3b286bd66e925c3ae5853a3a43fc5b30175f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 8 17:45:24 2009 -0500

    Adding more time debugging to Rails code, and refactoring a bit
    
    There is an accumulation in the resource tags (hackish enough
    but soon to be replaced), and I've fixed a small bug in
    the tags merging that was causing lots of extra work (like 3x).
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6314745c054ba9482f145b4ec798431ac2f300a3
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 8 16:56:41 2009 -0500

    Refactoring the Rails integration
    
    This moves all code from the Parser class into
    the ActiveRecord classes, and gets rid of
    'ar_hash_merge'.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit be30a618272d9828f90f5e726a23021be3b23221
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 6 18:56:27 2009 -0500

    Adding a common Settings method for setting values
    
    We were previously missing some hooks for settings set
    via the command-line, because different code paths were
    being used.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 863c50b1273a7fa48d74fb74948938214b45967c
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 6 19:12:04 2009 -0500

    Switching to Indirected ActiveRecord
    
    This is mostly a configuration change, with some
    code getting removed.
    
    Also adding an extra require in Format;
    Puppet::Provider requires Puppet::Provider::Confiner,
    so the constant lookup is weird.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a137146562fecc909afe7fc81f0033fccbb36393
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 6 19:10:59 2009 -0500

    Adding ActiveRecord terminus classes for Catalog
    
    This provides the last piece of ActiveRecord integration.
    It's pretty much just pass-through and *only* works
    if you're storing Parser resources to the db.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b9c95ebf81eeb78297003de2d0ed4ca048412393
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 6 16:38:14 2009 -0500

    Adding ActiveRecord terminus classes for Node and Facts.
    
    This is most of the way to replacing standard StoreConfigs
    integration with the Indirector.  We still need to convert
    the Catalog and then change all of the integraiton points
    (which is mostly the 'store' call in the Compiler).
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8d0e9976b199a637d82d70701db6c682a89b9d6a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 21 17:12:42 2009 -0500

    Fixing #2180 - Catalogs yaml dump the resource table first
    
    This fixes a ruby bug (http://rubyforge.org/tracker/?group_id=426&atid=1698&func=detail&aid=8886)
    that otherwise results in yaml producing text it can't read
    back in.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4e0de3881b55a728ee54e1cab5d3b9a6ab52a5a9
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 18 21:23:10 2009 -0500

    Partially fixing #1765 - node searching supports strict hostname checking
    
    With the new 'strict_hostname_checking' option enabled,
    the compiler will only search for the literal certificate
    name in its list of nodes.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c1f562dc6e6b58a2de504019b7ad8381da57e2cb
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 18 21:17:48 2009 -0500

    Removing unused Node code
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e6b420088978adb3b3dd930db033df6dce59f124
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 1 07:22:31 2009 -0500

    Fixing #1885 - Relationships metaparams do not cascade
    
    Because we now pass catalogs around, rather than a tree
    of resources, we no longer lose the metaparam information
    in definitions and classes.  Thus, we no longer need
    to pass them down to contained resources.
    
    Ideally we'd remove cascading of all metaparams (which is
    ticket #1903) but 'schedule' and 'noop' are inherently
    recursive but not in a way that the graph support can currently
    easily solve, so that's going to have to wait for a later
    release.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 50e0f3d0161bc4160e36a93d15fba53302b8727b
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Apr 9 16:15:28 2009 -0700

    Fix #2142 - Convert pkgdmg provider to use plists instead of string scanning for future proofing
    
    update pkgdmg patch with feedback from dev-list
    
    initial checking of pkgdmg package provider tests
    
    clean up fail conditions to raise Puppet::Error instead
    
    Finalized tests for pkgdmg provider
    
    remove duplicate facter/util/plist require

commit c1be88742d143128ed8240316b6269b585c5084e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 21 02:33:49 2009 -0500

    Fixing #2171 - All certificate files are written with default perms
    
    We were already writing all specific files with
    appropriate permissions; this change makes all of
    the files that are part of a group (which largely
    means files saved by puppetmasterd and puppetca)
    are also written using the correct permissions.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e2201d6e52b85ddbeaf107a41eb627994eb6973c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Apr 19 18:52:05 2009 +0200

    Fix #2173 - fix running RSpec test by hand
    
    Since the introduction of fixing RSpec to 1.2.2, we don't
    support anymore running RSpec directly ala:
    
    ruby spec/unit/type.rb
    or
    spec/unit/type.rb
    
    This patch fixes this.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 424c87b953f469cf4818236b74b5c2a0f9712f7d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Apr 19 18:52:29 2009 +0200

    Fix #2174 - Fix RSpec rake targets
    
    The target generation was wrong, as it created some
    strange target for isolated test files.
    It now creates two types of targets:
    
    * directory targets, like:
    rake integration/network/server
    or
    rake unit/network
    
    Those run all tests in a specific directory
    
    * spec targets like:
    rake unit:indirector:catalog:yaml
    or
    rake unit:parser:ast:definition
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 7ab7d9f9ff378041ab7a2baf159860439bd1c812
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 17 01:08:53 2009 -0500

    Fixing #2112 - Transactions handle conflicting generated resources
    
    This commit rips out all of the 'implicit resource' crap,
    replacing it with a simple system that just skips
    resources that the catalog says are in conflict.
    
    Removes a bunch of code, and fixes the bug to boot.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 84e6c1bd95f32810e92eb760fe3f3f9efdb84f04
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 16 23:54:21 2009 -0500

    Adding another stacktrace for debugging
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 47933347797b61e8a8ba71980396862fddd950f0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 16 23:28:17 2009 -0500

    Fixing puppet -e; it got broken in the move to Application
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7398fa171fdd6dcaeb2d8fd1c07a23bbd78891d0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 16 14:54:40 2009 -0500

    Partially fixing #2029 - failed caches doesn't throw an exception
    
    If the main terminus fails you get an exception, but
    not if a cache terminus fails.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 88ff9c6500e76fdda02e60262dd1571577c0b92b
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Apr 12 23:10:58 2009 -0500

    Fixing #2111 - SimpleGraph only creates valid adjacencies
    
    The way this class was testing edges was
    causing them to appear adjacencies to appear magically,
    because it was only testing that a hash had a key, not that
    the value had any edges.
    
    This fixes the infinite recursion mentioned in #2111.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 36594fecd8e30f732f09bc940adbb4c686e314ba
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Apr 12 22:55:39 2009 -0500

    Switching to new() in the Puppet::Type.instances() class method
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit edcbab5d046326cfbc69fdffafdaba033a125da8
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Apr 12 22:55:04 2009 -0500

    Removing duplicate method definition from SimpleGraph
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 39bd8af772d3b99fc83314d229a7d51bf3970a5f
Merge: d8eaca8 916dd60
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 11 22:33:51 2009 -0500

    Merge branch '0.24.x'

commit d8eaca88038fa0ef15fda0c4a11a7f08daebc8ef
Author: Ohad Levy <ohad.levy@infineon.com>
Date:   Thu Apr 9 20:58:47 2009 +0800

    mini daemon to trigger puppetrun on clients without puppet listen mode

commit 7bb8c35f6c70cf32feba9a3ce224155b9d446289
Merge: d2c417e 0863a79
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 7 15:11:56 2009 -0500

    Merge branch '0.24.x'

commit d2c417ef48dbb2074c1c58ec2c86ba2d52ecc895
Author: Paul Nasrat <pnasrat@googlemail.com>
Date:   Thu Mar 26 11:58:10 2009 +0000

    Fix #2113 - Make temp directory
    
    Tests were failing this patch makes the temporary directory in line with other
    integration tests.

commit 916dd60dc8392c1ee612028008a52926676e894b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 6 12:36:16 2009 +1000

    Fixed rspec gem at version 1.2.2

commit 57b37e5182d01b640dc794b0a82128f8aeddfd7d
Author: Ethan Rowe <ethan@endpoint.com>
Date:   Sat Apr 4 17:40:08 2009 -0400

    Add @options to test run call, for compatibility with more recent rspec versions.

commit 3aedfd8bbcefcdb92af57e4661a360be9aee2716
Merge: 173b5f0 a677e26
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Apr 6 11:45:23 2009 +1000

    Merge branch 'master' of git://reductivelabs.com/puppet

commit 173b5f0a162d8dd7f72e1cab257069bc65382960
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 31 18:37:40 2009 -0500

    Adding #2122 - you can specify the node to test with puppet-test
    
    This commat adds a --node option to puppet-test,
    so that you can use locally cached node and fact data
    for testing local and remote compiles.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0863a7928ff6c15dcd8ace7119a3fa64bbcec6b3
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 31 18:37:40 2009 -0500

    Adding #2122 - you can specify the node to test with puppet-test
    
    This commat adds a --node option to puppet-test,
    so that you can use locally cached node and fact data
    for testing local and remote compiles.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a677e26eb1452c08d7724047a18e50f4a654d2cd
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 2 19:41:17 2009 -0500

    Fixing all tests that were apparently broken in the 0.24.x merge.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e016307f00fe67dc53f8581f08c1dfb5ab7dfb3b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 2 19:34:38 2009 -0500

    Fixing Rakefile; apparently there was a rake or gem incompatibility
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6e79cc00965a50c44f215fd1e553281cfd2b87c9
Merge: 62dad7a c62c193
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 2 18:56:53 2009 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    	bin/ralsh
    	lib/puppet/executables/client/certhandler.rb
    	lib/puppet/parser/functions/versioncmp.rb
    	lib/puppet/parser/resource/reference.rb
    	lib/puppet/provider/augeas/augeas.rb
    	lib/puppet/provider/nameservice/directoryservice.rb
    	lib/puppet/provider/ssh_authorized_key/parsed.rb
    	lib/puppet/type.rb
    	lib/puppet/type/file/checksum.rb
    	spec/integration/defaults.rb
    	spec/integration/transaction/report.rb
    	spec/unit/executables/client/certhandler.rb
    	spec/unit/indirector/ssl_rsa/file.rb
    	spec/unit/node/catalog.rb
    	spec/unit/provider/augeas/augeas.rb
    	spec/unit/rails.rb
    	spec/unit/type/ssh_authorized_key.rb
    	spec/unit/type/tidy.rb
    	test/executables/filebucket.rb
    	test/executables/puppetbin.rb

commit a43137c7526f4693e9266040d55ddb397f58500c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Mar 30 19:55:59 2009 +1100

    More RST fixes

commit 843cc6e50586fa6667ba95d1d1c46bb1eefff23c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Mar 27 12:06:54 2009 +1100

    Fixed RST for functions

commit 6160aafe86e48d545583a2e9e093754ac32a5ced
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 22 10:39:49 2009 +1100

    In order for ReST formatting to work properly, newlines and
    indentation of doc strings must be retained.
    
    Signed-off-by: Thomas Bellman <bellman@nsc.liu.se>

commit 62dad7a5f87f8d6285650ab1b727819db27cf2a7
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Mar 25 22:44:58 2009 +0100

    Fix #2107 - flatten resource references arrays properly
    
    Resource parameters of the form
    [Res[a], Res[a,b]] ends being evaluated as
    [Res[a], [ Res[a], Res[b] ]
    This last form was not flattened when transfomed into RAL
    type, which in turn prevented the sub array to be converted
    in regular resource references.
    Thus the type was choking when encountering those native
    parser references instead of usual resource reference.
    The fix consists in flattening array of references before
    transformation to trans objects for RAL.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit cbee426854c09fae4d9675edb787d4563e9b9ac8
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Mar 23 23:17:11 2009 +0100

    Fix #2101 - Return to recurse=0 == no recursion behavior
    
    Ticket #1469 introduced an incorrect change of behaviour where
    recurse = 0 was considered as an infinite recursion, unlike
    before.
    This patch restores this behavior, and makes some test pass.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 3b4816b842f1dc3febe95df2b9ae25cfabc5a2df
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Mar 23 23:16:56 2009 +0100

    Fix #2101 - fix failing test
    
    This code hasn't been modified since the introduction of the
    fileset recurselimit parameter. Tests depending on this code
    were failing.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f089e115fd126e2fae664322b7a27cb31f0efd3d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Mar 23 23:16:41 2009 +0100

    Fix #2101 - fix recurselimit == 0 bad behaviour
    
    After the fix for #1469, recurselimit = 0 was considered as
    an infinite recursion which is the reverse of what it was before.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 14762c3f3624a2b59685099548e7e106bd7b0b9d
Merge: 1b4eae7 3f61df8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Mar 27 00:04:30 2009 +1100

    Merge branch 'tickets/master/2110'

commit 1b4eae73665e03b9ce7ee77b5f4799502619e426
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Mar 26 23:33:30 2009 +1100

    Added rake ci:all task

commit d1259372ea955c488efa37724fc74a55da28eefc
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Mar 26 23:33:30 2009 +1100

    Added rake ci:all task

commit 3f61df8716d1ed66fb24bf7bcf64fcc2ebc711b9
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Mar 26 10:00:13 2009 +1100

    Fixed #2110 - versioncmp broken

commit c62c19370bfba881819c1a3d9da2f8e6fb52e5d9
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 23 03:41:25 2009 +0000

    Updated to version 0.24.8

commit aa00bdedefcf4dce9c55968e33123a73b78fb6d6
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 22 22:00:41 2009 -0500

    Fixing #1631 - adding /sbin and /usr/sbin to PATH
    
    This is a trivial fix but seems to crop up more often
    than it should.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 39deaf373c46c20d14a04391ad4b7c70ad43e266
Author: Francois Deppierraz <francois@slayer.ctrlaltdel.ch>
Date:   Sat Mar 21 23:32:02 2009 +0100

    Fixed #2004 - ssh_authorized_key fails if no target is defined
    
    This commit depends on 7f291afdacf59f762c3b78481f5420ec8919e46d
    (fixing #1629) which was cherry-picked from master.
    
    Signed-off-by: Francois Deppierraz <francois@ctrlaltdel.ch>

commit dcf2bf2be7275afc68054f3c9d51b548111b6574
Author: Francois Deppierraz <francois@slayer.ctrlaltdel.ch>
Date:   Sun Mar 22 00:09:11 2009 +0100

    Changelog entries for #1629 and #2004
    
    Signed-off-by: Francois Deppierraz <francois@ctrlaltdel.ch>

commit bbcda1d5bcab492dc68d331e6f78fb0473e9f046
Author: Francois Deppierraz <francois.deppierraz@camptocamp.com>
Date:   Fri Nov 28 15:12:30 2008 +0100

    Fix Bug #1629
    
    A refactoring of ssh_authorized_key parsed provider was needed and tests
    were improved. flush method has been split for clarity.

commit 69a0f7dc8d3ba1c64e5acdf99628f10b41ab8e30
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Dec 19 17:35:08 2008 +0100

    Fix #1807 - make Puppet::Util::Package.versioncmp a module function
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 081021af4dda0d19e7de7debb580196219bb7c36
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Dec 19 17:38:50 2008 +0100

    Fix #1829 - Add puppet function versioncmp to compare versions
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 2b33f80d167424abcd153e01aa1a93ae38155120
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Mar 20 20:37:05 2009 +1100

    Fixed install.rb typo

commit 5ab63cdf2efa9a8557d3837c32d8336dd23a4b85
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Mar 20 20:34:13 2009 +1100

    Updated lib install permissions to 0644

commit 830e1b1f3c73e63b698f04298e8f5ff827a85dad
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Mar 21 02:39:35 2009 +1100

    CHANGELOG updates

commit 3e0a9cda8c6f3866c85fd20dd56a6bafcc0e0db7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Mar 21 02:27:00 2009 +1100

    Moved of puppetd, puppetca, puppetmasterd, puppetrun binary from bin to sbin

commit 6ddebf4d6f5f1537987cdc15a32f439149d73ce6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Mar 21 02:22:31 2009 +1100

    Fixed #2086 - Fixes to make building tarballs easier

commit 33d3624c91b236e237fe194d9df3d9fa324111c3
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Feb 24 18:48:52 2009 +0100

    Fix #1469 - Add an option to recurse only on remote side
    
    When using recurse and a source, if the client side has many files
    it can take a lot of CPU/memory to checksum the whole client
    hierarchy. The idea is that it is not necessary to recurse on the
    client side if all we want is to manage the files that are sourced
    from the server.
    
    This changeset adds the "remote" recurse value which prevents recursing
    on the client side when a source is present. Since it also is necessary
    to limit the remote side recursion a new File{} parameter has been
    added called "recurselimit".
    
    Moreover, the Filetset API is changing to allow the new recurselimit
    parameter, and passing the recursion depth limit in the recurse parameter
    as an integer is now deprecated and not supported anymore.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 77ade43dec5e6fc5afac7abe4b331a3bc7887e42
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 20 00:25:16 2009 -0500

    Forbidding REST clients to set the node or IP
    
    This is done for security reasons - if a client is
    unauthenticated, we don't want them to be able to
    just configure their own authentication information.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0179e945a7d402c90a333c8207243882af362e06
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 19 23:58:19 2009 -0500

    Fixing #1557 - Environments are now in REST URIs
    
    This commit includes multiple, related changes, all
    in one commit because the whole thing was necessary to
    reach a functional tree again:
    
    * The URI starts with the environment, so:
      /production/certificate/foo
      /development/file_content/path/to/your/file
    * All REST handling is done by a single instance mounted
      at / for webrick and Mongrel, rather than having individual
      instances mounted at, say, /certificate.
    * All REST URI translation is done by an API module.  Currently
      only the 'v1' module exists with no support for additional modules,
      but it's well-separated and will be easy to expand as we need it.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a497263d97229489dcc4341cc98ca3c75f116374
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Mar 18 01:00:56 2009 -0500

    Adding explicit optional attribute to indirection requests
    
    Previously, any option that had a setter was treated
    as an attribute, but now we're specifying the list of
    attributes settable via options.
    
    We also have a to_hash method that will take all of the
    options and all of those attributes and join them
    back into a hash.  This method is used by the REST Handler
    module, since it uses the indirection request internally.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 3e954997f7688f0193010de776879d23545a8ca5
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 15 17:52:35 2009 -0500

    Removing an unused source file
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 97975e14acfc8c62488a2e6495ca00d426bc9290
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 13 18:38:55 2009 -0500

    Adding a model accessor to the Request class
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b6116fe28d9c771dbe2dcded539bcf30eea552a3
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 13 18:23:04 2009 -0500

    Requests now use default environment when none is specified
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 15740fe090365a81202fd44244e88b976f1d14d7
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 13 17:39:51 2009 -0500

    Moving the REST API functions into a module
    
    This module is now used by the client and
    server side, rather than having a Handler module
    that's 90% server functionality but also used by
    the client.
    
    While we don't automatically get api choice from this,
    it at least provides a pattern for how we'll handle API
    development over time.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ef4fa681be07881bab3e1e920585cc4fbbf6f4d1
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 13 17:24:09 2009 -0500

    Using the Handler for the REST api on both sides of the connection
    
    Things are actually in a broken state here because we've
    got a conflict between how the two sides do their work
    and some extraction needs to get done.  This commit
    is just a stopping-point so I can do the necessary
    refactoring.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8b13390819f9aec9f344a72b3c0b3b6609f6209d
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 13 01:38:47 2009 -0500

    Adding REST::Handler methods for converting between indirection and uris
    
    This is the first main phase to having a common module for
    handling the REST api - this Handler module will be included
    by all of the web server REST modules and the Indirector
    Request class, so there's a common place that understands
    how the URI consists.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit edf00dba76b65108b443af8d0636073cb3d9d975
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 13 01:22:12 2009 -0500

    Adding environment support to the REST URI
    
    Also adding it to the Indirection Request.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a064ed1a6035c44f123e092b2429895fb45bdbd2
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 25 17:36:03 2009 -0800

    Moving the query_string method to Request
    
    It required a request instance and didn't use
    the REST class it was in, so it makes more sense in
    the Request class.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ff9c3ca4059a63523b07d89f1b967f6bf1c4bba4
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 25 17:29:42 2009 -0800

    Adding tests for the REST query string usage
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 87ec08e5d5efe1576e338861bc514b7b5c2a6d6a
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 20 00:49:46 2009 -0500

    Fixing #2108 - pi should work again
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2c7e1897eaaa7d2dd8d8d993df8a9a217d1c46c6
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon Mar 16 07:30:16 2009 -0700

    Fixes incorrect detail variable in OS X version check, re-patches ralsh to work with Facter values and adds error check for missing password hash files.

commit af4455e31df403c55a5db06ee8d0d4e0e58c4154
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 29 17:41:45 2008 +0100

    Fix #1088 - part2 - Add rspec tests
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b15028f55ba608a701efae1ee392d50374b2be54
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 11 17:26:50 2008 +0200

    Fix #1088 - Collections overrides
    
    This changeset defines a new syntax to override collection
    of resources (virtual or not). This feature is not constrained
    to the override in inherited context as usual resource
    override.
    The collection of resource supports a query like regular collection
    of virtual or exported resources.
    
    Usage example:
    file {
        "/tmp/testing": content => "whatever"
    }
    
    File<| |> {
        mode => 0600
    }
    
    It also introduces a different behaviour for collection of catalog
    resources. Before this patch, only virtual resources were collected,
    now all resources (virtual or no) are collected and can be overriden.
    
    That means it is now possible to do:
    File <| |> { mode => 0600 }
    And all the Files resources will have mode 0600.
    
    It is then possible to have this puppet pattern:
    file { "/tmp/a": content => "a" }
    file { "/tmp/b": content => "b" }
    
    File <| title != "/tmp/a" |> {
        require => File["/tmp/b"]
    }
    which means that every File requires a file.
    
    Moreover it is now possible to define resource overriding
    without respecting the override on inheritance rule:
    
    class a {
        file {
            "/tmp/testing": content => "whatever"
        }
    }
    
    class b {
        include a
        File<| |> {
            mode => 0600
        }
    }
    include b
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 73a0757b559d7e4fbd1da43bbcf4e60fd9155896
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Dec 19 15:05:29 2008 +0100

    Fix #1828 - Scope.number? wasn't strict enough and could produce wrong results
    
    Some invalid numbers were treated as numbers and conversion to Integer
    was failing returning 0 (for instance 0.24.7).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b24b9f5de02f4dfc6a7e89d5432aec32ea39cae1
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Mar 14 11:25:03 2009 +1100

    Fixed #2071 - Updated LDAP schema

commit 88aa1bc2cfef4517fca9e467c86f70ae356be883
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Mar 11 23:52:53 2009 -0500

    Fixing tests broken in previous commits
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f8dea989e3f5bd7d3d823a6c3dc3cf76cd5cba4e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 10 04:07:12 2009 -0500

    Fixing #1949 - relationships now use attributes instead of a label
    
    This was important because the use of the label to store attributes
    was a holdover from the GRATR library, and if we didn't cease its
    use before we switched to RESTful catalogs, then we'd be stuck with
    the @label instance variable forever, essentially.
    
    Now we can add and remove variables however we please.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d0fc2f5738a78c51128f6377c03fe42cf50371a0
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 10 00:48:13 2009 -0500

    Correctly handling numerical REST arguments
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 90afd48c39bc7bbb8e7afa81a49d2f814a787565
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 10 00:32:36 2009 -0500

    Not passing file sources on to child files
    
    This was sometimes causing files to get converted to
    directories.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 858480b04d84e56aa483c80642dd0512af4fd025
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 10 00:27:46 2009 -0500

    Correctly handling non-string checksums
    
    Content is now returning the checksum rather than
    the actual content, and the method of creating
    the full checksum wasn't correctly handling
    timestamps, which aren't strings and can't be the
    right side of a String + call.
    
    I've opened #2064 as a better long-term fix.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 27aa21012d249bd39070115e6f640c0196bbdd81
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 10 00:22:32 2009 -0500

    Removing unnecessary calls to expire()
    
    These calls were resulting in 1-2 extra round
    trips per file.  For simple comparison,
    200 empty files took 73s before this change
    and 20s after.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 84d6637cfc47a14114493254ec8e68f2887a93d8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Mar 9 14:46:46 2009 +1100

    Fixed #2000 - No default specified for checksum

commit a3bb201bd4c964ab4f68e00895b692d9d9585407
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 6 18:11:33 2009 -0600

    Fixing change printing when list properties are absent
    
    They were throwing an exception when the 'is' value
    was 'absent'.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 67fc394d9ffaed89328c00678559f57418a1511d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Mar 7 11:14:14 2009 +1100

    Fixed #2026 - Red Hat ignoring stop method

commit 5329b8a7a8869ca1a73188c48d411ed4c35ff291
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 5 22:12:31 2009 -0600

    Passing checksums around instead of file contents
    
    This switches the file's 'content' parameter to always
    use checksums, rather than always using content but switching
    to checksums whenever necessary.
    
    This greatly simplifies all the logging requirements (so
    that content doesn't show up in logs), but also simplifies
    insync comparisons, and much more.
    
    In the process, I found that the code was pulling down file content
    more often than was necessary, and fixing that cut 40% off of the time
    of a very small transaction.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 71e4919f6b60b36b9ba0b02d3619c0fb5e4df445
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 5 17:13:17 2009 -0600

    Moving default fileserving mount creation to the Configuration class
    
    It was previously in the parser, but the parser is only created
    if the fileserver.conf exists, so the default mounts weren't
    made if the file didn't exist.
    
    This is a bit less encapsulation, but not much.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit cf64827970d8725cea93fee57ec03ea70d63a142
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Fri Feb 27 10:36:38 2009 -0500

    Bring in the documentation changes from the master branch

commit 01bc88c7e2a3d5a71aec8f0727631cbf41680720
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Mon Feb 23 11:21:59 2009 -0500

    Added a force option to ensure the change is always applied, and call augeas twice to reduce the chance that data is lost

commit cedeb7982b051e00173822c8d14a794e4fb10ae7
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Wed Feb 18 12:46:17 2009 -0500

    Backport the fix for #1835

commit cf48ec0aba120e6e83e48b3499df9029b5302767
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Wed Feb 18 12:34:17 2009 -0500

    First cut at the not running if augeas does not change any of the underlieing files

commit 9d36b5833ceef954181d5d281aba08d414fcdb65
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Thu Feb 12 09:32:01 2009 -0500

    Bug 1948: Added patch by jab to support the correct ins syntax. Updated the test cases as well

commit 61661b1c46fafeabf1bdbc4778762831d7178d91
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 3 21:36:56 2009 -0600

    Fixing #1991 - ldap booleans get converted to booleans
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d5850dc40f20b6ea9429588c476eb0dca2d205b7
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 3 21:18:37 2009 -0600

    Refactored a method: extracted about five other methods
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1c7c8fe7ae813d4344005c2b353e9a292ecf68c7
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Mar 2 20:48:44 2009 +0100

    dbfix - fix typo and close another possible inconsistency
    
    This patch fixes a typo in one request producing a SQL error.
    It also close an issue where param_values could point to
    inexistant param_names after the deduplications of those.
    It does this by rewriting the param_values to point to the
    highest id of the param_names of the same name.
    The same operation is performed on the tags.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit c55ac3f2c2335de0beacd2cb3396b550c8f1402f
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Feb 23 20:33:16 2009 +0100

    Fix #2010 - add protection code for some storeconfig corruption
    
    This patch adds a more robust and self-healing storedconfig in case
    of logically corrupted database as the one in #2010 (where multiple
    resources of same references are present in the database for the
    same host).
    The problem is that the resources are stored in a hash with the resource
    ref as the key, so we collapse resource of different id but same
    reference. The patch fixed this by using a hash by resource id, and
    maintaining a list of old extraneous resource in the db that are removved
    after the storeconfig pass.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit a790ee3b487a7eac6668e45747e338d44d75da9e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 4 19:28:45 2009 +1100

    Further fix to #1910

commit 9577d3af929727ac1e7b5e7e54e4491990d55995
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 3 23:20:29 2009 -0600

    Fixing #2013 - prefetching had a mismatch between type and title
    
    The ParsedFile types seem to be the main one that suffers from
    this, but the transactions were using the resource titles,
    not names, so resources were often not getting prefetched
    correctly.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 719a8df167b7456fe0a1b7b05aff246aa6f73d39
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 4 19:23:56 2009 +1100

    Fixed to rake tests for reductivelabs build

commit ac87600bfc63ab589f3f691fd649f496467cc048
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Mar 3 12:35:37 2009 +1100

    Fixed report reference page

commit 0c16426a772c85b0ab45bfd4c3ba5189ace2d6b2
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 28 07:55:56 2009 +0000

    Fixing broken 0.24.x tests in test/.
    
    These tests once again largely were caused
    by /usr/sbin not being in the path and by
    ~ not being writable.
    
    The only tests still failing are Rails tests,
    and my guess is that they're all failing because
    of the recent work by Brice.  They should probably
    just be removed.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 23066c1b117af4d531efad79ee11ed683ac92e5e
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 28 06:40:46 2009 +0000

    Fixing every failing test I can find on the build server.
    
    All but one of these tests is fixed by:
    * Stubbing Puppet.settings.use
    * Adding /usr/sbin to PATH
    
    The only other one was the package integration test,
    which stupidly assumed a default was specified in the test.
    The fix here is twofold: Remove that assumption (the test is
    now 'pending' if no default is available), and add a default
    for Ubuntu.  (The default is in the test, not the default
    package provider - that is, it's testing the default package
    provider, thus it can't rely on that information.)
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 09bee9137d7a6415609a8abfdf727ee0361139e0
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 27 17:52:01 2009 -0600

    Fixing #2028 - Better failures when a cert is found with no key
    
    The problem was that the server had a certificate
    for the client.  Initially the client just didn't have a
    key, because it assumed that if it had a certificate then
    it had a key.  Upon fixing it to create the key, the key then
    did not match the found certificate.
    
    This commit fixes both of those:  The key is always found
    before the certificate, and when the certificate is found
    it's verified against the private key and an exception
    is thrown if they don't match.
    
    It's always a failure, so this just makes the failure
    more informative.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit cf1cb1474f13ae2fc4ec27142fd34d494826c929
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 27 17:17:04 2009 -0600

    Moving the clientyamldir setting into the puppetd section
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ec56ddf8f5b58f16d0067055346889be79b29186
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Feb 28 10:30:23 2009 +1100

    This script fixes the most common issues with inconsistent
    storeconfigs database (including duplicate resources record,
    duplicate param_values records, dangling records...).
    
    Usage:
    stop all puppetmasters
    backup your database!
    % cat ext/dbfix.sql | mysql puppet
    relaunch all puppetmasters
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>
    ---

commit c052ff881e4a0cf6edfe4c1974597cd3abb378cf
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Fri Feb 27 12:25:28 2009 -0800

    Make puppetd --waitforcert option behave as documented:
    
    "You can turn off waiting for certificates by specifying a time of 0."
    
    Also add a test to ensure we catch any future regression of this behavior.
    
    Signed-off-by: Paul Lathrop <paul@tertiusfamily.net>

commit e2b406239eaa255c41acb31942169296bea71948
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 13 00:46:45 2009 -0600

    Adding a performance optimization to the FileCollection.
    
    I saw about a 7x speed increase when adding this simple
    hash to speed up the file index lookup.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit fa6494b69ad1b01a9c587c86aa1731f4702f5509
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 13 00:29:07 2009 -0600

    Using the FileCollection where appropriate.
    
    This commit just replaces the :file and :line accessors
    with the use of the new FileCollection Lookup module.
    This should mean that we've normalized all file names in
    a given process, which *might* have drastic RAM improvements.
    
    For initial simplicity, I've gone with a single global
    collection of file names, but it's built so it's easy to use
    individual file collections instead.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 373d505c381696f880c305a9357a6e50342079b8
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 12 23:42:31 2009 -0600

    Adding a FileCollection and a lookup module for it.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0e467869f4d427a8c42e1c2ff6a0bb215f288b09
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Feb 28 03:05:23 2009 +1100

     Fixed #1963 - Failing to read /proc/mounts for selinux kills file downloads

commit 417023835fb5d175fef3b6a06591a8170a5f81a4
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Feb 27 08:00:27 2009 +1100

    Fixed #2025 - gentoo service provider handle only default init level

commit 5f73eb553fd083b558fb9553b0c07b6019d0ccee
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 26 11:43:39 2009 +1100

    Fixed #1849 - Ruby 1.9 portability: `when' doesn't like colons, replace with semicolons

commit 8c010e0ccc8b007f8657a1025d2de36e2310e550
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 26 11:08:23 2009 +1100

    Fixed #1910 - updated logcheck

commit e40aea3c655e698d26c29370227b52c489e6db2b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 26 01:37:17 2009 +1100

    Fixed metaparameter reference to return str

commit 7504b0499170aa81a143f74065507410424e5e17
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Feb 25 02:25:09 2009 +1100

    Updated useradd.rb managehome confine to include other RH-like distributions

commit ed5562aae444b81deabf9217be98886535620c76
Merge: 7e207a1 5df9bad
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 24 20:36:21 2009 +1100

    Merge branch 'tickets/master/2016'

commit 5df9badbae0a652094216b52c815c0cc72f3ea42
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 24 09:14:23 2009 +1100

    Fixed #2016 - Split metaparameters from types in reference documentation

commit 7e207a1d2d0dafff96e34a51ce7798f8e62bac19
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 24 09:08:56 2009 +1100

    Fixed #2017 - incorrect require

commit f07d9283d70378066987017d436db6deb1adae9d
Author: Peter Meier <peter.meier@immerda.ch>
Date:   Sun Feb 22 00:11:34 2009 +0100

    Use Puppet.debug instead of own debug flag
    
    It's better to use puppet's logging environment than an own.
    Especially if the default is quite verbose and can't be set by
    config flag.

commit 417b5a5f4b4a01259b42f3b787c471b7f973e0b3
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 20 11:26:01 2009 -0600

    Fixing #1904 - aliases are no longer inherited by child files
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 602409e18c5b3229f6d239ac28472dd4709a117b
Merge: c0d5037 d758f45
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 20 09:51:12 2009 -0600

    Merge branch '0.24.x'
    
    Conflicts:
    	lib/puppet/type/file/content.rb
    	spec/unit/type/file/content.rb

commit 25a3f59be4a514629db6825ce4b5abb99371ae3e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 20 09:45:42 2009 -0600

    Fixing #558 - File checksums no longer refer to 'nosum'
    
    It was only used in a method that apparently was not
    in use any more.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c0d5037d11643fd551fdc9f20a9e0ba196c5345a
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 19 16:51:50 2009 -0600

    Removing or fixing old tests
    
    Most of these were just obsolete tests that have
    been sitting around and broke with recent internal
    changes.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 262937ff6e505bbf86d15500279ff23398f9e1c8
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 19 16:09:58 2009 -0600

    Correctly handling URI escaping throughout the REST process
    
    This means, at the least, that we can now serve files
    via REST when they have spaces and other weird characters
    in their names.
    
    This involves a small change to many files.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b800bde30bd5a08f5e222725588062e2bca37a79
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 19 12:57:29 2009 -0600

    Refactoring how the Settings file is parsed
    
    The goal of this refactor was to use a cached attribute
    for the LoadedFile instance we use to monitor whether
    the file needs reparsing.  We were getting tests that
    affected later tests because they were holding on to
    LoadedFile stubs, somehow.
    
    The other main change here is that the Settings#parse
    method now knows how to look up its own file path.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d7864bedafcca07806f6da3e3f472dc80d3206b7
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 19 12:53:07 2009 -0600

    Relying on 'should_parse_config' in the 'puppet' application
    
    There was some redundancy here, as the app was marked
    as needing to parse the config, but then the setup
    hook manually parsed it.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bd8d09747fd6c0dce89c17da41eb67ad92823cf7
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 18 17:00:27 2009 -0600

    Providing better indirection authorization errors
    
    The errors now include the indirection and key,
    or the full URI used.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d3bc1e8279b6e1d372ab3624982788cde026461d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 18 16:33:47 2009 -0600

    Adding pluginsyncing support to the Indirector
    
    This switches away from the use of terminii for
    each type of fileserving - it goes back to the traditional
    fileserving method, and is much cleaner and simpler
    as a result.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 00726bac02211be3c269c23a564bdcc8fdd28c2b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 18 15:27:32 2009 -0600

    Moving Request and Fileset integration into Fileset.
    
    It was previously in a helper module, TerminusHelper.
    I hope to actually remove that module entirely.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 058266feebb3be90f6af29d0ff70b22ceeb9b3e7
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 18 12:16:39 2009 -0600

    Switching the ModuleFiles Indirection terminus to the new Module/Env api
    
    Again, much cleaner and simpler.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 19b85346a60a05fd146fe39742cb873490eb6b4c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 18 12:00:29 2009 -0600

    Migrating the old FileServer to the new Module/Environment code
    
    The interface is *much* cleaner, and I'd removed one of the methods
    used in this code.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1be7c763b51c0cb6b271429f83ca4afb733bbf63
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 17 19:00:03 2009 -0600

    Using the Environments to handle a lot of Module searching
    
    Since Environments now know how to look for modules,
    a lot of the Module code was able to be pushed into them.
    
    Also moving some of the tests to instance-level tests,
    rather than just testing the class-level interfaces.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2b4469d1c881065587a28924c702cefbf46d098d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 17 18:24:28 2009 -0600

    Environments now use their own modulepath method.
    
    They were previously still using just the variable itself.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 94de52657c0cfff9bed312cffe78f9b59b9081d2
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 17 18:07:27 2009 -0600

    The 'Environment' class can now calculate its modulepath.
    
    This includes adding PUPPETLIB from the shell environment.
    
    I'm moving responsibility for this from the Module class,
    because nearly every method in Puppet::Module accepted
    'environment' as its argument, which is a good sign that
    it's on the wrong class.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2573ef1c4c2d472f9cf41ab3a1b67b7408d704b4
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 17 17:55:57 2009 -0600

    Added support for finding modules from an environment
    
    This uses the environment to search for the modules, rather
    than relying on the Puppet::Module class to know how to
    handle environments.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 9c18d5aa4214f565b81b6cac07736fe072954bb1
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 17 17:50:46 2009 -0600

    Adding support for finding all modules in a given path.
    
    This 'each_module' method will be used by environments
    to find all or a given module, and will likely eventually
    be used internally, too.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4b5ec82d32babdf3ccc935748eb80bca30b379ff
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 17 17:24:25 2009 -0600

    reformatting the environment tests
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 458642b8660c8f0507b1f66b67bade5c60efe64a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 17 17:16:20 2009 -0600

    Supporting multiple paths for searching for files.
    
    This is, once again, used for plugins, which needs
    to search across multiple modules' plugin directories.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit eec1caddf0dc431229ceb1741b357a9fefce5c38
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 17 17:15:17 2009 -0600

    Adding support for merging multiple filesets.
    
    This is required for plugins, which recurse across multiple
    directories.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bdf3a80e29313008367d83f5a1ec6e4121e4ec74
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 17 16:20:34 2009 -0600

    Adding new methods to Puppet::Module.
    
    There are now boolean methods to test whether a given kind
    of file is present in a given module.  E.g, you can do:
    
        Puppet::Module.new("mod", "/my/path").plugins?
    
    There are also accessor-style methods that return the
    full path for a given kind of file.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a7be174d249ca581d9ae849ba3823abc2c006b08
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 17 16:14:36 2009 -0600

    Refactoring Puppet::Module a bit.
    
    No behaviour change here, just some internal changes to
    make way for methods I want to add.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7ceb437c8f8f545484ebc1236c714f685d5eb7c0
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 18:03:57 2009 -0600

    Only using the checksum cache when we're using a host_config catalog
    
    Only host-configs actually load and store the state file,
    so any attempt to use that state will just result
    in lots of "initializing" and "creating" messages.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5fd182dc1ce1e5e8dd0eba83d7514e9950aca8a0
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 17:50:19 2009 -0600

    Fixing fileserving to support strings or symbols
    
    When used internally we would use symbols, but
    the REST transfers need to support strings.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7bc41cefa0115067a2e9aab3dbd1924667c46dfe
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 17:35:34 2009 -0600

    Adding clarity to query string handling in REST calls
    
    We previously only handled simple strings as values,
    but we know handle true and false as booleans, we URI-escape
    all strings, and we can yaml-encode and then escape arrays of
    strings.
    
    This could get abused a bit, in that we're just yaml-dumping anything
    that's an array, but it should be pretty safe.  Mmmm, should.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 992231a58daf8f0b489022f0af8ddcfb615bb0e1
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 17:32:13 2009 -0600

    Some small fixes to provide better debugging and load a library
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0304a78c0fe3802e4fb7466c3eac111d45f8eed7
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 12:57:27 2009 -0600

    Providing better information when an exception is encountered during network communication
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4a7cba3f2ed634c49bdfb2c3aba7153668c6afd0
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 18 22:37:09 2009 -0600

    Stubbing tests that were affecting other tests
    
    These stubs are all for global configuration state.
    It's a known problem that these have to be stubbed,
    but we haven't been able to find a design yet that
    fixes this.
    
    At least these tests are no longer breaking other tests.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 3105b5bb33639fb8a39234adfa84f354e7189785
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 18 22:03:36 2009 -0600

    Fixing a warning in a test
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c854c593777f31de155f6c4dbd1292dff2f936d5
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 18 21:38:52 2009 -0600

    Fixing a syntactically invalid application test
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d758f45a14057f0b9517a1905d575d6b28b90bc2
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 17 12:26:58 2009 -0600

    Fixing #1871 once and for all - contents are never printed
    
    They were still being printed in noop mode.
    
    The fix was to use is_to_s and should_to_s methods,
    rather than 'change_to_s'.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0f43fd6c894dd2be7f08209f28caf34be768f238
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Feb 14 14:40:25 2009 +0100

    Move --version handling to Puppet::Application
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 156fb81ca914f6d697dc2cb81788a1d9ab5a23e4
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Feb 14 17:16:20 2009 +0100

    Move puppetd to the Application Controller paradigm
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 0c71c5cde211808ef6fd744ccbcc82b6cfc38bb5
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Feb 14 17:16:09 2009 +0100

    Move puppetdoc to the Application Controller paradigm
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit e317fa9717e648435dbbc62497d73f803b7b2760
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Feb 14 17:15:52 2009 +0100

    Move ralsh to the Application Controller paradigm
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 81f5438f663820748d3bd580d7436619ed57b6f0
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Feb 1 17:10:59 2009 +0100

    Move puppetrun to Application Controller paradigm
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 3390d8db8b1d31b52a71b9502deb0e0784cf8ade
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Feb 14 17:15:39 2009 +0100

    Move pi to the Application Controller paradigm
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 8265d6eaf7dd7d4fb2af30363bfbcc698dea1436
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jan 18 20:12:53 2009 +0100

    Move puppetmasterd to Puppet::Application
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit af219bf45fe58287f1b46bcfd98dfbe548958b33
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Feb 14 17:15:08 2009 +0100

    Move puppet to the Application Controller paradigm
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d51398c3eb3c09a9912fff8b4b7656a9ddb6b873
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Feb 14 16:17:20 2009 +0100

    Move filebucket to the Application Controller paradigm
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 9b9e5e895bef9e59f7d592d6eb687ab1f683c117
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Feb 14 16:16:57 2009 +0100

    Move puppetca to the Application Controller paradigm
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 97e716a97de81bb31b665c70489ee1657ddc5424
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Dec 21 20:38:48 2008 +0100

    Introducing the Application Controller
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 495ad6654643ee7cfc500a174d36fe67eb8970b1
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 09:26:21 2009 -0600

    Fixing broken filetype tests resulting from the loss of Type[]
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 21a714aa75ff896fa67160a5ceaa26b6c0df98f5
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 22:18:36 2009 -0600

    Fixing some tests that somehow broke in the merge to master
    
    I expect these failed in master but not 0.24.x because I'm
    better about stubbing calls to Facter in master.
    
    I stubbed these enough that they should continue to
    work.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 327ee17d607937dec007482d1c81bae63c01bf52
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 21:57:14 2009 -0600

    Removing a test that was too dependant on order.
    
    It wasn't a terribly useful test anyway, since
    no one depends on that individual configuration.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8adb599f14040f1ed00a2d5bf7cfa3c22715cba4
Merge: e87de9d c0f4943
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 21:53:51 2009 -0600

    Merge branch '0.24.x'

commit c0f494334b374d6f0b0eb3d5741aaff70052d564
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Feb 15 11:12:32 2009 +1100

    Minor fix to launchd tests

commit e87de9d8f3be325fb0495dd5c64e08625333924f
Merge: 487b9b1 24d48e6
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 18:10:37 2009 -0600

    Merge branch '0.24.x'
    
    Conflicts:
    	test/ral/manager/type.rb

commit 24d48e6c07ef634971fcb8ed5b27258db161a018
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Feb 14 19:28:10 2009 +0100

    Fix #1972 - ActiveRecord fixes resulted in broken tests
    
    Fix #1930 was not complete, with some typos and misuse of
    unused code paths in the regular puppetmaster use case.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 446989b6932e4a2324b9202fa05114046a6fb5df
Author: Nigel Kersten <nigelk@google.com>
Date:   Sat Feb 14 08:07:51 2009 -0800

    Fix spec test for launchd service provider to work with new service status method and add two new status tests.
    
    Now ensures that given the correct input, the correct status for the launchd service is returned.

commit 3ef58490204a309acd2d0a3dde4b6500a4f4a569
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 12:04:12 2009 -0600

    Fixing a test I broke in commit:"897539e857b0da9145f15648b6aa2ef124ec1a19".
    
    I hadn't removed the call to 'prefetch' on the instance in the test.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 72bd378d62504cefda02f106954302de7c3600ca
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 11:56:58 2009 -0600

    Removing a no-longer-valid test.
    
    The fix for #1884 removed this no-longer-needed
    feature, so this test is now unnecessary.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 682dd8b933c5feeed389b644b75f27e66e863276
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 11:55:20 2009 -0600

    Fixing password validation to support symbols.
    
    My fix for #1920 broke when you set :absent
    or :present.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 44f97aa5815d4a8ab73302bd75b85e045f9944c4
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 11:43:25 2009 -0600

    Only backing up within parsedfile when managing files
    
    I was getting failing tests because I was using non-files
    for testing and they didn't back up the same, not
    surprisingly.
    
    This moves the 'backup' method to the :flat filetype
    and then only backs up if the filetype supports it.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 04af7b4ead1cbb1466e908e6612b6cc2d4deab53
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 11:43:09 2009 -0600

    Fixing a syntax error in the up2date provider
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1070b3c6e30e75ef554b6ca5ffe24191f999fba1
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 14 09:30:26 2009 -0600

    Fixing a test broken by a log demotion
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ab847568aabff28450e6bd5280c98c108da0b1f5
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Feb 14 23:26:12 2009 +1100

    Cleaned up variable names to be more sane, clarified error messages and fixed incorrect use of 'value' variable rather than 'member'.

commit 487b9b1a3e8b9207a9910bc5eaeeb75cb3e4abe5
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 13 22:11:42 2009 -0600

    Failure to find node facts is now a failure.
    
    It was previously just a warning, but the node
    is essentially non-functional without the facts,
    so it makes more sense for it to be a warning.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 610c838146c03921455a15a7a93148748ff909a6
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 13 21:36:39 2009 -0600

    Fixing #1527 - Failing Facter does not hurt Puppet
    
    At this point, the server's behaviour is a bit undefined
    if it tries to compile the catalog with no facts
    locally.  The next commits will fix that.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a2eca6c8a1c69244426b077c5775a1cdbdae2d57
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 13 21:12:16 2009 -0600

    Removing some unused code
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit cb0a083a4c7447d6da2f6a1ce6725cedeb831db1
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 13 21:09:07 2009 -0600

    Using Puppet::Type.new instead of create
    
    create() got deprecated and I apparently missed
    changing this.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 84bd5285db5a80b01dd0359387516210ccb5b625
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 13 21:06:34 2009 -0600

    Actualling syncing facts and plugins
    
    Also fixing the argument order while downloading
    either of them.  I had my Downloader.new
    calls using the wrong argument order.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7f418579f5b0c5df90ff5ea06294028b8d53f385
Author: Nigel Kersten <nigelk@google.com>
Date:   Fri Feb 13 11:13:42 2009 -0800

    Provide dscl -url output support for OS X 10.4 clients using the directoryservice provider.
    
    We refactored the directoryservice provider in puppet 0.24.7 to use the -plist option so that
    output could be parsed more easily to resolve a bug with values with spaces in the name.
    We missed that 10.4 does not support this flag, so this patch adds -url output support back in
    for OS X 10.4 clients only as well as a new -url output parser that copes with spaces. 10.5
    clients continue to use the -plist method.
    Also includes some miscellaneous cleanup of methods and removal of extraneous comments.
    
    Signed-off-by: Nigel Kersten <nigelk@google.com>
    
    Don't use sw_vers to determine OS X versions, use the Facter value instead.
    
    This relies upon another patch to ralsh to ensure that facts are loaded.

commit 0bc3c0785cd11c79f8cd5e9c8804f6694dbc7da4
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon Feb 9 16:27:15 2009 -0800

    Fix launchd service provider so it is backwards compatible with OS X 10.4 as well
    
    Clean up fix to launchd service provider to be more concise

commit d5abdfba8a88afda8085992a4abbe1d90bbd0084
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Feb 5 23:15:59 2009 +0100

    Fix #1933 - Inconsistent resource evaluation order in subsequent evaluation runs
    
    While evaluating the AST, catalog vertices are not always ordered
    the same way on different run, leading to some tags (which should
    have been applied in evaluation order) to not be associated with
    some underlying resources.
    
    This changeset change all accesses to resources inside the compiler
    to always use an ordered (in evaluation order) list of added
    resources.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 3fbec120768d84d208b14f574dfe916e25cfdbef
Merge: a2270b4 2561c8e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 13 18:24:34 2009 -0600

    Merge branch '0.24.x'
    
    Conflicts:
    	lib/puppet/indirector/facts/facter.rb
    	lib/puppet/provider/augeas/augeas.rb
    	lib/puppet/util/filetype.rb
    	spec/unit/indirector/facts/facter.rb
    	spec/unit/provider/augeas/augeas.rb
    	test/util/filetype.rb

commit 2561c8e252dcf66890513458750bb1329a03beec
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Feb 14 09:57:49 2009 +1100

    Updated Augeas type code

commit 7d7218698ffbe917f4c0882d47bee32a938f79ce
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Feb 14 03:06:39 2009 +1100

    Removed site from Puppet VIM syntax

commit 1bc7404f5e3efa633bb0a5cf10828071cfc4d876
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Feb 14 02:11:21 2009 +1100

    Fixed #1831 - Added sprintf function

commit 336b6458a2264c550adf8e6799162380822e0d97
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Feb 14 02:10:08 2009 +1100

    Fixed #1830 - Added regsubst function

commit 2a855510a3cca7d475c31495ccb502af606528dc
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Fri Feb 13 08:21:36 2009 -0500

    Bug 1948: Add logic and testing for the command parsing logic

commit 2218611f7fa10b59945f65c80b05cbd8ebe137ef
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Feb 13 17:04:36 2009 +1100

    Updated up2date and service confines to add support for Oracle EL and VM

commit 39a8b28690377339d4c430ebf62cec5ef0ed34b8
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 12 22:58:57 2009 -0600

    Fixing #1964 - Facts get loaded from plugins
    
    Applying slightly modified patch.
    
    Also added tests.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7cf085c9ebdb1d1c92e317a406844bfc0eceafe6
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 12 22:48:34 2009 -0600

    Adding tests for Puppet::Indirector::Facts::Facter.loadfacts
    
    I just copied the tests from the master branch, changed as
    necessary.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 70ea39af65f7e56ce151c9f9ca444261d0332454
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 12 16:00:29 2009 -0600

    Adding a post-processor for Nagios names.
    
    This is a brutal hack until Puppet correctly supports
    multiple primary keys.  It basically just comments out
    _naginator_name before writing to disk, and uncomments
    it when reading.  This allows Puppet to use it
    while Nagios ignores it.
    
    Yes, a stupid hack, but it appears to work.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4dfa034dc8a569634d8b5672f66158157ddddb28
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 12 15:32:42 2009 -0600

    Revert "Refixing #1420 - _naginator_name is only used for services"
    
    This reverts commit efb5cc50c42bc27aec9409e723e3a717ed58c0a8.
    
    Conflicts:
    
    	CHANGELOG

commit d5a193a594bbc2194dbf1e5264369ebea0e55880
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jan 15 15:44:09 2009 -0600

    Fixing #1541 - ParsedFile only backs up files once per transaction
    
    This moves responsibility for backups from the filetype
    to the consumer of the filetype, but only ParsedFile actually uses
    filetypes.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 53f15b9208a3271e944c687b8d0e670d422fb832
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jan 15 15:42:09 2009 -0600

    Removing the apparently obsolete netinfo filetype.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4e89156b21b287b683c27a4cd691856c4e378a62
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jan 15 15:13:28 2009 -0600

    Migrated FileType tests to spec, and fleshed them out a bit.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit cc4d6586d420f4beea1eeef85cfe7a28f8e493ac
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Thu Feb 12 09:32:01 2009 -0500

    Bug #1948: Added patch by jab to support the correct ins syntax. Updated the test cases as well

commit 5e35166f1b7219d470916d1ee7a4e6852afaf1f9
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 11 16:54:04 2009 -0600

    Fixing #961 - closing the http connection after every xmlrpc call
    
    There were apparently some circumstances that
    resulted in the connection not being closed; this just closes
    it every time if it's still open after the rpc call is complete.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit af3f3ae93ba1e43ac8231e4cf4e5a1f0ed8f3acb
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 11 16:49:40 2009 -0600

    Refactoring the XMLRPC::Client error-handling
    
    I split it all into smaller, manageable chunks,
    and used methods for each step, instead
    of having one huge call.
    
    Note that I made all of the tests first, then
    refactored the code, so I'm confident there's no
    behavior change.
    
    I don't know that this is actually a lot cleaner,
    but it seems that way to me.  I'm open to
    skipping this, but I think it makes the whole thing
    a lot cleaner.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f0ac3aef53a08e271a5c243f17785cdb58f1f5ef
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 12 08:20:43 2009 +1100

    Fixed #1959 - Added column protection for environment schema migration

commit 319822af6d58c3e0c391e86cfd836ec31de43c67
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 11 14:33:48 2009 -0600

    Fixing #1869 - autoloaded files should never leak exceptions
    
    Ruby's exception hierarchy is a bit strange, in that only
    exceptions that sub RuntimeError are caught by default.
    This patch explicitly catches the base class, Exception,
    which means that LoadError, SyntaxError, and any
    RuntimeErrors will all be caught.
    
    This is done for both load() and loadall(); load() uses
    Kernel.load, but loadall() uses Kernel.require.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a2270b4a4f093c6c4f171dcf0c0e05fe101dd979
Merge: 9bac833 6b0c1b9
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 11 13:51:48 2009 -0600

    Merge branch '0.24.x'
    
    Conflicts:
    	CHANGELOG
    	spec/unit/type/file/selinux.rb

commit 6b0c1b9170c69829bdf5956d1dec0949dcc08b35
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 10 17:21:00 2009 -0600

    Fixing #1543 - Nagios parse errors no longer kill Puppet
    
    The problem wasn't actually transactions, it was how
    exceptions were raised in Naginator.  Well, parse errors
    actually resulted in an 'exit', rather than an exception,
    and the exceptions that Naginator was raising were not
    caught by a normal begin block (SyntaxError, rather than
    RuntimeError).
    
    This commit raises a RuntimeError-derived error rather
    than exiting.
    
    It also adds some context to the error when Puppet catches it.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7fd5c7ef5ef51e7d7fab981d864c9636a9ecf9b9
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 10 15:41:02 2009 -0600

    Moving the transaction specs to the right path
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit efb5cc50c42bc27aec9409e723e3a717ed58c0a8
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 10 17:33:26 2009 -0600

    Refixing #1420 - _naginator_name is only used for services
    
    According to:
    
    http://nagios.sourceforge.net/docs/3_0/customobjectvars.html
    
    the special underscore parameters are only supported
    on hosts, contacts, and services.  This commit reverts
    most of the changes that set Nagios types to use such
    a parameter as the namevar.
    
    The original commit should have been broken into two commits:
    one to reorganize the file, and the other to make these changes.
    As it was, the revert was much harder than it should have been.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 32c2be926795ce3ce68f573367f7700e87ac8416
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 10 15:18:30 2009 -0600

    Fixed #1884 - exported defines are collected by the exporting host
    
    This was caused by the fix to #1472.  That fix unexported
    any resources collected from the local catalog.
    
    The crux of this fix is that it separates 'exported'
    and 'virtual' a bit more.  It also removes no-longer-needed
    functionality where resources copied their virtual or
    exported bits from the enclosing define or class.  This is
    now obsolete because we don't evaluate virtual defined resources.
    
    The crux of this commit is that defined resources can stay
    exported even though they're evaluated, and that exported state
    won't inherit to contained resources such that those then don't
    get evaluated.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0e491591d2ab88938f9b127dd8c26033e817eb1a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 10 14:59:18 2009 -0600

    Cleaning up the AST::Resource code a bit
    
    Mostly renaming 'obj' to 'resource', since the whole
    'obj' thing is a holdover from before we had the
    term 'resource'.
    
    Also pulling a bit of code out of a loop, since it
    didn't need to be there.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b22d148e6d6eb36c9b02a58dc0c04c9650d5207b
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Feb 5 19:59:18 2009 +0100

    Fix #1691 - Realize fails with array of Resource References
    
    The following snippet:
    realize( File["/tmp/a","/tmp/b"] )
    
    is parsed into:
    AST::Function @name=realize @arguments=
        AST::ASTArray @children = [
           AST::ResourceReference @title= AST::ASTArray @children = [
              String(/tmp/a), String(/tmp/b)
           ]
        ]
    
    When evaluated:
    ResourceReference gives -> [ File[/tmp/a], File[/tmp/b] ]
    
    which means the function arguments are:
    [[File[/tmp/a], File[/tmp/b]]
    after evaluating the @arguments ASTArray of AST::Functions.
    
    Then the collector complains that it can't find the resource
    because it is not supposed to work on non-flattened resource
    array.
    
    The fix is to flatten in the realize function (although it can
    be done more generally in the AST::Function evaluation) before
    the resources are given to the Collector.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 6331bfc9b6dc5140147730b3c4f79fef35265a94
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Feb 5 19:55:29 2009 +0100

    Fix #1682 - Resource titles are not flattened as they should
    
    The following manifest:
    $groups = ["foo", "bar"]
    $type_groups = ["baz", "quux"]
    $user_groups = [$groups, $type_groups]
    notify{ $user_groups: }
    which outputs:
    notice: foo
    notice: //Notify[foobar]/message: defined 'message' as 'foo'
    notice: baz
    notice: //Notify[bazquux]/message: defined 'message' as 'baz'
    
    is not equivalent to
    $user_groups = [ ["foo", "bar"], ["baz", "quux"] ]
    notify{ $user_groups: }
    which outputs:
    notice: foo
    notice: //Notify[foo]/message: defined 'message' as 'foo'
    notice: baz
    notice: //Notify[baz]/message: defined 'message' as 'baz'
    notice: bar
    notice: //Notify[bar]/message: defined 'message' as 'bar'
    notice: quux
    notice: //Notify[quux]/message: defined 'message' as 'quux'
    
    Obviously the second one manages to flatten the arrays and not the
    first one.
    
    This changeset adds flattening to the resource titles evaluations
    in order to be consitent in all cases.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 7e036eb761539d58794469ecf14ee7e94d10a5fc
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Jan 30 20:12:50 2009 +0100

    Fix #1922 - Functions squash all arguments into a single hash
    
    Revert "Fix #1682 - ASTArray should flatten product of evaluation of its children"
    This reverts commit c7ccc4ba7c42d56595564491ae578a1604c628d1.
    Bug #1824 and #1922 proved the fix for #1682 and #1691 was wrong.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 535fa89af0b87f1d514d75040c1da7795d1dc87e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Feb 11 08:48:27 2009 +1100

    Fixed #1538 - Yumrepo sets permissions wrongly on files in /etc/yum.repos.d

commit f7b04dfc7e7859bf80243a39f778c32baa67061b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Feb 11 08:44:52 2009 +1100

    Fixed #1936 - Added /* */ support to the vim file

commit 671d73c1f7799e685ab484c91b7f92d16e21e256
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jan 14 15:33:48 2009 -0600

    Prefetching, and thus purging, Nagios resources now works
    *only* if you use the default configuration file locations.
    
    In the end, this was a relatively minor change; most of the actual
    diff centers around making the code more readable so I could think
    my way into the fix, and adding tests for cases that were either
    untested or refactored slightly.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 063871fab0b96111d16b6df19511e1034cc02a42
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jan 6 16:14:20 2009 -0600

    Adding some basic tests for the Naginator provider base class
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 897539e857b0da9145f15648b6aa2ef124ec1a19
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jan 6 16:13:17 2009 -0600

    Removing a redundant instance prefect call.
    
    For some reason, Puppet::Type#evaluate was calling
    'prefetch' on instances that support it, but prefetching
    is only a class-level functionality, normally -- in fact, it makes
    no sense unless done at the class level.
    
    This patch just removes the code.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 012efe359fdaebd738727e42bb9b520ac48fdecf
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 10 14:31:44 2009 -0600

    Fixing #1912 - gid still works with no 'should' value.
    
    This makes 'ralsh' work again with users.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a9f34aff856550e091721ee563d034ba2e1e22bb
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 10 14:30:24 2009 -0600

    Fixing the Rakefile to use 'git format-patch'.
    
    Some releases of git no longer install hundreds
    of binaries, so the 'git-format-patch' binary
    is unavailable.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit db05c00af042cce1f09640071706efbc82742a01
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 10 14:25:22 2009 -0600

    Fixing #1920 - user passwords no longer allow ':'
    
    I wanted to include a snide remark in the error, but...
    
    Now you just get an exception when creating the user if
    the password includes this character.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 9bac833dcfdd8d6a00188faee0487e787b7a0101
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 10 15:19:57 2009 +1100

    Adding README.rst file

commit aa219e76b15a543c0091b83efbb13a711d657287
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 10 15:19:57 2009 +1100

    Adding README.rst file

commit 1d3f11778c8e968d1b73c9909f7113dad413199a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 10 02:13:33 2009 +1100

    Added Reductive Labs build library

commit 916abc2e68a9b0a095c5783854a4b0a4819ddf2c
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 6 19:11:54 2009 -0600

    Changing how the Configurer interacts with the cache
    
    This changes the hooks provided via the Indirector Request
    for determining how the cache is used.  These hooks are only
    used by the Configurer class.  They're messy, but I can't
    come up with a better design, and they're at least sufficient.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 53357884111d3499746b292f99948d5eb3c83415
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 6 17:52:34 2009 -0600

    Fixing tests broken during the #1405 fix.
    
    Most of these were small changes, like moved methods.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 08a5d492dd3545366a2850d568d87aad0ba884e6
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 6 17:27:44 2009 -0600

    Adding an Agent::Runner class.
    
    This will eventually be used by puppetrun, but
    for now is just called by the old-school Runner handler.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c7d178d04f324c010de1552083a954bb4b02217d
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 5 14:50:06 2009 -0600

    The Agent now uses its lockfile to determine running state
    
    This makes it so we can easily create and use lots
    of agent instances, rather than having a single
    global instance with shared state.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c0fcb2137e66af8ba60a959faa221034c6832b69
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 2 17:19:07 2009 -0600

    Creating and using a new Puppet::Daemon class
    
    This replaces the short-lived EventManager class, all of
    the service- and timer-related code in puppet.rb, and moves
    code from agent.rb, server.rb, and other places into one
    class responsible for starting, stopping, pids, and more.
    
    The Daemon module is no longer in existence, so it's been
    removed from the classes that were using it.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 700e823f7c33eb3c5b4d9e467742fd24f63bbeef
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 2 17:16:07 2009 -0600

    Not using 'master' client for testing
    
    That class is gone, so until the Client class
    is no longer necessary, using a different class.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4b7023e97662f944844cb58cd9807c988e4c28e9
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 2 17:14:12 2009 -0600

    Fixing (and testing) the return of Indirection#save
    
    This broke in a previous commit, and was apparently not
    tested well because of how the mocks were set up.  The
    integration test caught it.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8dc0005473ad2b0785919e0bd79ac7d60342625d
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 31 10:29:48 2009 -0700

    Adding a 'close_all' method to the Log class.
    
    This moves the code out of Daemon.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 37d1a7cf2c637e2bde16623007014125066fcec5
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 31 10:04:47 2009 -0700

    Removing restart-handling from Configurer
    
    This will be handled by the Agent or the Daemon class.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bf3c72e8a1ed59daf5027c508f2d6dd95424f5bc
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 31 10:00:48 2009 -0700

    Adding temporary class EventManager
    
    Most of the way through implementation of this class, I realized
    that most of its functionality will never actually be used.
    Thus, I'm refactoring it and the Puppet::Daemon module into a
    single Puppet::Daemon class with merged functionality, and then
    moving all of the daemon-like functionality out of both the
    Agent and Server classes.
    
    We'll then have a Daemon class that knows how to start and stop
    services, create and remove pidfiles, and whatever else
    daemons need to know how to do.
    
    This commit is to just so I have the current code snapshot.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit fc14b81f99adc9c9308a26d322adaa59a7b7716d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jan 28 17:11:19 2009 -0600

    Splitting the Agent class into Agent and Configurer
    
    Once I went to add runinterval support to the Agent class,
    I realized it's really two classes:  One that handles starting,
    stopping, running, et al (still called Agent), and one that
    handles downloading the catalog, running it, etc. (now
    called Configurer).
    
    This commit includes some additional code, but 95% of it is just moving code around.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e8be6dcad2150769b51bf81e95c57491921e68c1
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jan 28 14:58:52 2009 -0600

    Removing the Hash default proc from SimpleGraph.
    
    Again, necessary so that the class can be dumped
    in Marshal or YAML.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6bb804fb840b3d08f759fb7b7b08633bc3f94a64
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jan 28 14:26:09 2009 -0600

    Removing the Catalog's @aliases hash default value
    
    This was prohibiting the catalog from being dumped.
    
    No tests, because I didn't change behaviour and the existing
    tests provided sufficient coverage.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 502e062c27a46e70fdfe833ed32ef1e63b285e31
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jan 28 14:09:50 2009 -0600

    Removing an erroneous configuration call in puppetmasterd
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 337057ad666e3ef3a5b2d8f7baccbc9370add5b4
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jan 23 18:54:44 2009 -0600

    Removing obsolete code and tests for the agent.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d53ad3181d3f5953b00512d7793945d238d1879f
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jan 23 18:49:26 2009 -0600

    Converting the catalog as needed
    
    Converting to a Resource catalog for transmission,
    then converting to a RAL catalog on the client.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f38277fb7d044394665db369892c01162b866863
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jan 23 17:55:16 2009 -0600

    Adding REST support for facts and catalogs.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c48525bbf138288d9ae920c598a634c8a5f2cb46
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jan 23 17:28:49 2009 -0600

    Adding better error-handling to format rendering
    
    We now always get the format name and the method that
    failed.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b93a642d4afb1dd694f877565810eaa3de5bc9b0
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jan 23 16:58:54 2009 -0600

    Resetting SSL cache terminii to nil when only using the ca
    
    This is important because puppetmasterd changes its configurations
    a couple of times, and we need to disable any previously-created
    caches.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 212b3e3dff7cb8846e0d09d39faf226b60c62e6b
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jan 23 16:56:14 2009 -0600

    Allowing the Indirection cache to be reset to nil
    
    Otherwise we couldn't disable a cache once configured.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5a835315c203e6951562c098a99c4276ed60a17e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jan 23 16:41:32 2009 -0600

    Moving the Agent locking code to a module.
    
    Also cleaning up the lock usage by yielding to a block
    when a lock is attained.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b672790ff04022c043c9dc10d47ac82787ce5632
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jan 23 16:10:58 2009 -0600

    Cleaning up SSL instances that can't be saved
    
    If the SSL Host couldn't save a CSR or key, it would still
    keep them in memory; this meant that, for instance, a CSR
    that couldn't be saved to the server was never resent.
    
    This commit removes in-memory instances that couldn't be saved,
    thus forcing regeneration.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f78a5653ae1c0fe3931c4102ce32f640c80db158
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jan 23 15:52:20 2009 -0600

    Only caching saved resources when the main save works
    
    This way you don't have data cached that couldn't be
    saved to the main repository.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 54344591fde1a280f38032731e0ccb19521f6611
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jan 23 14:14:44 2009 -0600

    Moving classfile-writing to the Catalog
    
    This work was done by the Agent class before,
    but it's really related to the catalog, so that's
    where it is now.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e65d7f11dd95ab5432adefeabc3179e9eb5dd050
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jan 22 16:51:02 2009 -0600

    Refactoring how the Facter integration works
    
    I moved all of the extra Fact modifications into the Facts
    class, and then moved the calls of those new methods
    into the Facter terminus.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6b4e5f49a8d1d062aefae31a923cff9e3f0d31ba
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jan 22 16:29:33 2009 -0600

    Reformatting tests for facts
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 54faf7825bbffc5a4ca252389305dd23ae8d2d84
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jan 22 16:05:43 2009 -0600

    Moving fact and plugin handling into modules
    
    This doesn't change functionality, it just simplifies
    the agent class.
    
    I've also started the work to get the catalog handling
    done using REST/the Indirector.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 9d76b70c07c86f0041a0e6a1537227de1b619017
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 19 18:19:22 2009 -0600

    Removing the Agent code that added client-side facts
    
    It's now moved to the Facter indirector terminus.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a5c2d7acde8a3af94a9674c32f6ee4ef94288d17
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Dec 19 12:34:29 2008 -0600

    Adding Puppet client facts to Facter facts.
    
    This work was previously done in the Master client
    class.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b99c6b554d935c3dddf5c2e6968333865ff46505
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 19 18:10:45 2009 -0600

    Clarifying how node names are used during catalog compilation
    
    We now use any passed in node (used by bin/puppet), then any
    authenticated node info (e.g., the cert name), then any
    passed in information (usually the host name).
    
    The third option will never be used in Puppet's architecture,
    but simplifies using the API for other users.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8b44d6fd7c73071afc4a78abcbd50b9f5d487ce5
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 19 17:57:48 2009 -0600

    Reformatting Indirector catalog compiler tests
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e770e7add31dfb41c7e7abddc07a62d5207dbec0
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 19 17:37:38 2009 -0600

    Removing ConfigStore code that was never actually used.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 37692e5851dd3f7b15bde1caf785fb7801c97a25
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 19 17:25:50 2009 -0600

    Renmaing Puppet::Network::Client::Master to Puppet::Agent
    
    Made minor changes, including removing the parent class.
    
    The functionality hasn't changed yet -- that comes in later patches --
    but all but a couple of the older tests pass.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 15d8768c5050a0c409b88fcabe38e05f30ee9a78
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 19 16:41:41 2009 -0600

    Revert "Adding the first bits of an Agent class."
    
    This reverts commit bbd99cc87a775732f2fed3686962647a5c30c5b8.

commit 63fb51406135c87f90bc693c55a935439070a572
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 19 16:38:44 2009 -0600

    Revert "This is work that I've decided not to keep"
    
    This reverts commit f57a5e88229578747dde2c90af3a696ad0172e72.

commit 8f5cbc349daa868020b009851ee97ea3f29fcfbf
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 19 16:29:17 2009 -0600

    This is work that I've decided not to keep
    so I'm just applying it here so it continues to show
    up in the history in case I ever want to look at it again.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 25b28c58c22bae718794dc679f10c61665af0b15
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 15 23:05:45 2008 -0500

    Adding a new Agent::Downloader class for downloading files.
    
    This will handling downloading facts and plugins.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1afb8216f166dc375dec5778890985a6635aa54f
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 15 21:34:33 2008 -0500

    Adding the first bits of an Agent class.
    
    This class replaces the existing, all-knowing Client::Master class,
    and it will hopefully be more reasonable in scope.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2afff60abe430dc1e2660fa82807e131e1dc71aa
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 15 19:01:12 2008 -0500

    Adding support for skipping cached indirection instances.
    
    This will allow the soon-to-be-created Agent class to
    skip cached catalogs when desired.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 361db45875768727d3c5f310c76850f350e6441f
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jan 25 20:54:01 2009 +0100

    Change the way the tags and params are handled in rails
    
    The rationale behind this patch is that it takes a lots of time
    to let rails unserialize the ParamValue and ResourceTag object
    on each compilation, just to throw them away the second after.
    The idea is to fetch directly (and batched host per host) the
    parameters and tags from the database and then returns them as
    hash.
    This allows the no-modification case to takes at least 2 times
    less than before.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 62cdeaaee7f7a878b6ca2db85fe34187d2c6c1ba
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jan 25 20:50:28 2009 +0100

    Add methods to return hash instead of objects to params and tags
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 3acea41bb879c314d16413339beb8c9cf5705c1e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Jan 29 20:17:33 2009 +0100

    Rails serialization module to help serialize/unserialize some Puppet Objects
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f01882da6284d61312016d7de602af65da6d5731
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jan 25 20:54:01 2009 +0100

    Change the way the tags and params are handled in rails
    
    The rationale behind this patch is that it takes a lots of time
    to let rails unserialize the ParamValue and ResourceTag object
    on each compilation, just to throw them away the second after.
    The idea is to fetch directly (and batched host per host) the
    parameters and tags from the database and then returns them as
    hash.
    This allows the no-modification case to takes at least 2 times
    less than before.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b7ab54c7f094c34b9f80224a63521a2873d7c1c1
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Jan 25 20:50:28 2009 +0100

    Add methods to return hash instead of objects to params and tags
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 5c644352714f1363e262115357297ad68be49103
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Jan 29 20:17:33 2009 +0100

    Rails serialization module to help serialize/unserialize some Puppet Objects
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 10bf15103874b75775bdfe573029caf8a38468d0
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jan 28 12:39:09 2009 -0600

    Fixing #1913 - 'undef' resource values do not get copied to the db
    
    There are unfortunately no tests for this patch; the Rails
    code is disappointingly low on tests as it is, and it would
    have been essentially an herculian effort add all of the necessary
    tests just to make sure this worked.
    
    I've verified it works in practice, which should be sufficient for now.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 500ea2020f95f8e96663f4a56d43be62819ef929
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jan 28 12:26:03 2009 -0600

    Fixing #1914 - 'undef' relationship metaparameters do not stack
    
    This allows you to specify that a metaparameter is undef
    inside a definition and keep any parameters from being
    inherited from the parent.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 140786570176f5fcd8774f83fbf0bf4087a2cc32
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Feb 1 11:05:48 2009 +1100

    Revert "Fixed #1916 - Added environment option to puppetd"
    
    This reverts commit 8d0086b3cb877765857b7ff0dee454b14417430a.

commit 8d0086b3cb877765857b7ff0dee454b14417430a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jan 31 12:33:57 2009 +1100

    Fixed #1916 - Added environment option to puppetd

commit a065aeb567896be04ebac978a380e6becf4518eb
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jan 31 12:27:39 2009 +1100

    Fixed #1910 - Updated logcheck regex

commit fa9dc73811f26ed70c412cb264413fbedf0fef55
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 27 19:28:56 2009 +1100

    Typo fix

commit b27fccd4345d80ff826cfbdad1d409d712923e4b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 27 10:03:05 2009 +1100

    Fixed #1852 - Correct behaviour when no SELinux bindings

commit 7c8094c70490e134dcac2fd772de36e5312e8388
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jan 23 09:46:18 2009 +1100

    Fixed #1879 - Added to tidy documentation

commit f40a6b1dc5feca966899a112c892f2b4de596bd3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 22 13:47:13 2009 +1100

    Fixed #1881 - Added md5lite explanation

commit 6af317948e52e7c933d774ab5aab4ae092aa17ff
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 22 13:30:08 2009 +1100

    Fixed #1877 - Tidy type reference update for use of 0

commit a5b0a75e3b486212507250ee605b7dcd1743035d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 22 10:58:34 2009 +1100

     Fix autotest on win32

commit 234a035b97287d8910ca00a58b70a06775818693
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Thu Jan 15 09:35:47 2009 -0800

    Fix #1560
    
    Adds an rspec test which demonstrates #1560 and a custom 'process'
    method for the aliases provider to fix it.
    
    The default processing uses split() to break the line into records on
    the separator, which breaks if records can contain the separator. The
    custom method I've added uses a 'limited' split() to break the line on
    the first separator only.
    
    This commit fixes #1560
    
    Signed-off-by: Paul Lathrop <paul@tertiusfamily.net>

commit fb8f8cd14f2a4958505f27910ad1d2a368bb0967
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 22 10:39:49 2009 +1100

    In order for ReST formatting to work properly, newlines and
    indentation of doc strings must be retained.
    
    Signed-off-by: Thomas Bellman <bellman@nsc.liu.se>

commit 69432d6f1dda6a59a015bcd30a729524e3655fd3
Author: Francois Deppierraz <francois.deppierraz@camptocamp.com>
Date:   Fri Nov 28 15:12:30 2008 +0100

    Fix Bug #1629
    
    A refactoring of ssh_authorized_key parsed provider was needed and tests
    were improved. flush method has been split for clarity.

commit 1f6dce51a9cf7c423e94fd02f54322217d415a77
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Mon Jan 5 11:11:16 2009 -0500

    Fix #1835 : Add whitespace/quote parsing to

commit 8142981571b438d4fe19f4097fe331378a322b33
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Jan 3 14:17:42 2009 +0100

    Fix #1847 - Force re-examination of all files to generate correct indices
    
    This bug is in fact a RDoc issue. The work-around is to always force
    a full parse scan and not only what has changed.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 15d43608593e3abeae52e773db352950b6ca7655
Merge: 8befc18 7403330
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jan 7 20:43:05 2009 +0100

    Merge commit 'turnbull/0.24.x' into 0.24.x

commit 16ff58b7fbb12ab1b927414823c387c7e04fad08
Merge: d2d3de5 3b8a77d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 30 18:23:40 2008 -0600

    Merge commit 'masterzen/tickets/1834'

commit d2d3de5884a66f529101854a42ac52be83cde446
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Dec 19 17:38:50 2008 +0100

    Fix #1829 - Add puppet function versioncmp to compare versions
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit bdee116d08e9ed9c5efcf94a92709c061a8b43c2
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Dec 19 15:05:29 2008 +0100

    Fix #1828 - Scope.number? wasn't strict enough and could produce wrong results
    
    Some invalid numbers were treated as numbers and conversion to Integer
    was failing returning 0 (for instance 0.24.7).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit d69abfeaade452845924a0d4446dc1ea85637fc7
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Dec 19 17:35:08 2008 +0100

    Fix #1807 - make Puppet::Util::Package.versioncmp a module function
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 4c648bb1e7428806550f57160f72892709b0a30f
Merge: 34335b7 7403330
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Dec 27 12:43:52 2008 +1100

    Merge branch '0.24.x'
    
    Conflicts:
    	CHANGELOG

commit 34335b7a2e6950d4bb3dcaaf2bfe88cbc684007e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Dec 27 11:58:05 2008 +1100

    Fixed #1840 - Bug fixes and improvements for Emacs puppet-mode.el

commit 3b8a77dfd97774c21156efb1553f3a5a0372c7fa
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Dec 20 15:30:22 2008 +0100

    Fix #1834 part2 - Fix tests when no rails
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit b6e34b7bc8af737927645e405032ab9694456097
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Dec 20 15:29:58 2008 +0100

    Fix #1834 part1 - Fix tempfile failing tests
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 566bf7820e56b3be503a05645cad54152309b20f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 18 18:06:45 2008 -0600

    Fixing #1729 - puppetmasterd can now read certs at startup
    
    The main aspect of this solution is to create a site-wide
    Puppet::SSL::Host instance to cache ssl key and certificate,
    so that by the time we've switched UIDs, we've got the key and
    cert in memory.  Then webrick just uses that, rather than creating
    a new Host instance.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0cf9decfeab5a45f8457af2e51633fd6e0f877fc
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 18 11:08:34 2008 -0600

    Canonicalizing Setting section names to symbols.
    
    I thought I was already using symbols everywhere so
    it didn't matter, but there are a few places (e.g., the
    process name) where they were strings, and that made things
    not work so much.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0fc067449a5e6f4941e2dfe232383b94f163b110
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 18 10:57:59 2008 -0600

    Fixing all of the test/ tests I broke in previous dev.
    
    Most of these are straightforward changes to the tests,
    but a couple required small refactorings (e.g., References
    can now be created with Puppet::Type instances, and they
    know how to extract the type/title from them).
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e4ba3db1963081eacc2aef3d865f777b427ef23c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 17 18:29:58 2008 -0600

    Deprecating the Puppet::Type.create.
    
    This method is no longer necessary; you can use the
    normal 'new' class method.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b6db54585177f277b1e06bebd4d925d5c272b610
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 17 18:10:30 2008 -0600

    Deprecating 'Puppet.type'; replacing all instances with Puppet::Type.type
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 89c25ad0661fbc1d57830f4648a3b108f4347278
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 17 18:05:58 2008 -0600

    Finishing the work to use Puppet::Resource instead of TransObject
    
    This was a complicated project because TransObject had made its
    way into too many classes.  The usage by Util::Settings
    was particularly nefarious.  Refactoring and fixing this
    exposed some other issues.
    
    The main complication, though, was the extent to which the
    Puppet::Type class depended on TransObject.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1c7f8f685d3beec267f7e45e7d1217d7db770082
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 16 17:56:53 2008 -0600

    Adding name/namevar abstraction to Puppet::Resource.
    
    This hopefully provides a single place to manage this
    complexity, and I'll be using it to simplify Puppet::Type.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e601babb9266258f55580fcf2a91ea5ca4c5d368
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 15 11:03:21 2008 -0600

    Supporting a nil expirer on cacher objects.
    
    This works for those classes like Puppet::Type that use an expirer that isn't
    always present (they use their catalog as an expirer).
    
    The behaviour is now that if there is no expirer, expire() is a no-op and all
    data is considered expired all the time, so it's always fresh.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f69ac9fdb916787530fb70f00006fa64952a8d45
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Dec 12 18:18:39 2008 -0600

    Setting resource defaults immediately.
    
    This makes it easier for later parameters to depend on the values
    of earlier parameters.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 352d7be1a2d3ec6a5930aa4c19c5451e63fdab2e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Dec 12 17:55:54 2008 -0600

    Refactoring the Settings class to use Puppet::Resource
    
    It also now uses the Catalog instead of the recursive
    TransObject stuff.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 91ff7c1f9c591936b0d39349baf0d1602a69923b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 11 17:59:41 2008 -0600

    TransObject is nearly deprecated now.
    
    This is all of the plumbing work, the only real thing
    left to do is to fix the Settings class so that it
    uses Puppet::Resource instances instead of TransObject
    and TransBucket.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit fae30756e48184dfc8238dcfe80b843f981b6070
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 11 12:31:01 2008 -0600

    Simplifying the initialization interface for References
    
    You previously had to call new(nil, "Foo[bar]") if you
    just had the resource reference as a string.  Now
    you can call new("Foo[bar]"), but the old behaviour
    works, too.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 14c3c54ee1976e1c76acfe62554bb1786da6427b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 11 12:13:41 2008 -0600

    Replacing TransObject usage with Puppet::Resource
    
    This completely reorganizes how RAL resources are
    initialized, and in the process I was able to remove a lot
    of code (I removed other apparently obsolete code at
    the same time).
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 60062e4b9ae479ddbf97f4fc3495d04bc00196d5
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 11 08:24:43 2008 -0600

    Renaming the "Catalog#to_type" method to "Catalog#to_ral"
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6b14000ae54a11da3fa16c1b4685f630abca869b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 10 15:39:27 2008 -0600

    Using Puppet::Resource to convert parser resources to RAL resources
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e3b1590f57a18b89c5f97ca0aa8e8d2bd9187b58
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 9 17:02:29 2008 -0600

    Adding resource convertion to the parser resources
    
    Also uses Puppet::Resource's method for creating
    transportable resources.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c306a1744793420337421f6fdf3630a9121861bd
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 9 16:56:39 2008 -0600

    Adding equality testing to Puppet::Resource::Reference
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 48a994998d3087f82c0c3175a39d2bb812e8f94f
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 9 16:00:47 2008 -0600

    Correcting whitespace and nested describes in Puppet::Resource::Catalog
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d48fff6658535ca1781443aba9ab21893c13e55c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 9 15:33:28 2008 -0600

    Renaming Puppet::Node::Catalog to Puppet::Resource::Catalog
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7403330c4f63c290ba3cc5992706a3f0b1c9caa0
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Dec 16 22:54:35 2008 +1100

    Updated Red Hat spec file 0.24.7

commit 8befc18917d8a6f9c6a1eb041457e14ad052bee4
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 16 04:19:44 2008 +0100

    Updated to version 0.24.7

commit cf19bd8dea141a59cdff5a7f1edc56d3620ab0e2
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 15 00:22:09 2008 -0600

    Not using a temporary file when locking files for writing.
    
    The temporary file was not actually useful, because we
    could never really get atomic renames, for annoying,
    complicated reasons.
    
    This hopefully finally fixes #1812.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b966ea02a9deeb947bd6153c4cd7c53b1ddff3d8
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Dec 14 22:42:16 2008 -0600

    Modifying the corruption-checking test.
    
    It is now more likely to fail if there's a problem,
    since the yaml should be corrupt, causing a yaml failure.
    
    Also removing the equivalent test from the Storage module.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1f34bcac626d57e4bc8cbc3476a6e41319a6533e
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Sat Dec 13 21:51:32 2008 -0700

    Issue 1804 VDev with the same devices should be in sync
    
    Added VDev and MultiVDev properties to the ZPool type to handle logic
    Vdevs with the same devices are now in sync even if the order changes

commit 6d5a1295c9d9771d2dd648b45f4928d8fc4517e0
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Dec 13 23:49:01 2008 +1100

    Documentation fixes

commit 45144a1b9da2839fd9f8a182a8f82ecb06e17292
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 10 23:29:39 2008 -0600

    Fixing #1812 (hopefully) - adding read and write locks to yaml.
    
    It's obviously not really possible to test that this fixes it,
    but I'm confident that the locks work, and now we're using them,
    so it *should*.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2385a78a7c455affed26955142a4d4d3ce53c37f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 10 21:36:39 2008 -0600

    Preparing to fix #1812 - Moving locking code to a module
    
    This moves the locking code out of Puppet::Util into a
    separate module, to make the code cleaner.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2961b832de8d0bd6f73dfb6a65a424fd6eb7746a
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Dec 10 22:55:38 2008 +0100

    Fix #1815 - puppetdoc --all crash on resource override

commit c927ce05bbd96fa9aacc8e52f8eb797403a1e433
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 9 15:30:11 2008 -0600

    Renaming Puppet::ResourceReference to Puppet::Resource::Reference
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e88746b48cfd4ce7cd9acd0baf61d9b660b460e9
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 8 18:02:21 2008 -0600

    Adding Trans{Object,Bucket} backward compatibility to Puppet::Resource
    
    This is further progress toward #1808.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 832198f56cfabc7a6ab1a97b99f61e278c16bc8b
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 8 17:26:39 2008 -0600

    Starting on #1808 - Added a base resource class.
    
    This class borrows heavily from the Puppet::Parser::Resource class
    and from Puppet::TransObject, partially because it will hopefully eventually
    supplant both of them.
    
    The class isn't used at all yet; now we need to go through the codebase
    and remove everything related to TransObject.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 820ff2e99fd4ca58b173ce05b1aa09b0efe69f91
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 9 15:15:06 2008 -0600

    Removing the "clear" from the macauthorization tests
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 71b8befa424c6c82a10a5cc7d7ea50331851c7e9
Merge: 89e9ef7 e5c36fd
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 9 15:10:09 2008 -0600

    Merge branch '0.24.x'
    
    Conflicts:
    
    	CHANGELOG
    	lib/puppet/type/tidy.rb
    	spec/unit/type/file/ensure.rb
    	spec/unit/type/tidy.rb

commit e5c36fd865a5699c867e68a23153ec40da919e33
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Mon Dec 8 23:20:43 2008 -0700

    Fix ZFS autorequire test
    
    Couldn't find a default provider because the world is not my laptop

commit da71ad53cc49b9a8c56785d865c47bb282e467b6
Author: John Ferlito <johnf@inodes.org>
Date:   Tue Dec 9 11:46:21 2008 +1100

    Add a unique name to objects so we can determine uniqueness when read back in
    
        The nagios object definitions have been updated to correlate with Nagios
        3.0.6.
    
            In Nagios it is possible to have multiple service checks with the
        same service_description. eg I could have an check with a
        service_description of 'SSH' for multiple hosts. So in puppet we can't
        use it as a unique name for the resource. This patch modifies the code
        to use $name as the unique name. For some types eg command_name $name
        ends up in the config and thus we can tell which puppet resources match
        to which nagios ones.  For other types like service there is no direct
        mapping from $name to a nagios attibute. So we use a custom attribute
        called _naginator_name.
    
    Signed-off-by: John Ferlito <johnf@inodes.org>

commit 4418b3436e96b6aa8d2310fe87e315533ed53415
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Dec 9 14:28:35 2008 +1100

    Fix launchd service test on non-OSX platforms

commit 4b2bdf981431b11b6c9829d3c2d81abe0f1c71ba
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon Dec 8 18:37:27 2008 -0800

    Fix the spec tests to work on other platforms, do the confine around OS X versions more sanely

commit 544a3e1ecbbb59170c72c649b281a54fd3b41f14
Author: Nigel Kersten <nigelk@google.com>
Date:   Sun Dec 7 15:44:23 2008 -0800

    remove unnecessary mk_resource_methods call

commit 50ac03a2a404faa60fe0774a608397b3e4448b9b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Dec 9 14:18:31 2008 +1100

    CHANGELOG updates

commit a0a6d2cfa88cac5418097fb9f71df4cbcae4b192
Author: John Ferlito <johnf@inodes.org>
Date:   Tue Dec 9 11:46:21 2008 +1100

    Add a unique name to objects so we can determine uniqueness when read back in
    
        The nagios object definitions have been updated to correlate with Nagios
        3.0.6.
    
            In Nagios it is possible to have multiple service checks with the
        same service_description. eg I could have an check with a
        service_description of 'SSH' for multiple hosts. So in puppet we can't
        use it as a unique name for the resource. This patch modifies the code
        to use $name as the unique name. For some types eg command_name $name
        ends up in the config and thus we can tell which puppet resources match
        to which nagios ones.  For other types like service there is no direct
        mapping from $name to a nagios attibute. So we use a custom attribute
        called _naginator_name.
    
    Signed-off-by: John Ferlito <johnf@inodes.org>

commit 89e9ef7521f5d62f1eb65514fe8923d0456e6184
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Dec 8 20:04:33 2008 +0100

    Fix #1483 - protect report terminus_class when testing for REST
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 68ffd46c9fd87e07d0171e7daa54b951f621c7b7
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Mon Dec 8 00:09:50 2008 -0700

    Bug #1803 Zfs should auto require the ancestor file systems

commit 7e2da7eeb25bb8879af40f12c4a04047a159374e
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Sun Dec 7 22:41:45 2008 -0700

    Refactor #1802 Use 'zfs get -H -o value' instead of parsing output for value
    
    just simplifying code

commit 8616d74b47ac9177a3f29f1ebf63902bdefb3275
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 8 00:00:17 2008 -0600

    Fixing #1800 - tidy now correctly ignores missing files and directories
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6075d10373dbdb7de1f665cc39453daa6418cffd
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Dec 7 17:04:14 2008 -0600

    Fixing #1794 - returning sync when it is already initialized
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 18fe5c3ac2ad4c42afd30ba2effad28607fe746d
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Dec 7 18:04:14 2008 -0600

    Fixing #1750 again - All of the properties and now :ensure check replace?
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b22303e31654b44c300c713426d7f16ef37f4210
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Dec 7 11:32:51 2008 +0100

    Fix rake abort when there is a matching confine
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 435f1e9b52e11bc558405f2102c61db84fea03c2
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Dec 6 16:53:03 2008 +0100

    Fix #1483 - use REST to transmit reports over the wire
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 0caa9c57c67005871c46e160de318044ffb65375
Author: Nigel Kersten <nigelk@google.com>
Date:   Fri Dec 5 13:28:55 2008 -0800

    spec tests for type and provider and some code cleanup to adhere to DRY

commit 0f2fc88a392fd0c28a914d6914f447ecce51701c
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Dec 4 17:26:06 2008 -0800

    Finished work on rules creation and deletion

commit ed49153c28a640c941fb9e1d70f196a454ecf151
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Dec 4 13:07:02 2008 -0800

    new better way of doing stdin

commit 05e05bb70a2eb6b57b59340c15f4c205a4803b3e
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Dec 4 12:41:59 2008 -0800

    finished rights flush, working on rules

commit 1e37230c8d34fb2c19a0025a222464dc97c1ee06
Author: Nigel Kersten <nigelk@google.com>
Date:   Wed Dec 3 17:45:04 2008 -0800

    macauthorization type

commit 4ed73efa94408aba6344cdc0412715acf2014412
Author: Nigel Kersten <nigelk@google.com>
Date:   Tue Dec 2 12:28:19 2008 -0800

    reset macauthorization tree. Initial checkin of new type/provider

commit 5d32cd9ad011ee3771e42837f9c6d5bde6462909
Author: Nigel Kersten <nigelk@google.com>
Date:   Tue Dec 2 09:12:40 2008 -0800

    add NetInfo deprecation notice to user and group providers, make the directoryservice user provider the default, remove default for darwin from NetInfo providers

commit 99ab9405fa51266d639f477f96fefe2e7229968f
Author: Nigel Kersten <nigelk@google.com>
Date:   Tue Dec 2 06:58:01 2008 -0800

    Warn that the NetInfo nameservice provider is deprecated. Use directoryservice instead

commit c4412ec90c7ac4fecc49bbb632a0c4e84efb2ad4
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Dec 4 13:08:16 2008 -0800

    add some more sanity checks around stdin

commit 7de82c387b29b0c9202e35d680f109407c07faa7
Author: Nigel Kersten <nigelk@google.com>
Date:   Thu Dec 4 10:26:00 2008 -0800

    add support for stdin to Puppet::Util.execute

commit edef064ee2a2fe50113cbd2dde8e2bf45b500c55
Author: Nigel Kersten <nigelk@google.com>
Date:   Wed Dec 3 19:25:12 2008 -0800

    Make ralsh behave more sanely for non-existent objects and property values

commit 9384a4ab1ec902487bb0b4d329e554283a147529
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Oct 29 10:50:54 2008 +1100

    Added git changelog task

commit 6b30171435583b1a69c4ffe7b8b1760f5585cd38
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 2 22:28:22 2008 -0600

    Fixing all broken tests.  Most of them were broken by fileserving changes.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 99a9b5a045af6f1c68619792a45603cbe450652d
Merge: f73e13e 278bfe8
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 2 16:26:54 2008 -0600

    Merge branch '0.24.x'
    
    Conflicts:
    
    	bin/puppetca
    	lib/puppet/type/group.rb
    	lib/puppet/type/tidy.rb
    	lib/puppet/util/settings.rb
    
    Also edited the following files so tests will pass:
    
           lib/puppet/type/component.rb
           spec/unit/ssl/certificate_request.rb
           spec/unit/type/computer.rb
           spec/unit/type/mcx.rb
           spec/unit/type/resources.rb
           spec/unit/util/settings.rb
           spec/unit/util/storage.rb
           test/ral/type/zone.rb

commit c398db1e6f9eb3e0f7c9296116564b0a6ffb7777
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Tue Dec 2 13:57:33 2008 -0700

    Bug #1780 Fixing meaningless test
    
    Gave meaning to test dependent on feature for role property

commit 278bfe83015312292360f727d6532a143610db0d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 2 00:09:48 2008 -0600

    Fixing mcx test failures (only happened sometimes).
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c4812b85b97e391d7b74467fd99a1b655ed6a463
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon Dec 1 20:54:10 2008 -0800

    Need to stub out the defaultprovider call for non Mac platforms

commit b444e434d6220019505b9a09ea2cb36a2bc3e1e3
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon Dec 1 20:33:49 2008 -0800

    remove extraneous comments

commit 49d4d01e7733f479ecc20cfc3632301ed487c38e
Author: Nigel Kersten <nigelk@google.com>
Date:   Mon Dec 1 19:10:19 2008 -0800

    Trim down the after block clears to try to make the tests work for the build servers
    
    Remove the require line so that it doesn't conflict with puppet's autoloader

commit 65d6b49950160e45ee4f12b525a1d9878666157f
Author: Jeffrey McCune <mccune.jeff@gmail.com>
Date:   Mon Dec 1 20:16:11 2008 -0500

    Updated mcx type and provider with comprehensive spec tests.
    
    Signed-off-by: Jeffrey McCune <mccune.jeff@gmail.com>
    
    Fixed default provider error with mcx type spec.
    
    Signed-off-by: Jeffrey McCune <mccune.jeff@gmail.com>

commit fd128d6b3e5b1b9759646428d056faffade5d19a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 1 18:10:55 2008 -0600

    Fixing a package test to be *much* faster
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit cdcbc5bceb98a1edd6c9a2c5b7f21583cd3bd76f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 1 17:58:58 2008 -0600

    Fixing splaytime tests
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6a4c0d52bf4a1314bb7f2fcf9ecb409fdeab8226
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 1 17:58:36 2008 -0600

    Removing debugging from the "resources" type
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0c6a151fdc8270861634c6a2088829055aa26aa4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 1 17:39:06 2008 -0600

    Fixing a test that fails depending on test execution order
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 968f5cc9014c235a95f7c432da5c4033ddc2c9f7
Author: Bryan Kearney <bkearney@localhost.localdomain>
Date:   Mon Dec 1 15:22:56 2008 -0500

    Relicense under GPLv2+

commit 9ab3afb5423b406c661805946aac174f7f3e5674
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 28 11:23:17 2008 -0600

    Hopefully fixing #1703 - using a mutex around the sending of the tagmails
    
    It's not really possible to test that this fixes the problem, and
    I can't even reproduce it, but hopefully this will work.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 3fe9cc748a7bca9b5fead1f9c1e0d82f1207bb3f
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Dec 1 21:03:20 2008 +0100

    Fix #1741 - fix some failing tests on some ruby versions.
    
    Nigelk reported those tests were failing on ubuntu 8.04.
    I wasn't able to reproduce the issue myself but he confirmed
    the above patch fixed the tests.

commit 3570c71cf41a1705f36e48724012661dbca42b84
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Dec 1 20:14:33 2008 +0100

    Fix #1788 - allow rspec rake to run only some tests
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 1b3a7d8c9ce8d4384b76be47c952d2bab7580481
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 1 13:43:12 2008 -0600

    Fixing the AST constant warnings, using a variable instead of a constant
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 091b8bf11c83ed31f85d859e6c97730ea5e4905a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 1 12:40:01 2008 -0600

    Fixing #1785 - selinux tests no longer break other tests
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c005dcf2748326ea0f177d7da806a0cd4241c31d
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Mon Dec 1 03:08:38 2008 -0700

    Ticket 1780 - Solaris RBAC roles should be autorequired
    
    Autorequire the roles that belong to the user so they will be created first

commit 3eff2254e69cf66b6e9f94631900fba26172c850
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Mon Dec 1 02:58:09 2008 -0700

    Feature 1696 Add support for branded zones
    
    Applied the patch from the ticket and wrote tests with the changes

commit fa9820baaebe29675defb14bc9d64f6cb9b75211
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Mon Dec 1 00:07:04 2008 -0700

    Bug #1778 - Solaris RBAC profiles should maintain order
    
    Created OrderedList property
    Added to profile property
    small refactor in List to make inheriting easier

commit f6fa4f7b8c85303dd801fa6e4c5f47845af53c54
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Mon Dec 1 00:21:20 2008 -0700

    Bug # 1680 Now you can set the hashed passwords on solaris
    
    Straight /etc/shadow hackery

commit 0a40668b348d210cb6cb9e9c25320ccc981ae422
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Sun Nov 30 23:54:57 2008 -0700

    Feature #1783 - Add ZFS support
    
    Types and providers to manage zfs and zpool

commit 047e5d073c2362da95553c1778b9eb5176b0c05b
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Thu Nov 27 03:09:03 2008 -0700

    Handle password when user is created
    
    strip out the -p and call password= after the thing is done

commit 88edf66cf8f80b2b35a99854ffa40a29aeafccbb
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Thu Nov 27 02:31:27 2008 -0700

    == is not =

commit a219c88866d8f91672b1830cc519da68a0d9b2c7
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Thu Nov 27 01:22:36 2008 -0700

    Solaris doesn't have a native tool to set hashed passwords
    
    Added support for passwords by directly editing /etc/shadow
    (I tried to make it work with libshadow, but considering it is not packaged for Solaris and adds little benefit, I decided against it)
    
    password and password= are now defined on the default Solaris provider

commit 9329c95d6fbb2df5e8b754620427645f6eae69b9
Author: Jeffrey McCune <mccune.jeff@gmail.com>
Date:   Fri Nov 28 22:39:22 2008 -0500

    type/mcx.rb Feature #1026 - MCX Type
    
    Added new MCX type and base test.
    
    This type manages MCX settings on DirectoryService nodes.  These
    settings take the form of plist XML documents attached to Users,
    Groups, and Computers in DirectoryService.

commit 83b3a1ec2a98edeab12a5eb9c4b107a6fe08613c
Author: Nigel Kersten <nigelk@google.com>
Date:   Wed Nov 26 13:16:52 2008 -0800

    Simplify launchd service provider and add tests

commit 65a60748526d66fb9c7f6fb7df6f011ad5c9a3a1
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Dec 1 12:58:04 2008 +1100

     Fixed #1695 - Solaris 10 zone provider doesn't properly handle unknown zone attributes in newer releases

commit 0171e25ec457e9e9d078aabbea491bbcd03448bf
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 28 23:58:04 2008 -0600

    Fixing #1749 - Splay now hopefully behaves "better" for small values.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 607958cb7fe178596930b1506b69807dc78d111b
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Nov 23 00:01:23 2008 +0100

    Fix #1741 - Add inline_template function

commit cc45c435b7f62f83f0d0cd4b952a5c05ccfaaac9
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Nov 23 00:01:04 2008 +0100

    Fix #1741 - refactor TemplateWrapper, test for template function

commit d8c741f9d3b07b11f11af0765d740d9e78889794
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Nov 26 23:18:45 2008 +0100

    Fix #1741 - Puppet::Parser::Functions rmfunctions and unit test

commit 3c4efa7ec2043043d72d325e67fe5bd6098e0413
Author: Thom May <thom@virelais.nyc.joostas.com>
Date:   Wed Nov 26 14:58:27 2008 -0500

    Fixes #1773 - no longer check for absolute paths

commit 3a395095d7b913661484bc5caeeb90cb34cd5b3f
Author: Nigel Kersten <nigelk@google.com>
Date:   Wed Nov 26 13:59:55 2008 -0800

    make sure only types that have passwords search for the password

commit a45c6b1b9f9675aa76e96fa053742af621887591
Author: Nigel Kersten <nigelk@google.com>
Date:   Wed Nov 26 07:54:32 2008 -0800

    fix bug with numeric uid/gid in directoryservice provider. doc string cleanups

commit 1f52795c43e085e73290fbfccffafcc8cca1bc70
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Nov 28 08:58:34 2008 +1100

    Documentation fix for runit provider

commit 81a91a7321f1a0c664e04cc2b7045819a970c18f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Nov 28 08:57:18 2008 +1100

    Documentation fix for daemontools provider

commit 4f67a7c26a5e740fd672b3c4f17e0fd366154840
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Nov 28 08:51:21 2008 +1100

    Fixed #1776 - Trivial fix for gentoo service provider

commit 2764ab4a991cca94d8ae41b42db2e3b5398951ed
Author: Thom May <thom@joost.com>
Date:   Wed Nov 26 15:17:02 2008 -0500

    Rename migration so it's still applied

commit 965c08d8c053996779a6f94e1ea5c3c1863907cd
Author: Thom May <thom@clearairturbulence.org>
Date:   Tue Sep 2 17:59:59 2008 -0400

    Slight denormalisation to store a host's environment as a first class
    object in the database
    Fixes: #1392

commit 5742966d79206cb5f26cc61c20b065df876f540e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 26 00:44:47 2008 -0600

    Fixing #1743 - defined types get catalogs too.
    
    I wasn't adding the catalog to the defined types when creating
    the transportable objects.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 31ec3e64f3acaec36f3bddc6078f6ddd0d7efbf7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Nov 26 20:29:33 2008 +1100

    Adjusted CI tasks exit codes

commit 3421954444f4c06d6e7b80430f89fccf56343fe2
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 25 22:20:39 2008 -0600

    Fixing #1755 - handling fully qualified classes correctly.
    
    This involves lexing '::class' tokens along with correctly
    looking them up from the Resource::Reference class.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a1ac9a5c14d4589f5ee7fdaab3b2c47180c66a2e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Nov 26 15:58:36 2008 +1100

    Added Rake :ci namespace and CI tasks

commit d978668c03f42ce314245c23b06179f6a62f3d67
Author: Nigel Kersten <nigelk@google.com>
Date:   Tue Nov 25 08:32:46 2008 -0800

    Lots of DirectoryService work. New Computer Type. Users now use password hashes. Groups now support setting members as attributes of the group for OS X.

commit 86ce934270992d192a1163d211761a505d5b2812
Author: Nigel Kersten <nigelk@google.com>
Date:   Tue Nov 25 07:37:23 2008 -0800

    launchd service provider

commit 97a817706f7993044b69f148fe2ba74bbcb5d4a3
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 25 18:21:52 2008 -0600

    Refactoring the thread-safety in Puppet::Util a bit.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 78bced1de85c268a89d3c2f44e84ea50d31c775c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 25 18:14:40 2008 -0600

    Fixing #1683 - accessing and changing settings is now thread-safe.
    
    Applying patch by Matt Palmer.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 83cebb56126646ce3e16e70e473f8b4c062c432a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 25 13:22:19 2008 -0600

    Partially fixing #1772 - fixing selinux tests broken by removal of extraneous 'stat' in :file.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a839fe277bcf0e5d71da9987e2608e73f6cca59b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 25 13:21:54 2008 -0600

    Partially fixing #1772 - fixing tidy code I broke.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5bd27c8b81c3250dd04307460868ff113b64190c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 25 13:21:32 2008 -0600

    Partially fixing #1772 - broken 'resources' tests.
    
    The main problem was that the directory_services user provider was returning
    a string for its uid instead of an integer.  I also began a 'resources'
    spec file.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a3140b2285d3cb3ccc44efa2110da58771834cde
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 24 11:16:12 2008 -0600

    Manually setting an env var to mark autotest enabled so we see color
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bbad9831577a123cc5f6bd7f04836f483c9e8f6f
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 23 00:56:38 2008 -0600

    Removing the included testing gems; you must now install them yourself.
    
    Everything passes, but autotest doesn't include color.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b415848841edac9b08ff604416ad2e24dd350b4d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 24 12:17:52 2008 -0600

    Fixing #1708 - user groups specified as names are now detected correctly.
    
    There was a bug when groups were specified by name -- the group was
    always compared to the current gid, rather than being converted to an
    integer and comparing that way.  This is now fixed.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 9ed382d397c79995e850a91ac92e22106d670bed
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Nov 24 21:31:22 2008 +1100

    Fixed #1767 - Minor fix to emacs mode

commit 27a750d4884f2f48c05f5ab6a5c70c7cecf5ff04
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Nov 22 10:00:55 2008 +1100

    Revert "Fixing #1755 - File modes (and other strange properties) will now display correctly"
    
    This reverts commit ed4c4050a8ac46c509b20031814646a49ba86e54.

commit eb0d32a1548314713dc3a1360a4e9d44621afcfc
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 20 13:55:14 2008 -0600

    Fixing #1764 - a property's 'sync' method is never considered a no-op.
    
    *This is a behaviour change.*
    
    If the property does not return an event name, then one is generated
    based on the property name.
    
    Previously, the 'sync' method could return nil and it would be considered
    a noop, but if you need a noop, then you need to modify your 'insync?' method
    to return 'true' in the noop cases.
    
    Also modifying all of the builtin types that didn't handle this explicitly or
    returned nil in 'sync'.  There should be no behaviour change in any of them.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e9f858a1f9108c523efb3856e3ce46e3f9615646
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 20 12:51:42 2008 -0600

    Refactoring the file/owner property to be simpler and cleaner.
    
    It now looks almost exactly like the group property, and has a
    much more current data flow (e.g., sync is never no-op,
    and the sync method doesn't check whether the file is present).
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ed4c4050a8ac46c509b20031814646a49ba86e54
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 20 14:37:16 2008 -0600

    Fixing #1755 - File modes (and other strange properties) will now display correctly
    in ralsh and generated manifests.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c65f2b50832c2772861298c469813c09d25fefd3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Nov 18 20:22:45 2008 +1100

    Fixed #1668 - puppetca can't clean unsigned certs

commit 1ad33cc1499bc9c5fee89d921c219b06986c34b5
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Nov 19 10:10:54 2008 +0100

    Fix #1759 - Comparison operator was using string comparison for numbers
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit c96d250f71bbc75e0ababaeff3b7024bdb20ff60
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Nov 19 18:55:57 2008 +1100

    Fixed #1711 - fileserver test fails due to incorrect mocking

commit 8523a483155eccc543dd7d17ea8c4f942dcc249f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Nov 19 18:49:50 2008 +1100

    Fixed #1751 - Mac OS X DirectoryService nameservice provider support for plist output and password hash fil

commit d32d7f30f672e59c1427d9dfe32e7b7be35a48ab
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Nov 19 18:44:41 2008 +1100

    Fixed #1752 - Add an optional argument to Puppet::Util.execute to determine     whether stderr and stdout are combined in the output

commit 43967408a166ca4155b1febae987300b2b327f97
Author: Nigel Kersten <nigelk@google.com>
Date:   Tue Nov 18 14:40:00 2008 -0800

    Fix the init service type to cope with an array for defpath and if defpath does not exist

commit 3c870d8f33eb757ddc16c33e89618a58685606fd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Nov 18 22:54:22 2008 +1100

    Added versionable feature to the RPM provider

commit f62d04d511a811a098854342d8be189f466f5a68
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 17 16:49:40 2008 -0600

    Fixing broken tests resulting from the fix to #1747
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 030c7913643fa9b37b54815b09ee03427c4849ef
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Nov 17 21:07:08 2008 +1100

    Moved RRD feature from util/metric.rb to feature/base.rb

commit dc192b00dc2c44b6174cb4a84663e8ad4e561d3c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 15 13:21:00 2008 +0100

    Manifest documentation generation
    
    There is currently two type of documentation generation
    for manifests (module or modulepath):
    
     * RDoc HTML generation for modules and global manifests
     * console output for sole manifest
    
    Both version handles classes, defines, nodes, global
    variable assignements, and resources when --all is used.
    
    The usage is the following:
    
    For the rdoc variant:
    $ puppetdoc --mode rdoc --outputdir doc
    It uses the puppet.conf configuration file to get the modulepath
    and manifestdir settings. Those are overridable on the
    command line with --modulepath and --manifestdir.
    
    For the console output version:
    $ puppetdoc /path/to/manifests
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 2c05a0abcb55347c179e66bb0c9d23698e729046
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 15 13:22:26 2008 +0100

    Move function existance test to parser evaluation
    
    The aim is to let --parseonly succeeds even if the function
    is not (yet) present. This is usefull in commit-hooks and
    for the inline documentation generation system.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 064fb006a350e9555abe766c5cb4aeb803fd623a
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Nov 15 13:10:55 2008 +0100

    Add a doc attribute to AST nodes and fill it with the last seen comments
    
    The lexer maintains a stack of last seen comments.
    On blank lines the lexer flush the comments.
    On each opening brace the lexer enters a new stack level.
    On each block AST nodes, the stack is popped.
    
    Each AST nodes has a doc property that is filled with the
    last seen comments on node creation (in fact only on important node
    creation representing statements).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 724a6f672308ab6f52d738caf20c5994e6225071
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Nov 9 12:30:06 2008 +0100

    RSpec tests for the doc system (covers AST.doc, lexer and parser)
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f73e13e7464edab73443857d628602b89361c220
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 15 22:29:36 2008 -0600

    Adding more file tests and fixing conflicting tests
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b8ed6670cd0d77f63b153fb5d5afff41f2c03704
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Nov 16 10:20:22 2008 +1100

    Fixed #1735 and #1747 - Fixes to confine system

commit 6be5ac84d6ebbf84c2c1b3f546c5f86edfbcc475
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Nov 16 10:16:23 2008 +1100

    CHANGELOG updates

commit 0ca502593b199d577e44352d8bde476fb2cf2267
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Nov 16 10:11:19 2008 +1100

    Fixed #1718 - Added preseed to apt uninstall and purge

commit cc1297031db9b8d3657fb354c7115a7b079a339f
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 15 02:16:57 2008 -0600

    Completely refactoring the tidy type.
    
    This was necessary because of how I changed file recursion.
    
    The type works much more intelligently now -- files to
    be removed have a file resource generated for them, and that
    resource handles deletion.
    
    Also fixes #1717; neither age nor size is required now.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 720dcbe090a7cdfa9d74be64c382431f09be0e35
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 14 19:29:08 2008 -0600

    Cleaning up the tidy type a bit
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 053d7bfa678b152c42bf3fcbccaaa86aa578c39b
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 14 19:27:50 2008 -0600

    These changes are all about making sure file data is expired when appropriate.
    
    All file tests now pass.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a8d9976d0a11c4dc50b2ef49c63f3f745cb4eccb
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 14 19:15:37 2008 -0600

    Catalogs always consider resource data to be expired if not mid-transaction.
    
    This way we'll cache when in a transaction, but otherwise always
    hit the disk so the data is fresh.  This works because we
    really only use resources mid-transaction, but it behaves correctly
    if we happen to use a resource outside of a transaction.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 01976ca87b0931b28381cd494e5b698f3350a20a
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Thu Nov 13 22:21:57 2008 -0500

    Include spec directory in packages

commit c98f7a5fe2917c9486ec5ab2fca5403446d43932
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 13 17:40:35 2008 -0800

    Fixing the provider's confine subsystem so the logs are more useful.
    
    I apparently lost some context in these logs when I switched to this
    separate subsystem.
    
    Note that this also fixes some of the informational issues in
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6426a29cd7df62967aa54dc60989cc248a831e77
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Nov 14 10:23:22 2008 +1100

    Removed extra 'end' from yum.rb

commit 1e81739f80f59aa1d10b46ab0ed22c95eeeca36c
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Thu Nov 13 17:41:50 2008 -0500

    Fix bug #1746: Sync SELinux file attributes after file contents created/modified

commit cebadd9296ad9193f583f698ec77f0fc99ae6fc9
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Thu Nov 13 16:54:50 2008 -0500

    Fix bug #1681: Add filesystem type check to test for per-file SELinux context support

commit 60455e708cbf3069a64ed4a0af6ce457c65c684e
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Thu Nov 6 11:13:34 2008 -0500

    Quiet debug when no default SELinux context found for one of the components

commit 71a9e60396b1a4964c21308ce3a8bdddc97a721e
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Thu Nov 6 10:43:19 2008 -0500

    Fixes relating to transition to native SELinux bindings

commit 3a5dcab28682a1bbf1b71b2d1de39008468b1ca6
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Sun Nov 2 20:05:57 2008 -0500

    Refactoring of SELinux functions to use native Ruby SELinux interface

commit da9b02c6c074b5f60e83db9389faf216e7653ddc
Merge: bf5be00 d5e19f1
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Nov 13 10:32:23 2008 +1100

    Merge branch 'tickets/0.24.x/1739' into 0.24.x

commit d5e19f18eddd0d6ddb9818dabc873b3203335f95
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Nov 13 10:17:32 2008 +1100

    Fixed #1739 - Added uninstall functionality to yum provider

commit bf5be00f87a8df66964931939531399384142aff
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Nov 11 13:43:29 2008 +0100

    Fix #1737 - part2 - Fix display of "options"

commit 8b0843913c4c4ef063c3f1fb1fec674406bc193d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 11 13:58:55 2008 -0800

    Properly cleaning up ssl ca configuration during testing
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 73fa3977d7274f1c54c89971c0389f9a9f980c9a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 11 13:31:31 2008 -0800

    Adding caching support to parameters, and using cached attributes for file source and metadata.
    
    As hoped, this drastically simplifies the code around retaining
    this data.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0ecbf79faf8e69efda96f8611837cd1c395f7a7c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 11 13:12:21 2008 -0800

    Adding cached attribute support to resources.
    
    The Catalog is the expirer, which means that a resource
    with no catalog will not cache data.
    
    Also switching files to use a cached attribute for its stat.
    
    And modifying catalogs to expire data at the end of every
    transaction.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 29b97943e7efaad3cb3f8e7b82004c067d3fbf82
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 11 13:01:14 2008 -0800

    Allowing a nil expirer for caching classes.
    
    If there's no expirer, then the value is regenerated every
    time.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit cd09d6b90d3365d06e8e706aab3edbd8f568f1c9
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 11 12:45:50 2008 -0800

    Refactoring the Cacher interface to always require attribute declaration.
    
    Previously you could dynamically use cached values, but the new interface
    requires a single static declaration of the attribute:
    
        cached_attr(:myattr) { my_init_code() }
    
    This is cleaner, because it makes it easy to turn the code into an init method
    and generally makes the whole thing easier to think about.
    
    Most of this commit is going through the different classes that already using the
    Caching engine.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 14af971bc618d665f481142934b2f612d503823c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 11 10:47:32 2008 -0600

    Changing the Cacher.invalidate method to Cacher.expire.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 99a0770a30c7c9a1349fd693cda31bdbf2717864
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 10 16:00:38 2008 -0600

    Fixing a critical bug in the Cacher module.
    
    Basically, the first generated value was always
    considered expired the next time it was asked for.
    The fix was to create an initial timestamp in the Cacher
    module, thus providing a floor for validity.
    
    This is definitely a murky bug, and is especially hard to
    test.
    
    Also refactoring the internals just a bit.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e032034fc4f5f45d883f24104c436e16ce555c0e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Nov 10 15:24:55 2008 +0100

    Fix #1737 - ssh_authorized_keys should be able to parse options containing commas
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit e33d0871028ab3483f555103811f1c8c2685f511
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Nov 11 00:05:53 2008 +0100

    Fix #1740 - Daemontools and Runit is not ReST compliant

commit fe0b818c411344da894dc8d26787db8602f68c7a
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 8 12:52:52 2008 -0600

    Fixing tests broken by fileserving and other refactoring.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit eed37f7133a33577d1ebc8441db6090fb4c0b7f8
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 7 16:59:13 2008 -0600

    Fixing a test broken by previous refactoring
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 45c6382e99c3e4c4c9bc85fef35a4114b1d1fb46
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 7 16:55:00 2008 -0600

    Finishing the refactoring of the resource generation interface.
    
    All of the code works, and there are integration tests all around
    to prove it.  I think.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 084071936738f25930bc99bb2e62c2a52259e915
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 7 16:10:52 2008 -0600

    Refactoring and clarifying the resource generation methods.
    
    It now works with the new Catalog#add_resource method.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit cc046460e36eb6273a4f08de2167de25098d20cb
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 7 12:48:37 2008 -0600

    Refactoring Catalog#add_resource to correctly handle implicit resources.
    
    It now ignores or removes implicit resources that conflict,
    and it yields all resources that are valid.
    
    This makes it simple for calling classes to pass in a list
    of resources but only perform a chunk of work for valid (i.e.,
    non-conflicting) resources.
    
    This refactor is entirely meant as a way of cleaning up the
    Transaction#generate interface to the catalog.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a73cad9c8fabb8314e87753a3f73cf96fd4dc560
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 6 14:25:37 2008 -0600

    Adding SimpleGraph#leaves, which I apparently did not migrate from PGraph
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2a685f9194c5eb98b67f9759a90a8a193983c467
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 6 12:40:40 2008 -0600

    Removing mention of obsolete edgelist_class from GRATR.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7e20f06136f524187f64269e39cb95a0a81d4100
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 6 12:39:40 2008 -0600

    Changing the catalog's relationship graph into a normal graph.
    
    It was previously another catalog instance, but I was only
    ever actually using the graphing abilities.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2ba03364309c2347ba4e5bf7dd815beef7563b7b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 6 12:14:05 2008 -0600

    Removing the PGraph class and subsuming it into SimpleGraph.
    
    This class is a holdover from when I was using GRATR, and it's
    obsolete now.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e92c1cc724c489d9328567dfa082221a67184c92
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 6 11:55:34 2008 -0600

    Moving Catalog#write_graph to SimpleGraph, where it belongs.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0149e2e125fc09bb5a8c1ff206cd46e06c0593cd
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 5 23:04:33 2008 -0600

    Converting the file 'source' property to a parameter.
    
    This makes a lot of sense because source was always
    more of a metaparameter than a property -- it affected
    the 'should' values of other properties, but it shouldn't
    have done any other work.
    
    It will hopefully make everything else much cleaner.
    
    This is such a large commit mostly because of the need
    to fix a lot of tests.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 35c623e65b44fed098374288e8c1dfc450a1f9f7
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 5 21:44:42 2008 -0600

    Removing mid-transaction resources from the catalog.
    
    This basically just cleans up dynamic resources.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f4800e8aeb6196aebc43d36f69b2e2a182d1bf5c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 5 17:49:36 2008 -0600

    Adding a method to Checksums to extract the sum type
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 44fadd1847e477b713ab2d0de5633ae446a3642e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 5 17:25:23 2008 -0600

    Aliasing "must_not" just like we alias "must"
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit dfc055405dd84f6b81ec92e4570c9a13dd9549e6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Nov 5 22:09:20 2008 +1100

    Fixed #1730 - Edited file/ensure.rb docs for clarity

commit 6d7b5ef81d671ad27b4bbcfb5e0065f76209ee7d
Author: Martin Englund <martin@englund.nu>
Date:   Wed Nov 5 11:35:09 2008 +0100

    Fixes #1672 - unsafe crontab handling in Solaris
    Signed-off-by: Martin Englund <martin@englund.nu>

commit 083077da15d7d322412bac687153503dd17c6454
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 4 17:15:45 2008 -0600

    Fixing the augeas type tests to work when augeas is missing
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a9dbb5de66c9a97d13f7e7ade47bb6c3b5fa2e66
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 4 17:22:27 2008 -0600

    Deduplicating slashes in the fileserving code
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bb6619a74866605a07869f9467273d6e2e389dab
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 4 17:15:45 2008 -0600

    Fixing the augeas type tests to work when augeas is missing
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e7288733760fe8ad31aba10dd047d31470d10b52
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 31 15:44:07 2008 -0500

    Reducing the number of calls to terminus() to reduce interference with caching
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit aa8d09149c167f1b2f1a714b2e55c89a4d9ac246
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 29 23:11:52 2008 -0500

    Switched all value management in props/params to internal classes.
    
    This is a significant refactor of some very murky code, and it's
    all much cleaner and more readable now.  All of the 'newvalue' methods
    and any value-related code is in a ValueCollection class.
    
    This puts us in a good position to refactor the Property and Parameter
    classes more completely.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e5b503380c4be79bf7e8f7836867ed7f491dd25e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 29 12:09:58 2008 -0500

    Fixing #1677 - fixing the selinux tests in master.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 77d73e0230e466182c13a600a6c5cf8de67654e7
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 28 19:40:32 2008 -0500

    Changing the meaning of the unused Puppet::Type#parameter method to return an instance
    rather than a value.
    
    This parallels and largely obviates the 'property' method.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 05e1325891b2ab22088dcd34dd54e4afcbf59ddb
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 28 18:09:55 2008 -0500

    Moving a file purging test to rspec
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6f7ccff8bb764dffd1d41d5391dd79f7bd4a387c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 28 17:50:20 2008 -0500

    Fixing #1641 - file recursion now only passes original parameters to child resources.
    
    Previously, parameter values provided by remote sources or default values
    were all passed to children, which provided strange state maintenance.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a4d4444ba216cb3627e03bb45e2eb92424740a44
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 27 17:21:21 2008 -0500

    Removing obsolete methods and tests:
        Removing obsolete handleignore method
        Removing obsolete FileSource class
        Removing a now-obsolete test/unit test
        Removing a now-obsolete recursive filebucket test
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b4f4866b452cad870e635a8c97e265bd47e3f5ff
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 27 12:10:36 2008 -0500

    Making it so (once again) files with sources set can still be deleted
    (which I think is kinda stupid, but apparently people want it).
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit caf15c27b84f2777d68e569cea11ef9534c44ed4
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 31 16:19:41 2008 -0500

    Fixing and migrating more file tests.
    
    This is an unfortunately messy commit; I should have tried harder
    to separate the different tasks into different commits, but it's
    not worth going back and doing now.
    
    This is the first commit in the long road of fixing the existing file
    tests, and in the process refactoring and better testing the code.
    
    The refactoring in this commit is mostly around the 'stat' instance
    variable that tests whether the file exists (and provides its metadata
    if it does) and the 'insync?' method in the source property.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit cccd83853883a84a31f22446e9d3be8501655739
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 31 16:19:01 2008 -0500

    Adding a starting point for spec tests for tidy.
    
    So far it just validates that lstat is used instead of stat.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>
    
    Conflicts:
    
    	spec/unit/type/tidy.rb

commit 255c9fbcc00c4f2bb2252b9eadff195a1feb77f4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 3 22:15:09 2008 -0600

    Setting puppetmasterd up to serve all indirected classes.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7fdf2bb23fbc5a3cb2468fb6b980eaf556d29c64
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 3 22:05:20 2008 -0600

    Retrieving the CA certificate before the client certificate.
    
    We have to have a CA cert first, because the host will
    start using the client cert as soon as it's available,
    but it's not functional without a CA cert.
    
    Also removing extra stupid stuff from wait_for_cert --
    the connection is now always recycled, which is much simpler.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a00c1f2bb508d711c5fa0dd4bda98b7a747140aa
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 3 21:41:30 2008 -0600

    Handling the case where a symbol (e.g., :ca) is used for a certificate name.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit cf3a11cb641c6317f61d0f596bc8a137aa4adbca
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 3 21:39:58 2008 -0600

    Fixing :bindaddress setting to work with the new server subsystem.
    
    It now automatically switches values depending on server type,
    while still allowing overriding.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a78c971829959d9d4b89aa841249fc973b8972b2
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 3 21:39:13 2008 -0600

    Fixing CertificateRequest#save to accept arguments.
    
    This happens when called over REST.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0a3d34dbe7b5175f4822b6f1bfaa6f0ba05e9bd2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Nov 1 10:56:52 2008 +1100

    Fixes #1714 - yumhelper handling with yum 2.2.x is broken

commit 7b70e85d717fbd1ae52e94658df8b407b043f8b8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Nov 1 10:44:21 2008 +1100

    Fixed #1721 - puppet.conf documentation incorrectly lists signals that affect the daemons

commit 781a685248d175a1f97486b0d44abbba3022fd54
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 31 16:05:18 2008 -0500

    Fixing a test I broke when fixing a reporting bug
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e70c1a067a801443719bfabb26aa0a2690b02838
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 31 16:10:45 2008 -0500

    Fixing forward-compatibility issues resulting from no global resources
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4596d2d80e76594589a42e3a89ba88b5dbe6f1c9
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 31 16:05:18 2008 -0500

    Fixing a test I broke when fixing a reporting bug
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e76cac7df102389b7ee487be4031caf0e7e2ab04
Merge: 801b8a6 f063517
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 31 16:01:28 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	CHANGELOG

commit f0635179b60f5cf30d1f7070f4c3c998ad5131c0
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Wed Oct 29 11:29:12 2008 -0400

    Added unit tests for the augeas type and provider

commit 2d37f09aa093b10cb64b9b649f0066217c53d48f
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Oct 28 14:17:12 2008 +0100

    Fix #1402 - Allow multiline comments
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 9f30306d2c768bad3327ecb7748669afb10cd4aa
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Oct 28 14:15:08 2008 +0100

    Fix #857 - Multiple class of the same name don't append code
    
    The following manifest wasn't working:
    class one {
    notice('class one')
    }
    
    class one {
    notice('second class one')
    }
    
    include one
    
    It all boiled down to class code not being arrays.
    Encapsulating code in ASTArray when needed is enough to append code,
    because of the property of ASTArray to evaluate all their members in
    turn.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 649a9e009a3a5bd070051b972c2cf26989af8e8c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Oct 29 15:53:39 2008 +1100

    Fixed augeas examples in type

commit a83b3ffb3fdf8fecf1aeac27851c2d25ebd8d94d
Merge: 56f3be6 751dc7b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Oct 29 15:46:16 2008 +1100

    Merge branch 'augeas' into 0.24.x

commit 56f3be66a437f5c2c60187d34681813ec7246228
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Oct 29 14:36:20 2008 +1100

    Fixed #1710 - Spurious output in test run

commit 4806c51d309e43d0adc45d743a0ea85c3dc2da0d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 28 19:13:45 2008 -0500

    Fixing #1669 - The dump parameter can now be changed on mounts.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c7ccc4ba7c42d56595564491ae578a1604c628d1
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Oct 28 14:12:36 2008 +0100

    Fix #1682 - ASTArray should flatten product of evaluation of its children
    
    If the ASTArray contains children that evaluate to arrays themselves,
    they aren't flattened.

commit c906afd9e36017bba339ca50998e1651e54dbd0c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 28 17:13:31 2008 -0500

    Fixing #1667 - regex automatic value documentation is now readable.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 751dc7b09f7802189e14e9bb17ab4b01ed31b164
Merge: 9fd1756 bc8cdb1
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Tue Oct 28 09:50:42 2008 -0400

    Merge branch 'augeas' of git@github.com:bkearney/puppet into augeas
    
    Conflicts:
    
    	lib/puppet/type/augeas.rb

commit 9fd1756a8aa56c5d73957a70d5a31a1f6e4223d7
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Mon Oct 27 13:04:25 2008 -0400

    Split Augeas up into a provider and a type.

commit e542f8c6fbfb5ae5eead9d5744667bd6840159f7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Oct 28 15:57:03 2008 +1100

    Fixed #1692 - k5login fails to set mode when file is created

commit 57e791b9e7da931e61dd8dfc0f68bd13cf2e6449
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 27 23:37:33 2008 -0500

    Fixing #1660 - Adding specifically supported values for tidy recursion.
    
    Basically just copied the code for the recurse parameter from 'file'.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 42cac73a7ce531e125c1c94f7bd942d9002e5445
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 27 23:22:03 2008 -0500

    Fixing #1698 - all logs again show up in the report.

commit 6ab4f1b0e2a3f5881d865ca181c053c64d5026a7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Oct 28 14:48:11 2008 +1100

    Fixed #1661 - Type reference: tidy should specify manditory parameters

commit 2459106673f992df7f00be4d9f56957f4b6ba9e0
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 27 21:41:53 2008 +0100

    Removing all mention of EPM, RPM, or Sun packages.
    
    You should upgrade your build library from http://github.com/lak/reductive-build/tree/master
    too.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 05a5e14e2c1387ee15d37c325b6795f121ceb28c
Merge: 9ecbd63 b2c1149
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Oct 28 13:40:26 2008 +1100

    Merge branch 'l' into 0.24.x
    
    Conflicts:
    
    	conf/redhat/puppet.spec

commit 9ecbd6306d227189ba161954aafc3e7f782a87b9
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 11 18:45:16 2008 +0200

    Fixed #1104 - Classes and nodes should set $name variables
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit bc8cdb1820d08dafeb5f998393cd3efb1c0571b1
Author: Bryan Kearney <bkearney@redhat.com>
Date:   Mon Oct 27 13:04:25 2008 -0400

    Beginning provider split, need help on the voodoo

commit 6539f55b16f44b4af0e706f696bab73b49d9d802
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 24 08:43:03 2008 +1100

    Updated Red Hat spec file for 0.24.6 and removed conf/debian directory.
    
    To build a new debian package use:
    
    apt-get source puppet; cd puppet-<curver>; uupdate ../puppet-<newver>.tgz

commit cacafeb4226fd755865dc1b5c64dd9a269444f47
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 24 08:03:31 2008 +1100

    Added augeas type and feature

commit 801b8a643d353176675023adaa25f26d0ec67403
Merge: 9742c26 b2c1149
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 22 18:30:57 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	lib/puppet/type/user.rb

commit b2c1149b5f374df77ad3e017749f22f6981a453f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 23 01:19:26 2008 +0200

    Updated to version 0.24.6

commit 5ba54d216cbb7d06c19bd343fb546d170e9895a2
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 23 01:19:26 2008 +0200

    Updated to version 0.24.6

commit 23d42aca2260562b951507f8a0382823619c19d7
Merge: b7d7236 22024bc
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 23 01:19:07 2008 +0200

    Merge branch '0.24.x' of git://github.com/jamtur01/puppet into 0.24.x

commit 22024bce8f47ea37d57e57dd25d42b8a1996693c
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Wed Oct 22 19:07:08 2008 -0400

    Improve the inline documentation for SELinux types and parameters

commit f21623735deaeb5cd4207a24983ab985f0f9e6af
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Wed Oct 22 11:04:45 2008 -0400

    Fixes #1663 - added Symbol check and additional test

commit 81c3b721f7c2622d6145338dd28aa328fcf5af1a
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Wed Oct 22 14:34:33 2008 -0400

    Fix SELinux test to succeed when Puppet debug mode is enabled

commit f7516a75d93b2fe97adea1b4296541be71ae5d9b
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Wed Oct 22 14:24:06 2008 -0400

    Fix regression caused by switch to Puppet's execute() functions

commit c09d0cc128aa3f6a0b741422ae45326b258bae7d
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Tue Oct 21 12:20:12 2008 -0600

    Solaris RBAC Attributes
    
    Adding support to user type for:
    profiles
    auths
    project
    key/value pairs
    
    Refactored useradd.addcmd so I could override how properties get added in the subclass
    Added keyvalue property to manage generic keyvalues

commit b7d72360f66e36d897cfd4436236a3607a6de5b7
Merge: fe78979 6d05cbc
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 21 19:28:21 2008 +0200

    Merge branch '0.24.x' of git://github.com/jamtur01/puppet into 0.24.x

commit 6d05cbc1e1a22d4316e18fb22d5cff9c7a42d3cf
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Oct 16 22:02:37 2008 +0200

    Fix #936 - Allow trailing comma in array definition
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ec2b4619d3c90b09e1b9fda0020552d5a2d6061f
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 18 12:53:27 2008 +0200

    Fix #1115 - part2 - fix tests and add all_tags
    
    Up until this patch, TemplateWrapper.tags was returning all the tags
    defined in the catalog. I think this is wrong and tags shoul only
    return the defined tags in the current scope.
    Hence, I defined a all_tags method that returns the list of tags defined
    in the whole catalog.

commit 356d8cab14ce9600b39b8fdf48beea7c7fbcf345
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Oct 21 10:44:20 2008 +1100

    Fixed #1662 - Configuration Reference still references 'section'

commit b53509b4538cf581d2d306b43c11f729ba9a2568
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Oct 21 10:37:56 2008 +1100

    Fixed #1460 - enhance redhat puppetmaster init.d script to easy start puppetmaster as a mongrel cluster

commit 8a4e2e9378fe617b0d6b7210ed63f6d5e5bd9956
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Oct 21 09:50:54 2008 +1100

    Fixed #1663 - Regression relating to facter fact naming from 0.24.5

commit e6f99f92ec5bfba973a3f13c629a8ce263a0da7d
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Thu Oct 16 20:24:30 2008 +0200

    Fix #636 - Allow extraneous comma in function argument list
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit fe789798cc0ccdc54b3a28d48bf206c9fc187085
Merge: 9ef6209 a74ec60
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Oct 18 00:17:24 2008 +0200

    Merge branch '0.24.x' of git://github.com/jamtur01/puppet into 0.24.x

commit 9742c26310e6b30095651cb4e224c681603af1ff
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 17 09:14:43 2008 -0500

    Fixing resource aliasing to not use global resource aliasing.
    I'm not really sure why the 0.24.x-style code got merged in,
    since master's changes should be more recent.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8aee40de69e6fe8d67ab58a2e223443b15820584
Merge: 1b517d2 a74ec60
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 17 09:01:04 2008 -0500

    Merge branch '0.24.x'  Removed the 'after' blocks that call Type.clear,
    since that method is deprecated.
    
    Conflicts:
    
    	CHANGELOG
    	bin/puppetca
    	lib/puppet/file_serving/fileset.rb
    	lib/puppet/network/xmlrpc/client.rb
    	lib/puppet/type/file/selcontext.rb
    	spec/unit/file_serving/metadata.rb
    	spec/unit/type/file.rb

commit a74ec60d33dee1c592ec858faeccc23d7a7b79f3
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 16 16:17:30 2008 -0500

    Fixing tests I broke when trying to fix the Providers reference.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d4df36126fa62406c2cbb7a55b18234032da156b
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Tue Oct 14 16:01:28 2008 -0400

    Use fully qualified paths when calling binaries, adjust chcon call to use Puppet's execute() function.

commit dedf0cdce952e36bcdccfc88b1efc33d9f5eaddb
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Mon Oct 13 16:48:40 2008 -0400

    Setting SELinux contexts with chcon should not dereference symbolic links

commit 1b517d2fb048603bd1743a662bde74e8ae4b13dc
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 15 19:47:02 2008 -0500

    Adding comments to Puppet::Util::Cacher
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7f5ded185269cabeb7921c4f4739e1f66a34d54d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Oct 14 11:22:40 2008 +1100

    Fixed #1646 - service puppet status does not work as non-root on redhat system

commit 00d5fe403d754e61ae32f01f6879dfc93bfa6111
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Oct 5 18:52:20 2008 +0200

    Fix #1115 - Allow checking tags/classes from ERb templates
    
    Add to predefined variables to the ERB template space. "classes"
    and "tags" which provide arrays of all the defined classes and tags
    for a node.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f5fb2d383ee9836bddd031b714907cddacd28046
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Oct 14 08:47:21 2008 +1100

    Fixed #1649 - OS X package creation script should be more selective about cleaning out prior versions

commit b0fd2e057a7fbff59565febc3ebb60a33863ff85
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 13 10:35:40 2008 -0500

    Fixing #1647 - puppetdoc's 'providers' report works again.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 157c0ddff032bb78838a1448eb1ff989bf1da705
Author: Paul Nasrat <pnasrat@googlemail.com>
Date:   Sat Oct 11 08:12:22 2008 +0100

    Fix 1642 (always warning) and improve unit tests to cover when to warn and not

commit 65eafb7c01e6b4c003066cf7c6dceb5910e91950
Author: duritong <peter.meier@immerda.ch>
Date:   Fri Oct 10 16:15:59 2008 +0200

    lazy load latest package definitions with yumhelper 2.2
    
    merge commit to 0.24x, original commit:
    
    I could observe that yumhelper.py can run quite some time
    and use quite a lot of memory (up to 100MB!) if you're
    using many repositories. As the yumhelper is only needed
    if you use latest as a ensure-keyword it makes no sense
    for people like me letting puppet fetch these details
    always, if you're never going to use latest.  => lazy loading.
    
    After discussion on the list, this is the new version for
    lazy loading yum latest package versions. It is implemented
    mainly in the way that Luke proposed. However it stores
    the latest informations in the variable latest_info so
    the latest method didn't get too hackish and could nearly be
    left like it was before.

commit eff6ce0b5e83ed73b8e2bbe3ddd68cf4cd77caeb
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 10 14:26:27 2008 +1100

    Revert "Added last part of #1633 patch - update to util/metrics.rb"
    
    This reverts commit c5d1a4f6ffe72477ce02358a93d48df850aea15b.

commit c5d1a4f6ffe72477ce02358a93d48df850aea15b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 10 10:53:18 2008 +1100

    Added last part of #1633 patch - update to util/metrics.rb

commit 9ef6209b3ed1269f7cd1e6a8d0f189f6b5712800
Merge: b96bdc6 0fff7d7
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 9 15:51:05 2008 +0200

    Merge branch '0.24.x' of git://github.com/jamtur01/puppet into 0.24.x

commit 0fff7d76e89a650f5d2e78b2c69b30635880c36b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 23:44:41 2008 -0500

    Fixing some tests that were broken in 2fba85af
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2afbd0d877511511fb1a0c7242d2a3251c7bb82c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 22:06:45 2008 -0500

    Fixing a test that was failing as a result of the fix to #1491
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b0c01dac2270b3107a07fd504f1c41f592e8f790
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 22:27:12 2008 -0500

    Adding an additional option for the fix in ff36832e, skipping missing cert dirs
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit aea55823db21088f2dc19f99f857b12332b6c208
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 22:23:40 2008 -0500

    Removing a gid test for users, since it is a bad test and has mostly been replaced in rspec
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 65d3040d5d5f792405404caece16261088bfcf6a
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 22:16:31 2008 -0500

    Fixing a test that was broken in ee579641
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b08002e45aa051b84e2feaab75dce8fd5016ce39
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 22:13:52 2008 -0500

    Fixing some tests that were broken in the fix for #1633
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2bf0ba5651bfebf202bac5636063cece0208b667
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 22:10:26 2008 -0500

    Fixing a test that was failing because i-have-no-idea
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 952ebb8bfaad10490ff15d70b4f69f3c0a52e481
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 22:05:43 2008 -0500

    Fixing a test that was failing because of the change to retrieve() in ee579641
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a5fe87fb3c54dd0dfa20e6220cc76c7969c27d03
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 22:04:49 2008 -0500

    Fixing a file source test that was failing because missing sources is now a failure
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 53b7d42bb061ff1cfea3519179779a1cba2cf877
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 22:03:22 2008 -0500

    Fixing the broken tests resulting from the fix for #1551.
    
    The test was expecting the current time, albeit as an integer.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5ec6b0734d5656dbfcf89320d476e0aeeec500f5
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 21:27:21 2008 -0500

    Adding warnings when example groups are skipped.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 54abe7084da32570f1d4b8522d9d3232c4313d4e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 21:16:26 2008 -0500

    Moving some test/ package tests to rspec integration tests
    and disabling a gem test that hangs forever for me.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 85d3ae02fb4707f1dd566019221195e431365c2f
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Wed Oct 8 11:40:25 2008 -0400

    Cleanup selboolean and selmodule unit tests to pass on non-SELinux systems

commit a562ce5f7c6737280b92ee05b0609bd4b8088450
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Wed Oct 8 11:39:10 2008 -0400

    Add unit test coverage for Puppet::Util::SELinux and fix problems found by tests

commit 2b4aa0c442f40125526cf2a19c15af4908684388
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Oct 9 07:58:26 2008 +1100

    Fixed #1639 - uninitialized constant Puppet::Type::User::ProviderUseradd

commit 4265825096677f596a6b8a2274e0bb802a60904c
Author: Brice Figureau <brice@daysofwonder.com>
Date:   Wed Oct 8 14:37:44 2008 +0200

    Fix #1636 - part2 - correct some client errors.
    
    #1636 original patch was incomplete, and on some cases, the client
    could report:
    "Failed to generate additional resources during transaction:
    None of the provided sources exist"
    The server was trying to recurse when asking to list files and thus was
    returning an empty response instead of a "file" response.

commit 9c31db9500d79f29c5e5e1419ab4f616a7a2ed88
Author: Paul Nasrat <pnasrat@googlemail.com>
Date:   Wed Oct 8 15:11:44 2008 +0100

    Add failing test for plugin with file and recurse

commit 28534471ef91301cc6a270f826dfff0f6021f89e
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Oct 5 17:11:38 2008 +0200

    Fix several small regressions in plugins mount
    
    Since a30ecf2aeffd71960bd806fb28cd6d1b8adc2452, reclist has one parameter
    less, but Puppet::Network::Handler::PluginMount.list wasn't ported to the
    new API.
    
    While mounting plugins, reclist wasn't requiring 'file_serving/fileset',
    leading to an NameError.
    
    The change to the new API meant that we lost the existance test of plugins
    mount directory. It was failing when the client was mounting module plugins that
    weren't existing (like facter and no custom facts defined).
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 2153baed8c6b99f9b77ed2f63fb24433bd72058c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 8 12:14:11 2008 -0500

    Fixing #1640 - file groups now no longer get set on every run
    (this was a regression caused by other work I did).
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 80e5c111fd2d227ef076fd0409213f30af13bc56
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Oct 8 16:27:55 2008 +1100

    Incremented CHANGELOG to 0.24.6

commit 996ac469b3013e4bcda8bc2f3bcb49ef57740a1f
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Tue Oct 7 22:46:02 2008 -0400

    Fix scenario when SELinux support tools exist, but SELinux is disabled

commit d803096c9a69e0c15548d1ab0d9136c7de234d07
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Oct 8 14:00:35 2008 +1100

    Add new set of unit tests for selmodule type

commit a3f34f94420a2e14716aaffcc0aa112803895e46
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Tue Oct 7 15:00:49 2008 -0400

    Removal of redundant lines from unit test

commit 307260f5493b54c4d9435dd8e71b30d5c08edb05
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Oct 8 13:57:54 2008 +1100

    Remove old selboolean unit tests and fix permissions on new tests

commit 2ebd34ecca413393b2619f8400d2046fa2ca6d9b
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Tue Oct 7 11:13:03 2008 -0400

    Rewrote seboolean unit tests to provide better coverage

commit 4df51eaca0770618d5593c4a07eb9529077da114
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Mon Oct 6 17:30:38 2008 -0400

    New and improved tests for file type SELinux contexts

commit 253d4df1f49e1516a111557b98b29509c39b41e0
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Oct 5 17:11:22 2008 +0200

    Fix regression when templatedir doesn't exist.
    
    When searching for a module template and if the default templatedir is
    inexistant, puppet was raising an error without trying the modules templates
    directories.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit c7a6ef2889b0fb2507e5be98a1dd29b69957a216
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Oct 6 22:39:56 2008 +0200

    Fix #1202 - Collection attribute matching doesn't parse arrays
    
    This patch allows to do this:
       User <| groups == leads |>
    
       @user { "foo":
            ensure => "present",
            groups => ["bar","baz","leads"]
       }
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 3281f2b73ff20d72dca2f6a5063eb1ce23eb4ab2
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 7 18:29:47 2008 -0500

    Fixed #1633 - Added support for --detailed-exits to bin/puppet
    which causes puppet to produce different exit codes depending
    on whether there were changes or failures in the transaction.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0b1e60f69a03e6525e1a9eefd748c59b4fc5261c
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 6 19:06:21 2008 -0500

    Adding an array indexer method to Puppet::Util::Metric as requested in #1633.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 765db307f875a52b7dec386b0af90f8e5b4590bb
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 6 19:03:40 2008 -0500

    Adding partial spec tests for Puppet::Util::Metric.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit fb14e91226e494210c3b6c88d8553a745e4ac3ed
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Mon Oct 6 22:06:39 2008 -0600

    Fixed #1473 - Rescue Timeout::Error in xmlrpc clients
    
    Added a rescue block for Timeout::Error (which isn't a subclass of StandardError)
    Removed a Dev Error conditional to facilitate testing

commit 7275d7cb9083b4183f394a5d6798e1675def6d28
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Oct 7 13:51:59 2008 +1100

    Fxied #1354 - yum provider problems with RHEL 3

commit 0c297be5dad784e305ef194cee29b11a92d31b6b
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 4 16:11:03 2008 +0200

    Fix #1109 - allow empty if or else branches
    
    This changesets allow empty if or else branches:
    
    if true {
    } else {
    }
    
    It works by emitting on the parser stack an AST node that doesn't
    do anything (a no-op). This allows the less intrusive code
    as no part of the if evaluation code has been touched.

commit 5268487ac862eec6381d315800d6f56c51dc57b5
Author: Francois Deppierraz <francois@ctrlaltdel.ch>
Date:   Sat Sep 27 18:52:58 2008 +0200

    Fixed documentation, typo and added CHANGELOG entry

commit 990e8e3caadf488b5dd1d6b3bcb30df492f99647
Author: Francois Deppierraz <francois@ctrlaltdel.ch>
Date:   Sat Sep 27 18:44:13 2008 +0200

    Fix #1530: Correctly parse ssh type 1 keys
    
    This doesn't implies that puppet can managed SSH type 1 keys, it only
    ignores them.

commit 06edac4a23b7d0c27e471c837fa34432dbc5f806
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Oct 5 22:50:18 2008 +1100

    Fixed additional environments tests

commit 79bb1f201c1479a15fa2f0f8ad5467bd357ed707
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 4 00:16:17 2008 +0200

    Rspec Tests for #381.
    Moved part of the old resource reference tests to rspec.

commit 750e9abc64af58e547e7b1ad5698c71feb071bf6
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Oct 4 16:27:51 2008 +0200

    Fix #381 - Allow multiple resource overrides or references
    
    Allow this syntax:
    Resource[title1,title2] { param => value }
    as a compact form of
    Resource[title1] { param => value }
    Resource[title2] { param => value }
    
    This patch also introduces for free the possibility to group
    class references by type:
    
    exec {
    	test:
    		require => File["file1","file2","File3"]
    }
    
    which is completely equivalent to:
    
    exec {
    	test:
    		require => [ File["file1"],File["file2"],File["File3"] ]
    }

commit 782181e0da1bb6f5a091046ad68989300c508176
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Oct 4 13:21:51 2008 +1000

    Minor test fix for #1614

commit 614326afdbe542c9d4c480df43631c1f3cfc394a
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 3 18:30:52 2008 -0500

    Fixing #1098 - Multiline strings now correctly increment the line count
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1c6d57e94196c8238a1609858bad5e5db15d1f0e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 3 17:42:16 2008 -0500

    Doing some simple refactorings on Puppet::Log
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a7744438f83c97886e81990fb34ddcbab8bc0d9e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 3 17:39:18 2008 -0500

    Fixing #1089 - Log messages are now tagged with the log level,
    making it easier to match messages in the 'tagmail' report.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit db7f108f546db2114f87316c68d33706c9e4142e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 3 17:35:45 2008 -0500

    Adding rspec tests for the Puppet::Util::Log class.
    
    Also using Puppet::Util::Tagging to handle the tagging,
    rather than custom methods.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d2c89985bb356188ac52d00b0799cae655a9c75b
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 3 16:12:49 2008 -0500

    Fixed #981 - Removed 'Adding aliases' info message
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d098a901745cf5c84731d8f46aabd225a6ffba2a
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Fri Oct 3 12:09:38 2008 -0600

    Fix failing tests dependent on /etc/user_attr file existing

commit 7a6d9b1ba93966c914f5ca9bde239ef0cdbfd15c
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 3 15:37:31 2008 -0500

    Removing obselete code from the file type.
    
    Also shows that #674 is fixed.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6bcfd9f021be13bfd3269eaa72bc289eab37a64f
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 3 13:11:44 2008 -0500

    Fixing #947 - pluginsync no longer fails poorly when no plugins exist
    
    Note that it still fails -- it's just a more reasonable failure.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 67136f111c60779a1b87b43a6b949a2357399836
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 3 12:42:51 2008 -0500

    Fixing the Node class to no longer validate environments
    since #1614 removed that validation.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a4110a39f34506507e653c3cb2a8b092bd14de92
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Tue Sep 30 14:43:23 2008 -0400

    Add SELinux context reset after file writes in Puppet::Util::FileType

commit 250239eb7fa93dbacd2e755307a6c115615fe87b
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Tue Sep 30 14:38:21 2008 -0400

    Add new support for :selrange SELinux file property

commit c8314821a2bd0f1bb60397492735d3775836416f
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Tue Sep 30 14:34:48 2008 -0400

    Add detected defaults for existing SELinux file properties

commit 772e9b217aafb22da3a7572085f631da54274937
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Tue Sep 30 14:18:14 2008 -0400

    Refactor SELinux commands to utility module

commit 8153181aa39b05847f3a5c3c9f627ca4ba629d67
Author: Sean E. Millichamp <sean@bruenor.org>
Date:   Tue Sep 30 14:02:33 2008 -0400

    Clean up of SELinux rspec tests so all pass

commit e77ddc16570fd15b161db416e7dd35f95e7fb0ac
Author: Brett Lentz <wakko666@gmail.com>
Date:   Thu Jul 24 18:13:14 2008 -0700

    Merged fsweetser's selinux patch against HEAD

commit 7272d49149815e038c67b1ae645b449a1ec2578a
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 2 23:07:19 2008 -0500

    Fixed #1613 - The client environment will be substituted when looking up settings.
    
    This won't be perfect, because it still requires that the caller pass
    in an environment, but for every case that an environment is passed in,
    that environment will be substituted into settings when possible.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1a9b5677de01fc1ed5a9a6ebbea99a73def7f689
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 2 22:56:35 2008 -0500

    Fixing #1614 - Environments no longer have to be listed out.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 397c8416f78c7a1d081f673dcfe2d70e2d7cee16
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 3 11:20:23 2008 +1000

    Fixed #1628 - Changed node search to use certname rather than Facter hostname

commit 9d174c4f50b7281ac0bbba29d5c496c6028e469c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Oct 3 10:50:58 2008 +1000

    Updated puppet binary documentation

commit 6a0b3348065bba7438b23ebbada67c552f33597b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Oct 2 14:04:38 2008 +1000

    Fixed error message typo

commit 655f378af38ff5cd5593f7f7dbb6e77fdda2864a
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 1 19:20:05 2008 -0500

    Adding a rake task for sending emails to the dev list
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d39bab9a02abf139f83e63634cfded5c5b42b14c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 1 19:07:49 2008 -0500

    Fixing package provider tests to use the new Transaction::Change interface
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e32256af93a9c2c272f12576bdcf7005a83bb90f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 1 19:06:10 2008 -0500

    Migrating the apt and dpkg tests to rspec.
    
    I left the aptitude and aptrpm tests as an exercise
    for the reader.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ddda80a05d723271c4a2f7229129f1929a06ba71
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Wed Oct 1 19:46:45 2008 -0600

    Update change log with RBAC roles

commit d1abb86565b63f98d8fc1395a78c840c45e47238
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Wed Oct 1 18:58:09 2008 -0600

    Add role support to user type and an implemention
    
    modify user type:
        add ensure = role logic
        add roles property
        add manages_solaris_rbac feature
        refactored 'list' property to reuse logic for groups in roles

commit 2fba85af73f7a5de31cc13de64f0243df99fef1a
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Wed Oct 1 18:00:17 2008 -0600

    Some small clarifying refactors and change to objectadd to allow subclasses of
    with a uid not need to be a single class us use modify
    
    I don't like logic about subclasses in a parent class, but not in a position to
    address.

commit 4a863c38ced0e2581454888b15275aa1eb381e56
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Wed Oct 1 17:23:14 2008 -0600

    Adding user_attr util to parse attributes on solaris
    
    read /etc/user_attr and makes a hash based on the file contents

commit 93f952a210ff6099c04f8c0157d79e338b901df5
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Oct 2 07:40:58 2008 +1000

    Fixed #1586 - Specifying "fully qualified" package names in Gentoo

commit 862077513570c996e9124743369c9af92485151f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 1 00:07:24 2008 -0500

    Fixed #791 - You should now be able to create and find a user/group in one transaction.
    
    The real problem was that the 'gid' and 'uid' methods didn't handle
    the case where 'get_posix_field' didn't return a value, and
    the subsequent 'get_posix_field' calls couldn't handle that.
    
    This commit moves the tests for Posix to spec, and fixes the
    specific bug.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 63ad84587892e9cab851cf516f7a381c5ea51f90
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 30 23:19:38 2008 -0500

    Refactoring and adding tests to the file group property.
    
    Drastically simplified the class, removing a lot of obsolete
    code and adding tests for nearly the whole class.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6bafd106de71d273745a12f50a3986fcc26a4992
Merge: 99de920 7da4152
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Oct 2 07:29:44 2008 +1000

    Merge branch 'tickets/0.24.x/1622' into 0.24.x
    
    Conflicts:
    
    	CHANGELOG

commit 7da41528e82e5b4d36d4ac33689db0fa92480b3f
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 30 22:34:05 2008 -0500

    Modified the group and zone resource types to no longer call
    'currentpropvalues' as a means of setting all values to absent.
    There should be no behaviour change from this change.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ee579641f72b399e9e13e989a7779b533004b634
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 30 22:04:38 2008 -0500

    Modified the behaviour of resource-level 'retrieve' -- it only
    calls 'retrieve' on each property if the resource exists.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0fb4693f748cd3516ed36af19d70885153b43b11
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 30 18:12:10 2008 -0500

    Updating changelog for #1622
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2afc4f5f159870ae2b8af3fb30037716a659dcf4
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 30 18:08:55 2008 -0500

    Adding tests for the user retrieve method
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 679fede620becbe7a9e934718ddf6420e28ec2cc
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 30 17:51:10 2008 -0500

    Removing commented code from the user type from about 2005
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2480654aa07dbe6c50777417143a133b1cd94859
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 30 17:50:31 2008 -0500

    The Netinfo and DirectoryService providers can now create user and group simultaneously.
    
    This required selectively using property#sync if a 'should' value
    is present, so that the user's gid property can do the conversion
    if necessary.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4c998fe67d7e82c91d5fefd3c0239cb132e9a16d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 30 17:49:18 2008 -0500

    Fixing #1622 - The user type only looks up groups when necessary.
    
    Also added a bunch of tests to the user type, and refactored
    as necessary for this to work.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6bc56aecdb08b894961563035551480a01e93d53
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 30 16:44:14 2008 -0500

    Aliasing the rspec 'should' method to 'must'
    so it does not conflict with the RAL 'should' method.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b9c75cd14cfae6dca035519f13f7d159f2889d0a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 30 13:33:10 2008 -0500

    Rewriting the user tests, in preparation for enhancing them
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 99de9208333531d0ad09d266a76d44face71de94
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Oct 1 01:42:00 2008 +1000

    Fixed #1620 - Add 'sles' to Puppet confines when 'suse' is used

commit 4cf9710bd27fdb5f0720f4d8478ef940e7c4ba59
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Sep 26 23:03:39 2008 +0200

    Add parser for arbitrary expressions
    
    The expressions can be used in if 'test' and in the
    right side of assignements.
    
    The expressions can contain any number of sub-expressions
    combined by either arithmetic operators, comparison operators,
    or boolean operators.
    
    Random Usage Examples:
    $result = ((( $two + 2) / $one) + 4 * 5.45) - (6 << 7) + (0x800 + -9)
    or
    if ($a < 10) and ($a + 10 != 200) {
    ...
    }

commit cfa230a2d7b0c5e57cc0379785bd2025520f1c35
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Sep 26 22:54:42 2008 +0200

    Add arithmetic operators to AST
    
    This changeset adds +,-,/,*,<< and >> computation and
    AST parse nodes.

commit 850e0baf0fbe321f14d4b9d913ce7dea39c9aa27
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Sep 26 22:59:50 2008 +0200

    Add not operator to AST

commit 9cdecfecce84b9e0a88b5ea86b3136a1025ac9d9
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Sep 26 22:59:27 2008 +0200

    Add comparison operators (< > == != <= >=) to AST

commit 8372dc4ca80d95e62c407708a48e51ac09ad2f55
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Fri Sep 26 22:56:17 2008 +0200

    Add boolean operators to AST

commit e6698c2b8624fe2c2bbeef594318e3e8d932d345
Author: Paul Nasrat <pnasrat@googlemail.com>
Date:   Thu Sep 25 16:05:57 2008 +0100

    Add warning and forcibly set to :md5 fixing #1564

commit af8c70650b028a70ed50ac6c2bd7f4f00c17ae03
Author: Paul Nasrat <pnasrat@googlemail.com>
Date:   Fri Sep 19 11:41:45 2008 +0100

    Fix metadata class for cases when checksum_type set

commit 860bdb120df93c3ad9f323529f22f71ca8548cf8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 30 22:13:08 2008 +1000

    Fixed #1603 - Added support for running Puppet inside a Rack application

commit b2f0d872a273760c5ac65663685faea9be9ecfd5
Author: Paul Nasrat <pnasrat@googlemail.com>
Date:   Mon Sep 29 11:57:26 2008 +0100

    Fix ticket 1596 in new fileset code, use tmpdir in fileserver tests.

commit a30ecf2aeffd71960bd806fb28cd6d1b8adc2452
Author: Paul Nasrat <pnasrat@googlemail.com>
Date:   Tue Sep 23 15:21:29 2008 +0100

    Make fileserver use fileset for recursion and handle dangling links by ignoring them fixing #1544

commit 3b807633e3ac5378858c4f88ec6208d959fba742
Author: Paul Nasrat <pnasrat@googlemail.com>
Date:   Tue Sep 23 11:51:51 2008 +0100

    Add tests for FileServer::Mount list for #1544

commit b96bdc6a63f7be6b724c2aa7ad0ea007cba81718
Merge: e20f02a 3749267
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 27 21:30:49 2008 +0200

    Merge branch '0.24.x' of git://github.com/jamtur01/puppet into 0.24.x

commit 3749267093923692d6e7bc0c9ce83b43a487b19e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Sep 26 14:26:45 2008 +1000

    Fixed #1610 - Raise "Filebucketed" messages to Notice priority

commit 1b512a9a41663d2d2983e91c7a77442049f0b505
Author: Brett Lentz <wakko666@gmail.com>
Date:   Thu Jul 24 18:13:14 2008 -0700

    Merged fsweetser's selinux patch against HEAD

commit f792b645fa1f1237e144aa79d84e53c49ed64564
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Sep 25 14:19:52 2008 +1000

    Added a number of confines to package providers

commit 074abd4d0d4823c067ef5704218d8258eb9c5ecd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Sep 25 14:02:15 2008 +1000

    Fixed #1609 - Added confines for the Gentoo, FreeBSD and SMF (Solaris) service providers

commit 2da6d19d8ac9b089e1a563b95fcc97b735fd4720
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Sep 25 13:23:16 2008 +1000

    Fixed #1608 - Added ubuntu to defaultfor for apt provider

commit aa629ec3c01de5b1bfdcb761376d1f417704fd8c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Sep 25 13:10:06 2008 +1000

    Fixed #1607 - Added ubuntu to defaultfor for Debian service provider

commit 774c0f9ca8bd2e9fd0ce5fcc6a474fd0ab0aff0b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Sep 21 16:46:11 2008 +1000

    Fixed #1588 - Fixed puppetca --clean --all

commit 98e79f8b7dbbdcb29c91b6099569e180bd8267c7
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Sep 24 17:46:57 2008 -0500

    Fixed #1472 -- defined, exported resources in the current compile now get expanded
    correctly.
    
    This was working for defined resources in the db, but not in the current compile.
    I just had to mark the resources as non-exported.

commit 0040bc87a1a4afac3a97165cd2e6e3c38f373261
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Sep 24 18:08:06 2008 -0500

    Fixed #1045 - Multiple metaparams all get added to resources.
    
    The problem was that I was using a 'return' in a loop where
    I should have been using a 'next'.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bb23861e334e617b544c11bc75a35c40b36185a2
Merge: e31df2f ac5db5e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 23 23:50:43 2008 -0500

    Merge branch 'feature/master/1481'
    
    This merges in the new fileserving code -- we're now using
    REST to do fileserving, rather than xmlrpc.
    
    Conflicts:
    
    	lib/puppet/parameter.rb
    	lib/puppet/type/file.rb
    	spec/unit/type/file.rb

commit e31df2f7f5e98c524b68cd724cfaa3e308e7b9a1
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 23 22:32:29 2008 -0500

    Removing files that git wasn't smart enough to remote during a merge.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4aeabbbb2163684ff7064198c653cd60d46e5717
Merge: 5b9dd01 8d5ded0
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 23 22:31:55 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	lib/puppet/metatype/container.rb
    	lib/puppet/metatype/instances.rb
    	lib/puppet/metatype/metaparams.rb
    	lib/puppet/metatype/relationships.rb
    	lib/puppet/metatype/schedules.rb

commit 8d5ded09b9c9c944695c015e6e95b10ccebd6fb5
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 23 14:52:57 2008 -0500

    Removing some code in Parameter that is unnecessary.
    
    It's duplicated in Property, but was only ever called if
    the instance was Property -- in other words, the base class
    new about its subclass, but the subclass overrode that method
    any way.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5fbdc49dfdb39351c7f2d9e535577efc177cf838
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 23 14:43:38 2008 -0500

    Fixed #1595 - Internally, Property#retrieve is no longer called
    when no 'should' value is available for a resource.

commit c16a5aee245a9e34e6934debee8e66630aef0fda
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Fri Sep 19 17:00:03 2008 -0600

    Only apply splay the first run
    
    Issue 1491

commit 27f0c7d6e7bf3400ccecc6512d6a5d477cb9bea9
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Sat Sep 20 22:00:19 2008 -0600

    fix failing hpux user specs
    
    feature 1508
    
    Not sure these tests ever passed on any platform. Added some mocking to support
    the two tests.

commit 7a3a38f58c099244c2a8b490f0b69c2fa63f3e16
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sat Sep 20 14:14:44 2008 +0200

    Add rspec unit test for the append operator
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 16793d221f95b2430260c38cd7c36bb8a5ef8d49
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Sun Sep 14 15:49:34 2008 +0200

    Add an append (+=) variable operator:
    
    The append variable operator can be used to append something to
    a variable defined in a parent scope, containing either a string
    or an array.
    
    The main use is to append array elements in classes to a variable
    globally defined in a node.
    
    Example:
    $ssh_users = ['brice', 'admin1']
    
    class backup {
     $ssh_users += ['backup_operator']
     ...
    }
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 7f8abbd388ee3898c8505ca3bb884b75d8db2087
Author: Paul Nasrat <pnasrat@googlemail.com>
Date:   Tue Sep 16 10:24:19 2008 +0100

    Bug #1550 - Rework to avoid regressing rspec tests, add new rspec tests for templatedir as a path
    
    Signed-off-by: Paul Nasrat <pnasrat@googlemail.com>

commit 09057346dd7207e36c81bae479d1343fb7cc8d0a
Author: Thom May <thom@joost.com>
Date:   Tue Sep 16 10:24:18 2008 +0100

    Allow a templatedir to be colon separated.
    
    Signed-off-by: Thom May <thom@clearairturbulence.org>
    Signed-off-by: Paul Nasrat <pnasrat@googlemail.com>

commit 11b0848b8c6eaaded608f4a485990ddb5bbd5e80
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Thu Sep 18 18:48:12 2008 -0600

    Fixed #1500 - puppetrun host regression

commit 3b1d6e25b4c1178554fb6df128e1cdf6dd9ef3b6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Sep 19 09:49:18 2008 +1000

    Fixed #1579 and #1580 - errors in the Puppet RPM spec file

commit 77f4fb67fc9efac8ab70c1fc83e86123401b8000
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 16 11:24:57 2008 -0500

    Fixed #1521 -- ldap user and group are now used with the default connection
    when available.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a1a670b305252b2f4b4b2b0020303143addc3eb8
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 16 11:41:48 2008 -0500

    Fixed #1572 -- file purging now fails if remote sources do not exist.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit dd4f65478c23eaeb56dcef588f96bfdd31557080
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Sep 15 23:10:13 2008 -0500

    Fixing #1576 - moving all of the Puppet::Type code back into type.rb.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 923fd89a2a5d52a6ec9abeb02f6edc01c721fd91
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Sep 13 15:11:17 2008 +1000

    Fixed issues with file descriptors leaking into subprocesses

commit cab5d85dea17f3ea09343955f29eb47c8b32a05d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Sep 13 15:01:57 2008 +1000

    Fixed #1571 - Puppet::Util::binary returns incorrect results

commit a7306e14b9aa064218d051602715c987aebb8417
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Sep 13 14:21:06 2008 +1000

    Fixed #1553 - Puppet and Facter cannot both install the plist module into two different locations

commit 758505b9e3bcb2c45da30d62350534c232f1bf98
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Sep 13 14:16:01 2008 +1000

    Fixed #1568 - createpackage.sh

commit 7ce902df27393821163b4200916baffb712f0d03
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Sep 12 09:13:50 2008 +1000

    Adjusted hpuxuseradd user provider to confine to HP-UX and fixed HP-UX user provider path regression

commit 8f1336f94e4f566e229efb64be168530e402741b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Sep 12 08:44:41 2008 +1000

    Fixed #1566 - changed password property of the user type

commit d4d3213a4a8bc7be93a0adb85bf29b5739c7a81d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Sep 10 13:48:52 2008 +1000

    Fixed debug messages in package type - thanks to Todd Zullinger for this fix

commit b88df5ab32cc3e58b2e06d06c1f1694cfca1cba6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Sep 9 07:30:49 2008 +1000

    Sync with latest Fedora/EPEL specfile

commit 0705dfb462b145ac9e4faafc517bbb833f2c81b9
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Sep 6 09:52:26 2008 +1000

    Fixes #1455 - Adds HP-UX support for user type

commit e15d316cbb9ee33bfbed4b29649f36a97490e985
Author: Nigel Kersten <nigelk@google.com>
Date:   Wed Sep 3 10:28:17 2008 -0700

    Fixes #1551 puppetmaster.freshness xmlrpc call returns incorrect type

commit 8fe033820875966106ab3807aa34a1cafc85cbd2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Sep 5 11:39:57 2008 +1000

    Fixes #1554 - Fix exception for undefined hostname

commit ac5db5ec115455e54090542870847820357739a2
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Aug 29 01:40:47 2008 -0700

    Removing the old, obsolete recursion methods.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a9b7f0881aed04fbbca59947cab0ffeedda6d2f8
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Aug 29 01:29:20 2008 -0700

    As far as I can tell, recursion is working entirely.
    
    W00t!
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b69c50ccd3a491b6c4a8d456af2fe6f9cac45eae
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Aug 29 01:25:17 2008 -0700

    Removing insanely stupid default property behaviour.
    
    Basically, I had the [] method on resources returning
    the 'should' value if one was available, but if one wasn't
    available, it would retrieve the current value from the resource.
    This resulted in all kinds of completely ridiculous behaviours.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 45f465bc98aa87e1066a9d748dbb6bfaaef61476
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Aug 29 00:48:40 2008 -0700

    Source recursion is nearly working.
    
    It works, but you have to run it multiple times,
    and there are still a couple of strangenesses with the
    parameter values, such as the mode not getting set on
    the first run.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 93fc1139550bd97a11529b812e77ac0fc00c6079
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 28 23:28:22 2008 -0700

    Files now use the Indirector to recurse locally.
    
    I don't yet have integration tests for remote recursion
    or link recursion, but we're nearly there.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bd1163a339ff66dbb9a50a1cb13f6320cb056cc3
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 28 23:09:52 2008 -0700

    Fixing filesets to allow nil ignore values.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5da26067cc76ad318359d9287ab1267d7a6c5b0b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 28 22:48:01 2008 -0700

    Recursion using REST seems to almost work.
    
    I think this is the bulk of the work, I just
    need to write some integration tests to hunt down
    a couple of small issues.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 81cc9bf4892170e2e36a7b0b302a74f88c6825d1
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Aug 29 12:17:04 2008 +1000

    Fixed #1533 - changed permissions for man directory

commit 41dc1fac33cbb3938a5dc5f42f5b841a0a734c27
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Aug 27 20:31:38 2008 +0200

    Runit service provider
    
    This provider manages daemons running supervised by Runit[1].
    
    It tries to detect the service directory, with by order of preference:
         * /service
         * /var/service
         * /etc/service
    
    The daemon directory should be placed in a directory that can be
    by default in:
         * /etc/sv
         * /var/lib/service
    
    or this can be overriden in the service resource parameters:
    service {
      "myservice":
           provider => "runit", path => "/path/to/daemons";
    }
    
    This provider supports out of the box:
         * start/stop
         * enable/disable
         * restart
         * status
    
    [1]: http://smarden.sunsite.dk/runit/

commit aae0793eb3632c6dea56f5d573d201c475786f8c
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Tue Aug 26 20:47:10 2008 +0200

    Daemontools service provider
    
    This provider manages daemons running supervised under D.J.Bernstein
    daemontools.
    It tries to detect the service directory, with by order of preference:
     * /service
     * /etc/service
     * /var/lib/svscan
    
    The daemon directory should be placed in a directory that can be
    by default in:
     * /var/lib/service
     * /etc
    or this can be overriden in the service resource parameters:
    service {
     "myservice":
       provider => "daemontools", path => "/path/to/daemons";
    }
    
    This provider supports out of the box:
     * start/stop (mapped to enable/disable)
     * enable/disable
     * restart
     * status
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit ee1a85d61bb6ee9b31ae4881adc0c136a99e42ed
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 27 23:27:22 2008 -0700

    Mostly finishing refactoring file recursion to use REST.
    
    We have the majority of the work done (and it's a *lot* less
    code).  We just have six more tests we need to implement the code
    for.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7c68fdb46802dbd3a57f5f7be3333ed6feacad45
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 27 21:53:00 2008 -0700

    Fixing FileServing::Base so that it can recurse on a single file.
    
    It was throwing exceptions if you tried to use it on a file
    instead of a directory.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ac419872e273dc31635f042bb1a23c7785dc227a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 26 23:29:04 2008 -0700

    Fixing the terminus helper so it correctly catches options passed from clients via REST.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit be4c0e7fbe5e652ec1d49eab2fdc7a5fbbc486f3
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 26 23:12:03 2008 -0700

    The file source is now refactored and uses REST.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 44c6a529d0a84d844b21f96d64de674487238f53
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 26 23:11:39 2008 -0700

    Removing mention of an obselete class.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 82714246b913087292f04190e03a885c99723f52
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 26 22:06:02 2008 -0700

    One third done refactoring file[:source] -- retrieve() is done.
    
    It now uses the FileServing::Metadata indirection and
    is about 100x cleaner to boot.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 98ac24a9e155b1d3c2358da3e94610071b0e3cfb
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 25 21:50:13 2008 -0700

    Adding a "source" attribute to fileserving instances.
    
    This will be used to cache the source that was used
    to retrieve the instance.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6e43c2d1179aed5ae92111afee1d3b868cf5f0a2
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 25 21:31:37 2008 -0700

    Aliasing RSpec's :should method to :must.
    
    This allows us to still use the method in the RAL,
    where 'should' is already taken.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8b45d13ab28837caf3bb09cc1c90ab61974bf4db
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 25 18:00:42 2008 -0700

    Adding automatic attribute collection to the new fileserving code.
    
    Basically, this just includes a consistent method for collecting
    info (either content or metadata) and then calls that method
    when returning instances via the indirector.
    
    It's such a large commit mostly because of small changes in the normal
    code and large changes in the testing to accomodate those small changes.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6ed8dfaf7c0cf091dca0374de310f524b0a033cc
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 25 17:43:35 2008 -0500

    Adding the content writer to the content class.
    
    Also choosing a fully qualified fake name when creating
    content instances from raw content.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 92e144b3051ebd177c034e692a59162b3902e128
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 25 17:35:28 2008 -0500

    Fixing a test in the module_files terminus
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 151a54ff7ac69aa2fa1708188ad75e444158e8a2
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 24 21:17:15 2008 -0500

    Causing format selection to fail intelligently if no suitable format can be picked.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit deda6465f50b582f3b8c77204965db331ba81faa
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 24 21:00:55 2008 -0500

    Removing the last vestiges of the 'puppetmounts' protocol marker.
    
    I created this when I first designed the fileserving
    Indirection hooks, and it's unnecessary.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 30dea6839b0360e2fabbeb833e6c2b8658d3f53c
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 24 20:54:47 2008 -0500

    Adding a 'plural?' method to the Indirection::Request class.
    
    I'm in the process of creating a new service for handling
    all of the http calls, including generation of the RESTian
    URL.  This service obviously needs to know whether the url should
    be plural or singular, and the request knows the method in use,
    so it can easily answer the question.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 40e76fb83ef466425fec736abbf1913a6426bf01
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 24 20:53:25 2008 -0500

    Fixing the rest backends for webrick and mongrel so the get the whole request key.
    
    Also adding the Content work necessary to demonstrate that this is actually
    required.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8ea25efd90b4d2281db12076cbaab3f766cac8b4
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 24 14:42:48 2008 -0500

    Refactoring how files in FileServing are named.
    
    Previously, they retained some concept of the URI used to
    find them, and this uri was the primary key
    for the FileServing instances.  This key was unfortunately
    completely useless, as evidenced by the fact that it was never
    used except to test that it worked.
    
    I've modified the FileServing instances (through modifying
    the Base class) to use their local path as their key, and they
    no longer care about the URI at all.
    
    This commit is mostly about fixing the code that interacts with
    the instances to use this new API.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 550e3d6ad5aadfe99fc1e10efa77cc193d3a9df3
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 24 14:11:48 2008 -0500

    Finishing the rename of FileBase => Base.
    
    Git did something really strange, in that it apparently didn't
    add the new base.rb files even though I used 'git mv'.
    
    Also fixing some other failing tests I hadn't previously tracked
    down because of the magical tuple of autotest's suckiness and
    my laziness.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 90e70227b0bb7cfd104ae34de8f7c2b7250edb09
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 24 14:10:39 2008 -0500

    Adding weights to network formats, and sorting them based on the weight.
    
    This way the new hackish RAW format will only ever be used if it's
    specifically chosen.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5a195e0c06daa2bfa008cfd94c660e50b9d0ae56
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 24 13:32:33 2008 -0500

    Renaming FileServing::FileBase to FileServing::Base.
    
    Also fixing a set of tests I broke last night.  I'm looking
    at replacing autotest with rspactor, because my FSEvents hack
    to autotest means it's harder for me to rerun autotest.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 3101ea23e556081fe38502218034f02aafe0c5bf
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 24 13:02:16 2008 -0500

    Adding a hackish raw format.
    
    As the comment in the file says, we don't really have enough
    data to know what a good design would look like, and I think
    this format will be a bit of a one-off, so I'm just throwing
    up some barriers to keep people from doing silly things with it.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 89a3738d2b0678ae8fb1e7191e01caf6c5ece1f9
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 24 12:18:42 2008 -0500

    Adding suitability as a requirement for a format being supported.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a0bda8532f5e1e9f5bb29eb92f389383ae0857d5
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 23 22:00:19 2008 -0500

    Removing the yaml conversion code from FileContent.
    
    Also fixing some integration tests that were failing
    because of the change to the terminus selection code
    for file serving.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6335b143a312481aaa200f71cd25dffd4f88c8ae
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 23 21:59:14 2008 -0500

    Causing the Indirection to fail if a terminus selection hook does not return a value.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1104edb13926a53ee90685d96700cb03eaeca509
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 23 21:20:21 2008 -0500

    Correcting whitespace in a test
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2f224c9fc97cf632ee8a551180aaa08e263d77df
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 23 19:02:43 2008 -0500

    Spell-correcting a comment
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bcd40fb58338e44d46452c47c0ef150a96a5f829
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 23 18:36:03 2008 -0500

    Cleaning up an exception.
    
    Only adding option information when options are present.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0a05720e6c4bd0875fc03b53263ff26c6fe14de2
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 23 18:25:18 2008 -0500

    FileServing Configurations now expect unqualified files.
    
    This fits in with the fact that the indirection requests split URIs
    and set the request key to an unqualified path rather than
    a fully-qualified path.
    
    The whole system is unqualified end-to-end, now, except when you're
    specifically asking for a full, local file name.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 237b7b294bf90c87891964d01429bbdd42a92524
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 23 18:17:08 2008 -0500

    Fixing whitespace in docs of some tests.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 91b8252755c78dde752c2e06cf13ab0d757aad42
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 23 18:16:38 2008 -0500

    Fixing the fileserving terminus selection hook.
    
    It now uses the fact that the indirection request does
    URI parsing, rather than doing the parsing on its own.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit f5ba99fd24ce2e7cdba7c81153c46df14811d193
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 23 18:15:56 2008 -0500

    Special-casing 'file' URIs in the indirection requests.
    
    These just get converted to full file paths, since
    we know they will never pass over the wire.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a215abaef97ea1fb0187f46c5e6a880ff1d29036
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 21 23:09:27 2008 -0500

    Dividing server/port configuration responsibility between the REST terminus and the indirection request.
    
    Previously, the REST terminus did all of the configuration,
    but it required rewriting the request key if it was a URI
    because you can't have a uri in a uri (i.e., you can't use
    http://host/puppet://host/dist/file).
    
    Now the request parses the URI and sets host/port/key/protocol
    appropriately, and the REST terminus has its own overrides
    and defaults so that subclasses like certificate classes
    can provide specific values.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d1746054b8617271941e7307b2ecee0b61976818
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 21 22:41:01 2008 -0500

    Fixing a test that relied on hash ordering.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 5b9dd01326a61b9ae89ae978e29a8170f76deb5e
Merge: 7034882 b50e718
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 26 22:40:26 2008 -0700

    Merge commit 'turnbull/0.24.x'

commit 29ae8792321e083b2263e34d273addfc4818f859
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Aug 27 15:30:24 2008 +1000

    Fixes tests broken by 95aa085

commit b50e718490abe41f09e16e1edc0d8de93aac8bfe
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Aug 21 02:26:25 2008 +1000

    Fixed #1488 - Moved individual functions out of functions.rb into
    the lib/puppet/parser/functions directory. New functions should be
    created in this directory.

commit 5fb50918ad355116ba85bfe7304baf61a7c8da22
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Aug 21 17:48:08 2008 +1000

    Fixed #1457 - case insensitive match for error

commit ded94f7157f0a4a90f87b65dfd5f1f5e5cd76fed
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Aug 24 12:36:40 2008 +1000

    Removed spec color option for buildbot

commit 415663bb3ddbaa83c937c7acbf2babe7d30923da
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Aug 24 10:47:42 2008 +1000

    Added simple rake task for running unit tests

commit 557be9d4c5332cc6fde94e1119b8e725ef285234
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Aug 23 22:10:42 2008 +1000

    Added spec Rake task

commit 0d118a5f22e8f2c9f72b51e8848514d779c09d36
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Fri Aug 22 23:53:08 2008 -0600

    Fix leaking LoadedFile when adding templates to be watched

commit 5851061d8e6d1dded479b33f7a8da67a3346891c
Merge: 67387e2 7accb89
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Aug 23 08:10:16 2008 +1000

    Merge branch 'tickets/0.24.x/1506' into 0.24.x

commit 67387e285cb39993c891d7decac34952ea64dbdb
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Aug 23 08:08:00 2008 +1000

    Fixed #1506 - Removed storeconfig duplicate indexes

commit 7accb893d8b4a530aac7ccd402756afb0ce599bd
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Mon Aug 11 15:58:40 2008 +0200

    id column is autogenerated by rails as a primary key, there is no need
    to create an additional index on this column. This changeset contains the
    new schema and a migration.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 7034882fdfbd3846e77c518e43bdea1f9154e250
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 20 23:37:13 2008 -0500

    Adding parameter and URL support to the REST terminus.
    
    Previously, the server side correctly pulled parameters out of
    the query strings, but the REST terminus never passed them on.  It does
    now, at least for finding and searching.  It appears that at least
    WEBrick doesn't support parameters for anything other than forms
    and GET.
    
    I've also added the ability for the REST terminus to pull
    host/port information from the request key, if it's a URI.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 66c40b374d7315d11575d701ce195ce656abbeb7
Merge: c819042 c5fb092
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 20 23:45:02 2008 -0500

    Merge branch '0.24.x'

commit c5fb092720afefbf904822a5604b5b3520b5c194
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Aug 21 12:07:09 2008 +1000

    Removed reference to namespaces from --genconfig documentation

commit c8190421a351ed327361a5daca82441be39ce834
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 20 12:57:26 2008 -0500

    Fixing the String format (fixes #1522).
    
    The string format no longer provides any support methods,
    which means that I had to create to_multiple_s and from_multiple_s
    methods on the SSL classes.  I created them in the base class
    and tested them just in the cert class.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 78bc32d0153dd98fadae99dcd71d26fc97210d3c
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 18 21:51:27 2008 -0500

    Removing dead-end file work as promised.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a5ab52c628cae7ac9ed5ca1bd5de779944840802
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 18 21:50:59 2008 -0500

    Adding files temporarily, since I've decided this work is a dead-end.
    
    I'm merely adding these so that they're in the history if I decided to
    look at them again.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4f275b669b0336c6032204bfa9694fa6522eb267
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 20 12:11:52 2008 -0500

    Fixing #1514 - format tests now work again.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e20f02af4a93478c5b08b7681caa12cd72b4a3a6
Merge: d91d806 1729de1
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 20 18:38:37 2008 +0200

    Merge branch '0.24.x' of git://github.com/jamtur01/puppet into 0.24.x

commit 1729de17a939aa56ba22fbe6851fa60946ac04ed
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Aug 20 22:56:41 2008 +1000

    Updates to ext/puppetlast to support multiple hosts

commit b6609ee5f4e6bffc467da4f3f9623f22e9e07095
Author: Mark Plaksin <happy@usg.edu>
Date:   Thu Aug 14 16:06:54 2008 -0400

    Fixed #1508 - Add HP-UX package provider.

commit 3e482a27191d2f90e2e281ad19f3143034584f0f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 24 01:51:22 2008 +0200

    Updating the authors list for the gem spec
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e3971b9751141cd448a8197da024be43581f6dcd
Merge: 025edc5 2ec4e29
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 18 11:47:40 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	CHANGELOG
    	test/util/posixtest.rb

commit 2ec4e298c3274abc8eaad4230bca8d39a48d2e35
Author: Brice Figureau <brice@daysofwonder.com>
Date:   Mon Aug 11 10:52:50 2008 +0200

    Fix #1502 - abysmal storeconfig performance - part2
    
    Resource parameters whose values are a resource reference (ie require,
    notify...) where always DELETEd/INSERTed because the code comparing
    resource reference compared object instances instead of their values
    (since Puppet::Parser::Resource::Reference doesn't override == ), leading
    to storeconfig performance issues.
    The correct fix would have been to define == in Puppet::Parser::Resource::Reference
    but that might introduce some side effects I don't know.
    Hence, the fix introduces a local compare() method that knows how to
    compare Puppet::Parser::Resource::Reference.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit 9272df437c3cee6070f4e765bf61511cd85cb3a7
Author: Brice Figureau <brice@daysofwonder.com>
Date:   Mon Aug 11 10:49:20 2008 +0200

    Fix #1052 - abysmal storeconfig performance - part1
    
    Resources whose references are of the form:
    Main::Sub1::Sub2
    are extracted from the database under the form:
    Main::sub1::sub2
    
    Puppet then fails to match them against compiled resources of same
    references which are capitalized as they should, and
    tries to overwrite them on every storeconfig run, leading to tons
    of cascading DELETE/INSERT, hurting performance.
    
    Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>

commit f48a0ae140661dc14934c0a192c71687929b0624
Author: Brice Figureau <brice-puppet@daysofwonder.com>
Date:   Wed Aug 13 17:02:35 2008 +0200

    Fix #1510 - storeconfig fails with rails 2.1
    
    This is a workaround.
    Since rails seems to have difficulties to map associations to
    Puppet classes, we explain it carefully what to expect.
    
    Changelog

commit b1ad596ec0aa3158d70f84d5b1e002f972d3ec71
Author: AJ Christensen <aj@junglist.gen.nz>
Date:   Fri Aug 8 21:48:18 2008 +1200

    Add the -P/--ping option to puppetrun, fixes #1501
    
    Turns on the ICMP echo testing against the target host. Defaults to off.
    
    111111111

commit 6676b6b104e3f60dd14be18cbfb91b4cd96ec06e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Aug 14 00:32:30 2008 +1000

    Fixes #1274 - allow class names to start with numbers

commit d02f95cb608e1ee5d90ac06405e354cbc0000706
Author: mh <duritong@cronopios.org>
Date:   Thu Jul 3 12:08:46 2008 +0200

    Fixed #1394 - Added stored configuration clearing script to /ext

commit fb8cc533ad1da65de0b4769ab3b44112c9ff68c6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Aug 16 02:01:41 2008 +1000

    Fixed #1442 - replaced use of Facter for report titling with certname

commit 18dda20b4167cb24ecd0d8b2029aaabb60b79936
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Aug 13 10:06:28 2008 +1000

    Fixed $1456 - add proxy configuration to yum repo

commit ab4cb6a6acaa6f045bdceb93eb105617d42b23b2
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 12 13:24:35 2008 -0500

    Fixing #1447 -- Replacing Puppet::PackageError with Puppet::Error.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8a0cb16abd4c6a9cbf27d88593aa2b42a7375b94
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 7 18:53:02 2008 -0700

    Added tests for TemplateWrapper's use of Scope#to_hash.
    
    We should deprecate the method_missing stuff in 0.25.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 3ae7eca3928d5dd9d0c93e61ceedc38f60573eb5
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 7 17:52:26 2008 -0700

    Fixing an ldap connectivity test
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d3393b462f076ec868ac59baa56ae0e93e9a9f06
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Aug 8 18:24:37 2008 +1000

    Added CHANEGLOG entry for removal of interface type

commit 025edc5c3737f476119df4bab73ebdc68be19430
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 7 18:41:28 2008 -0700

    puppetd now uses the Indirected SSL.
    
    This means it now uses REST for certificate saving
    and retrieval, which is awesome.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 62202bf55723096d05a61efefae46ee98a2948dd
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 7 18:40:30 2008 -0700

    Adding 'require' statements as necessary for Puppet::SSL to work.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 86a718856f4ca3c67450159645307b3c542db799
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 7 18:40:06 2008 -0700

    Fixing the SSL::Host#waitforcert method.
    
    It now works the way puppetd needs it to, rather
    than the way I thought it would need to work.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a31c578e73ed76903c6382016e46b9d6aef34457
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 7 18:21:45 2008 -0700

    Adding logging when files are removed.
    
    This is currently mostly useful for puppetca.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 09ee814a8203c33c074a09e5a9802adc395ae309
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 7 18:16:01 2008 -0700

    Removing now-obsolete the wait-for-cert module.
    
    This functionality has moved into the SSL::Host class.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit cd314fa0531b0d71017e22b9db4cec2fc21c7e7c
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 7 17:44:45 2008 -0700

    Documenting a bit of a test
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 113d74aaa630f499c8b7989aac6680e22e8e38c8
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 7 17:39:13 2008 -0700

    Certificates now work over REST.
    
    All of the format work is done, they all
    support plaintext successfully, and I've got
    integration tests that demonstrate that it
    actually works.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2cad30a18c5e0e4fb93603ab422c290a62d45131
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 7 17:38:26 2008 -0700

    Caching the SSL store for the SSL Host.
    
    We were creating a new SSL store every time, which
    caused problems during testing -- it created
    an infinite loop when trying to create the
    store while looking up the CRL.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bfcdfe863bea8470052bc7a242987c1bed18a572
Author: Nigel Kersten <nigel@explanatorygap.net>
Date:   Tue Aug 5 13:43:02 2008 -0700

    fix terrible error with overwriting permissions

commit 014757047f23b85bb0e35d7a0c79efcec9178077
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Aug 6 05:26:27 2008 +1000

    Fixed #1457 - removed confine warning

commit 93fd55fdaa409020f18001ac436ddad9b6c491e4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 4 13:52:55 2008 -0500

    Enhancing formatting errors with class and format.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 6c80e0ff6ae5e69bccd46bb2bd6261b78626f01e
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 4 11:01:34 2008 -0500

    Making all certificates only support the plaintext format.
    
    None of them actually support yaml or marshal by default,
    and plaintext is easiest anyway.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c464bf21676c907642be3ad2c71b941318469325
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 4 11:00:57 2008 -0500

    Adding wait_for_cert functionality to the ssl host class.
    
    This essentially deprecates the CertHandler module.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c854dbe416939a930776405a5fa7ac87f84901d8
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 4 10:28:10 2008 -0500

    Adding a plaintext network format.
    
    Certs don't seem to support yaml, for some reason.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit fecdfbc9ac3d99ff76674f9093fc07830776a32f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Aug 1 11:16:24 2008 +1000

    A working script to create an OS X pkg out of the Puppet repository

commit 6a2e71dd5fe16abaa64a92255a1bc8b592d2500f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Aug 1 09:04:23 2008 +1000

    Fixed #1441 - Updated console colours

commit 404450a71581f1ac2a13ff9340992e4f999f3091
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jul 22 17:53:06 2008 +1000

    Add testing for the changes to resolve redmine #1427, where Kernel methods shadow
    variables that the puppet template should otherwise see.  Specific changes:
    
    * Added testing of the Scope#to_hash method, which returns a hash of name and
      value pairs in a scope or, optionally, in the scope and enclosing scopes.
    
    * Use member variables rather than methods in the function tests.
    
    * Fix up tests that fail once we move over to instance variables rather than
      methods: Puppet can no longer detect an undefined variable reference, so we
      end up failing any test that expected to get a parser error.
    
    * Several tests have manual checks introduced to simulate an end user manually
      writing the checks that used to be automatic, and others drop the validation
      that parsing fails when a variable is not in scope.
    
    * Added tests for legacy variable lookup and that the shadowing of local
      variables by Kernel methods is still in effect.
    
    Signed-off-by: Daniel Pittman <daniel@rimspace.net>
    (cherry picked from commit 5c5f315cceadc52203e53883b77bc01c1d7a2e7f)

commit 03c76deb60927375e9b35c74a903130930ffddf2
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Fri Jul 18 15:21:57 2008 +1000

    Expose all puppet variables as instance member variables of the template wrapper.
    This helps resolve redmine #1427, by providing a safe mechanism to access variables.
    
     * Implement Puppet::Parser::Scope#to_hash, which returns a hash containing all the
       variable bindings in the current and, optionally, parent scope.
     * Use that to set instance member variables into Puppet::Parser::Templatewrapper
     * Report the time taken for variable binding at debug level, to help identify any
       performance regression that is encountered in the real world.
     * Rename the @scope and @file members of the template wrapper, to avoid clashing
       with a scope variable exposed within puppet.
    
    Signed-off-by: Daniel Pittman <daniel@rimspace.net>
    (cherry picked from commit ba220b41e4f509f2632e2664d332e49b20a70ea7)

commit 13069eca1a3e2b08f5201462021d83e2e0a81018
Author: Daniel Pittman <daniel@rimspace.net>
Date:   Tue Jul 29 15:52:23 2008 +1000

    Ensure that we consistently use either string #{} interpolation or String.%
    interpolation, not both, to avoid issues where a #{} interpolated value
    contains a % character.
    
    Signed-off-by: Daniel Pittman <daniel@rimspace.net>

commit 818599db7dc6210cc015d8888d119726eb6c3323
Author: Marcel Haerry <haerry@puzzle.ch>
Date:   Mon Jul 28 16:02:10 2008 +0200

    lazy load latest package definitions with yumhelper 2.2
    
    I have to admit that the version 2.1 one of this patch
    was not good tested from my side and it simply didn't work.
    I'm very sorry for that.
    
    However I did now extensive (manual) testing and it works
    the way it should for me.
    I can confirm that yumhelper isn't called if there is no
    latest ensure and it is called if there is at least one.
    
    So correct commit message:
    
    After discussion on the list, this is the new version for
    lazy loading yum latest package versions. It is implemented
    mainly in the way that Luke proposed. However it stores
    the latest informations in the variable latest_info so
    the latest method didn't get too hackish and could nearly be
    left like it was before.
    + fixed copy&paste regression, so :latest_info is not anymore
    on the class side
    + fixed package iteration and ensure usage.

commit 469c5fea8fccf9427217ce0c84195184117c2341
Author: Nigel Kersten <nigel@explanatorygap.net>
Date:   Thu Jul 31 12:17:15 2008 -0700

    Feature #1476: Allow specification of --bindir --sbindir --sitelibdir --mandir --destdir in install.rb

commit 2a3d195402900aa31843f7a7ff78026409cf43f5
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Aug 1 07:11:21 2008 +1000

    Specs for yaml indirector .search - I'm still learning!
    
    Updated, I was calling .base myself instead of the actual string

commit c97389d5f6748c05b88f6461b87b4d21a273ab00
Author: AJ Christensen <aj@junglist.gen.nz>
Date:   Wed Jul 30 11:36:43 2008 +1200

    Made puppetlast work on 0.24.5 by using the YAML indirector

commit 5c53617aba31abaa7becd9725155b570fac2a90d
Author: AJ Christensen <aj@junglist.gen.nz>
Date:   Wed Jul 30 11:33:18 2008 +1200

    Added a search method to the YAML indirector.
    
    This performs a glob on the YAML directory, and instances everything it finds

commit 482489ad21e20ee3275185962f76c6a0c9a88328
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Aug 1 06:59:23 2008 +1000

    Revert "Fixing puppetlast to make it work with 0.24.5 / 0.25."
    
    This reverts commit 971af69b7388cf5155bb124246f2a697578cc6e9.

commit 8457856c0abb58e0521532148b368be1a8b4790e
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 31 12:40:06 2008 -0500

    Fixing a group test that failed after merging 0.24.x
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c2c8941de5973137d631c1f90f7c07e54cc89e3d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 30 23:19:08 2008 -0500

    Correctly handling when REST searches return nothing.
    
    We return a 404, which the client can correctly handle.
    
    That wasn't the actual problem causing failing tests, of course --
    the problem was that one side of our stub was autodetecting
    marshal, and the other side was forcing yaml, which strangely didn't
    work.  It was only happening with searching, though, not finding et al.
    
    The 'search returning nil' problem was a bit of a red herring but
    needed to be fixed, too.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 186f3cd34fb7fa3bc1ff683a5178444526259f92
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 30 22:22:57 2008 -0500

    Removing an obsolete method from the rest indirector
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 29d704c3f7d69f04e27aae69f4c1ef9dfc979972
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 30 22:19:01 2008 -0500

    The REST formats are now fully functional, with yaml and marshal support.
    
    This is the last of the REST plumbing.  The only flaw right now
    is that the formats are managed by name rather than by
    mimetype, which I'll fix next.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c55acee2264b126541ea26d49e1994b263568548
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 30 11:09:07 2008 -0500

    Adding some support for case insensivity in format names.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8033bd4b7398785048cf789698c1b341049c5983
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 30 11:04:01 2008 -0500

    Moving validation from FormatHandler to Format.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 3405841140ad118a500f44b6d35c9977b5eca473
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 30 11:00:15 2008 -0500

    Moving functionality out of the FormatHandler into the Format class.
    
    The Format class now takes care of deciding whether it's supported,
    and it also does method dispatch to classes and instances as necessary.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0bbac8dda9342b28782ae1218cdb891f5a5bfa54
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jul 30 22:03:58 2008 +1000

    Fixes #1417 - whitespace in ssh_auth_key provider

commit 43a6911f656178efb5c2236c8b890127ab0880d3
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 29 19:11:58 2008 -0500

    Searching again works over REST, including full content-type translation.
    
    The format management is a bit clunky right now, though, so I
    need to fix how they're managed.  Some of these tests fail,
    but 99% of the remaining work is in other classes so I wanted
    this as a discrete commit.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1064b5bdcd207efc20ae4ed0fd509364402964f9
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 29 12:13:34 2008 -0500

    Fixing the format_handler tests so that they clean up after themselves.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 167831ee3b34eb42b6ca45fcbde2d66a015d90fa
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 29 00:55:10 2008 -0500

    Fixing a test I broke while rebasing
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit e78b1a642050c94bf7d3027048318613505cdaed
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 28 18:51:47 2008 -0500

    Fixing a test to be order-independent.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 352e2d0fb74fd7226ecac06b6108e672c221baa1
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 28 18:50:24 2008 -0500

    Adding rudimentary support for directly managing formats.
    
    We have a simple Format class, and the FormatHandler
    module is responsible for managing its instances,
    including providing access by mime type or name.
    
    It will soon replace some of the testing functionality
    in the FormatHandler module, but for now, it's just
    there as a name => mimetype converter, which makes it
    seem a lot like overkill.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 55e29444c15fe2f810b3d5332605f27ac5942fda
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 28 18:05:41 2008 -0500

    Adding support for rendering and converting multiple instances.
    
    It's a touch hackish in terms of design, but it should work,
    and it's the last major piece of plumbing necessary for REST support.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4632cfd9e6ce0ff59dfa7562a02a1ae3f14488d4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 28 11:23:08 2008 -0500

    All error and format handling works over REST except searching.
    
    Searching operates on multiple instances, and I have not
    yet figured out how we should handle converting multiple
    instances to a given format -- we can't use the instance
    method (e.g., to_yaml), because it would be on Array
    instead of the class we're operating on.  That would work
    for yaml, but not, for instance, for xml.

commit e3350caeec3a662b0b92ec2dee372563a493fa11
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jul 26 22:46:26 2008 -0500

    Drastically simplifying the REST implementation tests.
    
    Nearly all of the tests are now written just once, in
    the Handler module.  The Mongrel and Webrick tests just
    validate that they provide the interface and how they do
    so.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b3914c367f470dd37a846d01207228d6ded40c6d
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jul 26 22:45:19 2008 -0500

    Removing an apparently-obsolete hook from the handler
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 739a87152f7d7fbab714de76ea846991a4cd6e45
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jul 26 22:05:00 2008 -0500

    Adding explicit tests for the HTTP::Handler module.
    
    This will help to remove a ton of duplication among the
    Mongrel and Webrick tests, and it also helps make the
    interface between the servers and the handler more explicit,
    and thus more maintainable.
    
    I still need to switch all of the servers over.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0ce92f1e0245bc3218c4ef34c9d218f586407636
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 22 19:55:53 2008 -0500

    The REST terminus now uses the content-type and http result codes.
    
    Things are currently broken -- this is a checkpoint commit
    so that it's safe to make mistakes and will probably be
    removed.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>
    
    The REST terminus now completely does error handling and serialization.
    
    The Integration tests are still completely broken.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>
    
    The Mongrel and Webrick rest handlers no longer yaml-encode exceptions.
    
    They just store the exceptions in plain text in the message body.
    
    They also set the status to 400, rather than 404.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a4170ba27bdda9e7aab8dfaf78f81781c95106f9
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 21 17:19:45 2008 -0500

    Removing a now-obsolete pending test.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bf5b086ca7fb89f941873e95feae2fc2b259037a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 21 17:19:17 2008 -0500

    The REST terminus now provides an Accept header with supported formats.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 1f15725263812be347c42a2ea3777fee7b2129c9
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 9 19:07:47 2008 -0700

    Using the FormatHandler in indirected classes automatically.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>
    
    Changing the FormatHandler#render method to render_to
    
    Signed-off-by: Luke Kanies <luke@madstop.com>
    
    Adding the ability for the format handler to query supported formats.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0e7e16d19b12cf7748215d3dd3adf5190fb90d20
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 9 19:07:30 2008 -0700

    Adding a FormatHandler module for managing format conversions.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 40375a8fc34dbd85d87f507ba72c7394b25b7271
Merge: 93eeff5 8f5800f
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 29 00:46:11 2008 -0500

    Merge branch '0.24.x' into merging
    
    Conflicts:
    
    	test/ral/type/filesources.rb

commit a7721108dfdf3a6218323e1faf4e5bb4f8af0187
Author: David Lutterkort <dlutter@redhat.com>
Date:   Mon Jul 28 10:42:11 2008 -0700

    Sync with latest Fedora/EPEL specfile

commit 97987a705da7b8126569b1f5b7c3676ad0220f66
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 29 08:07:56 2008 +1000

    Feature #1241 : Improve performance of group lookups

commit fe99828511afbf701aa03f8dbf6d725020539602
Author: Nigel Kersten <nigel@explanatorygap.net>
Date:   Thu Jul 24 19:40:50 2008 -0700

    Bug #1448: Puppet CA incorrectly writes out all certs to inventory .txt on each certificate signing

commit 971af69b7388cf5155bb124246f2a697578cc6e9
Author: AJ Christensen <aj@junglist.gen.nz>
Date:   Sat Jul 26 16:50:48 2008 +1200

    Fixing puppetlast to make it work with 0.24.5 / 0.25.
    
    Tidied up some of the code a little

commit d91d80658e6f38ca9e607e53e20bbb41e0789bbd
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 24 01:51:22 2008 +0200

    Updating the authors list for the gem spec
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ce964ecb6d6a38cb7fb9f0b13a7e6b2eb4c381c3
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 24 01:20:17 2008 +0200

    Updated to version 0.24.5

commit a7df4eb484910b19734dd667aaabdb10797becdf
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 24 01:20:17 2008 +0200

    Updated to version 0.24.5

commit 4dffaf3ec55de8a40276fb44516f2dbb2b90fc08
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 24 01:20:03 2008 +0200

    Reverting the version so my release process works
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit aac7dd1cc2da1d90218b54ca06a5703923b63fa9
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 22 18:21:34 2008 +1000

    Incremented versions

commit a485370fdedee177ece616a3c2ea40d5d6550259
Merge: bfcd626 8f5800f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 22 16:16:30 2008 +1000

    Merge branch '0.24.x' of git@github.com:jamtur01/puppet into 0.24.x
    
    Conflicts:
    
    	lib/puppet/provider/service/redhat.rb
    
    nothing to commit (working directory clean)

commit bfcd62638365b1e6f4e63ea8ae1be4dfc724e5da
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 22 16:13:48 2008 +1000

    Fixes #1445 and #1426

commit 8f5800f0608dff46407cb5f23ee73f314fe051e8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 22 16:00:54 2008 +1000

    Fixes #1445 and #1426

commit ff36832ec1837f300e57bfd37ca877c356e24a8b
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 21 13:58:33 2008 -0500

    Fixing the renaming code to skip missing directories.
    
    I couldn't get this to fail in a targeted regression test,
    but if it's not working, it causes a failure in the webrick
    tests.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8c2478b08a2cc196668cbadf8a4840a24fc61488
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 21 13:20:47 2008 -0500

    Fixing puppet_module -- it needed the same node interface change.
    
    I wonder if anyone's actually using this...
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d9aa5ab68fb3196f5db526050c440c470b55a5f6
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 21 13:16:08 2008 -0500

    Fixing a cert test to pass on Darwin.
    
    Darwin has a case-insensitive FS, so the test was failing
    because it was specifically testing case sensitivity.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 686ba4d4c21f6f1e073bd845492f2fe3cb4837a2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jul 20 16:11:56 2008 +1000

    Revert "Merging fsweetser's selinux patch against 0.24.4"
    
    This reverts commit f16da4250c16aeab932a81a349df059c69d7ee23.

commit f16da4250c16aeab932a81a349df059c69d7ee23
Author: Brett Lentz <wakko666@gmail.com>
Date:   Fri Jul 18 10:05:02 2008 -0700

    Merging fsweetser's selinux patch against 0.24.4

commit a47fed41562443bb124ce64513208f49b67654d4
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Fri Jul 18 10:55:03 2008 -0600

    'Fix' broken tests related to missing source raising
    Issue 1437
    In two cases, I removed the assertion that caused the failure.
    In one case, I changed the assertion to expect an exception.

commit 238b8d7f0a16eda971409d7423dc1f04cf0e2a34
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 18 15:30:42 2008 -0500

    Fixing #1438 -- mongrel and module tests now pass.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ebb219e496682862ac98d382afe014cf1c763f2f
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 18 17:51:25 2008 -0500

    Fixed all of the fileserving termini so they use indirection requests.
    
    This looks like a much larger commit than it is -- it doesn't change
    any behaviour at all, it just adds some integration tests (which expose
    the problem) and then switches from an ad-hoc api to a request-based api.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit d8937acb8c9b108e61330cbac703a17b2eaba9b3
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 18 00:54:59 2008 -0500

    You can now select the encoding format when transferring the catalog,
    with 'yaml' still being the default but 'marshal' being an option.
    This is because testing has shown drastic performance differences
    between the two, with up to 70% of compile time being spent
    in YAML code.  Use the 'catalog_format' setting to choose your format,
    and the setting must be set on the client.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a0fa09f6ee562dd1b61fe56dd4b914419d641986
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 18 00:12:01 2008 -0500

    Revert "Fixed #1201 - all external node attributes are converted to strings."
    
    This reverts commit ac7f59618a80b6a4aac777f6184e7fa6a0614079.
    
    The reason for this revert is that the problem never really existed;
    Ruby's true and false are always used unless you quote them.

commit 8f8ce60819b8c4b3c6609fd9cc485f8322561469
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 17 12:30:33 2008 -0500

    Fixed #1431 - Provider confines must now specify similar tests in one call.
    
    I.e., you can't do confine :operatingsystem => %w{a b} and then
    confine :operatingsystem => %w{b c}; you'd need to do them in one command.
    This now-obsolete behaviour does not seem to be used anywhere.
    The fix for #1431 is actually just removing the tests that exposed
    this change; the change happened when I refactored how confines work.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 7fa7251e30dfefc95dda6ef82181d4346f36880d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 16 22:00:38 2008 -0500

    The mongrel-related tests now run without mongrel.
    
    Here were the main changes necessary:
    * Fixed the class loader so it only loads mongrel if it's available.
    * Fixed the test runner to skip example groups contained in non-runnable
      example groups.
    * Fixed the Mongrel tests to use quoted class names instead of constants,
      since the constants themselves would be absent.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bdbd992a6f5ff9628682179639923214d09a780c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 17 13:08:15 2008 +1000

    Updated /spec/unit/rails.rb test

commit de6aec6e37edb9c575f9223686da03cea4063ad7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 17 11:12:35 2008 +1000

    Fix Ticket 1426 - services on redhat are restarted again
    
    as far I see there have been a regression while refactoring the redhat service provider to user /sbin/service. This commit fixes this bug (1426) and service restarts are working again on redhat based systems.
    There are no tests, as I couldn't figure out how that should be tested. It seems that some restart logic is already tested, however it looks like not every single kind of provider is covered by tests, nor I see at the moment how I could do that.

commit 0a0fcafa3e2405aa18ecc62d1e6dc69bbd9883a1
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 17 11:05:01 2008 +1000

    Fixed #1414 - Return code from waitpid now right shifted 8 bits

commit 61b9bcd26fe39502d0de1f876a8293e54f63b1c7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jul 16 10:31:36 2008 +1000

    Added Changelog entry for new auth_key type

commit 65b9869362cd39f20609abb93729cb0c3977f0cf
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 15 17:15:05 2008 +1000

    Further moves from the examples directory and ext directory

commit 4ce7159baba4c637867c91519b5a3b16627dfca5
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Mon Jul 14 19:54:52 2008 -0600

    Fail instead of log when rescuing remote file connections
    
    Issue 1397
    
    one line fix, very simple

commit 4c5293b837807f61002365114fd7004d2f74ad57
Author: Francois Deppierraz <francois.deppierraz@camptocamp.com>
Date:   Fri Jul 11 14:39:52 2008 +0200

    Fix #1409, Move path expansion from the type into the provider
    
    This avoid exceptions during type instanciation when a user does not yet exist.
    The drawback is that we cannot use generated resources anymore and have to
    mkdir, chown and chmod directly in the provided which is somewhat hackish.

commit 80436550a1e3040399e410be3edf7c44d29fc320
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 9 17:41:21 2008 -0700

    Fixing #1408 - --loadclasses works again.
    
    The problem was that the mechanism I was using for
    passing the node to the compiler was conflicting with
    the Indirector::Request's method of handling node
    authentication.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 605d760dd72b7b6bd3fd54e9f6c3ffacb1b9ee52
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 10 19:52:26 2008 +1000

    Moved debian to conf and updated examples directory

commit d25c2b282cc4cd703bba3d2457f93431098ddc85
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 9 10:29:45 2008 -0500

    Fixed #1407 - allowdupe is now a boolean group parameter.
    
    This just fixes a regression.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 9eb9affe11b4dbe69c7cd55aff28f39dffde27e8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jul 9 09:29:51 2008 +1000

    Fixed #1368 - updated Red Hat init scripts

commit 93eeff59d807261ed154cc104e318ae604602430
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 8 15:03:53 2008 -0500

    Fixing the user ldap provider tests
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit c1dc92b9a14c04096e0bed0f2c4acc4dfe1ed7d2
Merge: b0febd2 edf99c5
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 8 15:03:13 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	CHANGELOG

commit c7dc73f272c1e004ff1b7c806d5f47460b6bfe6d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 8 14:57:20 2008 -0500

    Fixing the user ldap provider tests
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit edf99c508dabb58342eeff251ad5701d2755426d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 8 23:42:47 2008 +1000

    Added message referencing ReductveLabs build library

commit 6ff9246e44dfd58e4e9e26047487ebb061bfc041
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 8 09:03:47 2008 +1000

    Fixed #1396 - Added sha1 function from DavidS to core

commit d899264b8aa250676f1d3f91d2df395741a6d22b
Merge: 56525be 19b76c7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 8 08:54:59 2008 +1000

    Merge branch 'tickets/0.24.x/1401' of git://github.com/lak/puppet into 0.24.x

commit 56525beb26d8371533a17667e6ebcae0cda9a6f6
Merge: 1fe0660 667fac1
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 8 08:53:42 2008 +1000

    Merge branch 'tickets/0.24.x/1226' of git://github.com/lak/puppet into 0.24.x

commit 1fe0660f6b468b8637ac60cd73a033e7726ef838
Merge: 0922c3b c751e4e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jul 8 08:43:54 2008 +1000

    Merge branch 'tickets/0.24.x/1272' of git://github.com/lak/puppet into 0.24.x
    
    Conflicts:
    
    	CHANGELOG
    	spec/unit/provider/user/ldap.rb

commit 19b76c7910f1ee92ee00b7d746e5bc8f15ed59fe
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 7 17:21:03 2008 -0500

    Fixing #1401 - integration tests now work regardless of the yamldir.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 667fac18cc3682374de991bb740ae834d8c17bee
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 7 17:11:59 2008 -0500

    Fixed #1226 - Gems can now specify source repositories.
    
    Added tests for the bit that's changed here (and caught
    a couple of bugs in the original patch).
    
    This is all a modification of Sam Quigley's work.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 21d49578376b4adcf29e08b50cc14457bc4dcb26
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 7 16:42:12 2008 -0500

    Correct whitespace
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 4762b525e2840f3b371b765fa479e46877052357
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 7 16:37:00 2008 -0500

    Moving the gem test to the non-ral directory
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 71f4b02f1d3fab7ad10c6961405b0e94721e4031
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 7 16:34:53 2008 -0500

    Importing Sam Quigley's work to enhance gem support for sources.

commit c751e4eef508ab3cf9466dcb45479fced5d3e4be
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 7 14:58:28 2008 -0500

    Fixed #1272 - ldap group names will be converted to GIDs.
    
    Note that this only looks up ldap groups, at this point; if you want to set an
    ldap user's primary group to a local group, you have to specify the GID.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 0922c3b0217e1723e1dfc968a7c8de2860361369
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 7 10:46:16 2008 -0500

    Fixed #1399 - the ldap user provider knows it can manage passwords.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit b0febd263c0cb8e61d512898f7c79868ea77e619
Merge: df528a6 81be1c5
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 4 22:14:37 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	lib/puppet/util/settings.rb
    	spec/integration/defaults.rb
    	spec/unit/node/catalog.rb
    	spec/unit/type/interface.rb
    	spec/unit/type/ssh_authorized_key.rb

commit 81be1c5c3f85f514505e99fab5b8a2b2ae6fbec8
Merge: 083f4ca 9d69b3f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jul 5 10:21:36 2008 +1000

    Merge branch 'refactor/0.24.x/transaction_changes' of git://github.com/lak/puppet into 0.24.x

commit 083f4ca7862fbde5cb6fb5562be10f13b66d9250
Merge: f4201a2 196494a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jul 5 10:20:54 2008 +1000

    Merge branch 'tickets/0.24.x/1231' of git://github.com/lak/puppet into 0.24.x

commit f4201a2b0a754ab6f276f4bf6e4fe7a976a1721e
Merge: 84b5665 8865bdf
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jul 5 10:18:42 2008 +1000

    Merge branch 'ticket/0.24.x/1067' of git://github.com/littleidea/puppet into 0.24.x

commit 196494a63eafc495224c1bfea933740fad7d76f0
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 4 17:33:12 2008 -0500

    Fixed #1231 - Exceptions during startup should now be clear.
    
    This will often result in duplicate information, but at least
    the information will now always be there.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 9d69b3fd12f90ddead7b6a3392395fbe4e901d9b
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 4 16:32:04 2008 -0500

    Testing and simplifying the Transaction::Change#backward method.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 61ec332144ad794fae80a16feac543afc014a5f9
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 4 16:06:02 2008 -0500

    Removing the Transaction::Change#transaction accessor.
    
    As with Events, this was never used (beyond being
    assigned), so I've gotten rid of it.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2863df288150da87a58ce4d938bbcf9a5d841f43
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 4 15:35:18 2008 -0500

    Refactoring the Transaction::Event class.
    
    The class had a 'transaction' accessor that was assigned
    but never used, and it is simple enough that it needed
    direct arguments rather than named arguments.
    
    The rest of the code is changing the other classes that use
    Events.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit a37a7845073ef0b0923549364cbac5e0e39e3194
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 4 15:13:53 2008 -0500

    Adding tests for the Transaction::Event class
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 31ffeabad92338d317c3193d50e8dd9a1a78977c
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 4 15:05:29 2008 -0500

    Adding tests to the Transaction::Change class.
    
    There's a small amount of refactoring here, mostly
    removing code that appears to not be used at all.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 8865bdf112b33660a3e41b03f57d2575809e3cb4
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Fri Jul 4 08:24:14 2008 -0600

    file object creation should fail if source is not present
    
    removed described? logic from insync? in ensure.rb and source.rb
    
    raise in source#retrieve if the source is not found

commit 73c06c05aec8834b6fdebac107fb289575779020
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 3 18:50:56 2008 -0500

    Renaming Puppet::Event to Puppet::Transaction::Event
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 84b566590fe05e6c390127d8e85dca323dd949bd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 4 09:40:01 2008 +1000

    Updated test/ral/type/sshkey.rb test

commit 5ef89790eb30bc61af4d6f8a429af316aa0a3702
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 4 09:13:50 2008 +1000

    Removed debugging from lib/puppet/util/ldap/connection.rb

commit 5020938b4149566a487f02e6fa995d99daaa6b42
Merge: f462617 2279acd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 4 09:06:40 2008 +1000

    Merge branch 'ticket/0.24.x/1391' of git://github.com/littleidea/puppet into 0.24.x

commit f462617295c6b2ae4e6d2ba3b8e73f7fc5189983
Merge: 32d09e1 bd3f8e3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 4 09:04:20 2008 +1000

    Merge branch 'tickets/0.24.x/1240' of git://github.com/lak/puppet into 0.24.x

commit 32d09e1915f7a17fb15fd22d47c5beb30d303272
Merge: be169da ba12d30
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jul 4 09:01:38 2008 +1000

    Merge branch 'tickets/0.24.x/1232' of git://github.com/lak/puppet into 0.24.x

commit 6124c693c98217bdb747f455eefd09d303b0b2a5
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 3 17:53:07 2008 -0500

    Renaming the Puppet::PropertyChange class to Puppet::Transaction::Change.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit ba12d3000d31dbccb3b60320eae6c1be302e0bd5
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 3 17:27:11 2008 -0500

    Fixed #1232 - the rundir no longer specifies a user/group,
    and there are now client- and server-specific yaml directories.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit be169da98d34f7305019d9e3be2a7da2bcb3e28c
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 3 15:14:00 2008 -0500

    Removing all of the code related to the interface type.

commit 04ecb742f46cf8e48337c854a5ff2377caf60db1
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 3 15:13:09 2008 -0500

    Doing what I can to fix #1128, but just in preparation for removing 'interface'.
    
    This type needs to be started again from scratch, and I'm not
    going to do so for 0.24.5.
    
    In particular, the model for red hat and sunos need to match --
    they should both use the device name as the actual name.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 2279acdd30ef84d20be7bae6ca2c862ddc4bf959
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Thu Jul 3 12:58:30 2008 -0600

    Adding changes to config print that were missed in fix for 1183

commit a87885a4be181206d2f2c1d6225598c67e315717
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 3 13:52:56 2008 -0500

    Fixing the "describe" in the redhat interface specs
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit bd3f8e37a275710873b4a7566212d8b3388fb09f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 3 12:09:38 2008 -0500

    Fixed 1240 - puppet will function more like puppetd if graphing
    or reporting are enabled.

commit 7a6ae299621a16fa7fd8ab0fbd2c05fe723cffa4
Author: Francois Deppierraz <francois.deppierraz@camptocamp.com>
Date:   Thu Jul 3 10:34:49 2008 +0200

    Add a missing test for exercising the last untested line of lib/puppet/type/ssh_authorized_key.rb

commit 731d0f2291ccf900aab29eabed311607173b70ee
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 3 13:45:14 2008 +1000

    Minor documentation updates for ssh_authorized_key type

commit d851a16a3af9dd24f675ad5fcf6dfeba6d6273a2
Merge: da912fc 5156230
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 3 13:41:11 2008 +1000

    Merge branch 'tickets/0.24.x/1384' of git://github.com/ctrlaltdel/puppet into 0.24.x

commit da912fce870745e9e1bc600ae6c9c91cbbd60283
Merge: 32b6589 c825c99
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 3 13:05:05 2008 +1000

    Merge branch 'tickets/0.24.x/1390' of git://github.com/lak/puppet into 0.24.x

commit c825c991fd68274ae1b172f97059be616d5b057e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 2 22:03:45 2008 -0500

    Fixing the ldap node terminus to merge facts with the right name.
    
    Previously, I was merging early and changing the name later.
    This commit fixes it so that the node is created with the right
    name in the first place, so the node.fact_merge actually works.
    
    Yay for real-world testing.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 32b65894949151ac48d393fff150ff96474015a8
Merge: daf0d9d 4b6b22e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 3 13:02:08 2008 +1000

    Merge branch 'trivial/0.24.x/nodes' of git://github.com/lak/puppet into 0.24.x

commit 4b6b22e8d64b6fe8c69d9925eedc703757ce3567
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 2 22:00:54 2008 -0500

    Adding logging when a node's facts can't be found
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit daf0d9db5dc400a9795a5f741c8c63184f5e8982
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 2 21:16:45 2008 -0500

    Backporting a test that was failing in master, and fixing it
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit df528a66cafc8538c3208bf0b52fdbe1065f6e48
Merge: 00b7da3 d56deb3
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 2 20:56:22 2008 -0500

    Merge branch '0.24.x'

commit d56deb378704dbb07ae616df011a2ed7cb375920
Merge: e03c1be 38540d5
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jul 3 10:49:11 2008 +1000

    Merge branch 'trivial/0.24.x/ldapnodes' of git://github.com/lak/puppet into 0.24.x

commit 38540d56f28487ab55fec1ffd662e593be2997dd
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 2 19:47:12 2008 -0500

    Fixing the ldap node integration test so it cleans up

commit 00b7da39f79436950245f44ab1f7db71e81d3499
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 2 19:33:46 2008 -0500

    Fixing the new-form version of #1382.
    
    It only works when finding certificates, but that should be sufficient.

commit 3795654323dfdfe468f5dddfdc16787b883752db
Merge: 8e4312e e03c1be
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 2 18:36:05 2008 -0500

    Merge branch '0.24.x'

commit e03c1be35c5f04ba0e3d301579e8493c00d2ecf9
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 2 18:12:26 2008 -0500

    Fixing #1382 - existing uppercase certs, keys, et al will be renamed.
    
    This correctly renames the files and they still get read in.

commit 5156230b434adbe6de6606f6bcd8843264b8dab4
Author: Francois Deppierraz <francois.deppierraz@camptocamp.com>
Date:   Wed Jul 2 16:18:06 2008 +0200

    Use generate instead of autorequire in the ssh_authorized_key type based on Luke's comments

commit 8e4312ed249d83ece754b80e993fa0d86bd36d46
Merge: 49016bb d3a8125
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 2 00:32:52 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	CHANGELOG
    	spec/unit/node/catalog.rb
    	spec/unit/type/package.rb
    	spec/unit/type/schedule.rb
    	spec/unit/type/service.rb
    	spec/unit/util/settings.rb

commit d3a81255245eec19ac21902ae3b877e00e620628
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 1 22:20:55 2008 -0500

    Fixed #1006 - puppetrun --class works again.  I added the class
    membership testing to the Ldap node terminus, and added tests,

commit c1e010fb7dfe4666b3db3d958627f70f7325cf85
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 1 22:20:26 2008 -0500

    Fixing the Node::Ldap.search method to use an indirection request.
    
    I foolishly was just using the old-style api.
    
    Added an integration test to catch this in the future.

commit 4d22a95b571991eb47046c3b0103b2e733b2801d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 1 22:06:40 2008 -0500

    Switching the ldap terminus to use Util::Ldap::Connection.
    
    This is a simplified class for managing ldap connections,
    and this work just removes some duplication.

commit b47d4e1b3e1224541e555648854baf0503b1612e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 1 21:55:53 2008 -0500

    Added a 'search' method to the ldap node terminus.
    
    This makes it easy to find multiple nodes in ldap, and
    was done so it can be used by puppetrun.

commit a1d1abdd5a2fc11dceeed63da8c6f48d2fa21cfe
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 1 21:20:13 2008 -0500

    Adding an 'instance' class method to ldap connections.
    
    This just returns a Connection instance with the default
    ldap configuration information already provided.

commit 4bdb793092a1aee1798d921cb82ee9c12f0c51be
Merge: ee9d002 f1d5903
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jul 2 08:56:57 2008 +1000

    Merge branch 'tickets/0.24.x/1388' of git://github.com/lak/puppet into 0.24.x

commit ee9d0025eeebda1522d450b5bd3cda769d7455d5
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 1 12:57:56 2008 -0500

    Fixed #1114 - Facts in plugin directories should now be autoloaded,
    as long as you're using Facter 1.5.

commit f1d59034e8100d188b1cf4e5d6f5b6f71a4b91b9
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 1 10:31:29 2008 -0500

    Fixing #1388 - the package test no longer uses 'require'.

commit 8c5c949b37d3af4439c713e6c6e57e8f4b0415ac
Author: Francois Deppierraz <francois.deppierraz@camptocamp.com>
Date:   Fri Jun 27 09:32:12 2008 +0200

    ssh_authorized_key: autorequire, default permissions and cleanup
    
    Autorequire the target file and its parent directory as well.
    
    Default permissions and owner are now set on the file and its
    parent directory.
    
    Moved target attribute setting code from prefetch() in the provider to the type
    itself. This seems much cleaner to me.

commit 117869fa1614cd3b4ff4e5e0df5ece699eb1fe56
Merge: 17afb8a 5a283d6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jun 18 08:14:29 2008 +1000

    Merge branch 'tickets/0.24.x/1374' of git://github.com/lak/puppet into 0.24.x

commit 5a283d644b68bd89dc3c016ffd062b3ba792c617
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 17 16:18:05 2008 -0500

    Fixing #1374  - Using Puppet::Type.type() in tests

commit 17afb8afa0f1c3c58f2947f62938d262ae91b3c1
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 17 22:10:09 2008 +1000

    Fixes #1195 - Updated Gentoo init scripts

commit 00182ff96f18b54aa659a1909c23ba1aba253cd8
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 17 00:53:30 2008 -0500

    Fixed #707 - special '@reboot'-style cron jobs work again.

commit 463aab8d55cd7d1ba9abd941e82cb2d4483d0e52
Merge: 0f501e3 2380fcd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 17 19:37:23 2008 +1000

    Merge branch 'tickets/0.24.x/1012' of git://github.com/lak/puppet into 0.24.x
    
    Conflicts:
    
    	CHANGELOG

commit 0f501e327dc767bb09d92429693f51629782065a
Merge: d6943cd 4d95364
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 17 19:32:50 2008 +1000

    Merge branch 'tickets/0.24.x/1221' of git://github.com/lak/puppet into 0.24.x
    
    Conflicts:
    
    	CHANGELOG

commit d6943cd6154d80445eeb58721ab2e16bb17bff02
Merge: c83b23d 9c1ab14
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 17 17:38:57 2008 +1000

    Merge branch 'tickets/0.24.x/1371' into 0.24.x

commit c83b23d029c8791c2369336702c6bf2ece5e2587
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 17 16:56:10 2008 +1000

    Updated CHANGELOG for two missed commits

commit 2380fcd4d187e8592398015e96605ce4b5d63e7d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 16 23:59:18 2008 -0500

    Fixed #1012 - templates in the templatedir are preferred to module templates.

commit 4d9536418d8f684923063eac03d3a59d69bb3794
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 16 23:41:33 2008 -0500

    Fixed #1221 - aliases to titles now work for resources.

commit 543181272da492755e9219530d17f76a63faffef
Merge: 24ca81f 955a8ff
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 17 14:07:43 2008 +1000

    Merge branch 'tickets/0.24.x/1370' into 0.24.x

commit 24ca81fcdca9fa321a706453c96536e9bbeab7e2
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 16 22:42:12 2008 -0500

    Fixed #1360 -- allowdupe works with groups again.
    
    I've added a couple of tests for this bit of the user
    and group useradd/groupadd providers, but I haven't migrated
    the rest of the tests.

commit 955a8ff876e6476dd88b3502a8fa958180d0e0da
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 17 09:46:47 2008 +1000

    Removed test/util/loadedfile.rb tests which fixes #1370

commit 9c1ab147b3570003bb7907d8a0cadca52869f4bd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 17 09:43:45 2008 +1000

    Fixed #1371 - Updated bin/puppet to use Node.find

commit 7b569fb6e191a8d04b5ec5431b690d6d735c8582
Merge: 422dea0 aedfa2b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 17 09:26:24 2008 +1000

    Merge branch 'tickets/0.24.x/1369' of git://github.com/lak/puppet into 0.24.x

commit aedfa2bc06278d7bb3618cd39ea04f8aa8a9d846
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 16 11:36:21 2008 -0500

    Fixed #1369 - the init service provider now supports HP-UX.
    
    I've only added an integration test for the provider,
    since that's all I've changed; none of the service providers
    have rspec tests yet.

commit 49016bb29312bfeb6f41ce420159e6ffc477eebe
Merge: 6b69a86 5273b22
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 16 10:56:55 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	CHANGELOG
    	lib/puppet/defaults.rb
    	spec/integration/defaults.rb

commit 422dea05e755f0026c7786b46a7e93624da1ac0a
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Mon Jun 16 02:05:38 2008 -0600

    issue 1183
    
    Added environment awareness to --configprint
    
    Pulled the logic for --configprint --genconfig and --genmanifest out of puppet.rb
    Put the logic in lib/puppet/util/settings.rb and refactored it a bit
    
    Added specs for the behavior
    
    Reformated the whole spec file to use nested describe
    
    Added the new method to the executables
    
    The old behavior should be preserved, except for the env is now used

commit 5273b22b4fda6f9aa7a8366a1dfbae092594d391
Merge: d3a4d9a 5f600dd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jun 16 12:54:58 2008 +1000

    Merge branch 'tickets/0.24.x/1168' of git://github.com/lak/puppet into 0.24.x
    
    Conflicts:
    
    	CHANGELOG

commit 6b69a86e48be082a6d03ce69f2700c4c874e222f
Merge: c542dc0 d3a4d9a
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jun 15 20:21:51 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	CHANGELOG
    
    Finally adding release names to the changelog so we can keep the changes aligned in the right part of the log.

commit d3a4d9ad72ae12199163864582bfbb0f30a7f271
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jun 16 10:08:14 2008 +1000

    Updated Rakefile fixes #1367

commit 6350aa4e81ff0fc0fd7effeee2b1e3ca8baaa351
Merge: 9a9780f ac7f596
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jun 16 09:55:03 2008 +1000

    Merge branch 'tickets/0.24.x/1201' of git://github.com/lak/puppet into 0.24.x
    
    Conflicts:
    
    	CHANGELOG

commit 9a9780f377c4629d54da628bf65c9407a2b3314f
Merge: 98e38a6 6658463
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jun 16 09:50:03 2008 +1000

    Merge branch 'tickets/0.24.x/1178' of git://github.com/lak/puppet into 0.24.x

commit c542dc065fd618ae85bb6e8960d8819f42aefaeb
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jun 15 16:47:14 2008 -0500

    Fixing #1168 for REST -- all ssl classes downcase their names.
    This is a much cleaner fix than the xmlrpc version, thankfully. :)

commit 5f600ddc04efd1c4faac9f63b3a07af5282be707
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jun 15 16:33:48 2008 -0500

    Fixing #1168 (for 0.24.x) -- automatically downcasing the fqdn.
    Also requiring that passed in certnames be downcased; the setting
    system isn't currently flexible enough to automatically downcase
    it for the user.

commit ac7f59618a80b6a4aac777f6184e7fa6a0614079
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jun 15 14:39:45 2008 -0500

    Fixed #1201 - all external node attributes are converted to strings.

commit 665846379ed0951268ef0ddb774150c91470b115
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jun 15 14:02:52 2008 -0500

    Updating the changelog for the changes to node lookups.

commit 1f19453dddf0f3a7822c21157f6f8d06c388cdb8
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jun 15 13:58:37 2008 -0500

    Removing the Node.find_by_name method.
    
    We just use the regular Node.find method now, since
    the nodes don't need to do any magical naming.

commit 51e1ba8c02f1bd9085ef15138c4828accbb29dec
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jun 14 14:37:33 2008 -0500

    The LDAP Node terminus now searches for the fqdn, short name, and default.
    
    This provides something like the multiple name
    scenario previously used by the parser but now implemented
    in each terminus.

commit fb4e84321d47c5ebe31d257e1f7e0037a9ff34c1
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 10 00:45:41 2008 -0500

    Refactoring the 'find' method a bit in the LDAP Node terminus.
    
    This just splits the method into smaller pieces, so it's a
    bit easier to maintain.

commit 317af3608caae060d15b407fe0b78304f355c106
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 10 00:33:39 2008 -0500

    Removing the now-obsolete Node.node_facts method.

commit b7bd427eb98001fb051f0d8910a0a87d1b810c15
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 10 00:32:56 2008 -0500

    Converting the Node.node_names class method into an instance method.
    
    This effectively removes the ability to search node termini for
    multiple names; only the parser will use these names.
    
    Temporarily retaining the 'find_by_any_name' method; it will
    be removed in a later commit.

commit 75c94e342410d4504cf0eb5346d0ea5e54c99008
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 10 00:12:55 2008 -0500

    Removing an obsolete, unimplemented test

commit 7b10c39bdc20cad3d4652008c404d576461d75e1
Merge: 6a61198 575f37a
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jun 14 21:32:10 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	lib/puppet/executables/client/certhandler.rb
    	spec/unit/executables/client/certhandler.rb

commit 98e38a659a6eb9cdf0ee9e7ba6ff692483f25613
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jun 15 12:31:23 2008 +1000

    Adds support for keepconfig for the dpkg provider fixes #234

commit 57945a588c942198d4827263b46476a477dce7d0
Merge: 575f37a 86f8ff4
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jun 15 12:26:10 2008 +1000

    Merge branch 'ticket/0.24.x/1243' of git://github.com/littleidea/puppet into 0.24.x

commit 575f37a0656f5a1f94fe6fb1b189d1701a98cadc
Merge: 4d70449 4539b1c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jun 15 10:29:41 2008 +1000

    Merge branch 'ticket/0.24.x/1215' of git://github.com/littleidea/puppet into 0.24.x

commit 6a61198f9293674a4bf0aa75bfbca10e20f64d20
Merge: eaa6eab 7b2c310
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jun 14 13:53:56 2008 -0500

    Merge branch '0.24.x'
    
    Also added the fixes to make the certhandler tests pass
    even when certs exist; I'll deal with the conflict later.
    
    Conflicts:
    
    	CHANGELOG
    	bin/puppetd
    	lib/puppet/network/http/handler.rb
    	lib/puppet/network/http/mongrel/rest.rb
    	spec/integration/indirector/rest.rb
    	spec/integration/network/server/mongrel.rb
    	spec/integration/network/server/webrick.rb
    	spec/unit/network/http/webrick.rb

commit 4d70449a61b2e1ed198b38c8e75a44410c6adcaf
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Sat Jun 14 12:37:58 2008 -0600

    Fix bug in test, add more specs and small refactor
    
    The tests were failing when run on a machine with certs on the file system
    Stub out failure to read where appropriate
    
    Worked fine at my desk :(

commit 86f8ff4fb5fa69dc59afeea4260d1a875f37d483
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Sat Jun 14 09:38:36 2008 -0600

    Removed the unless condition in query, because the issue is a stale cached
    value and added comments that query will now always do so.
    
    The query method is only called in two places, from inside 'install' in
    yum.rb and from inside 'uninstall' in rpm.
    
    This behavior only happens when you have a lower version than the one you
    are 'ensuring'.
    
    Since the right package actually gets installed, the system is in sync
    next time, but the event of installation is lost and subscribing resources
    will never get it.

commit 4539b1cccbc5bf6287e322d7296c4b7cfc47e4ce
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Fri Jun 13 18:11:20 2008 -0600

    Issue 1215
    
    Removed logic to reuse parser and log on server when there is a parsing error.
    
    Now we just make a new parser and if there is an error, raise it up, which will result in errors on the client logs.

commit 7b2c310e18b214424ae082e6ed2354a07b708c6f
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jun 13 16:04:54 2008 -0500

    Adding another note about the save_object stub.

commit d816614a151a4c74751d569e8d2ac48b941d5f46
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jun 13 13:40:13 2008 -0500

    Fixing #1362 -- I had previously removed a stub point needed for testing.
    
    There was a save_object method in the http/handler module, but it
    seemed unnecessary and was undocumented.  I don't know I missed
    it causing failures, but I've added it back with appropriate
    documention.

commit 9b1301c0e86c66e17824b80f4afe598683e44a38
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jun 13 13:39:11 2008 -0500

    Removing a duplicate call left over from debugging

commit 087480bf6368edffcc0e8c6ea22d018e186bcab8
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jun 13 11:39:04 2008 -0500

    Replacing all two-space indents with four-space

commit 3980323e667443784247234d8b1afa648196a121
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jun 13 11:27:00 2008 -0500

    Adding ruby interpreter lines to the tests missing them.

commit 9fe2b038a5a802abf457a5961aaa3d2f022e2408
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jun 13 11:15:52 2008 -0500

    Adding execute bits to every test currently missing them.

commit 28e4dd3ff65fba7ed4d8b211bd5920618c2025ea
Merge: 6764af3 fb5f09b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jun 13 11:25:29 2008 +1000

    Merge branch 'ticket/0.24.x/1359' of git://github.com/lak/puppet into 0.24.x

commit fb5f09bc347553b2744e5d3b24ddfa26bc0b3c9e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 11 18:56:36 2008 -0500

    Fixing how the Indirector::Request sets its options.
    
    I wasn't testing whether the options where still a hash,
    and an 'inject' loop wasn't returning correctly, so
    the options weren't being set correctly.

commit 4b29a5ea234e2c0c36ab5fca8fa0f6dee0085a7e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 11 18:52:05 2008 -0500

    Fixing how the indirection tests for whether the request has node info.
    
    My request authorization code changed the request to set its 'node'
    instance variable, rather than using its options, and I apparently
    didn't change the Indirection class to do this.
    
    I have *no* idea how these tests were passing before -- they passed for
    me yesterday but failed for Andrew, and today they started failing for
    me.  Frightening.

commit 6764af3c196a526647eb4a270ec737e2b0f20d36
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Tue Jun 10 23:37:00 2008 -0600

    Change description of spec to make baby jesus happy
    
    FAIL

commit 946081b3c0bf24dc68a3a08fbcb6b5347e01de8f
Author: Andrew Shafer <andrew@reductivelabs.com>
Date:   Tue Jun 10 23:19:37 2008 -0600

    Try again
    
    Add the class to handle certs, specs and modify puppetd
    
    should fix 1190, 1199, 1200

commit 041ca27460013088b790fab377aba0a8e470ce51
Merge: bdc578a 1205881
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jun 10 08:05:28 2008 +1000

    Merge branch 'feature/authenticated_rest_requests' of git://github.com/lak/puppet into 0.24.x

commit bdc578adec306d0b2b842af5d62662cd1ac76308
Author: Luke Kanies <luke@madstop.com>
Date:   Sat May 31 14:29:01 2008 -0700

    Applying the fixes recommended by David Schmitt to the inline documentation of
    the ResourceTemplate class.

commit 886c984cfc3b944a1c482c1e360bb4fed86a7ed4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 26 13:55:02 2008 -0500

    Updating the docs for ResourceTemplate.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 29c840ae8f2d4e81df1154b1099ce3ca92e348e3
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 26 00:24:57 2008 -0500

    Adding a class for using templates directly within resources
    (i.e., client-side templates).  This would really only be used
    for composite resources that pass the results of the template
    on to generated resources.

commit 1205881c8f022cd0dd26ed896976f9451549c571
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 27 10:36:16 2008 -0600

    The mongrel and webrick REST handlers now extract certificate information.
    
    All requests should now have an ipaddress add to them, they
    should always be marked authenticated or not, and they should
    have the certificate name set as their 'node' if a certificate
    is present.
    
    They both use the same methods they use for xmlrpc,
    although there's no common code, to facilitate deprecation
    of xmlrpc.

commit e8044f93efd29fab87d67f55461df371dec8bdff
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 27 07:20:56 2008 -0500

    Adding to the indirection request support for authentication information.
    
    This basically consists of the node name (i.e., the certificate name),
    the IP, and whether the request is authenticated (which is determined
    by whether it provided a valid certificate).
    
    Now the two REST classes (mongrel and webrick) need to correctly
    pass this information to the indirection calls they make.

commit dbd9b40c6537c261f01976238ef9ccfd6a6d6d08
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat May 31 12:32:04 2008 +1000

    Updated fix for ticket #1271

commit cf3b98e14ce015b60338d963ba62d28af4e4755e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri May 30 14:37:38 2008 +1000

    Applied patch for ticket #1271

commit 9943da6740189090ba26bb185e566e2fcf9b7184
Author: Russ Allbery <rra@debian.org>
Date:   Thu May 29 17:43:11 2008 -0700

    Further Emacs puppet-mode fixes
    
    More correctly handle indentation of lines enclosed in [] when the
    contents themselves contain [], such as arrays of object references
    for requires.
    
    Exclude newlines from more of the parsing regexes for more accurate
    results.
    
    Fontify references to objects even if they're not at the start of a
    line.

commit 4038dacb79aa8cbd80ea3bab9e8e069facfe093d
Merge: 3c2e69f ad3803f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed May 28 08:25:18 2008 +1000

    Merge branch 'ticket/1267' into 0.24.x

commit 3c2e69f28dbea231b4885c2c330efc8d0955287d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue May 27 16:19:37 2008 +1000

    Fixed Rakefile to install non-.rb files to fix #1266

commit ad3803ff6ff439568eaa7763c008d6c24c8b0ed8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue May 27 14:10:40 2008 +1000

    Fixes for install.rb running of tests that fixes #1267

commit 65c1889f09e83601b30f303294bff38621d77ab1
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 26 22:33:26 2008 -0500

    Fixing #1242 -- lack of storeconfigs only produces warning, not exception.
    
    Exporting or collecting resources no longer raises an exception
    when no storeconfigs is enabled, it just produces a warning.

commit 3d51a287e8d81e526e48a0040475ef2753ea6bab
Merge: d2eb194 89100c4
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue May 27 11:53:35 2008 +1000

    Merge branch 'tickets/1264' of git://github.com/lak/puppet into 0.24.x

commit d2eb1948eefcf721382168fba0043fa28e69d3e4
Merge: 02411f5 8a22b59
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue May 27 11:53:10 2008 +1000

    Merge branch 'tickets/1265' of git://github.com/lak/puppet into 0.24.x

commit 8a22b59c7d1f1a80c4fd645830ed9d5b33adf659
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 26 18:06:50 2008 -0500

    Fixing #1265 -- the ca/client tests now all pass again.

commit 02411f5d74e9f437acdba9c75eb811b9976174c7
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 26 17:41:38 2008 -0500

    Always using the cert name to store yaml files, which fixes #1178.
    
    The Master handler previously provided the support for the :node_name
    setting, and that functionality has now been moved into the Node
    class.  At the same time, the names to search through have been
    changed somewhat:  Previously, the certificate name and the
    hostname were both used for searching, but now, the cert name
    is always searched first (unless node_name == facter), but only
    the Facter hostname, domain, and fqdn are used otherwise.  We no
    longer split the cert name, only the hostname/domain/fqdn.
    
    In the general case, this provides no behaviour change, because
    people's hostname is the same as their certname.  This only
    results in a change in behaviour if you specify a certificate
    name that is a normal node name, and you want to look that node
    up by something other than the full name in the certificate.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit 89100c43d6be6cad16e8b51cbeb2d5695e353719
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 26 13:31:11 2008 -0500

    Moving the majority of the pkgdmg docs to the wiki, fixing #1264.
    
    Signed-off-by: Luke Kanies <luke@madstop.com>

commit eaa6eabc680cb6264594e30fd6a56e3e36765269
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 25 20:22:01 2008 -0500

    Fixing #1258 -- Removing a Rails idiom.
    
    This idiom is only functional when you have
    Rails loaded, which is why it was failing for others
    but not me.

commit eb5e42263c109096a2ab4aa31f062f3e603db0dd
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 25 20:17:55 2008 -0500

    Fixing #1256 -- CA tests now work with no ~/.puppet.
    
    I've set the default cadir and vardir to /dev/null, to
    hopefully catch this kind of test sooner next time.

commit 66c36f0f85f6914372980c66432d1ba122a50321
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 25 17:13:51 2008 -0500

    Fixing another failing test -- the new CA tests correctly clear the cache.
    
    I was previously not clearing the cache using the Cacher.invalidate
    method, which caused a test to fail.

commit 447507c5f8e2c72d6962c29423fbf6fc8d8238a4
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 25 17:05:28 2008 -0500

    Fixing #1245 -- ssh_authorized_keys tests work in master.
    
    I just had to remove the '.clear' call.

commit 6f533d11277dea2c57755cf379342a6bfb818eb8
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 25 16:01:26 2008 -0500

    Fixing #1247 -- no more clear_cache failures.
    
    I had clearly only run spec/ since this work.

commit 29f5f1b862112179ce1b77ae0177811ab2208aeb
Merge: fe157f2 7b02f2b
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 25 16:00:48 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	CHANGELOG
    	lib/puppet/transaction.rb

commit 7b02f2ba443ba35d7305c24b87028456eaf6bd29
Merge: 9decf35 054a811
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat May 24 17:17:27 2008 +1000

    Merge branch '0.24.x' of git://github.com/lak/puppet into 0.24.x

commit 9decf35a304a444a855a9d16d6d945ca89beb6cc
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat May 24 10:18:28 2008 +1000

    Put function in ticket #311 in correct location

commit 6c3e7e1b547ba2040e8ff5d5011605c1df7c4681
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat May 24 10:10:39 2008 +1000

    Reverted function - "Added cron random function fixing ticket #311"
    
    This reverts commit d54338f8921b4b2973dcde52576d7e9fa58148cb.

commit c173264408e8f2dbb7a72e984a4cbce4637f3c0c
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Thu May 22 11:52:51 2008 -0700

    Refactoring warnings.rb for tests.

commit e6837a41a728d22be9ded75c4470388ae2a1dd5b
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Thu May 22 11:36:47 2008 -0700

    Fixing an inaccurate test so the tests will run correctly in all branches.

commit 054a811df80f0e4e1a2d53841b490c20c2964487
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 22 13:45:58 2008 -0500

    Removing extra debugging

commit bdcf5db3cea4a4009839087c1b502dcce24eddd7
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Wed May 21 18:29:25 2008 -0700

    Fixing tests that are broken when running as root under OSX 10.5

commit d55a75525ad931aaeab87fd9173f9e92df000ed9
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Wed May 21 13:55:46 2008 -0700

    Added warnings test and cleaning up trailing whitespace.

commit c0f78b41e6c188f2046fd3e9c662ee812ef224ab
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Wed May 21 16:43:42 2008 -0700

    Fixed a bug in my tests which caused them to fail when run against the master branch.

commit 3f35afa802ecc87e34b44f5b23d76621ab145722
Merge: d54338f c370104
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri May 23 00:51:22 2008 +1000

    Merge branch '0.24.x' of git://github.com/lak/puppet into 0.24.x

commit d54338f8921b4b2973dcde52576d7e9fa58148cb
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu May 22 17:10:30 2008 +1000

    Added cron random function fixing ticket #311

commit 6ea494f383ab51b14238e0b8dcb8925d3faa6c83
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu May 22 16:12:16 2008 +1000

    Pushed patch fixing #1235

commit c370104f7efa6231af05df17ccbb03cbaa2e48ab
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 22 00:45:08 2008 -0500

    Fixing the node/catalog so that it can convert from parser catalogs to RAL catalogs.
    
    It largely worked previously, except when aliases were set,
    which require catalogs.  This now converts all parser resources
    to trans_objects then to RAL resources, and sets the catalog
    in the meantime.  This allows aliases to work just
    fine when converting directly from parser catalogs to RAL catalogs.

commit bd51a53b0870ee2355c046af255232ec868d8f1d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 21 00:46:25 2008 -0500

    Fixing transaction support for prefetching generated resources.
    
    Previously, we prefetched then generated, which caused generated
    resources that needed prefetching not to work.  This just reorders
    the calls, so generated resources now get prefetched.

commit 65c61b99ffb2069205a37f5daa17444984b11ec5
Merge: 84a787a 4434072
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 21 00:33:42 2008 -0500

    Merge branch 'ldap_fixes' into 0.24.x
    
    Conflicts:
    
    	CHANGELOG

commit 4434072c7f51e4720b40aaea0637cb94dc6aefe5
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 21 00:30:24 2008 -0500

    The ldap user/group providers now work when no users/groups are in ldap yet.
    
    Previously, they failed if you tried to get them to autogenerate
    an id, because they assumed that a result would be returned.

commit 419f2443c40116623b5c82f03eafcc85deeabcad
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 20 23:59:04 2008 -0500

    Adding support for settings within the existing Facter provider confines.
    
    This renames the 'facter' confine to 'variable', and it prefers
    settings to facts.  There shouldn't really be any overlap, so
    it shouldn't be a problem.

commit fe157f239a301abb52f81c62719355c8e50c970c
Merge: 3cb0d60 84a787a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 20 10:19:10 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	CHANGELOG
    	spec/integration/defaults.rb
    	spec/integration/node/catalog.rb
    	spec/unit/rails.rb
    	spec/unit/type/mount.rb

commit 3e13bd59689a27a393c847bdbed3ac38765d79e9
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 20 10:13:33 2008 -0500

    Intermediate commit so I can move on to other things.

commit 84a787a2a764a5035f7cbb8d30f94fc601bed154
Merge: 390db80 ee4be4f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue May 20 19:06:45 2008 +1000

    Merge branch '0.24.x' of git://github.com/lak/puppet into 0.24.x
    
    Conflicts:
    
    	CHANGELOG

commit ee4be4f78f7c904dbe5873ff7b44993d1440da41
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 19 22:16:13 2008 -0500

    Removing an unused file.  Closes #1229.

commit b8ce6a1a8c5dc370cae86cc3a40450d472e6843c
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 19 22:10:51 2008 -0500

    Mocking Facter in an integration test, so it works with no networking

commit 3b6a614b02676b8201262605ff982aa9de96a65c
Merge: 77ee4ec 0820819
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 19 22:09:00 2008 -0500

    Merge commit 'plathrop/fix-1228' into 0.24.x

commit 77ee4ec6ca56973ce315358864722a152557857f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 19 02:05:19 2008 -0500

    Refactoring how the provider confine tests work, again.
    
    Now each of the test types is a separate subclass
    of Confine, so that they can have all of their own
    logging and summarizing behaviour.
    
    Also, added a 'feature' type, which can test for
    the availability of Puppet features (and log
    their absence more usefully).

commit 0820819e0f7e81f2e68893258145877f756b5395
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Sun May 18 16:51:35 2008 -0700

    Minor cosmetic changes to cleanup some style elements and get rid of some cruft.

commit 6a6a1d99d7cd5186b3d778007abaa54a27d5e373
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Sun May 18 15:30:13 2008 -0700

    Another refactor based on feedback from Luke. This includes adding an accessor for @@state to make testing a bit cleaner.

commit ee041293d99605e4283235cb3ee5286447ffadd4
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Sat May 17 23:51:25 2008 -0700

    Refactored tests based on feedback from Luke.

commit d7f25ff5715a0d17eca8a590df6d9dd8b93ae443
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Sat May 17 04:26:54 2008 -0700

    Rewritten tests for Puppet::Util::Storage.

commit c5da40122493eacf158458f0d79e335e2d0c4c9d
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Sat May 17 00:54:07 2008 -0700

    Add unit tests for Puppet::Util::Storage

commit 8008bbc447764e0ca28169284f4d6df3a86dcdd6
Author: Luke Kanies <luke@madstop.com>
Date:   Fri May 16 15:42:20 2008 -0500

    Modified the 'factpath' setting to automatically configure
    Facter to load facts there if a new enough version of
    Facter is used.

commit 3cb0d60d3d0870f1d9ac83e5dbeaa06d2888231f
Author: Luke Kanies <luke@madstop.com>
Date:   Fri May 16 14:34:40 2008 -0500

    Fixing how the mongrel server sets up xmlrpc handlers.
    
    It was trying to use arguments but they were never actually
    set.

commit a02c6bbe7ccac05593c9e07e9f0215ab6ceda8ad
Author: Luke Kanies <luke@madstop.com>
Date:   Fri May 16 11:22:26 2008 -0500

    Fixing a mock in the redhat interface test.
    
    It mocked :exists? instead of :exist?, and my provider work
    changed the method call because :exists? is going away in ruby.

commit 390db8061ae81174ee9d42e26a6ebfe7182ea529
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat May 17 01:06:18 2008 +1000

    Updated puppetd documentation which fixes ticket #1227

commit 2d6a914e6071681b83e482b40448d9219d6e4d76
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri May 16 17:17:34 2008 +1000

    Fix for latest method in rpm provider (fixes #1224)

commit 38545d9a81274c16a43f7f19889cd12e52871d76
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri May 16 16:49:22 2008 +1000

    Crontab provider: fix a parse error when a line begins with a space character
    
    Tests for Bug #1216
    
    Updated CHANGELOG

commit 7897335318be2bb98187b570fb7c867ebe109c12
Merge: 83ef1b0 a1409d7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri May 16 16:08:56 2008 +1000

    Merge branch '0.24.x' of git://github.com/lak/puppet into 0.24.x

commit a1409d73b4bb8acbf5db2f8d7a244c2bca81db14
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 15 23:09:58 2008 -0500

    Moving all confine code out of the Provider class, and fixing #1197.
    
    I created a Confiner module for the Provider class methods,
    and then I enhanced the interface between it and the Confine
    class to make sure binary paths are searched for fresh each time.
    
    This fixes #1197, which was a result of binary paths being
    searched for at startup, rather than at execution.

commit 995991d8740baff52cee057752c428d0259e2be1
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 15 22:21:50 2008 -0500

    Switching the Provider class to use the new Confiner class.

commit c9757a689a2ecdcd044ca0355e1ebfa30bb1978f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 15 22:14:02 2008 -0500

    Moving the 'confine' handling to separate classes.

commit ac79a79c8d7713068243209f782bf16077dd3d37
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 15 19:34:21 2008 -0500

    Duh, fixing all of the paths being loaded for spec in the moved tests.

commit d02334f114a73facd2b3a90f35cb1f3c04365e2f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 15 19:11:08 2008 -0500

    Moving all tests that are in 'ral' up a level.
    
    This directory only existed as an organizational method,
    and the code never matched it, so I'm fixing it.

commit e7bef08bbac951dd1b798273af3ff2b098bf9187
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 15 10:51:11 2008 -0500

    Fixing the user test.
    
    It was causing exceptions when run as part of the whole suite.

commit 158d3df805ebe28f52db5ced928dda7129aeec1b
Author: Gunnar Wrobel <p@rdus.de>
Date:   Thu May 15 08:27:07 2008 +0200

    Added the ability to add arbitrary attributes to ldap.
    
    This fixes #1179.

commit 83ef1b0cda1b010eea3f7d001716ea52f7081c24
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu May 15 17:13:30 2008 +1000

    Fix for #1219
    
    Instead of deleting the init scripts (with --del) we should simply disable
    it with chkconfig service off, and respectfully do the same for enable
    => true;
    
    Updated CHANGELOG
    
    Fix for #1219.  Instead of deleting the init scripts (with --del) we should simply disable it with chkconfig service off, and respectfully do the same for enable
    => true;

commit e972a3bcf0c95eaf7797d15734257d189ff8c3bf
Merge: b500689 88ec3d8
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 14 10:49:11 2008 -0500

    Merge commit 'ctrlaltdel/ssh-authorized-key' into 0.24.x

commit b5006897fbf1c52c5a53820d6d1175213027c019
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 13 16:11:36 2008 -0500

    adding more autotest docs

commit c61fc0217fe8880216fe059ce54c4d0d61a78811
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 13 16:09:28 2008 -0500

    Adding autotest info to the ext/ directory.
    
    Adding the autotest config, instructions, and a Rakefile
    that can install it.

commit 6efe4000dda3379e867786a9c2d4ae0f0cdfc3be
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 13 16:00:58 2008 -0500

    Using the new Cacher class for handling cached data.
    
    This provides a single, global bit for determining whether
    a given piece of cached data is still valid.

commit 59b9958712d033bbd294ff6469ea3a242c45c82c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 13 11:58:33 2008 -0500

    Correcting whitespace in the templatewrapper code.
    
    Also slightly modified the wording of some of the tests.

commit 49dde1187e8caea10af63ec1f92e19c0e5f1a595
Author: Adam Jacob <adam@hjksolutions.com>
Date:   Mon May 12 21:41:04 2008 -0700

    Adding has_variable? support, fixing ticket #1177

commit c1a8d5778f72d31baa913a3e6a6d952024752cf8
Merge: 5e2a4b5 d8cc1c5
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 12 17:25:36 2008 -0500

    Merge branch 'authorized_keys' into 0.24.x

commit d8cc1c5e0289f7710050b1f305e0ed180a368169
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 12 17:25:27 2008 -0500

    adding execute bits to tests

commit 5e2a4b593f110b171117d75e6a7723bf52f5296b
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 12 17:01:27 2008 -0500

    updating the changelog for the ldap providers

commit 17e8158e35336291c551da03067b55dd815ab539
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 12 17:00:48 2008 -0500

    Adding ldap providers for the user and group type.
    
    These providers use posixAccount and posixGroup.
    
    This is a collapsed merge, fwiw.

commit c56e9a6a0a9491270e22363e750046f284ee2793
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 12 16:59:30 2008 -0500

    Fixing another test that wrote to ~

commit 954aad4faa33ff9c4504eb5673c7dd122a914d4a
Author: Russ Allbery <rra@debian.org>
Date:   Fri May 9 15:09:47 2008 -0700

    Fix Emacs mode indentation of multiple nested blocks
    
    Indentation of multiple nested blocks was broken; the closing braces
    of all the outer blocks were put into column 0 because finding the
    block indentation failed.  Do normal indentation if finding a block
    indentation fails, but more importantly, be smarter about searching
    backwards to find the beginning of the current block, taking balanced
    braces into account.
    
    There is probably some less-ugly and more Emacs-native way of doing
    this.

commit f52e3433da9001f85722f9efcb90208e4bb2fd2b
Author: Russ Allbery <rra@debian.org>
Date:   Fri May 2 20:37:38 2008 -0700

    Enhancements to syntax highlighting and indentation for Emacs
    
    More correctly handle multiple resources in a block, such as:
    
    type {
        "name":
            attr => foo,
            oattr => bar;
        "other":
            attr => baz;
    }
    
    Handle continued arguments in parentheses, such as define or realize
    arguments.  Try to be a bit more robust about indenting in general.
    
    Add the remaining Puppet language keywords (I think) and improve the
    handling of type references at the top level.  Remove the hack for
    continued include lines and fix it properly.
    
    Remove more non-Puppet code left over from the mode this one was
    based on.  Use a more straightforward method of setting up the font-lock
    keywords and do it the same way for both XEmacs and Emacs since I think
    they can both handle the current method (and other modes agree).

commit 9bf21a65bb05c7135cc7e4b46a59cb110fd40b5f
Author: Russ Allbery <rra@debian.org>
Date:   Fri May 2 12:54:35 2008 -0700

    Use our own count-matches for Emacs 21 compatibility
    
    Replace count-matches with a puppet-count-matches function that does
    the same as the Emacs 22 count-matches.  The Emacs 21 count-matches
    is different and not useful for our purposes.

commit 20e60b111687c286737c981b13edfaac23e7b1a6
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 12 16:37:06 2008 -0500

    Applying patch by martin to fix #1207.
    
    The -o flag is now only used when the uid is being changed.

commit 2ab75f66ed0a5d307aa9bb55856777d27b0b5348
Merge: 270c007 ae842ea
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 12 16:19:07 2008 -0500

    Merge commit 'turnbull/0.24.x' into 0.24.x

commit 270c007672c9a0458f14189cff3ccf1ff6311963
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 12 15:55:02 2008 -0500

    Clarifying the exception when there's a syntax error but a valid parser.
    
    This is related to #1215.

commit f3fa58927527632472372a2612b288805b877b4f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 12 15:54:08 2008 -0500

    Fixing a test that wrote to ~.

commit ae842ea8214a846624f89711d34f7481d5a8d01a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun May 11 21:23:25 2008 +1000

    Fix for urpmi provider that fixes #1217

commit da4cdd27573a319e8fa5f89642c98377b8911fa4
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat May 10 09:54:49 2008 +1000

    Fix for ticket #1218 - changed to appropriate variable name

commit 88ec3d808b93058f39bf0c5ac20ed1fcb9477c2b
Author: Francois Deppierraz <francois.deppierraz@camptocamp.com>
Date:   Fri May 9 17:35:44 2008 +0200

    Cosmetic fix

commit 67dc261a764d54dd5c1b9a487b8c43d67ad4347c
Author: Francois Deppierraz <francois.deppierraz@camptocamp.com>
Date:   Fri May 9 17:26:20 2008 +0200

    Removed "none" as a valid type attribute value, it was useless anyway

commit 68d8d0ae0686939d94dae8ccc70e5582187335dc
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 7 18:28:35 2008 -0500

    Adding a module for handling caching information.
    
    I keep having issues with integration tests keeping
    cached values around, and this module should hopefully
    give us a single place to invalidate all caches, thus
    making testing this much easier.

commit db8a46c605b8b4a205e65aa35a1442f2de32431b
Author: Francois Deppierraz <francois.deppierraz@camptocamp.com>
Date:   Thu Apr 10 19:24:06 2008 +0200

    New native ssh_authorized_key type

commit e936ef2426464b901638bf338c1c42590245b58f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 7 14:45:13 2008 -0500

    Fixing some broken tests.
    
    The HttpPool module now removes its cached ssl_host instance
    when clearing its cache.  This is really only useful
    for testing, but it correctly causes the pool to use
    new certificates when they're available.

commit 1cfb0215a4d56af9ac1e0c672d9ae597dfde846e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 7 13:29:38 2008 -0500

    The CRL is now automatically used or ignored.
    
    Previously, you had to configure whether you wanted the CRL or not,
    which resulted in errors all the time when it was configured but
    unavailable.
    
    Now, Puppet will always create and try to use it, but you won't
    get failures if it's unavailable.

commit 0365184aaec4d71f7fa93fc1534ae10f8f842bb7
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 7 13:28:51 2008 -0500

    Removing obsolete tests

commit 330359015602eba83077fccaa708c819d2d78b53
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 7 12:29:58 2008 -0500

    The master and client now successfully speak xmlrpc using the new system.
    
    The server is actually serving REST, but the client can't use
    it until we resolve the format and security issues that REST
    hasn't yet tackled.

commit 8fd68e388aa0b26d2dacc201086960385ff5c834
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 7 12:25:00 2008 -0500

    Adding pidfile management and daemonization to the Server
    class.

commit dd4d8684fc19adcb68c681ba1c446a737498cda0
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 6 19:02:45 2008 -0500

    Fixing the HttpPool module to get rid of an infinite loop.
    
    We can't have the HttpPool class use the Indirector to see
    if it has a cert available, because it might be being used to
    try to download one, which would cause it to make an http instance,
    which would cause it to...   Well, you get the idea.
    
    Adding and fixing a few other tests I ran into on the way.

commit 57c753419ac4700ab87689a3e3c3eb7302fff693
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 6 18:58:41 2008 -0500

    Adding REST terminuses for the SSL-related indirections.

commit d78b4ba48a0fdf63906fb0ede2cd8c2e634ef442
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 6 16:45:29 2008 -0500

    Adding autosigning to the new CA.
    
    Now the CSR class triggers autosigning when any CSR is
    saved, if it's running on a CA host.

commit a822ef9ce5c6d603f4a98b9dda0dbf4661528128
Author: Luke Kanies <luke@madstop.com>
Date:   Tue May 6 15:39:18 2008 -0500

    Moving the CA Interface class to a separate file.

commit 38e2dcf35a1d9b19970d1fb253f6c09b0529e083
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 5 22:36:59 2008 -0500

    The master is now functionally serving REST and xmlrpc.
    
    ...as far as I can tell.  The client, however, is broken,
    since it used the old http_pool/ssl_support stuff, which
    no longer works.
    
    I have to port puppetd over to using the new ssl stuff,
    then I'll at least be able to verify that the master can
    still speak xmlrpc.

commit 6e0d6ddf5ef1cd6b23a672020bb657744b5a2c59
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 5 22:25:42 2008 -0500

    The REST infrastructure now correctly the SSL certificates.
    
    I don't think the whole thing is done, but at least the
    basic flows are in place.  Now it's just a question of
    doing real-world tests and fleshing out the unit tests
    as necessary.

commit 51ce6746bc4c865b307af77b0967b345bf095aa8
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 5 21:16:25 2008 -0500

    Fixing the webrick integration tests to use the newly-functional
    SSL code.

commit 62f1f5e1514b4283750558f0019331de8e9460a4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 5 21:15:39 2008 -0500

    The Certificate Authority now automatically creates a CRL when appropriate.
    
    This requires less setup and configuration on the part of the user.

commit e57436f1056cceb8ecdfadfa618911c5595c72e2
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 5 21:14:46 2008 -0500

    The Settings class now clears the 'used' sections when a value is changed.
    
    This makes is so that if you, for instance, reset the vardir,
    then the next time an initialization call is made, we reuse
    any previously used sections, thus (hopefully) correctly
    creating any newly needed directories.
    
    This is mostly helpful during testing.

commit 137e29ff0e33ff5cbb4032d452abc5a5aef2c941
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 5 21:13:07 2008 -0500

    Moving some http configuration values to the main
    defaults section, rather than the puppetd section.

commit a3b88041570a35827c82993d7559d3583b31232c
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 5 21:12:39 2008 -0500

    The http pool manager now uses new-style certificate management.
    
    It uses an instance of SSL::Host for getting its certificate
    and ssl store.

commit e596bc5267bdbbe2e4ea0e7722047d1354f10826
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 5 21:01:33 2008 -0500

    Fixing some tests that were insufficiently mocking their configurations.
    
    These were still writing to ~.

commit 160f9d99e33b051d40f00971683cf54a0ff00c32
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 5 21:00:29 2008 -0500

    Fixing a critical problem in how CRLs were saved and moving SSL Store responsibilities to the SSL::Host class.
    
    I was previously saving invalid CRLs unless they'd had a revocation
    done in them; this commit fixes them so that they're always valid.
    
    Also, I've added to SSL::Host the ability to generate a valid
    SSL Store, suitable for validation.  This is now used by
    Webrick and can be used by the http clients, too.
    
    This should have been two commits, but I'm kind of down the
    rabbit hole ATM.

commit ce6d5787aaefc4c980e51c394328c2ddc2f7cb9c
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 5 17:16:03 2008 -0500

    The SSL::Host class now uses the CA to generate its certificate when appropriate.
    
    It uses the CA singleton method to determine
    whether it's on valid CA host, and if so, uses
    the CA instance to sign its generated CSR.

commit 67dc268fae0489de93f247b08fdaf7b1eec0e15d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 5 17:10:07 2008 -0500

    The CA now initializes itself.
    
    I realized that it never made sense to have a CA
    that didn't know how to initialize itself, so we
    now have a singleton method for the CA, and it also
    automatically initializes itself.

commit 2b185af97882afb4a7feab42de97771ceed80b43
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon May 5 20:45:19 2008 +1000

    Add values for dump parameter for the mount type closing #1212

commit 69fc802fde27f1de09d6e0d68e1d79ff1c08acdd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon May 5 09:35:17 2008 +1000

    Update to man pages, fix to ralsh help text and fix for #1211

commit 6356c043a44c771d707750f96f7660a1093be9ac
Author: Luke Kanies <luke@madstop.com>
Date:   Fri May 2 13:47:44 2008 -0500

    Switched puppetmasterd to use the new-style server plumbing.
    
    The code is much cleaner, and it seems to be mostly
    functional, but we have to pick a strategy for signing
    the host's certificate on first startup.  Also, I haven't
    actually done end-to-end testing yet, which needs the certs
    working first.

commit 4c590df607f3d2cb6921b8d8269862a4f8f2456c
Author: Luke Kanies <luke@madstop.com>
Date:   Fri May 2 13:20:00 2008 -0500

    Adding xmlrpc backward compatibility to the new Mongrel code.

commit 31b79fa7760f95059a4e2afb35e734de283cf4a0
Author: Luke Kanies <luke@madstop.com>
Date:   Fri May 2 12:58:35 2008 -0500

    Adding xmlrpc support to webrick.
    
    This provides the backward compatibility for webrick,
    and only Mongrel is left.

commit 7a876ed6a06bc5decb257126eb57368aeb178a81
Author: Luke Kanies <luke@madstop.com>
Date:   Fri May 2 12:28:23 2008 -0500

    Fixing some whitespace

commit 72673413c8ead5adcb321fe1ce9cfe0410e0eb54
Author: Luke Kanies <luke@madstop.com>
Date:   Fri May 2 12:27:15 2008 -0500

    Adding configuration support for XMLRPC handlers.
    
    This provides the interface for configuring backward compatibility
    in the new-style server code.  It requires a completely different
    configuration step, in that REST and xmlrpc handlers are configured
    separately, rather than using the same handler names, but this was
    considered less evil than having a large abstraction layer for specifying
    how the handlers are related.

commit c57e194418b658ddcd82610c3c273bfa17ba5f8b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 1 14:04:52 2008 -0500

    Fixing an error message to be more clear

commit 5a2bbad8b7239d64ffa4ad51ab1a68d4926c6a72
Author: Nigel Kersten <nigel@explanatorygap.net>
Date:   Thu Apr 24 21:28:36 2008 -0700

    fix bindir/sbindir defaults on OS X 10.5

commit fff6ad90d781b8fda2b93916a67ef65b3b263c66
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Apr 30 23:23:41 2008 +1000

    Fix for ticket #1209

commit 8c9b04d807b34ade704da3584b72d39bb129aa75
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 28 17:52:02 2008 -0500

    I think I've now got the Webrick SSL support working.
    Now I just need to get xmlrpc working alongside REST in
    both mongrel and webrick.

commit 83519f4e59f68f867f8ddbe141ac8bd9a6238ae1
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 28 12:16:16 2008 -0500

    Interim commit, since I want to work but have no network available.

commit b2a3db94c7226c7660277c746254f47ab40cde7b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 24 23:23:22 2008 +1000

    Fixed #1196 - added /sbin/service support for the redhat service provider + some doco fixes

commit 0e8a1c9f6ac45e9e6f6dcf6464ad4d2780201ce1
Merge: 58fb416 62ca726
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 21 23:45:53 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	bin/puppetca

commit 58fb416e9f52a9dc834b735ffa7e5c425495c982
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 21 22:30:01 2008 -0500

    Changing the File certificate terminus so that it
    saves to the :localcacert instead of :cacert.
    
    This way the :ca terminus saves to :cacert and the :file
    terminus saves to :localcacert.

commit 79ca44404af29b2bae621f9a6cb80467d95468aa
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 21 17:33:58 2008 -0500

    Renaming the 'ca_file' ssl terminus type to 'ca'.

commit a116d10b5e4412c362a246f12b77fc2e979aedbe
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 19 19:37:22 2008 -0500

    Temporarily disabling the revoke/verify test in the CA.
    
    It looks like it's not taking the CRL into account, so
    I can't seem to actually get a cert to fail verification.

commit d87e018ab84646de94aea70c2bd0270e1721940d
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 19 19:20:25 2008 -0500

    Fixing how the CRL is used for certificate verification.
    
    The CRL was not correctly being added to the Store used
    for verification.
    
    It does not appear to be working, though, since revoked
    certificates still pass verification.

commit 6c539c001e26b5a344d1f6e582f2f25cf16542bc
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 19 19:13:14 2008 -0500

    Fixing puppetca so it uses the :local ca setting.
    
    This causes it to use both the :ca_file and :file terminus
    types.

commit ebdbe4880d8c20965ac21a473b2bfc1ab953b6d4
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 19 19:08:36 2008 -0500

    Added an Interface class to the CA to model puppetca's usage.
    
    This class provides all of the semantics from puppetca,
    and appears to entirely duplicate the behaviour of the existing
    executable, with basically all of the code in a library
    file, instead of the executable.
    
    As such, I've deleted the test for the executable.  We should have
    one, but it's not nearly as important.

commit 934fbba81cb18f05e07675d79a2e830c4e95c918
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 19 15:30:11 2008 -0500

    Making the SSL::Host's destroy method a class method,
    rather than an instance method.

commit d4813f1e03d96551e91b104e48b028fb4074d398
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 19 14:59:11 2008 -0500

    Adding the last functionality needed for puppetca to use the Indirector.
    
    This commit adds 'list' and 'print' support to the CA.
    
    They're mostly delegator methods, but now the CA should be
    the sole interface for puppetca.

commit 809fc77bc767fb3acabc83d55183686200b1e384
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 19 14:50:18 2008 -0500

    Finishing the interface between the CA and the CRL.
    
    Certificate revocation now works, the CA knows how
    to generate the CRL, and the SSL::Host class knows
    how to configure the CRL class for indirection.

commit 62ca72608c8fcded624c46c6951b9381a7284a80
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 19 22:35:02 2008 +1000

    Fixed some tests broken by #1176

commit 82b9f61bdc0f3141b8744b83978e2fe9cd2a710b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 19 21:56:17 2008 +1000

    Added puppetlast script to ext directory

commit a35450b147c8594d5bcae4facc938fe8143218f7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 19 21:51:27 2008 +1000

    Pushed patch for #1176 - configtimeout fix

commit 57fd88be52d07cf1fc09bd213ce096100c95c502
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 19 21:33:24 2008 +1000

    Pushed patch for ticket #1191 - adding globbing support to ports provider

commit b5640a186d0e7103d5d7f5cdfd309342a1634de3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Apr 19 21:13:31 2008 +1000

    Pushed patch for ticket #1187 - freebsd pkg_add support

commit 16056a24c65a7c6485b65f15700ff3971781031b
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 18 11:57:50 2008 -0500

    Adding inventory support to the new certificate authority.
    
    The new-style CA now keeps track of all of its signed
    certificates in its inventory file.

commit d498c4ac4c7b97b5f8e004b3e31d8cbeed914711
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 18 11:53:59 2008 -0500

    Adding support within the inventory for real certs or Puppet cert wrappers.

commit 67f9d6977a21a96bf0a2a4d1d9ebde190a58e7bc
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 18 11:47:44 2008 -0500

    Changing the Inventory class to rebuild when the
    first cert is added, so it's easier to test.

commit 7cca66985a0f84b3904702df842d461c2b6431b7
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 18 11:40:48 2008 -0500

    Adding a comment to the inventory class.

commit 98db9850a7ef8bde01ffae2a80d640ff1e8e92b3
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 18 11:39:42 2008 -0500

    Adding an SSl::Inventory class for managing the ssl inventory.
    
    This models the existing Inventory module in the sslcertificates/
    directory, but does so as an instance, rather than a module.

commit 92a7d76e8a160ba1ddb684d52eab6639cf801cb7
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 18 10:49:58 2008 -0500

    All SSL terminus classes now force the CA information into the right place.
    
    Without this, then you could end up duplicating your CA
    key into the normal directory depending on how caching
    was set up.
    
    Again, this design aspect isn't the most straightforward,
    but at least it's functional now.

commit fb56deae3488e5d97e10e38cba98393a5a8f8414
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 17 22:12:21 2008 -0500

    Switching the SSL::Host class to return Puppet instances.
    
    Previously, the class was returning OpenSSL instances
    (e.g, OpenSSL::X509::Certificate) instead of Puppet instances
    (e.g., Puppet::SSL::Certificate).  This made some things
    easier, but it made them asymmetric (e.g., you assigned the
    key as a Puppet instance but got back an OpenSSL instance), and
    it also reduced your flexibility and introspectiveness.

commit f7e0990fb436ce14e5f7ed295c004438d7735f95
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 17 21:51:14 2008 -0500

    Setting the expiration date of certificate objects to the expiry of the actual
    cert.

commit 71db9b58349f75a54649d9b0d1fead8d01593f7a
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 17 21:39:24 2008 -0500

    Adding integration tests for a lot of the SSL code.
    
    This flushed out some problems, and things mostly look good
    now, but I don't think we're quite there yet.

commit e5c4687593766955de09e5613c892ce82a2a989d
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 17 20:11:34 2008 -0500

    Moving the password file handling into the SSL::Key class.
    
    This was necessary because when the Indirector is used, there
    isn't necessarily enough context available to know when a
    password file should be used (e.g., when reading a Key from disk,
    you don't know if that key was encrypted).
    
    Now, the Key class automatically uses the right password file, and
    only tries to use those files that actually exist.
    
    This isn't very flexible, in that it only allows one CA file and
    one non-CA file, but no one really uses anything but
    the CA file anyway.

commit d8bb81eabb6ad85d985ae7407e4260e800a0cf30
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 17 18:09:33 2008 -0500

    Moving all of the ca-specific settings to the ca_file
    terminus classes, rather than the normal :file classes.
    
    This is unfortunately complicated, and it means that the Key
    :ca_file is only ever actually used for retrieving the CA key
    itself.

commit cbe522169ed6eb2426ecf5a77e24e27b6f7a4edf
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 17 17:47:03 2008 -0500

    Adding SSL::Host-level support for managing the terminus and
    cache classes.  Also, defaulting to the :file terminus
    for all of the SSL classes.

commit c5f0eff51626baa76ebc5bd4bee9d319a0b220c5
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 17 16:49:16 2008 -0500

    Fixing the CA so it actually automatically generates its certificate.

commit 3d24b12d73aad0bac74e4b2f1e214b79f3ca9231
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 17 15:50:40 2008 -0500

    The certificate authority now uses a Host instance named 'ca'.
    
    It previously was a subclass of Host, but this should make it
    easier to separate between the thing doing the signing and the
    thing managing the necessary files.

commit daa8cd57b9f61c40c1b4e6954533f197ee5a2f1d
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 17 14:47:27 2008 -0500

    Changing all of the SSL terminus classes to treat CA files specially.
    
    This is a kind of weird design situation.  For instance, we've got a
    collection of certificates in the :certdir, but then there's a special
    CA certificate off by itself.  Rather than build a whole separate
    infrastructure for managing those separate files (cert and key, at least),
    I decided to add special support for specifying where to find the CA-specific
    bits, and then code for handling them when necessary.
    
    This requires that we have a standard way of knowing whether we should be
    managing the CA bits or normal host files.  The Puppet::SSL::Host class now has
    a 'ca_name' method that returns the string we're using for the CA name; this
    name is currently 'ca'.  We have to use a name, because the name is the only
    thing that all methods have access to (e.g., when trying to 'find' the right
    cert, we only have the name available).
    
    What this means is that if you want access to the CA key or cert, then create
    a Puppet::SSL::Host instance with the name 'ca'.
    
    You'll still get the CA cert created with the host's :certname; it will just
    be stored in a different location.

commit 0a5d8a639014495388b2b6c87c295ab4877f9139
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Apr 18 01:19:11 2008 +1000

    Fixed #1195 - support for gentoo openrc

commit 459979165956fb12874b9d7672ad1b3d960e9512
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 17 15:15:03 2008 +1000

    Pushed schema patch for #1193

commit 7d2c05e86eb14bc7600dcf1d61ba447cd9b4cab8
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 16 14:21:31 2008 -0500

    The 'destroy' method for the ssl_file terminus base class
    now returns false on missing files, rather than failing.

commit 7555af6de90a42bc7ff12381b3c198335c651299
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 16 12:35:10 2008 -0500

    Marking a test as pending, because it's not ready yet.

commit c19c9d436d4d8ca0a5773065b53348242d237651
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 16 12:34:53 2008 -0500

    Removing all the cases where the ssl host specifies
    a terminus.  Also, getting rid of some metaprogramming
    that wasn't really helping.

commit 054e4e431a145737c42d767249f1b94685c9a6d7
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 15 21:28:57 2008 -0500

    Making the first pass at using requests instead of
    specifying the terminus class.  The individual ssl
    classes now work, but the ssl host class doesn't yet.

commit 6900f9776a7875ea13cbb5fe1f2eaa48fe05e667
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 2 10:53:40 2008 -0500

    Adding a :to_text method that will convert the contained
    thing to readable human text.

commit 174b9c99f7eb904ec7d415d3884f3620b6b65d40
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 2 10:53:14 2008 -0500

    Actually signing the certificates in the CA.

commit 546ac97398caa1e9defb34df9567d798e4959020
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 2 10:52:49 2008 -0500

    Adding the first attempt at managing the certificate
    revocation list.

commit c98ad25403dbb27289048513af48d0b3e1723b18
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 1 18:24:46 2008 -0500

    Adding a :search method to the ssl_file terminus type
    and the SSL::Host class.

commit d184b3539db2e857b8df424171a1beed4560a035
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 1 17:07:05 2008 -0500

    Fixing a failing test that had not been updated from previous coding

commit b9d647974915da05af8036933e71bc1e6dc00374
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Mar 19 23:46:43 2008 -0500

    We have a basically functional CA -- it can sign
    requests and return certificates.  There's still plenty
    more work to do, but I'm probably not much more than a
    day away from redoing puppetca to use this code.

commit 1efed0304ebdc13a55eb2d865cdc4965c5253d3a
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Mar 19 17:50:09 2008 -0500

    Adding tests for the easy bits of the CertificateFactory.
    I probably am going to skip the tests for the rest, since
    the code is unlikely to ever change, and it's going to be
    a royal pain to test.

commit ee07d0b7f198857f700b9ad09713fe6b992ffee8
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Mar 19 17:30:39 2008 -0500

    Adding tests for the certificate serial numbers

commit dc5c73bc72810bf63236581cdc9407b039ea135d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Mar 19 13:16:40 2008 -0500

    The certificate authority is now functional and tested.

commit a776a12c10a857ea275de8d25190fb840d94d611
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Mar 12 13:26:20 2008 -0500

    refactoring the cert request test a bit

commit 7641bd4505640729d549b56746e592fd20ee0c76
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Mar 12 01:57:02 2008 -0500

    This is a first pass at the certificate authority.
    The tests are basically entirely absent still, but
    the structure is all there.

commit 0f46815b4e7b7970e9516166f47c0ec074bf0fa2
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 11 19:27:32 2008 -0500

    It looks like all of the new ssl classes for managing
    keys, certificates, and requests now work, including
    talking to the certificate authority.  Now we just
    need the authority itself, along with the necessary
    REST terminii.

commit 00e35bce4e8b7f4e0e4ee039a1d82ad9d08a6b96
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 11 15:02:15 2008 -0700

    Adding he last of the indirection classes for the ssl
    classes, finally including the certificate requests.

commit 8347b0605612128b1a9e9f2d2d2e5ea73dae288d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 11 14:19:11 2008 -0700

    The certificate and key are now correctly interacting
    with the existing cert/key store.  Certificate requests
    are not yet handled, nor are the ca-specific collections.

commit 50f3c18c4e1d54790983262b5e285c529358fb43
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 10 22:32:10 2008 -0700

    Removing obsolete indirection classes

commit ec5bdf3b2d089d53f1f8fd986df83768564e79ac
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 10 10:37:57 2008 -0700

    The basics for the certificate and certificate request
    indirection terminii are done.  I need to move most of
    the test code to a shared behaviour now.

commit bb87464f75cf3ea2e17bb660e7d1880bc36e141f
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 9 16:38:05 2008 -0700

    Fixing a couple of broken tests.

commit b0811ad60527e97554e3f3e1f64d961fc72077b1
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 9 16:37:45 2008 -0700

    The new SSL classes basically work, but they're not
    functionally connected to any kind of indirection.

commit 3970818881b1f9e108ff6b06d2bc36698a3219d9
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 7 15:38:41 2008 -0700

    Finished the certificate request wrapper class.

commit 4ca6fd3e476dbc582ebc69f5fdf9709a8703613b
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 7 15:31:15 2008 -0700

    First stage of cert refactoring:  Private
    keys kind of work.

commit ef7d914aee89b6ea023f030350d04923a7b63fd2
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 15 21:33:49 2008 -0500

    Oops; final fix on the integration test failures resulting
    from my partial support for ssl in webrick.

commit 0ca0ef63d5e38de2926e14ca616cef03250e2a79
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 15 21:06:07 2008 -0500

    Fixing whitespace problems.

commit 4640a3da925387fd2bf88b70f0b37c482926d8b8
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 15 21:05:57 2008 -0500

    Fixing an integration test of the rest terminus; it was
    broken by my incomplete cert support in webrick.  I just
    stubbed out the cert usage for now; once all the cert stuff is done
    we'll need to go back and unstub it.

commit d738f31dd33f6f4683b78f49041a302e4d95eae7
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 15 12:09:13 2008 -0500

    Adding the necessary tests for webrick to have logging and
    ssl.  The tests can't be completed until the certificate work
    is all done.

commit eac14f687849dcb7ce5721635aab8bb261d79db8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Apr 15 20:01:20 2008 +1000

    Fixed #1189 and added support for --all to puppetca --clean

commit d834242db13a827a34340c5f2e51c8df532d5196
Merge: fb05ef3 d9846fc
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 11 15:21:50 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	spec/unit/network/server.rb

commit d9846fc3f06f61fcb4b8806740f77747a7f6939e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 11 15:04:54 2008 -0500

    Fixishing some pending tests, including filling in
    the connection information.

commit cb617f20ed6e0af362937760f33f5ddc34e626ee
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 11 13:53:27 2008 -0500

    Making the changes necessary to get the REST support
    to work with the current state of the indirection work,
    including using a request object and an expiration date.

commit a6a397b21ce9306307c7614b671de63d74d8141e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 11 13:50:36 2008 -0500

    The 'destroy' method in the indirection now returns
    the results of destroying, so they can return true
    or false.

commit 04aba5253d774fae013919605363022781f16d55
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Apr 2 21:27:14 2008 -0500

    fill out specs for network_* methods; refactor lowest-level network hooks

commit a0804ae29a4d2be7b3f15015f87f5b274e95c7bd
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Apr 2 20:45:51 2008 -0500

    adding rest_connection_details helper to Indirector::REST -- will need to be overridden to lookup the real connection details

commit aed13754459e11bcc04a0b14228f5f53b4cd4c4c
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Apr 2 20:41:16 2008 -0500

    make sure unit indirector specs are working with #save; fill out network_put pending specs

commit 75bf05d516ebdace19703c1c1bca5d2cc65d1001
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Apr 2 20:30:20 2008 -0500

    removed a debugging helper from the Indirector::Rest#save method

commit 9187a347306f547805c175b1f288a97da721cc11
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Apr 2 20:28:57 2008 -0500

    updating mongrel/webrick unit tests to match integration-tested version of REST save functionality

commit 93bc1a946f2da6e7c78a38ff90dac8a20b1bcbc7
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Apr 2 19:29:04 2008 -0500

    adding REST save support, with integration tests.  A handful of unit tests in that area now need to be updated.

commit 99b295b8301d7a89c97ecdc1d636c2d2b7f1ae8e
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Apr 2 19:28:11 2008 -0500

    disabling caching for Puppet::Indirector::Indirection as it was causing hella problems with testing save without caching; judging my luke's blog this is going to be rewritten somehow anyway

commit 1befd1d8f1d389f425a36b1515dbba7408ac6238
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Apr 2 01:15:53 2008 -0500

    work-in-progress; playing with refactoring network_* methods inside Indirector::REST

commit f28f20b675737741a98b1b87b4791f736a996d40
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Apr 2 00:48:54 2008 -0500

    Added support for destroy/DELETE over REST (including units & integrations on both webrick & mongrel).
    
    Added pending specs for the trivialities in the REST network_fetch and network_delete methods.
    
    Refactored YAML exception detection out into a private helper method.

commit 07974401178a8b46314971bc7a9858cff1d9797b
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Apr 2 00:12:27 2008 -0500

    updating search integration specs to include webrick

commit e8caf135a4a378d54bf62f8c37064ee3ccc508e9
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Apr 2 00:06:30 2008 -0500

    making search work over REST, w/ unit & integration specs

commit b75048202219f2e07a211df3400a0ee88ccfd208
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Apr 1 23:40:28 2008 -0500

    unit specs and implementation for Indirector::REST#search method

commit a7f2dd464b46bfd55470a6bf679235552d200216
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Apr 1 23:39:59 2008 -0500

    placeholders for integration specs on final REST methods

commit cebb677008143894b9ebfb9b93755fc394b8bef7
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Apr 1 23:08:33 2008 -0500

    ensure that we only run the mongrel specs when mongrel is available as a feature

commit dab9deb312e7d66048060d079253117b0ee2102d
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Apr 1 23:01:42 2008 -0500

    bringing Indirector::REST specs to mongrel-land as well.

commit 1e0f19bcbd0c3f5a83f9cad0e90eb5d6478e278b
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Apr 1 22:55:22 2008 -0500

    Make mongrel happy like WEBrick.
    
    Refactored specs to put some of the lower-level find/save/search/destroy unit tests under their own contexts.

commit d24c03c9bbcc35a94a8235c030a73233feabad57
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Mar 31 12:08:36 2008 -0500

    exceptions on remote end now properly passed to local end via REST and re-raised (integration-tested)

commit 7a7343458402e493f690633f3cfa78abef316d28
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Mar 31 11:59:16 2008 -0500

    Much larger commit than I would like to land at once.  This is all REST-related code.  Two specs are failing related to how Mongrel is initialized for REST; will fix those shortly.
    
    REST indirector now supports find, with deserialization.  Network code in indirector now.  Will still need to un-hardwire address/port for outbound connections.  Will still need to urlencode path parameters.
    Code for search, destroy, update is coming, should be similar to find.
    
    Reworked how the Handler module is used.  Needed to be included, rather than inherited.  Needed to sidestep initializers for actual web servers (webrick, mongrel), needed to be possible to have handler-including class be used as a class (aka servlet) instead of as an instance.
    
    Webrick handler registration is now abstracted to "above" the servlet.
    
    Provided a #model method to use instead of @model in handler module.  This allows neutering during testing.
    
    Brought class_for_protocol up into http/webrick class as a (tested) class method.
    
    Integration tests for rest indirection.  Split server integration tests into mongrel and webrick tests.
    
    Got Node/REST working properly wrt the crazy-ass autoloader thing.
    
    We're now actually passing traffic w/ webrick, fwiw.

commit a1c45790f6cac265a7bac7d63bfb8a3204ed228f
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Mar 12 23:26:05 2008 -0500

    a trivial integration test to test whether the RESTful indirection terminus has a remote shot at working; will need to be upgraded to actually be useful

commit 7d51146e98e4135d933be5b2b227a0ca92f06ef2
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Mar 12 23:08:13 2008 -0500

    fixing Puppet::Node::REST class name to work with autoloader inflection (Puppet::Node::Rest), so we can do Puppet::Node.terminus_class = :rest

commit e86fde2facafd56ee12d7e748b1c8cad916253bf
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Mar 12 22:26:12 2008 -0500

    This is the first version where mongrel and webrick are reliably startable and stoppable via Puppet::Network::Server.
    
    Added a network/server integration spec, testing startup, shutdown, reachability, and collision of webrick and mongrel servers in the new network code.
    
    Converted Puppet::Network::HTTP::Handler class to a module, as mongrel Handler should be subclassed; converting subclasses to include the module instead.
    
    Mongrel will actually stop if you .stop it, graceful_shutdown didn't seem quite so reliable.
    
    Webrick requires running in its own Thread to avoid hanging the entire process; this requires introduction of a Mutex to make things safe.
    
    We're only supporting the REST protocol.  Made this explicit.
    
    Fixed http server setup args, w/ specs, ah the glory of integration testing.

commit c2f8c69af368a8ba496da4ef0023ac5f0885e3c0
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Feb 19 15:06:00 2008 -0600

    the indirector will not serve xmlrpc (this is the responsibility of the legacy networking code; it was a mistake to include stubbed support for it in the new code); removing

commit 13c40e93a5f65255dd3cf93955e83121cc5bb594
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Feb 19 13:34:55 2008 -0600

    removing obsolete TODO comment

commit 2cdd0f89a8d6687fafa77bf119cf2bbeed9d5b71
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Feb 19 12:49:57 2008 -0600

    puppet-compliant indentation

commit fb05ef3c96038d67a46eb142202af186ad6cb0b3
Merge: b49fb68 b49fd49
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 11 13:01:42 2008 -0500

    Merge branch '0.24.x'

commit b49fd495622b15f96faf944db1e70cbe9e7fe7c4
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 11 13:01:17 2008 -0500

    Resources now return the 'should' value for properties from
    the [] accessor method (they previously threw an exception when
    this method was used with properties).  This shouldn't have any
    affect functionally; it just makes the method equivalent to 'should'
    for properties, but it works for all attribute types now.

commit 4aaad26509b2dc9bd45782ec45231e6ea53a4a37
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 11 11:34:51 2008 -0500

    Modified the 'master' handler to use the Catalog class to
    compile node configurations, rather than using the Configuration
    handler, which was never used directly.  I removed the Configuration
    handler as a result.
    
    Modified the 'master' handler (responsible for sending configurations
    to clients) to always return Time.now as its compile date, so
    configurations will always get recompiled.

commit 2925ad1cb9aa820785afca58c4fb6e34274dadd4
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 10 23:18:20 2008 -0500

    Fixed #1184 -- definitions now autoload correctly all of the time.

commit 376628d117f43d3319bfa1cc65d54c2d7af10b42
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 10 23:17:36 2008 -0500

    Removed the code from the client that tries to avoid recompiling
    the catalog. The client will now always recompile, assuming it
    can reach the server.  It will still use the cached config if
    there's a failure.

commit 3718b6410b6d0312027308c809ca5bf623538498
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 10 15:49:12 2008 -0500

    Fixing #1173 -- classes and definitions can now have the same
    name as a directory with no failures.

commit d91b6d8ac081179c467c7c4e9ea7ac067aa22baf
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 10 15:48:45 2008 -0500

    Fixing #1173 -- classes and definitions can now have the same
    name as a directory with no failures.

commit 738889ba027b894867209d5175c716f9a2cc54c6
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 10 14:44:14 2008 -0500

    Fixing the expire method (it wasn't using a request
    internally), and fixing the Facts class so it
    auto-expires any associated cached nodes when facts
    are saved.

commit f285f1aab525a2585532fda0b15b7fd28e994491
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 10 13:14:58 2008 -0500

    Moved the request creation into the Indirection
    class instead of the Indirector module.  Also, added
    an 'expire' method to the indirector, so there's an easy way
    to expire cached instances.

commit d420701522990dd7c55bda7ea1e070254e9dcd13
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 23:48:48 2008 -0500

    Making the log messages around caching better.

commit d82ac984cdbafb9fd43b2566b911b3ba33c0e38c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 21:36:29 2008 -0500

    Fixing the executables to use the new indirection api.

commit 7774d9c443f19d44a1e2dab459fc4bfb94e75244
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 21:21:59 2008 -0500

    Ported the rest of the indirection terminuses over to
    expecting requests instead of having a random interface.

commit bf728d23caca4f58ae4ede1a2d477c9fc15e0bdc
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 18:21:18 2008 -0500

    Intermediate commit.
    
    This commit adds a Request instance into the indirection,
    pushing it all the way to the terminus instances.  It's
    a big commit because it requires modifying every terminus class.
    
    There are still some thorny design issues.  In particular, who
    should be responsible for making the request object?  I've tried
    having both the indirection class and the Indirector module creating
    it, and both have their issues.
    
    Also, the Catalog class previously allowed passing Node instances
    directly to the find method, which is now no longer possible because
    the Request class would treat the node as the instance being found.
    We need the request class to have two modes, one when it's passed an
    instance and one when it's passed a key.

commit 644d6baae132a097170631f90521e878e31a5a0a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 14:09:29 2008 -0500

    Fixing some tests that were failing because new base types
    were added to Naginator, but no new related resource
    types were added.

commit 768315bd6e8ecd064ab473187c10b4633f09523c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 11:39:29 2008 -0500

    Adding the ability for indirection requests to be created
    with instances instead of just keys.

commit 38f0f483faeba28d12a5f4e1d52e8d10ab96e68b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 10:18:42 2008 -0500

    Fixing an errant comment

commit 69a321f07dc0cbec7a0471a3378e9330d12c47b7
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 02:38:20 2008 -0500

    Fixing the tests that were failing because of the use
    of the indirection request object.

commit f9881edd5d4b9f86c1da1c66fb12324d0f9c3c41
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 02:17:31 2008 -0500

    Adding a Request class to the Indirection layer.  This
    class is currently only used internally by the Indirection
    instances, but I expect that I will soon be pushing it to
    all of the terminus types.
    
    I still need to fix a couple of tests that will get broken by
    this commit.

commit 4032a270d90ef93b39ed1df17ebe1040a11128b9
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 00:20:26 2008 -0500

    Fixing the integration tests related to the destroy fix.  Yay.

commit 0bd57995420615e81d74665e66b5a1937ba97792
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 00:02:39 2008 -0500

    Fixing one other test that was failing because of the change
    to Indirection#destroy.

commit 941177a4902f4bfe7b8b3f528ce6648752f5409c
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 7 23:54:58 2008 -0500

    Changing how destroy works, just a bit -- it now accepts
    the name of the instance to be destroyed, rather than the
    instance itself.

commit c6729d134b6b0479e091928ee68abb9008d0f71d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 7 23:47:01 2008 -0500

    Reworking the caching layer to use TTLs instead of versions
    based on timestamps.  This just modifies the indirection class
    itself, there is still some work to do to remove version code
    from other classes.

commit 8e1e06ff1c65bc5d8162fce41776e31b9f00d1bf
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 7 23:39:51 2008 -0500

    Removing unused code from the file_serving/metadata class.

commit 1458123550140c6e45982c139daeeca80d0afd22
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 7 23:39:21 2008 -0500

    Adding an envelope module to handle indirected instance
    expiration.

commit bd858dff513c36f63bcadc13116558fc151c04be
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 11:22:03 2008 -0500

    Changing the default environment to production.

commit 80f8b80eacfa80bfd7b7d4f348838592161ed97a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 11:19:15 2008 -0500

    Adding validation to the user type to confirm that the
    group list does not contain any commas. This seems to be
    a common problem.

commit 87f801bc17af22659b37fece2a0c4efdcdcc1e57
Merge: 92765ea 911c7fb
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 10:29:54 2008 -0500

    Merge commit 'turnbull/0.24.x' into 0.24.x

commit 92765ea4970172c7b96a2911f2ef435e4fbdc459
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 8 10:21:30 2008 -0500

    Making a test executable

commit 7295626c25ab878aaaf6ec577a42f91c0f18fdbc
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Mon Apr 7 12:44:31 2008 -0700

    Used stubs to decouple our code behavior from the behavior of the underlying filesystem, as well as removing the need to sleep (which caused the tests to take a long time).

commit 69cf800462ee9ca1e0a9ba33a83d532699129842
Merge: d575b8a 6f1c469
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Sun Apr 6 14:49:17 2008 -0700

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into unit-tests

commit 911c7fb4735e99cb5dc33ec7c2cb1deb166478b2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Apr 4 11:53:18 2008 +1100

    Additional fix for emacs syntax for ticket #1160

commit c13486e3a5a604152faef6f467ab6eb4f6e30acd
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Apr 4 11:52:08 2008 +1100

    Revert "Additional fix to emacs for ticket #1160"
    
    This reverts commit bb65226e54d5e476581118e7c2c5e42275a6b290.

commit bb65226e54d5e476581118e7c2c5e42275a6b290
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Apr 4 11:51:23 2008 +1100

    Additional fix to emacs for ticket #1160

commit 6f1c46955a49647c14ede85304c25c7137dd9ab6
Author: Andreas Rogge <arogge@dv.rb.solvention.de>
Date:   Wed Apr 2 19:55:25 2008 +0200

    Extend workaround from 56aad69f8cdf8b0b08fdb7985014986223fa4455 to not only fix UIDs but also GIDs
    
    Fixes #1169
    Fixes #804 (workaround was probably incomplete, as required changes in lib/puppet/util/posix.rb were missing)
    
    Signed-off-by: Andreas Rogge <a.rogge@solvention.de>

commit e621985d24fbd417690f763276d7d895c0640042
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Apr 4 01:16:36 2008 +1100

    Changed some non-standard Ruby locations to env ruby shebangs

commit 2036d22cfa950ed84957427b98f69c1719b64dd7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 3 20:59:51 2008 +1100

    Fixes debian service enabled/disable issue as detailed in #1161.

commit 1c02749e8b54616043f728ed18ddec1dc4353a2d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 3 19:30:30 2008 +1100

    Committed patch from #1160

commit f9a907342b3312d599ab6661d6f6ae3619e91734
Merge: 335972e 1ad0cec
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Apr 3 19:11:36 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 335972edb68a532a61392ace006b0401e3cca810
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Apr 2 11:40:41 2008 +1100

    Pushed patch to fix #1174

commit b49fb68f768e8b98c555ef0ae08a7bd22f5d36bd
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 1 00:45:45 2008 -0500

    Fixing the tests in test/ that were broken as
    a result of the move to no global resources.

commit 5e78151d1736e2c4cb741c2cbb7c6b5a59ed3e13
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 1 00:08:15 2008 -0500

    Fixing tests that were failing as a result of the merge,
    including removing some now-obsolete code and tests from
    the Settings class.

commit 88dc49cb7b0efe757c92ce28c807b91335acb07a
Merge: 4165eda a8592f1
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 31 23:56:09 2008 -0500

    Merge branch 'master' into master_no_global_resources
    
    Conflicts:
    
    	lib/puppet/node/catalog.rb
    	lib/puppet/type/pfile.rb
    	lib/puppet/type/pfilebucket.rb
    	lib/puppet/util/filetype.rb
    	spec/unit/node/catalog.rb
    	spec/unit/other/transbucket.rb
    	spec/unit/ral/provider/mount/parsed.rb
    	spec/unit/ral/types/file.rb
    	spec/unit/ral/types/interface.rb
    	spec/unit/ral/types/mount.rb
    	spec/unit/ral/types/package.rb
    	spec/unit/ral/types/schedule.rb
    	spec/unit/ral/types/service.rb
    	test/language/compile.rb
    	test/language/lexer.rb
    	test/language/snippets.rb
    	test/lib/puppettest.rb
    	test/ral/types/basic.rb
    	test/ral/types/cron.rb
    	test/ral/types/exec.rb
    	test/ral/types/file.rb
    	test/ral/types/file/target.rb
    	test/ral/types/filebucket.rb
    	test/ral/types/fileignoresource.rb
    	test/ral/types/filesources.rb
    	test/ral/types/group.rb
    	test/ral/types/host.rb
    	test/ral/types/parameter.rb
    	test/ral/types/sshkey.rb
    	test/ral/types/tidy.rb
    	test/ral/types/user.rb
    	test/ral/types/yumrepo.rb

commit 1ad0ceca6cd06f03279125f1f39f11a0beec310b
Merge: 6f32e95 f927b97
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 31 21:03:56 2008 -0500

    Merge commit 'turnbull/0.24.x' into 0.24.x

commit 6f32e95ce25fb6de40836cb7c7678f39c5e77879
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 31 21:02:52 2008 -0500

    Adding the report reference back; I don't really know
    why I removed it, since the information in it isn't anywhere else.

commit f927b97f9ba454dab23255a259642b6b5dc1aae9
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Apr 1 10:40:25 2008 +1100

    Updates to rrdgraph documentation

commit e51d05c9aa86db2911a68622fcf983e543576f07
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Apr 1 10:34:29 2008 +1100

    Better fix for #1020

commit 4a39d64180377d12d994110cd38b350282863892
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Apr 1 09:58:36 2008 +1100

    Revert "Added updated fix for #1020"
    
    This reverts commit 4f8df9803a9ad2f31d3e86418732a230b5cee3f3.

commit 2cac600de8496b39e698c2363e1faa26ab3705da
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Apr 1 07:39:49 2008 +1100

    Fixed duplicate oid for parentnode and environment in schema - addresses #1170

commit 9c8315f5b31f4be4c541a21b0f326be66ec0b9a6
Merge: 4f8df98 eae5cee
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Apr 1 07:36:58 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit d575b8a0afd25c16918844794ac9f11a877168b7
Merge: 72dc58c eae5cee
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Mon Mar 31 10:46:15 2008 -0700

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into unit-tests

commit eae5cee12df708de5cebfbed2fff42a1890070f5
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 31 11:48:14 2008 -0500

    Fixing a duplicate word in the mount docs

commit 4f8df9803a9ad2f31d3e86418732a230b5cee3f3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Mar 31 09:10:10 2008 +1100

    Added updated fix for #1020

commit aa830b9b34f4d7eb39f5de9cca7ba848f851db2d
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 30 12:38:24 2008 -0500

    Adding 0.24.4 header to the changelog

commit 4c63b69f4b634b1b30cfcd6bd5b770a5518b6814
Author: Blake Barnett <bdb@bdb-debvm1.stanford.edu>
Date:   Thu Mar 27 20:36:04 2008 -0700

    Add a bunch of directives, allows a full parse of stanford's huge nagios config
    Also reformatted a bit

commit 03dc506cdf40623b4ff1b4abffbe9226dabf5453
Merge: 9d30b26 874a02f
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 28 17:45:56 2008 -0500

    Merge branch '0.24.x' of git://wormwood.lovedthanlost.net/puppet into 0.24.x

commit 9d30b2603365ee71c8b8cb23635079827189a9c2
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Tue Mar 25 10:30:41 2008 -0700

    Fixes #1148 - replaces #!/usr/bin/ruby with #!/usr/bin/env ruby.

commit 874a02f00d15350665de19de246d715c702a439b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Mar 27 20:47:50 2008 +1100

    Added check_puppet.rb Nagios check plugin (See #1162)

commit 72dc58ce541102f02d0f8dfd177675dd049730c3
Merge: 8a26c51 491a696
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Wed Mar 26 12:17:08 2008 -0700

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit a8592f1009040ebf30a98268610915cc33bb3f63
Merge: e190779 491a696
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 25 18:18:34 2008 -0500

    Merge branch '0.24.x'
    
    Conflicts:
    
    	install.rb
    	lib/puppet/defaults.rb
    	man/man8/puppet.8

commit 491a69682728818e04b8a20a5d8f4f783ad6ddaf
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 26 08:39:34 2008 +1100

    I think this will include the man pages in the build but overall the Rakefile needs a rewrite

commit 8a26c512e861596cf45ad85c2e66a8beb28d7463
Merge: 9cf7150 3a8053a
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Tue Mar 25 14:27:58 2008 -0700

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 9cf7150549caf5d21a2a22f30d92cd5a73d00a40
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Tue Mar 25 14:09:15 2008 -0700

    Added some more tests for loadedfile, based off the old unit tests.

commit 3a8053a137fa07a467e5dec6464d56bb36ddadf5
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 25 21:27:38 2008 +0100

    Updated to version 0.24.4

commit d3e4ed7462537388c83338a7befd164165fe7945
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 25 21:27:37 2008 +0100

    Updated to version 0.24.4

commit e67e6b1f80c7e0d84bf1c77d179de28496d7a96c
Merge: 077312a 55a9009
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Tue Mar 25 09:49:36 2008 -0700

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 55a9009cbffcfc4fe5f81c24192a3b44cd95dc47
Author: Ryan McBride <mcbride@countersiege.com>
Date:   Tue Mar 25 11:27:14 2008 +0900

    Pass source to pkg_add via the PKG_PATH environment variable if

commit 077312af8670cb035506aa4eefe3d7a677dac029
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Mon Mar 24 16:15:36 2008 -0700

    Added rspec tests for loadedfile

commit 6a535195a908ce80ce41a403d642b3afa871534f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 24 17:10:00 2008 -0500

    Fixing #571 -- provider suitability is now checked at resource
    evaluation time, rather than resource instantiation time.  This
    means that you don't catch your "errors" as early, but it also
    means you should be able to realistically configure a whole host
    in one run.

commit 528bbf1caefdd6963353df9242b81409f4dacbe5
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 24 16:37:56 2008 -0500

    Fixing a couple of tests.

commit 017f6730aa4b8afcc0f8da80c79eb6981a1ad6b9
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 24 16:37:48 2008 -0500

    Moved the configuration of the Node cache to the puppetmasterd
    executable, since it otherwise causes caches to be used in all
    cases, which we don't want (e.g., bin/puppet was using them).

commit 30f0fc0b1ce1900b6d94ec61ddb17fa1fdfdae5a
Merge: 4bfc4ef bd3f6ec
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 24 16:04:36 2008 -0500

    Merge commit 'turnbull/0.24.x' into 0.24.x

commit bd3f6ec87cfb6ccca976e3ab5d8cc13fd8c273a8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Mar 25 08:03:11 2008 +1100

    Disabled man page creation by default and updated CHANGELOG

commit 4bfc4efd969b01843137a6c51591435d05c19c5f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 10 13:34:38 2008 -0700

    Modifying the way ensure is handled so that it supports
    having it be a parameter.  This is only useful if you want
    a composite resource that just generates other resources and
    passes the value on.

commit d93e1b4696978614a02ff02d24857c9e7c8cce15
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 24 12:02:17 2008 -0500

    Fixing #1138 -- the yamldir is automatically created by the
    server now that it's in the :puppetmasterd section rather than
    a separate :yaml section.

commit 273c7ec5259d911d7d153662ad2c69c5df0a7fee
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 24 09:56:39 2008 -0500

    Disabling http keep-alive as a means of preventing #1010.
    There is now a constant in Puppet::Network::HttpPool that will
    disable or enable this feature, but note that we determined
    that it can cause corruption, especially in file serving (but
    it's client-side corruption).

commit 6aa6fdb119f55c3b66e0a13a7df076256083359c
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 23 13:39:28 2008 -0500

    Applying patch by Ryan McBride to fix OpenBSD package
    matching.  The actual problem was caused by the fix to #1001.

commit 5a3195941375645f1e0949b02bbfe5bd29816767
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Mar 22 17:49:28 2008 +1100

    Added man pages and man page creation logic to install.rb

commit e5b16b26fff6b8b358975d27d46a274407891a69
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Mar 22 15:00:19 2008 +1100

    Ported #198 man page creation functionality to 0.24.x branch

commit 18320b8e3271f7d1d1702907be1ff420acfc8d2b
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 21 00:39:26 2008 -0500

    Found all instances of methods where split() is used without
    any local variables and added a local variable -- see
    http://snurl.com/21zf8.  My own testing showed that this
    caused memory growth to level off at a reasonable level.
    Note that the link above says the problem is only with class
    methods, but my own testing showed that it's any method that
    meets these criteria.  This is not a functional change, but
    should hopefully be the last nail in the coffin of #1131.

commit f6325dceb3b10c300f421f540281bbd64bdc091e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 21 00:26:08 2008 -0500

    Found an array that leaked pretty quickly between reparsing
    files, thanks to work by Adam Jacob and Arjuna Christenson
    (the finding, not the leak).  I'm going to act like this
    fixes #1131, at least for now, but I doubt it does,
    since that shows general memory growth over time, whereas
    the leak here should go away as soon as files are reparsed
    (because the parser is holding the reference to the leaking
    array).

commit 25b81b386b3581c1afb8c1ffcd23e2b1953472b4
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 20 23:39:12 2008 -0500

    Fixing a test I broke with my fix to #1147

commit 4f400d4d4da2185832daf5970b5f78b74320d011
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 20 23:27:18 2008 -0500

    Fixed #1147: Cached nodes are correctly considered out of
    date if the node facts have been updated (thus causing
    node facts to again be available in manifests, for those
    cases where they were not).

commit 54bedb2bbae2b84fc8f9df8b95e0a904a4e709f7
Author: Sam Quigley <sq@wesabe.com>
Date:   Tue Mar 18 20:33:02 2008 -0700

    tweak the (already applied) patch in 388cf7c3df7ce26e953949ed6fe63d76cbbb3691 to resolve #1137; also, add tests which detect the problem.

commit a240969763e531a5a1cbcd0fd1c07319deb8edb8
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 20 14:08:48 2008 -0500

    Applying patch by wyvern to fix #1142.

commit e1907798425a7b163ac1b831b0cf11e88985815e
Merge: 9f8bb7e e00065a
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 20 11:55:42 2008 -0500

    Merge branch '0.24.x'

commit e00065a8e63a7222eacbc7e8aaa925e967fd5c60
Author: Karl Fogel <kfogel@red-bean.com>
Date:   Sun Jan 20 00:19:04 2008 -0500

    * puppet/ext/emacs/puppet-mode.el (puppet-indent-line): Clean up the code somewhat after commit 738d275f41f3eaf015800021dd2dfe6c42a1ae79, as promised.

commit 5f3ed8d407ae4280dc7bd81569c48dc75cbc64e3
Author: Karl Fogel <kfogel@red-bean.com>
Date:   Sun Jan 20 00:14:24 2008 -0500

    * puppet/ext/emacs/puppet-mode.el (puppet-indent-line): Be more sophisticated about what we do at the beginning of the buffer, so that the first expression after an block-opening statement that happens to begin at the beginning of the buffer gets indented correctly. This may need some cleanup, but I wanted to get the correct behavior committed first.
    
    Reported by: Micah Anderson
    (Who again supplied the reproduction case.)

commit d1d408c699e051c9a1b6ce1fbc5cba034b252747
Author: Karl Fogel <kfogel@red-bean.com>
Date:   Sat Jan 19 10:52:42 2008 -0500

    Fix bug mentioned in commit f814e23eab140ad01df4a4a3b187fcbf20da02be:
    
    * puppet/ext/emacs/puppet-mode.el
      (puppet-indent-line): When iterating backwards, test for
        beginning-of-buffer first, to avoid an infinite loop.
    
    Reported by: Micah Anderson
    (He also supplied a clear reproduction recipe.)

commit 751405733c19236d279e778ac467d8b265697128
Author: Karl Fogel <kfogel@red-bean.com>
Date:   Sat Jan 19 10:25:14 2008 -0500

    * ext/emacs/puppet-mode.el (puppet-comment-line-p, puppet-in-array): New helper functions. (puppet-indent-line): Rewrite to handle three more situations: indent elements in an array, indent single-line blocks, and ignore previous comment content when indenting non-comment lines.
    
    Suggested by: Micah Anderson
    (He also provided the test data.)
    
    Notes: Michah points out that this change may have introduced an
    infinite loop (he can cause Emacs to hang now).  Will investigate and
    fix in a separate change.

commit 40a389ab0fe7f954edd6adb5c1bbfa477ef5ef5c
Author: Karl Fogel <kfogel@red-bean.com>
Date:   Sat Jan 19 10:17:55 2008 -0500

    * ext/emacs/puppet-mode.el: Untabify, in preparation for substantive changes.

commit 0c45a5a873269e514a86699f61d54cac44e36b52
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 20 11:40:25 2008 -0500

    Adding another commit for #1136 -- Consolidated
    the setting of the loglevel and destination to just
    one call, rather than the multiple calls that remained.

commit 4ce1d370a859e6c6d1a9c6f470ff3905a62536fb
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Mar 21 01:39:38 2008 +1100

    Fixed ports documentation error

commit c75cc426acc942ed852a6ab338cc1ccd40ec69f8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Mar 21 01:18:39 2008 +1100

    Added more detail about the requirement for ruby-libshadow for useradd password management

commit 1dc6dc209afd8da9fdb84944c73c3e9f1c9b03f2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Mar 18 15:06:34 2008 +1100

    Final fix to #1136 - further changes to --test setting

commit e7141568680b6bc5ba1fd87968e993039dff86f5
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Mar 18 14:31:36 2008 +1100

    Second fix to #1136 - fixed --test problem

commit 2155fe156ed8a3866d9a03b9e836e23a24ce9259
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Mar 18 13:52:18 2008 +1100

    Fix for ticket #1136 --verbose cancels out --debug

commit 4cc18ed43637efa9064a302b76d8565c0f706ebe
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Mar 18 03:12:18 2008 +1100

    Applied patch in #1134

commit 2795ba47ccb25ec0a081f1d2b4ef6f2de4ccaf94
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Mar 19 10:56:22 2008 -0500

    fixing another failing test

commit a40e9b7dc58eef2e965e81f6c7be2dc7c14910d9
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 18 18:16:03 2008 -0500

    Fixing some tests that only failed under certain
    circumstances (mostly, when loaded with other files, or
    when loaded from rake or autotest rather than separately).

commit 7d35ae8fed989ef3edb8a304f625786a04ee5faa
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 18 18:14:52 2008 -0500

    Refactoring how the catalog creation handles errors.
    Previously, if there were an error creating a resource,
    the error would propagate leaving any previously
    created resources still in memory.
    
    Now, resources are removed by default when an error
    happens during instantiation, and the error propagates
    to the caller so that they can log or whatever.
    
    This also allows the Settings class to correctly and
    separately handle the cases where we can't create the
    catalog (which should never happen in normal usage but
    was happening because of this error -- later catalogs
    couldn't be created because earlier catalogs left
    resources lying around) from those where we can't
    apply the catalog.

commit 1b3c85ba2c328a09212d1ed3dcf79bb0015dec2f
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 18 17:25:23 2008 -0500

    Removing extra debugging

commit 2d904688559cf6bb863eb2b82447298fbeeece52
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 18 17:24:56 2008 -0500

    Fixing a unit test for node integration

commit e81fc583f1f25241d91e2402b89a06026138a20c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 18 16:35:06 2008 -0500

    Settings now (again?) do not use a section more than
    once, which should make the system a bit more efficient.

commit fca467da6013dfeb1015a82e178d0db241eaa54e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 18 16:33:48 2008 -0500

    Removing explicit requires of types and providers,
    because they were conflicting with Puppet's autoloading.
    This is clearly a sign that our autoloading is silly,
    if Ruby's own loading easily makes it unhappy.

commit 34129d938bcf07d05f6602b7764c688ec4ed226c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 18 16:32:53 2008 -0500

    Removing obsolete code from the fileserving handler.
    This was obsoleted in 0.24.2.

commit f62eec8a2e2e3fcd64d6a659c0b6c231cb1b0c9e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 18 14:33:43 2008 -0500

    updating resource references in the docs

commit d0554db2396794391c7b9f54609e0aef37ac579d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Mar 18 13:55:48 2008 -0500

    Hopefully *finally* fixed the "already being managed" problem
    (#1036).  The problem only cropped up if there was a failure
    when trying to manage the system -- this would cause the
    setting-based resources not to get cleaned up.

commit 13c6de34951faa574ca53bba99505ddb9daa6c71
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 17 06:45:42 2008 +0100

    Adding a rake taks for updating the trac docs

commit 0e26a072fe48cbbb67cb54e6393369de6fe833f8
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 17 06:27:36 2008 +0100

    Updated to version 0.24.3

commit 990638cd1016bf4aebc7e483961a25c13b185d73
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 17 06:27:36 2008 +0100

    Updated to version 0.24.3

commit 18ed28bb1b213b56cc417171aae49581d9674c6d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 17 06:26:58 2008 +0100

    Updating changelog for 0.24.3

commit 4e76626dcad80bc5bb50f2c4ada21e6d3f4bbd83
Merge: ab72048 bba0b43
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 17 00:23:59 2008 -0500

    Merge branch '0.24.x' of ssh://reductivelabs.com/opt/rl/git/puppet into 0.24.x

commit ab720489b491b00be2a0340f0b3aa4e186089281
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 17 00:23:35 2008 -0500

    Removing a Settings.use that is unnecessary

commit bba0b43a594273b82721b6e272aa5d95ab4e89f1
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 16 17:58:57 2008 -0500

    Downgrading the "Using cache" message from the indirection to debug

commit 1dc0e24a4ff565486c00c542f78ab45e23a64ef9
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 16 17:58:16 2008 -0500

    Modified the ldap node terminus to also use the facts version
    as the version for a node, which should similarly encourage the
    use of the yaml cache.  (Related to #1130)

commit 4a45a1da0653f18df6bd41b009a30387df697909
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 16 17:52:46 2008 -0500

    Caching node information in yaml (I figured caching in memory will
    cause ever-larger memory growth), and changing the external node
    terminus to use the version of the facts as their version.  This
    will usually result in the cached node information being used,
    instead of always hitting the external node app during file
    serving. Note that if the facts aren't changed by the client,
    then this will result in the cached node being used, but at this
    point, the client always updates its facts.  (#1130)

commit f3a304c557c096b5dbf319671cb84e5611eee30f
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 16 17:37:12 2008 -0500

    Modifying the yaml terminus base class to use the timestamp
    of the yaml file as the version of the object.

commit 80f69ce86d245b45aeb93964aed9b3daca7d0d80
Merge: 8b29368 388cf7c
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 16 17:21:27 2008 -0500

    Merge commit 'johnf/0.24.x' into 0.24.x

commit 8b2936861378f652b9f6b29accf3985f58b7356e
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 16 17:02:36 2008 -0500

    Adding a filebucket test to puppet-test

commit da77cb687127a8cdb329b7bd8e4ce62ec93f1bba
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 16 16:40:28 2008 -0500

    Adding a test for local compiling

commit 405802ec039adefd919b99567befa6e6b6e8d5b5
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Mar 16 16:27:31 2008 -0500

    Using the indirected facts rather than master.getfacts, so no factsync is used

commit 388cf7c3df7ce26e953949ed6fe63d76cbbb3691
Author: John Ferlito <johnf@inodes.org>
Date:   Fri Mar 14 13:58:24 2008 +1100

    Regression in :node_name functionality
    
    When :node_name="cert" is specified the 'hostname' fact should be set to the SSL certificate common name instead of the results from facter. I've extended this to also set 'domain' and 'fqdn' since that makes a lot of sense to me. This fixes a regression introduced in SVN#1673

commit 872ced7126877dd74a051d8b38ae29920ad0d9b2
Author: Brenton Leanhardt <bleanhar@redhat.com>
Date:   Mon Feb 25 12:42:49 2008 -0500

    Flat file now does writing to a tempfile.
    
    Fixes #1086

commit 495632345d61dda3b094c7ba8f4b1ef662097de5
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 13 13:55:08 2008 -0500

    Fixing #1132 -- host names can now have dashes anywhere.
    (Patch by freiheit.)

commit ecb873d3a6d2eabc931457bd8f4c185c990976db
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 13 12:36:21 2008 -0500

    Fixing #1118 -- downloading plugins and facts now ignores noop.
    Note that this changes the behaviour a bit -- the resource's
    noop setting always beats the global setting (previously,
    whichever was true would win).

commit e2370b37a73db94f4c099a9c54e2443b3c838fa0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 13 09:25:26 2008 -0500

    Fixing the service-stop on debian, using the patch provided by DavidS

commit 9f8bb7e42aeea4670d9292f935529f8db5d57bc5
Merge: c2b33ac e8029cc
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 7 12:28:58 2008 -0600

    Merge branch '0.24.x'

commit e8029cc61a1956263935a0df469cc77b8e80a102
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Mar 7 12:09:46 2008 -0600

    Fixing the "tidy" type to use an option hash for specifying its parent class

commit c955f6130d0920ef18a0b01450ac873b31f73b9e
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 6 16:33:28 2008 -0600

    updating changelog for already-closed tickets

commit 77fe8990072c8d068aabd5958d14382e21be8860
Merge: dade153 4c0f6c8
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 6 15:02:38 2008 -0600

    Merge commit 'andrew/0.24.x' into 0.24.x

commit dade15302f899b75426b6e32dd4b1aa2371bf4fc
Merge: 35214eb eecc22c
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 6 14:59:32 2008 -0600

    Merge commit 'shadoi/fix1116' into 0.24.x

commit eecc22c52dceeccca148e543336a6cd7d64498e6
Author: Blake Barnett <bdb@bdb-debvm1.stanford.edu>
Date:   Thu Mar 6 12:53:57 2008 -0800

    Cache the same type we check for, hopefully fixes #1116

commit f1216f82d564d089fb20fd29545e918b3100e02a
Author: Blake Barnett <bdb@bdb-debvm1.stanford.edu>
Date:   Thu Mar 6 12:51:55 2008 -0800

    Revert "Cache the same type we check for, hopefully fixes #1116"
    
    This reverts commit ca0b62a0f8be88bf3dc33df6b2437d8105a71cea.

commit ca0b62a0f8be88bf3dc33df6b2437d8105a71cea
Author: Blake Barnett <bdb@bdb-debvm1.stanford.edu>
Date:   Thu Mar 6 12:50:24 2008 -0800

    Cache the same type we check for, hopefully fixes #1116

commit 35214eb7e2887ed4ab7e4ab0d8c92c724db495d2
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 6 14:47:14 2008 -0600

    Fixing the rest of #1113: External node commands can specify
    an environment and Puppet will now use it.

commit 2261032801a39affa1a4c5e998fc2c4dd145503f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 6 14:43:41 2008 -0600

    Partially fixing #1113: LDAP nodes now support environments,
    and the schema has been updated accordingly.

commit 4c0f6c8502a0759519877f3e933e44ba980f7da2
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 6 13:20:30 2008 -0700

    Fix for 1094
    
    Replace the catalog with the newly created one when converting to ral types.
    
    The aliases were being lost because the resources had references to the old catalog being converted

commit 27268ad760435c654ddadb30651437c0dd6953e0
Merge: e7cddfe 8192475
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 6 13:12:29 2008 -0600

    Merge commit 'andrew/0.24.x' into 0.24.x

commit e7cddfef2d9a4e851a208dc2d190c5e7d4792513
Merge: 647f5b4 4c47656
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 6 13:10:58 2008 -0600

    Merge commit 'turnbull/0.24.x' into 0.24.x

commit 647f5b458e854bb393d6bba8664798b127d36821
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Mar 6 13:07:11 2008 -0600

    Always duplicating resource defaults in the parser, so that
    stacked metaparameter values do not result in all resources
    that receive a given default also getting those stacked
    values.

commit ee8fac6f24a35edf9234e49fb7aae71e625917f4
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Mar 5 18:55:32 2008 -0700

    Changed name of method for clarity per code review

commit 8192475a041d933b4fdf9e82142b09c9633952f4
Author: Andrew Shafer <andrew@luke-kaniess-macbook-pro-15.local>
Date:   Wed Mar 5 13:08:20 2008 -0700

    Ticket #1041
    The CA serial file was getting owned by root because it was using a different method to write to file
    
    Pulled the readwritelock out of lib/puppet/sslcertificates/ca.rb into lib/puppet/util/settings.rb
    Refactored write, writesub and readwritelock a bit to reuse code
    (write and readwritelock both call writesub)
    
    Added a mode to :serial in lib/puppet/util/defaults.rb

commit c2b33acd5c1e6fe4021d7609f806b7bd8af834f8
Merge: 93a2189 443db20
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Mar 5 12:30:45 2008 -0600

    Merge branch '0.24.x'

commit 4c47656a5f78ff3b13413e5d51948f3f3f36b60d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 5 21:25:40 2008 +1100

    Applies patches from #1111 and #1112

commit ba2dde2d94188af63836845cd6db1c37acecd5c4
Merge: 281448f 443db20
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Mar 5 20:52:21 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 443db2009d0f5033eb51ebd210af2a198572fad0
Author: Andrew Shafer <andrew@luke-kaniess-macbook-pro-15.local>
Date:   Tue Mar 4 16:26:48 2008 -0700

    Fix tests depending on the Puppet[:localcert] file existing using stubs
    
    Some minor refactoring, pulling repeated setup up to 'before'

commit 8f78f7e56d68ca861e9577d1cc3d58d9509d5aed
Merge: f019cac 8627139
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 3 22:14:44 2008 +0100

    Merge branch '0.24.x' of /opt/rl/git/puppet into 0.24.x

commit 8627139e650e4fa5a73a57853c78fcf8a4fadf67
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 3 15:08:08 2008 -0600

    Updating version number

commit f019cac521bba22bb963798997cd11cd80556442
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 3 17:33:08 2008 +0100

    Updated to version 0.24.2

commit bfdac69fcfacb01936cd81e3f77fe8a838821188
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 3 17:33:07 2008 +0100

    Updated to version 0.24.2

commit 6faed129bb9ecd1521017e772dafe116a05c75bc
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 3 17:32:26 2008 +0100

    updating changelog for 0.24.2

commit ee88c58546c2ca2bf7d77fd36d6443777eb0965f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Mar 3 10:29:08 2008 -0600

    Applying patch by DavidS to fix #1083.

commit 281448fb47a7c88bf8d1c3222d03264ecfaeb183
Merge: f1d75c8 ba803a1
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Mar 3 11:59:14 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit ba803a1fb8190997f277b83d50c531b446b2a67f
Merge: ba2814c f79cf37
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 29 13:27:39 2008 -0600

    Merge branch '0.24.x' of ssh://reductivelabs.com/opt/rl/git/puppet into 0.24.x

commit ba2814cb9b769c356416228f4fb7355ae8d67d99
Merge: e008b02 9b07758
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 29 13:27:30 2008 -0600

    Merge commit 'shadoi/0.24.x' into 0.24.x

commit f79cf375bf4a601662cbd0435200bc8ab6644aeb
Merge: a7339ec e008b02
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 29 13:23:42 2008 -0600

    Merge branch '0.24.x' of ssh://reductivelabs.com/opt/rl/git/puppet into 0.24.x

commit a7339ec5f6691d25b24cc883301ca441072b3156
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 29 13:22:55 2008 -0600

    Fixing a few tests

commit e008b02ae04594bd53a9aa29c24961a7d9d9763d
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 29 12:56:02 2008 -0600

    Fixing #1110 -- transactions now always make sure
    their tags are arrays.

commit 65b72676aef2d58314f546eb31780d1b9925b9b3
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 29 12:04:42 2008 -0600

    Fixing the fact that resources that model defined resources
    were getting finished multiple times, which meant they
    got multiple copies of metaparams.

commit 4c3fa7806d12f86fce01030aa5e3745e698cb3c0
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 29 12:00:39 2008 -0600

    Fixing a few more loading order issues.

commit 857814ac80cf4f0c9913ccb6d2d42355670ea64f
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 29 11:51:15 2008 -0600

    Fixing tests that did not work with Rails 2.

commit 7ca0ad64f486c5dc50513e6d06c8e0725ce4f7f8
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 29 11:50:17 2008 -0600

    Fixing a test that changed the environment for all later tests,
    thus breaking some of them.

commit 9b07758e02fc7347cc4a39ca17fc76a3f95d584f
Author: Blake Barnett <bdb@bdb-debvm1.stanford.edu>
Date:   Thu Feb 28 22:55:55 2008 -0800

    * Tweaks for puppetshow UI cleanup

commit 5d3dd9e718cbe69b2fe7f37bc3ec422c88a1080b
Merge: 0139889 65b7267
Author: Blake Barnett <bdb@bdb-debvm1.stanford.edu>
Date:   Thu Feb 28 22:54:12 2008 -0800

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 0139889be92add151e624710261ef6f8c0048586
Author: Blake Barnett <bdb@bdb-debvm1.stanford.edu>
Date:   Thu Feb 28 22:51:20 2008 -0800

    * Add migration for "created_at" (hobo expects it)
    * Tweaks for puppetshow interface cleanup
    * Delete unused tagging lib and puppet_class model

commit f1d75c8bc2604ea396c6d88ba7eef866f48f6046
Merge: 62865e0 43aea83
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Feb 29 12:49:06 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 43aea83eb1ac388566246e5418394e31a4cad697
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 17:53:46 2008 -0600

    renaming ral/types to ral/type in the tests

commit 879ee22ee31309b04428d22f73953026e9111ed3
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 17:40:01 2008 -0600

    Fixing #1062 by moving the yamldir setting to its own yaml
    section.  This should keep the yamldir from being created
    on clients.

commit fd1573fdb696803deb7a220d6bfd06b8afff55fb
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 17:21:35 2008 -0600

    Fixed #1047 -- Puppet's parser no longer changes the order
    in which statements are evaluated, which means that case
    statements can now set variables that are used by other
    variables.

commit b79d15ea893f123f4968879b84aea36eb118712a
Merge: 9d6e926 f0975df
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 16:30:53 2008 -0600

    Merge commit 'lutter/0.24.x' into 0.24.x

commit 9d6e926d8196294afe6b5a03c20a9035056575f1
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 16:12:48 2008 -0600

    Fixed #1063 -- the master correctly logs syntax errors when
    reparsing during a single run.

commit 8df0c1ba76b3fab2ebafb3682a2364561ba6e82a
Merge: abd688e 82b02b9
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 15:59:49 2008 -0600

    Merge branch '0.24.x' of ssh://reductivelabs.com/opt/rl/git/puppet into 0.24.x

commit abd688ea1a0ebd555eac20185d82cc6430507edf
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 15:55:39 2008 -0600

    Fixing #1092 by no longer using the resource reference to
    look resources up, which means there's no concern about
    not finding the resource, which is where the nil was coming
    from.  We now just iterate over the vertices.

commit 29aafb4e98b8751a11787be33b2dfcf910a84fa3
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 15:54:03 2008 -0600

    Fixing an integration test so it cleans up after itself

commit 82b02b90493f0abc173ec4cc09948106ae5190cd
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 14:49:32 2008 -0600

    Fixing #1101 -- puppetrun works again.

commit fe1f4f57bf5ee0792ee645ec8e0bfddf455ea1e3
Merge: dd17d4c c0b5352
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 14:44:39 2008 -0600

    Merge branch '0.24.x' of ssh://reductivelabs.com/opt/rl/git/puppet into 0.24.x

commit dd17d4ca71e17deba8cf19e376e2d711fa516d92
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 14:44:29 2008 -0600

    Fixing #1093 -- 0.23.2 clients are again compatible
    with 0.24.x servers.  :ignore links is now equivalent
    to :manage links.

commit c0b5352851d3fdef20b2a432f6f06d31fdc9ce99
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 14:07:01 2008 -0600

    testing automatic commit emails

commit 614ab9fcc33a7c4abffc0b407335f4a713f2fabd
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 28 13:58:56 2008 -0600

    Adding a 'control' parameter to services, for those
    service types that need a control variable to enable/disable.

commit 62865e0dc921b3d81a89d59c387c3697f37a629c
Merge: 3b5daf7 bb8051b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 28 13:30:33 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 3b5daf77d4ab8da5d3ae9d20e86de8b79e74df2c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 28 13:29:32 2008 +1100

    Revert "Fixes #1099 - use of -m option with -d option for home directories"
    
    This reverts commit 0ae58a9a6a6f201e6a32a4e9d567e04519d3f0b5.

commit bb8051bc406d1da67db8212e852bb36d1368e953
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 27 15:43:09 2008 -0500

    Removed the loglevels from the valid values for 'logoutput'
    in the Exec resource type -- the log levels are specified
    using the 'loglevel' parameter, not 'logoutput'.  This never
    worked, or at least hasn't for ages, and now the docs are
    just correct.

commit ff4f65a48392b41b2943e8ccd6762059d10bb46f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 27 14:52:20 2008 -0500

    replacing tabs with spaces in the redhat interface provider

commit f3db79efd6f52e1100f584f960b94327e1449291
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 27 10:28:17 2008 -0500

    Fixing a typo in the mailalias resource type

commit 0ae58a9a6a6f201e6a32a4e9d567e04519d3f0b5
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Feb 27 10:35:22 2008 +1100

    Fixes #1099 - use of -m option with -d option for home directories

commit 4e559994a3f4a7d4af367dceb5d037ae07dca7d7
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 26 17:04:16 2008 -0500

    Removing the validation on package sources, since
    some platforms (e.g., hpux) do not have a well-formed
    requirement for the source.

commit 42bfdf2fc7affa91265043e583c9673b738d22dd
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 25 19:53:24 2008 -0500

    Fixing #1085, I think -- I was not returning a resource
    if the class had already been evaluated, but this was only
    being run into in corner cases -- mostly where one class
    included another class, I assume.

commit 125851278d745e443c0598fbb0577b010f824365
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 25 19:40:44 2008 -0500

    Fixing #1084 -- the node catalog asks the individual
    resources whether they're isomorphic, and they in turn
    ask the resource types (or default to true for defined
    resource types).

commit 93a2189ef7c31bd31821eddc87f91b02b7f5a233
Merge: 9d2f45d 9a33487
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 25 18:46:36 2008 -0500

    Merge branch '0.24.x'

commit 9a3348764b30ad355f14c27b497ae18ed20f9ea8
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 25 18:46:29 2008 -0500

    adding a comment to the namespaceauth.conf file

commit 9d2f45df3d951ef59a44a7fb81a38586f04884b4
Merge: 0afea69 04892ee
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 25 18:28:26 2008 -0500

    Merge branch '0.24.x'

commit 04892ee723d1a687c83eb6c99b5c6a6c76bbcbc9
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 25 18:26:21 2008 -0500

    Adding an example namespaceauth.conf

commit f0975df7ae2d57f8ac38ab5466b2a378ccabd855
Author: David Lutterkort <dlutter@redhat.com>
Date:   Mon Feb 25 10:10:01 2008 -0800

    Trac #1038: not a fix, just an attempt at improving the situation.
    
    That ticket is caused by _some_ process crashing whiule holding rpmdb locks
    (and doing that a lot) It is unclear whether yumhelper is that process, and
    why it would be crashing.
    
    This version tries much harder to exit cleanly no matter what.

commit c8b320e36652db5dac02870ecc73a62c70d5c736
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Feb 25 11:51:06 2008 +1100

    Corrected #1040 fix - this should now be right - trace was after raise

commit 07cd482863dbfd396d9b2c19df67d103e111287d
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 23 18:17:28 2008 -0600

    Making a couple of other small fixes, requiring
    classes that were not being required in the right
    order.

commit 0323986acd3a288e77c54b5fde20b280fa92b90a
Merge: ff97059 939c952
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 23 19:09:29 2008 -0500

    Merge commit 'turnbull/0.24.x' into 0.24.x

commit ff9705914570158d1bad3073728a2e94ca4a0060
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 23 19:06:29 2008 -0500

    Somewhat refactored fileserving so that it no longer caches
    any objects, nor does it use Puppet's RAL resources.  In the
    process, I fixed #894 (you can now copy links) and refactored
    other classes as necessary.  Mostly it was fixing tests.
    
    This is a squashed commit of a temporary branch, fwiw,
    and it also includes any fixes to the tests that were
    necessary to get all tests passing again.

commit 939c952465815486da0d6c1a2207debb61a45618
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Feb 24 09:47:12 2008 +1100

    Fixes ticket #1080

commit f184228956fc4c2050a5901130fd506b8f069dd6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Feb 24 09:32:44 2008 +1100

    Fixes ticket #1079 - added . support for tags

commit 9b6e5013e387998936979d7a372acde3af65cf61
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 23 13:58:58 2008 -0500

    Fixing a test that was failing when a user-specific
    fileserver.conf actually exists.

commit 5d35bc5904a09bc07a11039500c59021bafaee7e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Feb 23 08:41:24 2008 +1100

    Fixes #1078 and includes new test

commit 7976015389149defd7f135a859ab11b94e6aad11
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 21 23:59:10 2008 -0500

    Removing a test I never migrated from test/unit.

commit 279a0c56acc3085a30e928d8181bc985aa1ea825
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 21 23:57:46 2008 -0500

    Fixing a test that was actually reading in keys
    from the filesystem and failed when those keys
    were unreadable.

commit 098a69c0e75f469e72d32a293276fbea744e9a24
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 21 23:19:27 2008 -0500

    updating checksum for #1010 fix

commit b06767ee2d7c22c27d746d3e8d1b6effa37deaa6
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 21 23:18:40 2008 -0500

    Quashed commit of my fixes for #1010.

commit 5e18b8dc91b2313a96dd3a9ff9cb0a88bfe0d6a0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 21 15:50:02 2008 -0500

    Hasstatus in the init service provider; it was just
    doing a boolean check, rather than comparing to :true.

commit 60f18c26c16f781eeace3d921cc1bb2786a3a9b6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 21 13:07:10 2008 +1100

    Fixed minor documentation error

commit 39a6756f4feedceadab1d257eab460867935b3d3
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 21 11:30:20 2008 +1100

    Fixed #1073 - moved show_diff and other logic post config parse

commit f006e177ec366638b7df6b271edb4650bf2b7705
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Feb 20 11:14:34 2008 +1100

    Fixed test for #1040

commit 1f0ea5a0e8629f0ff281153d710ef9e75bee3134
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 19 15:42:12 2008 +1100

    Second attempt fix address ticket #1040

commit 95b8414b8164b1beffea20973e204b1b5cbba763
Merge: d82bfd8 39f9818
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 19 15:32:30 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 0afea69c06742eff1e8d8bd7df13c9c0e4c397c0
Merge: a53106c 39f9818
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 18 22:07:12 2008 -0600

    Merge branch '0.24.x'
    
    Conflicts:
    
    	CHANGELOG

commit 39f9818276e49020c1a6db9667371f7617d5cc93
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 18 22:05:34 2008 -0600

    Removing some extraneous debugging from a test.

commit d82bfd86288cc012018797d98168f918bff75778
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 19 12:23:40 2008 +1100

    Attempt to fix #1040 - catching errors in compilation

commit 9c23d214a3181e282c92568095b341d1b3d02f6c
Merge: e830f28 2de4654
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 18:58:20 2008 -0600

    Merge branch 'my24' into 0.24.x

commit e830f286ee1e657c775871d18340499badc6ef1f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 18 17:36:30 2008 -0600

    Fixed #1018 -- resources now have their namevars added as
    aliases in the resource catalog, just like they were added
    in the resource classes.

commit 60dd5692715bf38226db2d46eb6b93e18a72eb00
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 18 17:13:10 2008 -0600

    Fixed #1037 -- remote unreadable files no longer have the
    permission denied exceptions caught, thus forbidding them
    from being replaced with 'nil'.

commit 8754f41117540b9bb79f4561c99cd608c0115117
Merge: f087df0 d11cd39
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 19 08:42:00 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 2de4654cd65cfff79d8c4808d64923832eae5993
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 14:21:12 2008 -0600

    converting parser ast node specs from setup/teardown to before/after

commit 9927efbcbc1e1e35053e028c8a5c341795d28bf6
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 14:20:13 2008 -0600

    converting parser ast host class specs from setup/teardown to before/after

commit c86c1da76d22e96b792b35e8c46afa2656226918
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 14:18:17 2008 -0600

    converting node catalog specs from setup/teardown to before/after

commit 61cdc2bcd82121319821e236cec1632779b19c26
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 14:15:17 2008 -0600

    converting indirector yaml specs from setup/teardown to before/after

commit f702096aba4366d21f7b1457cace652ab6235f8b
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 14:13:54 2008 -0600

    converting facter indirector specs from setup/teardown to before/after

commit 516e5b62cbb5ed2fbbadcd211d3e843f0f049db8
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 12:04:09 2008 -0600

    converting indirector checksum file specs from setup/teardown to before/after

commit d260b7e762bf518f1f7c4ad99ba3c998b2c31c8d
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 12:02:09 2008 -0600

    converting parser compilerspecs from setup/teardown to before/after

commit 191313405183dceb2010037312fdd2a900711676
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:59:54 2008 -0600

    converting mount provider specs from setup/teardown to before/after

commit 6781e1066065fb1044df3c36a6512839dbe1e622
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:58:06 2008 -0600

    converting indirector terminus specs from setup/teardown to before/after

commit dba64ddd4b359623dbb90b9d0d68d96e305045f9
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:55:55 2008 -0600

    converting file serving configuration specs from setup/teardown to before/after

commit b4c8f996f13856ac74830fa41e4137b80e674f30
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:54:13 2008 -0600

    converting indirector ldap node specs from setup/teardown to before/after

commit 3cb11185168458a34adb9a8cf23bc6b7088644f8
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:52:14 2008 -0600

    converting indirector direct file server specs from setup/teardown to before/after

commit 9e632bc600ba64822dd884224cd6c246758eaaad
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:50:28 2008 -0600

    converting parsed mount provider specs from setup/teardown to before/after

commit becafab0aee2ea5f07622a1e74bd5393ff44464d
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:48:11 2008 -0600

    converting mount type specs from setup/teardown to before/after

commit 034336bb1d9d8a3d3220aa62eb18c796f7982f53
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:44:34 2008 -0600

    converting indirector file specs from setup/teardown to before/after

commit 12f139ce7fb040753440b37727eb5dacd0e3e1cb
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:42:01 2008 -0600

    converting package type specs from setup/teardown to before/after

commit b8d5ce0aa8de40ac8ab84e97d54f77c2499dc65f
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:38:54 2008 -0600

    converting fileserving/configuration/parser specs from setup/teardown to before/after

commit eb0bdcbad9a6e9123935aa3527c13626425dd6f2
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:36:14 2008 -0600

    converting indirector/module_files specs from setup/teardown to before/after

commit 22d6f9fd7c5ec70564cd83b76c39cf3fa67ccf66
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:33:48 2008 -0600

    converting ral/types/schedule specs away from setup/teardown

commit d04567ac8de6c3474ef426296ce3c627b923d519
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 11:27:45 2008 -0600

    converting indirection specs away from setup/teardown to rspec compatible before/after usage

commit aa14ce7544300ba15f95f2f03d89ff3d8a0afe9d
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 10:57:40 2008 -0600

    moving setup() methods to before :each, so that the tests will run with rspec, as opposed to just rake (which calls them directly with ruby, as opposed to any spec binary)

commit cfbb9cf7b44cb48433b118108e36660e3e6815bb
Merge: f9f32c4 d11cd39
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 10:43:40 2008 -0600

    Merge branch '0.24.x' into my24

commit f9f32c432f266c77932fa8168c76d7780064c186
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Feb 18 10:34:21 2008 -0600

    reordering spec binaries to prefer the local vendor/gems/rspec/bin/spec option

commit d11cd39024e1baa5988e587e34fad65bb116ea01
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 18 10:29:07 2008 -0600

    Fixing a failing test that resulted from a change
    in how checksums are created.

commit a53106cf08c28e996502cba703f64944250a4b29
Merge: be58bb5 62d7616
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 18 09:38:32 2008 -0600

    Merge branch '0.24.x'
    
    Conflicts:
    
    	CHANGELOG
    	man/man8/puppet.8

commit 62d7616a457f33eb660454fcdcefe8dab84522c0
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 18 09:00:11 2008 -0600

    Fixing the directory service provider's behaviour
    when there's no value for a given attribute.

commit f087df0644c2532cbdf2d0e9ee20fae0a19dc6e6
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Feb 18 10:48:33 2008 +1100

    Fixed ticket #1072 - Debian directory updates

commit 0eede7604d9da9b453d48465b06de9813602c09b
Author: Jeffrey J McCune <jeff@northstarlabs.net>
Date:   Sat Jan 19 16:34:48 2008 -0800

    Fixed Ticket 1009 - problem with plist xml parser.  We do not need the plist parser for pkgdmg.

commit c34982439dce7fbd7a9686f2f73cc170d994ab50
Merge: 458cb23 30128bd
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Feb 16 14:35:34 2008 -0600

    Merge commit 'turnbull/ticket_1024' into 0.24.x

commit 458cb238e8cdde8d19977c1908c85ad32a7a6c78
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Feb 16 13:58:00 2008 +1100

    Fixed ticket #1070 - puppetrun configuration parse problem

commit 2e41803bd30f12b91bcf753baf2c228eac126723
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Feb 16 13:26:05 2008 +1100

    Fixed ticket #1069 - removed remaining references to multiple configuration files

commit 10d4d0e04836ba7fa7ad785c824300bf488af50a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Feb 16 13:03:42 2008 +1100

    Fixed ticket #1065 - Solaris SMF manifests

commit 8fa4120015ec87801882c51061c05bba1e31f86d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Feb 15 14:24:54 2008 +1100

    Fixed ticket #1068 - Minor documentation fix

commit 30128bd9302f7db5aee5991ebcbbdbde9852690b
Author: Jeffrey J McCune <jeff@northstarlabs.net>
Date:   Sat Jan 19 20:39:00 2008 -0500

    Really minor change to user creation in Leopard.

commit c004d2c081ef53952f7a30a32d0208e10747cbe0
Merge: df3fbc7 6013b25
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Feb 15 13:17:12 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 6013b2500d9e799f8aba9f614de15d4eb477860a
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 14 20:13:44 2008 -0600

    Refactoring the incremental checksum generation
    slightly based on the code in type/file/checksum.rb.

commit aebd303e267a4b830592ffe3551bd80647802a20
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 14 19:45:47 2008 -0600

    Enhancing the stand-alone checksums utility module
    with the rest of the checksums we're likely to use,
    and adding tests, which I somehow missed when I wrote
    this file.

commit df3fbc77b52bde3ce643d25f4a0d28a2cd35ef52
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Feb 15 11:32:03 2008 +1100

    Fixed #1060 - Debian service removal and addition

commit 95db7702b162615c04a138c5e3a266f3d1dcf36c
Merge: c0d7226 5ef8a3e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 14 11:24:39 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 5ef8a3e6eb81c7367f50c9de3ec10a8301b106d1
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 13 17:38:00 2008 -0600

    Changing portage to use Puppet::Error instead of Puppet::PackageError,
    fixing #1059.

commit c4f7c5180009ff8e8d7cb9d8a286a916991b7c1b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 13 17:30:18 2008 -0600

    Fixing comment -- ticket #1027 instead of #1064

commit 892055709a7e0b628758d24aba7590fd3c78426b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 13 17:29:23 2008 -0600

    Fixing #1064 -- providers et al are now autoloaded
    from modules even when Autoload#loadall is used.

commit 482971103b436e030606371df69bf4dfbbf54a2c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 13 17:18:23 2008 -0600

    removing "lib" deprecation notice from autoloader

commit f8afe131699f1f0afe834b070af285fd56f6320d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 13 16:52:26 2008 -0600

    Fixed #1043 -- autoloading now searches the plugins directory
    in each module, in addition to the lib directory.  The 'lib'
    directory is also deprecated, but supported for now to give
    people a chance to convert.

commit c0d72265a37bffbb0becee0c46511db2a1108899
Merge: 0c457ee fe02591
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 14 09:37:36 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit fe02591eaad7c8648699b53c9361ffab851e2022
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 13 16:36:19 2008 -0600

    Fixed #1003 -- Applying DavidS's patch to fix searching for
    tags in sql.

commit 9b1bfc1e2eadc8fc56dc8df1510b5dec977524f4
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 13 16:30:49 2008 -0600

    Fixed #992 -- Puppet is now compatible with gems 1.0.1.

commit 0c457ee6373d436729a5d3492ca25a02c568103d
Merge: 9f224f2 0cfa1d2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 14 09:29:55 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 0cfa1d2b7ae38020d3b845d7713cb10cda7facef
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 13 16:27:35 2008 -0600

    Fixed #968 again, this time with tests -- parseonly works,
    including not compiling the configurations, and also storeconfigs
    is no longer required during parse-testing.

commit 8367fdfab25aacb56f16444f5763b347e6a907ab
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 13 15:49:51 2008 -0600

    Renaming the 'pfile' and 'pfilebucket' files to plain
    'file' and 'filebucket'.  This should have been done
    years ago.

commit 9f224f2327ca691f4263e36708ef4e7386b2c4b4
Merge: 8cfe4e7 a42c3ae
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 14 08:11:41 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit a42c3ae7eba819053d8f01a339a9c865092d15e2
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 13 14:55:14 2008 -0600

    Fixed #1021 -- the problem was that my method of determining
    the in-degree sometimes resulted in a lower number than the
    number of in-edges.

commit d406353d3435ed6c8f4949fb35a15411a7a14d80
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 13 14:26:28 2008 -0600

    Removing the last vestiges of GRATR from the PGraph class

commit 068b61e022c42fb12a5c657cb9d1ebbd98c7ca38
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Feb 13 08:56:06 2008 -0600

    Removing obsolete references (they're in the indirection
    reference), and adding error handling to puppetdoc.

commit 8cfe4e7a984eb92afd92fa1128d2fa8c1a021976
Merge: d3959c4 98dbfa2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 14 01:02:32 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit d3959c497f4c61995f664d88aa3386b54c4baf8d
Merge: c3ead03 bcb9b56
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Feb 13 20:29:00 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit be58bb5c4bc19e59685e0a8953eaf2d3b7844110
Merge: 11ef70a 98dbfa2
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 23:00:52 2008 -0600

    Merge branch '0.24.x'

commit 98dbfa2865ad270d5fd9821c6518f6f30ce9aec4
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 23:00:40 2008 -0600

    Loading the mocha gem from the puppettest.rb file.

commit 12fa0fa387798e017641d7df8cf6cdc060032aed
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 22:53:19 2008 -0600

    Fixing the Rakefile so all tests run in one task instead
    of multiple.

commit cb5def4dc3310e1e697b3b27e7163224857c4c61
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 22:47:40 2008 -0600

    'rake' within the spec dir works now, anyway, which is
    a good start.  Autotest still doesn't work, though.

commit eb740336d418273eea726f653280dae7553da605
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 22:24:12 2008 -0600

    Fixing the puppet_rspec autotest plugin to use the modern interface

commit 1b90f7f8b523b32439e17f27b9f924bea8f1e74b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 22:11:30 2008 -0600

    Trying to upgrade rspec, but not having much luck.

commit 11ef70aa357a081fd14158e70acc8d943b5caffa
Merge: da78d96 bcb9b56
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 17:39:26 2008 -0600

    Merge branch '0.24.x'

commit da78d96cb139db0775e634b2fa4bd9c173752127
Merge: bee9aba 3af6827
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 17:37:51 2008 -0600

    Merge branch '0.24.x'
    
    Conflicts:
    
    	CHANGELOG

commit bcb9b564281003e22d72752d84fa9dc9c8c7107b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 17:14:21 2008 -0600

    Copying over Rick's work from the master branch supporting autotest and
    cleaning up the rspec support.

commit 3af6827875f4e02b47fe2293280ff9afe811485f
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 16:35:31 2008 -0600

    Adding an inflection util class.

commit 7e45553448f2a051594ee4f2fc83ebcfa4a8114a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 14:57:24 2008 -0600

    Fixed #997 -- virtual defined types are no longer evaluated.
    NOTE: This introduces a behaviour change, in that you previously
    could realize a resource within a virtual defined resource, and now
    you must realize the entire defined resource, rather than just
    the contained resource.

commit 9b66251076e0403afde5b1ad7aa543d18e302a94
Merge: c8da318 b561ae6
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 14:43:33 2008 -0600

    Merge commit 'bartv/pending/fix-997' into 0.24.x

commit c8da318a2a4445e0ce10c76a7fbb64635b291ccd
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 12 14:19:19 2008 -0600

    Moving the ast node tests to rspec (which I could have
    *sworn* I did this weekend).  In the process, I fixed
    a couple of bugs related to differentiating between
    nodes and classes, and then cleaned up quite a few
    error messages.

commit 8b2fae019b31513becd002eb474e1b4803abde24
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 11 18:27:49 2008 -0600

    Removing the last remaining vestiges of GRATR --
    removing the bangs from 'add_vertex!' and 'add_edge!'.

commit cf21ade9abf4541920b535b0e2643b30e44b067b
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 11 18:15:27 2008 -0600

    Switching the Node catalog to use the Tagging module
    instead of its own tag methods.

commit 744cd45378384d33b3118351536e70cd6ea8370d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 11 18:13:51 2008 -0600

    Added a 'tagged?' method to the Tagging module.

commit d21416b534eaa5717eca850cfe848716a9b1dc09
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 11 18:08:15 2008 -0600

    Switching the Node Catalog to using a separate method
    for validating that a given resource is unique
    within the catalog.  This no longer allows any
    duplication, even with Execs.

commit fd0c5cbddec8dc53196a3b84e33e1000c3c0720f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 11 17:59:34 2008 -0600

    Changing the name of the Compile class to Compiler,
    since it's stupid to have a class named after
    a verb.

commit 5ebaa8953155d091ed5b5c68c3862c9f695f03c0
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 11 17:41:19 2008 -0600

    Refactoring the interface between the Compile class
    and the AST::Node class to match that to
    the definitions and AST classes.

commit e247b56d9941b4a636d3a3d9935d6b9cd9b199ea
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 11 17:33:12 2008 -0600

    Changing some methods in the Compile class to
    be more internally consistent (switched store_resource
    to add_resource, and store_override to add_override).

commit 6a4cf6c978e8c8aebba4ed0f16d3de7bb31a0ce0
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 11 17:24:02 2008 -0600

    Fixed #1030 - class and definition evaluation has been significantly
    refactored, fixing this problem and making the whole interplay
    between the classes, definitions, and nodes, and the Compile class much
    cleaner.

commit 3b740ff7a6ab7127ec5e4935782c33245687c429
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 11 13:59:25 2008 -0800

    Converting the Compile class to use a Node::Catalog instance
    as its resource container, instead of having its own behaviour
    around resource uniqueness.

commit 194e7309c9c481f7e67bd63b13e2fc80fe0a4f00
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 11 12:37:00 2008 -0800

    Moving all of the tests for Puppet::Parser::Compile to
    rspec, so I can refactor the class to more heavily rely
    on a Node::Catalog instead of doing its own resource
    container management.

commit fb4bdc0b02bba1291cb78ccd5c2a3198d3929d69
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 8 13:54:53 2008 -0800

    More AST refactoring -- each of the code wrapping classes
    just returns a resource from its evaluate() method, and
    all of the work is done in the evaluate_code method.  This
    makes the code cleaner, because it means 1) evaluate() has
    the same prototype as all of the other AST classes,
    2) evaluate() is no longer called indirectly through
    the Parser Resource class, and 3) the classes themselves
    are responsible for creating the resources, rather than
    it being done in the Compile class.

commit 5a0e34b4f8da22e1830ec7d0a730c3686665bceb
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 8 14:25:52 2008 -0600

    Refactoring the AST classes just a bit.  I realized that
    all of the evaluate() methods only ever accepted a scope,
    and sometimes one other option, so I switched them all to
    use named arguments instead of a hash.

commit 82720d5327b30839a29035ee0b498b940ffc7a5a
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 8 13:24:39 2008 -0600

    Removing some obsolete code from the AST base class

commit dbaffaeaafa60c7325f7522a76a84c5dd7df7c6b
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 8 11:42:24 2008 -0600

    Ceasing autoloading ast files; loading them manually instead

commit 7c500dac315ea7256c92b0b3cac203bf7c6749f0
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Feb 8 11:41:22 2008 -0600

    Stubbing Facter during the snippet tests, so they are faster and work with no network

commit c3ead0331adba5f60ea7d508775a89de68e26caa
Merge: f7b0ca9 084d0fb
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Feb 8 16:35:06 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 084d0fb6351ed54ff4c052cff20f21e89063620c
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 7 15:52:02 2008 -0600

    Adding more information to dependencies that do not resolve

commit b293763f9ef2e134f18bb2c3fdaaaa502aa2c201
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 7 15:34:30 2008 -0600

    Applying patch by Jay to fix #989 -- missing crl files are
    correctly ignored, and you now use 'false' instead of 'none'
    to explicitly ignore them.

commit 2931723bae9e4226ab8eb7f6f806bf9a2ea5cbb8
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 7 15:31:43 2008 -0600

    Fixing the Settings class so that it correctly handles
    file values that are false.

commit f19e106b5ee0eab0ca0de2f441073b37540f3e8f
Merge: b3f67ec 8f0d87d
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Feb 7 12:57:57 2008 -0600

    Merge commit 'plathrop/fix-1007' into 0.24.x

commit f7b0ca9e9475d4b6a9138d70256f143b8ba31f1a
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Feb 7 23:20:52 2008 +1100

    Fixed #1052 - fixed gentoo service management

commit b3f67ec4017940a7eb47f3a044fd77c8d32a74cf
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Tue Feb 5 15:07:05 2008 -0800

    Fix ticket 974. My original "fix" wasn't. This actually fixes the problem by using a regular expression that matches only up to the first square bracket.

commit 8f0d87d498ca12417a7d20b81ba46465658fa210
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Tue Feb 5 14:05:14 2008 -0800

    Added :env parameter for backwards-compatibility, with warning about deprecation. :env parameter sets new :environment parameter. Changed instances of :env to :environment for consistency with other types. Added tests for new parameters. This cimmit fixes ticket 1007.

commit 139ff33e1f93a0634547fc9a06442a720fe0a58e
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Mon Jan 21 17:01:53 2008 -0800

    Fujin's patch for ticket #1007 - consistent use of 'environment' instead of 'env'

commit aedd59cb2427c8642b817587b0c5ad1319161daa
Author: Paul Lathrop <plathrop@debian.tertiusfamily.net>
Date:   Fri Feb 1 16:51:48 2008 -0800

    fix bug 974 - filenames with opening bracket characters generate exceptions

commit 1b1164d5d614b0d2c37b058edb6a126c7fd0bae2
Merge: 0a7ac57 28a8577
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 5 09:00:03 2008 -0600

    Merge branch '0.24.x' of git://wormwood.lovedthanlost.net/puppet into 0.24.x

commit 0a7ac57e70ad1cfc1034a2d43a381e09b7e96e00
Merge: b8036a9 ade9f3c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 5 08:56:24 2008 -0600

    Merge commit 'bartv/pending/fix-933' into 0.24.x

commit b8036a9ed180dc1e143f66ac786759e7ae4b634b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Feb 5 08:30:55 2008 -0600

    Updating the docs for the cron type

commit 28a8577f825e541098ada954cbe8d380811b1561
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Feb 6 00:55:36 2008 +1100

    Added hostname test for hosts type

commit e96c5f84233b40915f7f7e993e1816f3de0d3ab2
Merge: ed0c745 16df87c
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Feb 4 23:56:35 2008 -0600

    Merge commit 'turnbull/0.24.x' into 0.24.x

commit 16df87c419655106b1585b1e443a2050270518e5
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Feb 5 13:52:12 2008 +1100

    Updated fix for ticket #151 and added a test

commit ed0c745c0f3b0f277968149ca25c78ce374bd2e4
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jan 20 22:00:05 2008 -0800

    Fixing #1017 -- environment-specific modulepath is no
    longer ignored.  (Cherry-picked from master.)

commit ade9f3c7296db12eee6f3c9c3aa29b99da652960
Author: Bart Vanbrabant <bart.vanbrabant@zoeloelip.be>
Date:   Sun Feb 3 11:44:32 2008 +0100

    Store a resource before adding relations to it otherwise activerecord will
    complain. This fixes #933

commit f33c4061ebdf1908176eabd6b524a948de1fbd38
Merge: 047ec54 6ff9423
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Feb 3 04:55:36 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 047ec5435ef81139b60fc60a5a2668c0a7c4ee85
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 31 20:37:26 2008 +1100

    Fixed tickt #1034 - doco typo

commit 6ff9423c7ebaf759fcee28a3009cd59bed3ea886
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jan 30 23:28:07 2008 +1100

    Significantly refactoring the lexer, including adding Token and TokenList
    classes for managing how the tokens work.
    
    I also moved they tests to RSpec, but I didn't rewrite all of them.

commit 11799b3266674edf5eba3591dcb41eae51c1a0e4
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 28 22:57:54 2008 +1100

    Fixed #1001

commit b03fd4fa3c8fc2a38814daf9086960c174cd7412
Merge: 348aa3e 7a4935f
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 28 22:51:49 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 348aa3e26cf363df2e4a8dc1698da520973b2d2b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 28 22:48:12 2008 +1100

    Fixed #1028 - examples incorrect for 0.24.x

commit 974fcdb4b5fd5f490297b4fd6d83c41c5a108411
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 28 22:43:38 2008 +1100

    Removed womble-specific Debian build section

commit 321b8fda8e50701d6a74e52332f5bbf8e7390d5c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 28 22:42:57 2008 +1100

    Fixed #1006 - changed ldapnodes to node_terminus

commit ee6ddc9c3bf76d4a6499fdbcb43f18daed247395
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 28 16:48:35 2008 +1100

    Removing tons of unnecessary calls to "nil?" from the lexer.

commit 7a4935f7b31a7d1bd8264ed6d0b69cc90a7882b4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 28 15:07:02 2008 +1100

    Fixing a couple of tests, one related to recent tagging changes
    and one that somehow slipped through when I removed the GRATR
    code.

commit 9a290bb646e23191184230243ef58cc0c9501400
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jan 25 22:49:48 2008 +1100

    Second attempt to fix ticket #151 - host type now validates IP addresses and hostnames/FQDNs

commit 4a7fcfc761aa086488b255f457373f6626498e72
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jan 25 16:12:59 2008 +1100

    Revert "Fixes ticket #151 - host type now validates IP addresses and hostnames/FQDNs - the regex for the latter is quite complex but I have found it bullet-proof in the past"
    
    This reverts commit 1ccc9c3b47e7e96f70fa48b2a21c5e10dc103d6e.

commit b561ae64014630d9d2b93a6a6625fe67e9844c9e
Author: Bart Vanbrabant <bart.vanbrabant@zoeloelip.be>
Date:   Tue Jan 22 16:29:38 2008 +0100

    Fix bug #997, only evaluate non-virtual definitions

commit 1ccc9c3b47e7e96f70fa48b2a21c5e10dc103d6e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 22 11:58:40 2008 +1100

    Fixes ticket #151 - host type now validates IP addresses and hostnames/FQDNs - the regex for the latter is quite complex but I have found it bullet-proof in the past

commit 1f5767439d31c8dd7bce2ee9fb6a91c4e417f8c1
Merge: 84de2c2 89d5517
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 21 18:11:54 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 89d5517f1b522b4e71a78409552b4756143be07d
Merge: 8a649ff d7a89b4
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jan 20 22:27:33 2008 -0800

    Merge commit 'turnbull/0.24.x' into 0.24.x

commit 84de2c2c563d3f3543dfe154bf468ce4d22d50ec
Merge: d7a89b4 8a649ff
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 21 17:26:55 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit d7a89b449520abb95396132bc379782a0d596816
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 21 17:24:30 2008 +1100

    Fixed #1019 - made libshadow available for non-Linux users

commit bee9aba2da453151a80c6e1f25f16bec3bfde8d2
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jan 20 22:14:10 2008 -0800

    Environments are now available as variables in manifests,
    and specs can be directly executed again.

commit b225e86b120091b213d32e657180ecc446057c0a
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jan 20 22:00:05 2008 -0800

    Fixing #1017 -- environment-specific modulepath is no
    longer ignored.

commit 8a649ff28a46afe6b1e4dd002ac90c93651edfa3
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jan 20 21:21:37 2008 -0800

    I think I've finally fixed #959, by having the Settings
    class skip any resources that are already in memory.

commit 4ede432f4da9bb5529830f7a5c022a3245219303
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jan 20 10:29:23 2008 +1100

    Tidied the man page creation function and created "master" branch man pages

commit 6f24b678c6146ab34a4ad6c1d9f7f6e8cf2b1752
Merge: 5195a2f f43be56
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jan 20 09:43:29 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 52eba77e15e74f93d88a5763ca891a53de60b538
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 19 13:57:08 2008 -0800

    Fixing #794 -- consolidating the gentoo configuration files.

commit f43be56d7b84c5a4f7ecbe8463fbb38836f1ef9a
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 19 13:40:52 2008 -0800

    Removing the line that marked fink as the default package
    manager on darwin.

commit f98be4a7198326b26f1072c401b3e337f340db40
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 19 13:40:40 2008 -0800

    Fixing #976 -- both the full name of qualified classes and
    the class parts are now added as tags.  I've also
    created a Tagging module that we should push throughout
    the rest of the system that uses tags.

commit 2cbab2c6916d6bd7c5ad01b137b3469eeea8d3e4
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 19 14:34:20 2008 -0600

    Fixing #1008 -- Puppet no longer throws an exception
    when you've pointed a file at a source that doesn't exist
    and you specify 'ensure'.

commit f5674cd527defd2db9165fdc3d7f966a43b70b75
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 19 14:20:48 2008 -0600

    Fixing #995 -- puppetd no longer dies at startup if the
    server is not running.

commit 7a9aae84805e415de090f0ce9be04beb8435e117
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 19 14:08:44 2008 -0600

    Wrapping the Resolv call in the mongrel server so if it
    fails it doesn't kill the server.

commit 20fb046c6631f129b222def85e386d2b3bb602a8
Merge: 9161ae8 35145f3
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 19 11:46:31 2008 -0800

    Merge commit 'turnbull/0.24.x' into 0.24.x

commit 9161ae8f215520cda16ba9345a8818de08b89ca0
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 19 11:45:09 2008 -0800

    Applying a fix for #998 -- I used a patch equivalent to
    bartv's, although I could not use his commit because it was
    against the 'master' branch instead of 0.24.x.

commit 046a3269db6468f1f7a79b98f8738328b9992fb7
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 19 11:42:47 2008 -0800

    Fixing #977 -- rundir is again set to 1777.

commit 0a7b028a9abf48e5358e7032cf3f3184c4c3ba5e
Merge: 1f15c80 4618140
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 19 11:30:04 2008 -0800

    Merge branch '0.24.x'

commit 1f15c80587529192321658a2e51fda33d481ced5
Merge: c751058 f335dc3
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jan 19 11:29:57 2008 -0800

    Merge commit 'turnbull/ticket_198'

commit 5195a2fd4327240b2459f22c1eedde4007b98ce5
Merge: 35145f3 7ee4746
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jan 19 18:24:11 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit f335dc31f11f4bed80e91df041febdca6e33d3c2
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jan 19 09:45:14 2008 +1100

    Updated defaults.rb to fix foru error stopping man page creation - links are not as neat as before but puppet.conf.man file will create neatly now.

commit 4618140eb0dad58fd54e0543b9a2629c2d675623
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jan 18 10:47:10 2008 -0800

    Updating docs for ssh.

commit c751058722e10c6900f99f095d3be6e30c186a3e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jan 19 04:17:33 2008 +1100

    Removed remaining elements of old_parse - closing Ticket #990

commit 7ee4746e2228219c03e5117d24860a623031de14
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jan 18 08:56:45 2008 -0800

    Adding a parse test to puppet-test.

commit 31e08507cbe8444528aaaac2778374eea040709c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jan 18 22:03:36 2008 +1100

    Removed old configuration file behaviour and deprecation warning - closes ticket #990

commit 4165edaeb71ee2883b1bb85ff39a52d5628b259f
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jan 15 19:41:38 2008 -0800

    More fixes to the testing.

commit 34f5bda4e5f40b1137bd49e9d659dded7d473410
Merge: 1ff9d65 b24ac77
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Tue Jan 15 15:16:25 2008 -0800

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit cfda651f88d12249f29706d2bedbfddce7a2e6f7
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 14 13:34:06 2008 -0800

    Another round of test-fixes toward eliminating global resource
    references.  This should have gotten rid of all of them,
    and now it's just a question of fixing a few hopefully unrelated
    failing tests.

commit 488c43771aea482e0212b605bde054bf8cb0533c
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 14 09:30:30 2008 -0800

    Fixing automatic relationships.  I was previously looking them
    up in the relationship graph, which only stores the vertices, not
    the resource table.

commit d8991abac0b5302fe4202940b637dc4477d5e44e
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 15 00:47:17 2008 +1100

    Updated install.rb to product puppet.conf.man page - updating ticket #198

commit 35145f35b3a03a252d49046a67cd4126c850e864
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Jan 14 09:31:07 2008 +1100

    Fixed ticket #1005 - added additional logcheck lines

commit b24ac77d938cca8d436ed2aceba3523e97a1ab74
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Jan 13 00:03:51 2008 +1100

    Fixes ticket #1004 - documentation fixes for ralsh and puppetrun

commit 5a0388f654f3bdbe099ecf05099f441c243fda67
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jan 12 23:20:15 2008 +1100

    Disabled new man page creation support

commit e5888af8848e5e54821a1a238c4b4af253160afa
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sat Jan 12 23:16:39 2008 +1100

    Added support for man page creation - requires rst2man.py and writer - closed ticket #198

commit 1ff9d658f852698ca4fcd62c94d633824950d5c1
Author: Paul Lathrop <paul@tertiusfamily.net>
Date:   Wed Jan 9 22:13:41 2008 -0800

    Updated documentation for builtin cron type; added information about range and step syntaxes.

commit f15696cd547106b61cd8a9da4b69453ba89dfd18
Author: James Turnbull <james@lovedthanlost.net>
Date:   Thu Jan 10 14:11:54 2008 +1100

    Updated tagmail documentation fixing ticket #996

commit 5bef4a55b3489a6404ee34b900621af8b784749a
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jan 9 13:03:15 2008 -0800

    Another round of fixes toward making global resources work.
    
    The only remaining failures are more complicated ones (which I'll
    need to not be on a plane to debug, for battery reasons) or those
    related to the broken directory_service providers.

commit e3d4ea87fc78494e24ac8fe57ef5cf0d4e7e94ef
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 9 14:19:51 2008 +1100

    Fixes ticket #993 - tagmail with smtpserver specified does not add To/From/Subject header

commit 3cc3e0f5b21deee4fbdbcbae18fba47c7a0cbb1e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jan 8 09:23:34 2008 -0600

    Lots o' bug-fixes toward getting rid of global resources.
    We still have about 60 failing tests, but some of them are
    the failing directory service tests (probably 20 or so),
    and most are simple fixes to the tests themselves.

commit fe9b453650755e66e29eca259075e2e7245a5219
Merge: b7b11bd 40addcd
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 7 22:19:18 2008 -0600

    Merge branch '0.24.x' into no_global_resources

commit 40addcd1920b0fa2f558c415e65ea665bac812f9
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 7 19:24:10 2008 -0600

    Fixing #982 -- I have completely removed the GRATR graph library
    from the system, and implemented my own topsort method.

commit 927dff41df8f1c236c54eaee9fa1db7a3efaf02a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 7 12:19:21 2008 -0600

    Fixing #971 -- classes can once again be included multiple
    times.

commit 117926c92c8bdf2a45724c0ae758586f5ae23979
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 7 12:03:44 2008 -0600

    Fixing the unit tests for nagios_maker; I could swear I'd already
    done this but I must not have committed it.

commit a7bca7eb8471d546edc27d452cccb8a23ca9b801
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jan 7 11:59:30 2008 -0600

    Removing the requirement in the parsed mount provider
    that the fstab file exist.

commit 1bdf3f8412db0db8a46dda18763b1cc67970e1d8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Fri Jan 4 08:27:57 2008 +1100

    Fixed #984 - Added Debian to reponsefile doco

commit b7b11bd4858a4d6dd0661aa7c546d03b4a85ca7d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jan 2 14:32:54 2008 -0600

    Fixing a couple of failing tests

commit ebe5cc0979b57517f81c84a4d3ee771c12c6a19f
Merge: aed51b4 efd035b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 2 11:01:24 2008 +1100

    Merge branch 'master' of git://reductivelabs.com/puppet

commit efd035b73299efd19302cd47edacd5b860a2af55
Merge: 1deb7fd 99f9047
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jan 1 17:38:37 2008 -0600

    Merge branch 'routing'

commit b1f13af734cc75d1b8c73f06d0619b99c65978c0
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 2 08:43:39 2008 +1100

    Fixed #980 - minor wiki formatting error in nagios_maker.rb

commit 61c408591fb1b35d0c5d55d6c47f1acfb50882f6
Merge: 2f9c13b 1dfcb63
Author: James Turnbull <james@lovedthanlost.net>
Date:   Wed Jan 2 07:27:20 2008 +1100

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 2f9c13b44fa8602424d1ab4331b3b0c3806c30a8
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 1 13:13:21 2008 +1100

    Fixed ticket #979 - code configuration option doco

commit 039dc8d6a996116cccbe0d26a61a2ec9a0148e6c
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 1 13:12:01 2008 +1100

    Fixed ticket #979 - pkgdmg.rb documentation

commit 1154c42d4a573c5889e0f991ec2096ea78c4e987
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 1 13:08:22 2008 +1100

    Fixed ticket #978 - logcheck/puppet

commit aed51b4818d64e97778e7e959f258586a36519ad
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 1 13:06:24 2008 +1100

    Fixed puppet logcheck issues

commit 7aa79e2d17341e0be2f978b8081132474d181a72
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 1 12:58:12 2008 +1100

    Revert "Fixed documentation for code option in defaults.rb"
    
    This reverts commit e6547f03c48dde95f86538c5d4d25137e124792b.

commit f2991a21726e384e5099436c6b36b923380f053d
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 1 12:57:56 2008 +1100

    Revert "Fixed indentation error in pkgdmg.rb documentation"
    
    This reverts commit badf97777a9090b0645202217dcf217fbfdd5425.

commit 754129e93de4cc557e600890eab331ec9d0c3107
Author: James Turnbull <james@lovedthanlost.net>
Date:   Tue Jan 1 10:46:46 2008 +1100

    Revert "Fixed issue where permissions are incorrectly set on Debian for /var/puppet/run directory"
    
    This reverts commit 594a5a3522a653ac0d2ddd6217c66c056fad1b60.

commit 1dfcb63e0f9de1fd2f15c98ee9a6f242e3fb9325
Merge: 4e8bc40 33e319a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 31 15:12:12 2007 -0600

    Merge branch 'nagios' into 0.24.x

commit 33e319a8be8e35fbe4a9ecb7e3185453b8239a83
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 31 14:37:03 2007 -0600

    Added builtin support for all Nagios resource types.
    I use Naginator to parse and generate the files, with
    ParsedFile to handle record management and the like.
    
    Note that each resource type itself is just a call to
    a Factory method, since everything is just based on Naginator.
    Given that, all of the tests are in a single unit/ral/types/nagios.rb
    file, since I used a factory to generate them, too.  This is probably
    either unnecessary or insufficient, but it's as far as I'm
    willing to go in testing them, and it did actually catch a few
    bugs.

commit 68cde4f1babe3ebf61ffe215c6328faf7818d40f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 31 14:02:11 2007 -0600

    Removing the one-off naginator provider for nagios_command.

commit 348f257e3626848dd6a32b6f9eae17a5f30c21dd
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 31 13:51:09 2007 -0600

    Adding the metaprogramming to create the Nagios types
    and Naginator providers.  This is basically all of
    the code that's necessary to create all of the needed
    Nagios types.

commit 20628ea51651c95f3ca35c4f9ed3c74a7b6d90b7
Author: James Turnbull <james@lovedthanlost.net>
Date:   Mon Dec 31 08:04:13 2007 +1100

    Added patch to ext/logcheck/puppet to fix ticket #978

commit badf97777a9090b0645202217dcf217fbfdd5425
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Dec 30 22:36:54 2007 +1100

    Fixed indentation error in pkgdmg.rb documentation

commit e6547f03c48dde95f86538c5d4d25137e124792b
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Dec 30 22:02:05 2007 +1100

    Fixed documentation for code option in defaults.rb

commit 594a5a3522a653ac0d2ddd6217c66c056fad1b60
Author: James Turnbull <james@lovedthanlost.net>
Date:   Sun Dec 30 20:57:57 2007 +1100

    Fixed issue where permissions are incorrectly set on Debian for /var/puppet/run directory

commit 4e8bc40ad7a9c128e778dbafda6dadbade215c94
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 27 21:35:42 2007 -0600

    Fixing the inability to manage '/' directly.  It was a result
    of stripping extra and trailing slashes.

commit 9b1d0366cbd92e3982e6db247786b5d5a0348eae
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 27 13:59:32 2007 -0600

    Adding the first round of Nagios code.  There are no
    tests here, but at least a single Nagios type is
    functional.  Now I need to do some metaprogramming
    so this works for all nagios types, and add tests for
    the whole thing.

commit 1deb7fd487dca1046beb933dca2cccadf44fa6f5
Merge: f3fd709 c4ed43c
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Dec 22 21:44:37 2007 -0600

    Merge branch '0.24.x'
    
    Conflicts:
    
    	conf/redhat/puppet.spec

commit c4ed43c2a1ad9ab865e3da6b8b7fad28222c3451
Merge: 20d430d 20367c6
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Dec 22 21:43:27 2007 -0600

    Merge branch '0.24.x' of git://git.et.redhat.com/puppet into 0.24.x

commit 20367c67f200950269b37c9a156bb49a20971f8e
Author: David Lutterkort <dlutter@redhat.com>
Date:   Sat Dec 22 14:47:44 2007 -0800

    Updated for 0.24.1

commit 20d430dfe19b61178425bf7f5a850ec2fd660497
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Dec 21 18:48:56 2007 -0600

    Adding 0.24.1 tag to the changelog.

commit 4fa6546e388613df2bd208cfc17ce408210e2af8
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Dec 22 01:37:33 2007 +0100

    Updated to version 0.24.1

commit d17fb7a8427f6e6355d1342e2ac2743300125b5d
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Dec 22 01:37:33 2007 +0100

    Updated to version 0.24.1

commit 40439dac9fc849fb247f1e233811ddb1946ef0bc
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Dec 21 17:55:35 2007 -0600

    Updating an exception message a bit.

commit e2fc425010c20e307c835a726b74f19abf31ba34
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Dec 21 17:55:16 2007 -0600

    Attempting to fix #952 -- catching any exceptions thrown
    during a run.

commit c59ff622a33b82f413207a146edd4ff6e011e729
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Dec 21 17:52:06 2007 -0600

    Further fixes toward #965.  Turned out that the previous fix
    caused other problems.
    
    This whole thing will hopefully get *drastically* easier once we
    get rid of global resources.

commit 4d28b10cd1ac8b549d488f18d272ad589c75445d
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Dec 21 16:36:03 2007 -0600

    Updating the failure when the CRL is missing, so it's
    clear how to solve the problem.

commit e4446b64c12eb4f6aefad91c0997960303693d3a
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 19 14:39:14 2007 -0600

    Fixing parseonly with a modified version of jay's
    patch from #968.

commit bc0616ee7def99fa26b86ab7d8b0c657e358c1dd
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 19 14:08:41 2007 -0600

    Updating filetype detection for vim, and changing
    the filestructure for vim files. (#900 and #963)

commit 927cb24c0a6783b87bc511227f1640143c4a4649
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 19 13:43:22 2007 -0600

    Fixing #967 -- default resources no longer conflict with
    managed resources.

commit c998a254578e2ce1cbc6c8078b600aa6bf743038
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 19 12:47:57 2007 -0600

    Adding a --print option to puppetca that just prints the full-text version of a
    certificate, and --verify, which uses the external openssl command to verify
    the cert against the CA cert (I could not find an option to the builtin Ruby
    libraries to do this).

commit 9c32c9c518639218a9ff5cb2649f31f5c8604f19
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 19 11:44:52 2007 -0600

    Removing the ability to disable http-keep alive,
    since it didn't work and is now unnecessary.

commit 553b2ad8add20cd629fcd90b512d97d4edd7e481
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 19 11:42:22 2007 -0600

    Entirely refactoring http keep-alive.  There's now
    a central module responsible for managing the http pool
    (Puppet::Network::HttpPool), and it also handles
    setting certificate information.  This gets rid of
    what were otherwise long chains of method calls,
    and it makes the code paths much clearer.

commit 5252f02dba8ef35db77ecb2d9bf711c1fd0b0bb2
Merge: 92b0ebc c22a584
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 18 16:47:56 2007 -0600

    Merge branch '0.24.x' of ssh://reductivelabs.com/opt/rl/git/puppet into 0.24.x

commit 92b0ebc7b74a29b5b875fc104a3681a264d49f03
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 18 16:47:36 2007 -0600

    Fixing #967 -- relationships now work when running 0.23.x clients
    against 0.24.0 servers.

commit 1ada24d4d4aa9ccd9a37176aa3d105ec9874d208
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 18 16:44:55 2007 -0600

    Fixing some tests that were failing with the recent ruby that has
    ssl issues.

commit c22a584cbc80f502af7ddcd493114cb9c01f9cb8
Author: David Lutterkort <dlutter@redhat.com>
Date:   Mon Dec 17 17:59:12 2007 -0800

    Uninstalling packages through 'ensure => absent' works again for the rpm and yum providers.
    
    Before, 'rpm -e' was called without a package name. The code now makes sure
    that 'rpm -e' gets exactly one package to uninstall on each invocation,
    since rpm gets grumpy otherwise (besides passing the correct package NVR,
    of course).

commit 4de2e2c67f606c4c115171cbbe0e68d7e9cd4d52
Merge: 8f5989a 933b1df
Author: David Lutterkort <dlutter@redhat.com>
Date:   Mon Dec 17 16:52:54 2007 -0800

    Merge branch '0.24.x' of git://reductivelabs.com/puppet into 0.24.x

commit 8f5989a66b3e9ff3001b50c07a818c6ccb04a65f
Author: David Lutterkort <dlutter@redhat.com>
Date:   Mon Dec 17 14:54:45 2007 -0800

    Updated for 0.24.0-2

commit cc2d532fbc77b4ebfab6772ec9f2343da52b4c49
Author: David Lutterkort <dlutter@redhat.com>
Date:   Fri Dec 14 11:19:07 2007 -0800

    Updated for 0.24.0

commit f3fd7091d3db9dff1b177867589289890e9a3a66
Merge: 5efde5a 933b1df
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 17 17:23:27 2007 -0600

    Merge branch '0.24.x'

commit 933b1df6d84ec34a6ff347240c0151434ecc80a9
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 17 17:13:25 2007 -0600

    Fixing #961 -- closing existing, open connections when
    a new connection is requested, and closing all connections
    at the end of each run.

commit 5efde5a305b182ed581270107cd426b2cf38d9f5
Merge: 9736b3c e0dab9a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 17 15:55:20 2007 -0600

    Merge branch '0.24.x'

commit e0dab9a48896f3d92b2845f5a886885ede777305
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 17 15:55:02 2007 -0600

    Updating changelog to reflect the fact that we no
    longer warn about explicit plugin mounts.

commit 4d3a36897a9c4d5747401e6c509bacec3e44c16d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 17 15:54:15 2007 -0600

    Remove the warning about an explicit plugins mount.
    
    While module specific plugins are a good thing, explicit plugins that don't fit into
    modules should be allowed or at least not deprecated until it's proven that they are not
    useful to anyone.
    
    (Patch by Chris MacLeod.)

commit 178093f79375aedac62efc73094ce9d0fdd84253
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 17 21:25:07 2007 +0100

    Fixing the Rakefile to include the yumhelper.py file in
    the file list.

commit 9736b3cffa2294849d0536f303a5edc8b50b2183
Author: David Lutterkort <dlutter@redhat.com>
Date:   Fri Dec 14 11:19:07 2007 -0800

    Updated for 0.24.0

commit 6b02bd53ec2de17560df2a9b9f429d097453033e
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 13 17:41:52 2007 +0100

    Updated to version 0.24.0

commit e92f1cc1b25cdd24c3d03f0ae58e2916b7275282
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 13 17:41:52 2007 +0100

    Updated to version 0.24.0

commit 22daebebc88ade0cfa827d7944a9bacd56a1f120
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 13 17:41:35 2007 +0100

    Adding changelog update for misspiggy/0.24.0

commit cd4af087d087b3a78cd37cfaa31ea5ca35ed96c9
Merge: e0f5444 4ebb8d0
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 12 17:06:23 2007 -0600

    Merge branch 'master' of ssh://reductivelabs.com/opt/rl/git/puppet

commit e0f5444021fd4210cb15865e547351c7783e1471
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 12 16:58:08 2007 -0600

    Fixing the webrick test to provide a correct host
    name so the stupid ssl checks pass during the test.

commit 106f319f6d9f886afff5e1bdbbe083223a4c841c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 12 16:57:41 2007 -0600

    Changing the statefile to only being managed by clients,
    not by puppetmasterd.

commit 4ebb8d0cb7c77719a25c689d05f6639f31829c0c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Dec 12 13:50:07 2007 -0600

    Hopefully finally fixing #959.  Loading the stored cache
    resulted in the resource duplication, based on how the
    settings are used, so I added a test to only use those settings
    if the directories do not exist.
    
    This isn't a great fix, but it will suffice until I can kill these
    resource conflicts once and for all.

commit 690e2872864a8a46710445ab07c7d9afa33d0afc
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 17:32:21 2007 -0600

    This should be the last fix for exported resources.
    Hosts were keeping the export bit on all resources,
    even when they'd collected another host's resources,
    which caused a duplicate copy that was still exported.

commit f1169ee7cd05003de67070f193e70255706d95cb
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 17:08:48 2007 -0600

    Not using the main section when running the store report, since it is unneeded and can cause conflicts within puppetmasterd

commit ce5cab1672d1038e2caf795a0aaaad36b208f3b6
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 16:55:09 2007 -0600

    Removing extraneous debugging from the schedule resource type.

commit cb0c4eebb0a7b2fadc5e0487e1c692007cb8b2e5
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 15:35:36 2007 -0600

    Renaming 'configuration' to 'catalog', fixing #954.

commit 7ac3bd79621f6c66cd3b5b7041aeba83c27c3602
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 14:31:13 2007 -0600

    Renaming the 'null' terminus type to 'plain', as
    requested in #960.

commit a21ee0059fbfc31988430e7e6bf0d102cb6f1d5a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 14:17:56 2007 -0600

    Copying the fact-loading code from the network client to
    the Facter terminus until I have a better solution.
    This problem was discovered becomes of #958.

commit add245a12ae65b0254165d6724143e4be99387f8
Merge: 1bbaf18 d9200a0
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 11:57:16 2007 -0600

    Merge branch 'master' of ssh://reductivelabs.com/opt/rl/git/puppet

commit 1bbaf1833cd68220761ad47a5a0789d9eb2fa828
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 11:57:02 2007 -0600

    Applying patch by whaymond to fix #955.

commit d9200a020075738c51af0c9269a40da23a17fd13
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 11:51:54 2007 -0600

    Adding what is hopefully the last commit for #896.  Here's the
    changelog:
    
        Modifying the behaviour of the certdnsnames setting.  It now defaults
        to an empty string, and will only be used if it is set to something
        else.  If it is set, then the host's FQDN will also be added as
        an alias.  The default behaviour is now to add 'puppet' and
        'puppet.$domain' as DNS aliases when the name for the cert being
        signed is equal to the signing machine's name, which will only
        be the case for CA servers.  This should result in servers always
        having the alias set up and no one else, but you can still override
        the aliases if you want.

commit 74db7772df856bac39081df9bd006c20c7175ec7
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 11:49:08 2007 -0600

    Removing the 'addpath' commands from the freebsd service
    provider, since it's no longer needed or even valid.

commit 6db18cc3047de4a0495888f6d2accaf937523e94
Merge: b19a0c9 072b03e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 11:14:19 2007 -0600

    Merge commit 'davids-bugfixes/rest/fix-plugins-mount'

commit b19a0c9d23ed3965edaf0b7d75f2eb6d535455f0
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 10:47:51 2007 -0600

    Removing the recently-commited paludis provider,
    because it breaks autoloading as indicated in #956.

commit 02b64ab3bc9ce29fd5d482a78781c341ba791ba6
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 00:36:44 2007 -0600

    Applying patch by josb in #884 to provide pattern
    matching in the tidy type.

commit 584127c71352dfa1b13eb4e948a93d5078eff73f
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 00:32:15 2007 -0600

    Applying patch by raj in #881.

commit 4ee5ab81441bc8960ceab8080a04761c8f0fe036
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 00:29:29 2007 -0600

    Applying patch for portage package support from thansen
    in #895.

commit ed642ac45842b8717b8f54f2df9f25b3dc6fe684
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 00:26:33 2007 -0600

    Replacing freebsd service provider with the one
    provided by raj in #880.

commit 117f005ab22ef90686f4eb19aee3ea5c8dc93865
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 00:24:11 2007 -0600

    Adding paludis package support as provided by KillerFox
    in #741.

commit 3248c93f2fddf9b17148273af5dd5e2af2cb537b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Dec 11 00:07:20 2007 -0600

    Fixing #937 -- I had not ported the dot methods at all,
    and I had to make a few small changes to make them work.

commit a8bf74b9170b3cb27216f9755a39f635f748fc0a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 10 23:57:59 2007 -0600

    Fixing #946.

commit b70f00abce1ca864f51f7baa4071526a3ebe3efe
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 10 23:07:37 2007 -0600

    Fixing some further failing tests resulting from the fix for

commit 862d1f7acda853d63ef74343f0f54d761017c9e5
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 10 22:50:43 2007 -0600

    Adding an Indirection reference, along with the work
    necessary to support it.

commit da77e4af9a776ef9c6bebe1d2117c4714e08f4ce
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 10 21:15:15 2007 -0600

    Updating the changelog with external node info.

commit f127d04934b679b3e5edd7f55d31342abce3c96e
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 10 21:13:48 2007 -0600

    Fixing #951 -- external nodes work again, but you have to
    set the 'node_terminus' setting to 'exec'.

commit 7a4ae082c216d68092f140ed1f5cca40ffb1a09e
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 10 17:59:51 2007 -0600

    Fixing the rest of #948.  My previous work was sufficient,
    except that I was not passing the interpolated value in
    to the hook, which meant the libdir was set to something
    like $vardir/lib.

commit 3790ce1c6463e0d44ae0151fdc24000b9d5ede27
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 10 17:52:19 2007 -0600

    Fixing part of #948 -- per-setting hooks are now called
    when the configuration file is parsed.  The bug is still
    there, but I'm getting closer.

commit b852c2fda0d43ce6437b0464e3458c2a686ed05d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 10 12:18:35 2007 -0600

    Fixing #941 -- calling pkg_info instead of info
    in the openbsd package provider.

commit ae33e57d1bb94827f488374a7dba8a96fa8e541f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Dec 10 12:16:08 2007 -0600

    Fixing #923 (again).  The host storage method was not
    correctly searching for the host, so it was creating
    a new host on each run, which is what was causing the
    conflict.

commit 99f9047d0200664461603c40379cdcea8191be99
Author: Rick Bradley <rick@rickbradley.com>
Date:   Fri Dec 7 16:07:23 2007 -0600

    tweaking spec language; require Puppet::Network::HTTP class since it is referenced by Puppet::Network::Server

commit 87e1e815bf5fdb2d9a81c56b2f8c8ce1cf4a6b1c
Merge: d267fb2 9ad7d1a
Author: Rick Bradley <rick@rickbradley.com>
Date:   Fri Dec 7 11:43:47 2007 -0600

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit 9ad7d1a7255a89383bc2b8c6b72c79bc050945a3
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 6 16:14:53 2007 -0600

    Adding basic unit tests for type/user by DavidS from #948.

commit 038b9c8d571581f13acc202a9dbbcf7e1f325ab3
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 6 16:08:56 2007 -0600

    Fixing #923.  Resources that are collected on the local
    host are no longer marked as not exported.

commit d267fb2a0b6539ea08c3f855fab4666dd6506f11
Merge: b38f538 507406b
Author: Rick Bradley <rick@rickbradley.com>
Date:   Thu Dec 6 16:04:35 2007 -0600

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit 507406bd44f01e151483f148fadc8d50a9640984
Merge: 5886d37 a012849
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 6 15:51:37 2007 -0600

    Merge commit 'mccune/pending/fix-896r3'

commit 5886d37af0429728db42faf7e950d971145a643b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Dec 6 15:48:47 2007 -0600

    Applying patch by whaymond_home to further fix part of #896.

commit b38f5384ed3a2427672a1b2008500bfa2a704731
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Dec 5 12:32:46 2007 -0600

    Moving $PUPPET/spec/lib/autotest up to $PUPPET/autotest as something has changed and it can't be found otherwise.
    
    Adding $PUPPET/vendor/gems, with unpacked rspec gem there, introducing to spec_helper.rb LOAD_PATH incantation.  Eliminating ad hoc unpacked rspec from spec/lib.
    
    Moving monkey_patches and shared_behaviors up under spec/.   Adjusting spec_helper.rb accordingly.
    
    Nuking spec/lib.
    
    Fixing up autotest/puppet_rspec.rb to be able to hunt down our vendor/gems/rspec/bin/spec binary.  We can now run rspec without having to have the rspec gem installed.

commit e1abfac0d8230b0ea230b7420562250ff2e23c52
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Dec 5 11:32:52 2007 -0600

    moving autotest directory to make it possible to run autotest again

commit 072b03eb000c64eeb54e57ab5ac10c1243cbf1d1
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Mon Dec 3 19:05:46 2007 +0100

    simplify PluginsMount

commit a012849e9ca496ccf72cbaf307f220f3891b802e
Author: Jeffrey J McCune <jeff@northstarlabs.net>
Date:   Thu Nov 29 17:15:15 2007 -0500

    Updated tests for http_enable_post_connection_check configuration setting.

commit 4d4abd36b8e354e3581d32faae345fb55e16f3ea
Author: Jeffrey J McCune <jeff@northstarlabs.net>
Date:   Thu Nov 29 09:48:17 2007 -0500

    Better test to match the behavior of the code.

commit 24cacdbde383fef132f9a289e91a354c2a5c3668
Author: Jeffrey J McCune <jeff@northstarlabs.net>
Date:   Thu Nov 29 09:43:32 2007 -0500

    Fixed test case for http_enable_post_connection_check

commit f94d6d3394dd0fa9ecf06b727cb7234fede7c960
Author: Jeffrey J McCune <jeff@northstarlabs.net>
Date:   Thu Nov 29 09:29:08 2007 -0500

    As per lutter; augmented fix for #896 to be configurable and defaulting to validate the server certificate, honoring CVE-2007-5162.

commit 8eecbe54c96cec0de492e7ae77211637b65057e8
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 19:03:32 2007 -0600

    Fixing another failing test I somehow missed in my last big commit

commit 88304cce59409cee5af12edee3c142dd9acff9f7
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 19:02:35 2007 -0600

    Renaming @model to @resource in a provider

commit 75647ee25f7dff39555becaa879edd1e391ac7d9
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 18:59:21 2007 -0600

    Fixing a couple of tests that were failing on a different platform or with a different version of ruby

commit 811fefa569d4ac960598dc06ffacec0c4e60832c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 18:44:55 2007 -0600

    Fixing #892 -- filesystem mounts are no longer remounted.

commit dedc56a6ae583daca304c053b1be8a52bcdbd13a
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 18:38:48 2007 -0600

    Fixing #527 (rewrote service tests), #766 (services only restart when they
    are running), and #918 (service tests fail when hddtemp is not installed).
    
    Mostly, I just rewrote the service tests, but I cleaned up the cruft from the
    Service class, too.

commit 600d093df55e012e2e00a5b525daefb77c2eded1
Merge: 421b3fc bbf8a8b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 16:10:14 2007 -0600

    Merge branch 'master' of ssh://reductivelabs.com/opt/rl/git/puppet

commit 421b3fce66db7ff69052bd666d20e746952bc52b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 16:06:45 2007 -0600

    Another backward compatibility patch, this time helping with a new server and old client

commit bbf8a8bfc6a817ea19c4dabe3ce89f09d42df68d
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 15:56:24 2007 -0600

    Making a few changes to the transportable class to enhance backward compatibility

commit 11ae473e3852adcc382a3efea2329586d2e4bcb3
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 15:20:52 2007 -0600

    Theoretically, this patch is to fix #917 (which it does), but
    there were enough problems fixing it that I decided something
    more drastic needed to be done.
    
    This uses the new Puppet::ResourceReference class to canonize
    what a resource reference looks like and how to retrieve resources
    via their references.  Specifically, it guarantees that resource types
    are always capitalized, even when they include '::' in them.
    
    While many files are modified in this commit, the majority of changes are
    quite small, and most of the changes are fixing the tests to use
    capitalized types.
    
    As we look at consolidating some of our resource types, we could consolidate
    the ResourceReference stuff at the same time, but at least the
    Puppet::Parser::ResourceReference class subclasses the main Puppet::ResourceReference
    class.

commit 8127397e1efafc13975b79eabf7ce951c1e90114
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 14:31:02 2007 -0600

    Fixing puppetca so it passes its tests, duh.  Apparently
    wyvern's patch broke things a bit and I was stupid enough
    not to run the tess right before accepting.

commit 228204600b1ba40b5c2b2404b52f0a2d42e4b3ce
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 12:57:16 2007 -0600

    Adding a top-level ResourceReference class that everything
    else can use to canonize how we refer to resources.  Finally.

commit c6d1746199c043c833a34393faa10d0a960f201a
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 11:47:34 2007 -0600

    Fixing the first half of #917 -- the ResourcReference
    AST code now correctly finds the resource.  It's getting
    lost in the configuration translation, though, so I
    need to fix that, too.

commit 6c1d8d3bc4f5fddf2da9d48a26fd3b851bdb7d3e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 27 21:37:59 2007 -0600

    Applying fix to xmlrpc client tests by Matt Palmer

commit 6b2c0d8016e39589f6dd9fa50605fb03e31965a3
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 27 21:28:32 2007 -0600

    Fixing the error message as requested in #893.

commit 1b2142b7dd9ef7bea2c4591e512feef230ecc072
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 27 21:20:26 2007 -0600

    Applying patches from #823 by wyvern

commit c7cd7ecc3b35351de615e369d7d1b91651427bf2
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 28 04:16:59 2007 +0100

    Fixing the markup on the pkgdmg provider so it is a bit better

commit 1e6ba6f9ff74bc1204c59457911621a3ad12e8ae
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 27 21:10:52 2007 -0600

    Fixing #781, from what I can tell.  I'm leaving it with
    no tests for now, since it's a very small chunk of code
    and it's *insanely* difficult to test this kind problem.

commit 5d30ea93ad23d10564a765337b26d137d6643101
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 27 18:41:40 2007 -0600

    Fixing #810 -- I catch the error and prefix it with something
    a bit more useful.

commit 4e52ffc68045b07a1308ff7a679fb301c937884e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 27 18:37:46 2007 -0600

    Fixing #796 -- the fileserver can now start with no
    configuration file (it creates both default mount points
    if it does) and puppetmasterd no longer requires the
    configuration file to exist.

commit 168fa5f912b0b15dbd3773a23649093e69e3d185
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 27 18:35:25 2007 -0600

    Fixing the asuser method in Puppet::Util::SUIDManager
    so that it correctly just yields if you're not root.  It
    also no longer tries to set :uid or :gid; just :euid and :egid,
    and it once again sets :egid before it sets :euid, which is
    important because you usually can't change your group after
    you've changed your user id.

commit 30547c93050a958b289fe1c85b76bb2dc5ae4048
Merge: 0ef6b95 36c947e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 27 17:32:32 2007 -0600

    Merge commit 'mccune/pending/fix-896r2'

commit 0ef6b9579df65adda51389a2ab3e514ef42afa14
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 27 17:24:13 2007 -0600

    Fixing #931 by keeping track in configurations of
    what transportable resources get converted to, so
    different names don't throw it off.
    
    I also got rid of the Puppet::Type#merge method, which
    has been deprecated for ages but was still in there.  I
    had to fix a few tests that weren't cleaning up after themselves
    as a result.

commit a38b4151244c0af4bdf058d3fec5a01dc271e1c3
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 27 13:57:05 2007 -0600

    Fixing #927 -- rewriting the test to actually test what it's
    supposed to be doing and to skip the whole network connect thing.
    
    FTR, the reason this is happening is because the keepalive patch
    causes http instances to start immediately, which wasn't previously
    the case. I have been noticing that not all failures that should
    result from this happen consistently.

commit 7ff8ea5a1a913cfc8b8044f19d6c214d8437cfdf
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 27 13:49:05 2007 -0600

    Fixing the persistent and periodic schedule test failures
    by rewriting the schedule tests entirely.

commit 18b4c3a4646d353a59996292e8f3822682b4a9d7
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 26 23:08:29 2007 -0600

    Fixing #924 -- clearing the configuration cache before and
    after the test.

commit 2cb11994784a5bcdbbee3f4ac44329c4feb1d6a6
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 26 22:57:33 2007 -0600

    Fixing the breakage that I caused when I added the 'declared_feature?'
    method to provider features.

commit 2d19ee2a0452baf75a23093e6fea3b743a5f0a69
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 26 22:48:44 2007 -0600

    Fixing #920 -- I have replaced the existing mount test with an
    rspec version.  It's not perfect, in that it only tests
    the :ensure state, but that's where 90% of the behaviour is.

commit c3dde683158863ae764684c5b7d958e39e905874
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 26 19:51:15 2007 -0600

    Fixing #919 -- installed packages used for testing are just ignored,
    rather than throwing a failure.

commit 47890f9b0558f0ea934835b3ef54e7e6ba0df4b4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 26 19:33:53 2007 -0600

    Fixing a test that was erroneously testing for the wrong feature

commit 12ebbe2442e8f05585fb1c0bd9dcbe052fd59ba7
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 26 19:27:30 2007 -0600

    Rewriting the tests for the package resource type, fixing #930.

commit fc7f1b4f70d8e4b62852a0da0af21fcb67a1a89c
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 26 15:26:05 2007 -0600

    Fixing #921, mostly by just deleting the existing test.  I had
    already migrated all of the tests into rspec but forgot about these
    tests -- they were only in the rails/ subdir because people kept
    not running the parser/ tests after modifying the Rails code.

commit 9311bdde6283a00e0f32b41e8171fc75c976ed97
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 25 02:10:02 2007 -0600

    Applying patch by trombik from #756.

commit 9b5b90c46645a289be178f1ccb8d626f80757c79
Merge: 4e9c39e a88891a
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 25 02:07:50 2007 -0600

    Merge commit 'mccune/pending/fix-906'

commit 4e9c39e6a7ca5ebb9d8343d1e6b835e24c257200
Merge: 7eb09ab b575d15
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 24 23:17:57 2007 -0600

    Merge branch 'plugins_mount', fixing #891.
    
    Conflicts:
    
    	CHANGELOG

commit b575d1585322709604f558742dfd6f5ce412b342
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 24 23:16:47 2007 -0600

    Integrating Matt Palmer's patch to provide a 'plugins'
    mount, fixing #891.  The patch was ported to the current
    code by David Schmitt, I applied the rest of Matt's
    patches, and I then fixed all of the code so that the
    tests passed.
    
    The primary change I had to make to the patch was reenabling
    host expansion in paths -- his patch had disabled it.

commit 36c947ecae1b0082cf535dc691891b6cd7bf2c51
Author: Jeffrey J McCune <jeff@northstarlabs.net>
Date:   Sat Nov 24 20:26:52 2007 -0500

    Fix #896 - Always disable DNS checking of certificate when making https connections.

commit 3fb8e2e3097c0a9ef0c534a9c96fe02b43b5e38c
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 24 18:36:51 2007 -0600

    Applying the rest of Matt Palmer's patches
    related to providing a plugin mount.

commit 7eb09abebb91a567b081a651fce179acfadfb7c0
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 24 18:20:40 2007 -0600

    Implementing the test for setting the Rails
    log level.

commit 525682bc66557788445dba0ce432095755df1cc5
Merge: 676efa7 7f1b2d6
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 24 18:06:29 2007 -0600

    Merge commit 'danp/rails_socket_and_tests'

commit 676efa77b2481081deee35c19ed42b66489e0f70
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 24 18:03:55 2007 -0600

    Incorporating patch 20071030034736-6856b-6004090b3968cdbf7d366a03ee1c44e2160a3fe0.patch
    from womble, and rewriting and significantly enhancing the
    unit tests for the Puppet::Parser::Collector class; it should
    have full coverage now.  There are no integration tests for
    it, so there's still no guarantee that it works at all, but hey,
    we're a lot better off than we were.

commit 7f1b2d658d42bd7fcbd38da157f5e9eedf44fbf2
Author: Dan Peterson <dpeterson@spark.dpiddy.local>
Date:   Sat Nov 24 13:55:58 2007 -0700

    change up rails specs again with Luke's help

commit 1b7f0ee67a7589e824c705c4f6f06fd6c59bc586
Merge: e53693e 8de1412
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 24 14:55:01 2007 -0600

    Merge branch 'wombles-patches'

commit 8de1412d97ac9d80500efb5cb94451ab67908448
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Nov 24 14:54:38 2007 -0600

    Integrating most of Matt Palmer's from
    http://theshed.hezmatt.org/mattshacks/puppet/_patches/puppet-0.23.2/.
    
    There are still a few that haven't made it in, notably those related
    to the plugins module, which I'm planning on integrating separately.

commit a88891a5573785867667f6de0cdc539873455226
Author: Jeffrey J McCune <jeff@northstarlabs.net>
Date:   Sat Nov 24 11:27:15 2007 -0500

    Fixed #906 - Augmented Cert DN regexp check to work with Pound and Apache.

commit c19d08a37632410b1835350dfaacedde974b1003
Author: Dan Peterson <dpeterson@spark.dpiddy.local>
Date:   Fri Nov 23 22:12:15 2007 -0700

    mock all use of Puppet[] in Puppet::Rails.database_arguments

commit e69e0c32031e297ae62dd822a925b38e93bdd84f
Author: Dan Peterson <dpeterson@spark.dpiddy.local>
Date:   Fri Nov 23 21:47:20 2007 -0700

    fix spacing

commit b435f04528c1107708f52f6110c7bce63fe6f37e
Author: Dan Peterson <dpeterson@spark.dpiddy.local>
Date:   Fri Nov 23 21:06:46 2007 -0700

    fix socket argument to AR and add rails spec

commit e53693e3ff244f8e782b5dc863aa659d46f9a286
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 20:49:29 2007 -0600

    Hopefully fixing #698 -- fixing the markup for the pkgdmg package provider

commit 7c36ae9f6bc8f6043443a0cf12f769c603895b00
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 20:12:11 2007 -0600

    Adding patch 20071030035457-6856b-bd1c45ed5ecd753b2cb4f05347061f7245cc175a.patch from womble -- Force removal of directories during pluginsync

commit 880a8e2ba3168c4578dfad0b03d6eccd20f36ae2
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 20:07:41 2007 -0600

    Adding patch 20071020020745-6856b-dbc63ff3f137a4039fb997b9978202d52f621e8c.patch from womble -- Fix some residual instances of /var/run fever

commit 696f1fbe93062ce627c3c3ca035ea9383bb925f4
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 20:07:03 2007 -0600

    Adding patch 20071020015958-6856b-69efa7868cf3df3f2a2da6fcfc3b794bbb532c7f.patch from womble -- Remove rundir from puppet.conf, and add a NEWS entry to document these changes

commit 7a95017c5e374e9771cd90cb6b7b55be011915c5
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 20:04:57 2007 -0600

    Adding part of patch 20071020011907-6856b-05b59120fdb90ab4a5842f91613247b07206a4ba.patch from womble -- Fix for Debian#447314, by fiddling with /var/run/puppet.  This does not accept the whole patch, because the change needs to be tested around other platforms.

commit 38b970a36b0ffd77a4487c34096d6f460e0622df
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 20:00:47 2007 -0600

    Adding patch 20070927050018-6856b-7fa134180aceb9cee2e667630345f5f8467a9d0c.patch from womble -- Catch more retryable errors in the XMLRPC call wrapper

commit 276034fc24ab7d00ec40564a7c3cad88bd7f60db
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 20:00:05 2007 -0600

    Adding patch 20070927042000-6856b-38a0c82fd0a0d950937e7fe5a38b9901743402b3.patch from womble -- Recycle the connection more aggressively, to stop problems with clients that are newly requesting certificates

commit 3bf70316529a50f2da1419c5b2504d9f7d089540
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 19:57:31 2007 -0600

    Adding patch 20070926235454-6856b-079fc12a9b63d59afd59aa205bc8bfeb350b097a.patch from womble -- Recycle the connection if we're presented with an EPIPE

commit 0ebd99e821870437a355a7ae02006d232347c155
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 19:45:00 2007 -0600

    Adding patch 20070926214630-6856b-edd313b08555033710c90a94d9d8beaf889d6cf4.patch from womble -- Fix spelling mistake in debian control files

commit 7ed1c17112e5f9ca51804f820d9a0550775c5a60
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 19:41:13 2007 -0600

    Adding patch 20070913032650-6856b-b1cca1c249415c6076ffcecb9df1525a728457c7.patch from womble -- Fix annoying database deletion error for ParamValue objects.

commit 28430c48e0849d47eec9f6b554592bef19b2fc26
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 19:39:55 2007 -0600

    Adding patch 20070913032546-6856b-0de200e8450920e7f712c54bf287ae43c7fda8af.patch from womble -- Only set dbuser if explicitly asked for

commit d7b381b6b30b46f29d7129fd853870ed7c890ad4
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 19:37:03 2007 -0600

    Adding patch 20070913011122-6856b-98bf03f09c8e19679390d73fdddc2e4d1273f698.patch from womble -- Add changelog entries for the pulled pgsql patches

commit a7d75d313b367e33139e082afa2982fdf349eae8
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 19:36:22 2007 -0600

    Adding patch 20070913010926-6856b-eb64be3b5169b7af674388124b406a1db7470880.patch from womble -- More restrictive permissions on some puppet-related directories

commit 407734ff0b20040b61aaeffc9cb3a70e67a8bdcd
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 19:34:20 2007 -0600

    Adding patch 20070913005414-6856b-db5ea77e10ec6869ad01a4bd6483912c337f3a70.patch from womble -- NEWS for the ssldir transition

commit 1486d3969c1f4ebf63c4d1c3ddb6c07f70c048b9
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 19:33:35 2007 -0600

    Applying patch 20070913004017-6856b-cdbbba99de0b33b64874205a27833b5114fcc6b9.patch by womble -- Allow empty config settings

commit 03c8ffd76cc8f1f1e59527718f1a7235992866b7
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 19:24:15 2007 -0600

    Adding patch 20070913003810-6856b-cdc8b2e8c6c46eb8d6d073f86291a0fc5a59f429.patch from womble -- Only set the hostname and password if we want them; this allows pgsql ident auth to work it's magic

commit 035fa38bf27719450f4e731c45910aebfbed9529
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 19:22:23 2007 -0600

    Adding patch 20070905004837-6856b-2e7b8d8595ee0883537620c46424a4bf6174dc6a.patch from womble -- Add an attr_accessor for @http#ca_file, since older versions of libopenssl-ruby only provides ca_file=, not ca_file

commit 63b205a55a73ebf70275bf9c0ec77c51a24026f9
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 19:20:24 2007 -0600

    Adding patch 20070831053637-6856b-dd0fddab681485ce7cea0b57336d0c48fa33f7f8.patch from womble; updates changelog

commit 72c0e7bd73e9185a04f141a142dc79202f5ff441
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 19:18:20 2007 -0600

    Adding the debian directory via patch 20070831052721-6856b-b90bb56a4ed37ea420f10352a0a366068cddc7e4.patch from womble

commit 0e1b6e8ac6f95bd7fc161a1d4da3a9295ff5c65b
Merge: 56aad69 4441052
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 18:27:20 2007 -0600

    Merge commit 'davids-bugfixes/rest/fix-891' into plugins_mount

commit 7efe24f1d157997ab23faab2c4f1431a70cb1c9a
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 17:10:24 2007 -0600

    Fixing #882 -- I just added a quick hook to the
    Master handler again; we need a better long-term solution,
    though.

commit 56aad69f8cdf8b0b08fdb7985014986223fa4455
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 17:03:22 2007 -0600

    Patching a bit for #804 by making the maximum much higher UID
    and making it tunable, but it has not gone away yet.

commit a670615fb6feef7ea41f3a31bee6a9a8c5dadc03
Merge: a525ab5 b745f04
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 16:49:14 2007 -0600

    Merge branch 'master' of ssh://reductivelabs.com/opt/rl/git/puppet

commit a525ab5f1d643dcd890a9f5fb34bbc5dab575393
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 16:45:28 2007 -0600

    Fixing a couple of tests that were failing because of the environment changes.

commit 6d74ddd40a33e54c8007e3a256270e76e56517a0
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 16:15:50 2007 -0600

    Accepting a modified form of the patch from #885 by immerda.

commit b745f04d936575d3a1a54b98bccc4b49de734531
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 16:11:27 2007 -0600

    Fixing #886 -- the problem was the I had changed the base
    class for Parameter, which apparently lost the 'nodoc' method
    for that class.

commit dbe70a10dd5d3d29f6529b1a0e6b6545308c6a7d
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 16:03:56 2007 -0600

    Added calls to endgrent/endpwent in util/posix.rb to
    fix #791.

commit 7f504b00d8499de6dbd6e12987943b9a5b308d32
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 15:49:32 2007 -0600

    Applying patch from #896 by whaymond_home, adding more
    certname aliases.

commit 1cb40eca62ad9d3731524ac0b6272d41f8982e99
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 15:39:34 2007 -0600

    Obviating targets in interfaces; they now just generate a warning.

commit eee9f5e3260a1b053333f3ab88e95241ef710d00
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 15:35:18 2007 -0600

    Adding more tests to the redhat interface provider.  It no
    longer uses the :target parameter (which I'll be removing in
    the next commit).

commit 1a4e4fb46567fba6e99a2b9ba7327861edd3a739
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 14:35:19 2007 -0600

    Rewriting the sunos interface provider to manually parse and
    generate, rather than using ParsedFile.  This should fix #777,
    and has from what I can tell.

commit 8cbe8bded645b1006d7fdf48c6084cdbcf3d2621
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 12:57:16 2007 -0600

    Adding unit tests for the sunos interface provider.

commit 3d2e1a535ba38dc0ebb8cb80f6a8d0f2bd3516f9
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Nov 23 12:27:24 2007 -0600

    Adding some unit tests for the interface type before i go messing around with it

commit cca613d0f142e492aab8cb58087e2a6299334f7d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 20 17:48:34 2007 -0600

    Fixing the first part of #787.  Not all collections were
    being evaluated on the first pass because they were being
    deleted from the collections list during evaluation, which caused
    some to get skipped.  This commit fixes that problem, which helps
    in the trivial cases where the collections are in the same scope.
    I expect it's still broken for more complicated usages.

commit 96b3cde842a9efa3fbd8226c6f044a6e18c612d0
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 20 14:05:46 2007 -0600

    Applying patch from #834, apparently fixing a problem
    with bringing up alias interfaces.

commit 9472eef292f7db0d40b2d8151b2eec7c71b606d5
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 20 14:01:51 2007 -0600

    Removing the bootproto and broadcast attributes from the redhat interface provider, since they are not needed

commit a7a46af16c2953ab88c14c7cc382d941faa473bf
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 20 14:00:15 2007 -0600

    fixing the path to the spec helper in the exec test

commit 3d31dc8e2a91f599fc31e1f89c66cf1cca94e137
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 20 13:59:28 2007 -0600

    Fixing #762.  The main problem was that I accepted the patch
    in #744 which broke the templates.
    In the process, I also added test code for the redhat interface
    provider and rewrote how parsing worked to make it more testable.

commit 8ecdfc2a65e014393273fbf5bfccd780c4b2f531
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 20 11:21:08 2007 -0600

    Moving the exec test into the types/ directory

commit 94e63add08c94d019c079e758e46ca727446d86b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 20 01:30:20 2007 -0600

    Fixing the last failing test relating to the environment changes

commit 7fe5bfcd28fe61422ffa2071bfc36f753f83c11a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 20 01:19:34 2007 -0600

    Fixing the exec spec so it works when non-root and is a bit cleaner

commit 8cc07adda20b4e63bbad5b2759303d00d215341c
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 20 01:08:34 2007 -0600

    Using the Environment class to determine the default environment,
    rather than plenty of different places having the logic of how
    to determine the default environment.

commit 53008e567fd64f391e0b45652b2f4ac1551ccf47
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 23:27:07 2007 -0600

    The Puppet settings instance now validates environments when
    you set an environment.

commit 9e5fc76eb77a9b90afb384d34a8e5bf63f79af6e
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 18:27:38 2007 -0600

    Fixing #911 and #912 -- there's a default environment (development)
    and you have to specify the valid environments for your site.

commit cc88441a61929714fcf6a26e121d6bec2184d8eb
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 16:34:09 2007 -0600

    Removing the manual ssldir setting by David in 59626cb3907d36e4fd762277daa76f523faf0908

commit 7e0e6c0dffb5158bd606e2dc83824bbfed998cbb
Merge: 1bf3999 59626cb
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 16:33:03 2007 -0600

    Merge commit 'davids-bugfixes/tests/fix-test-client-ca'

commit 1bf3999ec08f41e35036b303914987e2c0174922
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 16:30:20 2007 -0600

    Fixing a failing test from my fix for #446 -- I had changed
    the behaviour of Resource#override_parameter unintentionally.
    I've corrected the comments so it's clear why the original behaviour
    was there.

commit 3f0b250f6694525fbcc40414cf0778186696b2ee
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 16:20:03 2007 -0600

    Fixing a few test suites that passed when run as
    part of the suite, but failed when run individually.  The
    problem was that I changed lib/puppettest/support/utils to
    have a separate module and I didn't test the individual files.

commit 0ac6b06ac171b2f8a307786ef0446625c3102d38
Merge: 4bd7b6f 1b78f57
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 16:03:21 2007 -0600

    Merge commit 'davids-bugfixes/rest/fix-903'

commit 4bd7b6f69edfc984d153a23872a3ac6e123b5765
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 15:47:56 2007 -0600

    Fixing #896 by applying DerekW's patches, with slight
    modifications to fit coding style.

commit 8ad27328850c5acf67548c7ad6c93d0c4a43e1ec
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 15:36:42 2007 -0600

    Fixing #446.  I ended up largely not using porridge's patch,
    but only because the code (and my coding style, to some extent)
    has changed so much in the last few months.
    Also, added specs.

commit 7b7bfd8a6c2ca33364adb9a09b54ec732f05007e
Merge: 8f82fc4 8fe892d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 10:30:55 2007 -0600

    Merge commit 'davids-bugfixes/tests/fix-settings-fail-as-root'

commit 8f82fc42844931efe8df042cf2d40d0d624c2d55
Merge: 0ae5577 a6ad326
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 10:30:12 2007 -0600

    Merge commit 'davids-bugfixes/tests/fix-cron-tests'

commit 0ae55774a67f481181feeb241538a94bbeae88de
Merge: 2b14f62 3851415
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 10:29:12 2007 -0600

    Merge commit 'davids-bugfixes/tests/fix-HOME-dependency'

commit 1b78f57284a37e86db2351c34a2bbf22c43f0275
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Mon Nov 19 10:21:56 2007 +0100

    Add Exec{ logoutput=> on_failure }
    
    This option only writes the output of the command to the log if the command
    failed.

commit 2b14f627aca1d5be69cf6606044df4d6e67f6eba
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 19 01:36:48 2007 -0600

    Reverting the changes I'd made toward removing the global
    resources.  These are commits:
    
        c19835ce9f8a5138b30a1a32ca741c996b0916d2
        9290cc89a2206fb5204578f8e91208857a48b147
        ffb4c2dbc7314b364d25e4f7be599ef05b767b44

commit 9cf477b6cc771eab7bd29d18c49128571e877987
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 18 23:36:22 2007 -0600

    Applying fix by Jeff McCune from #905

commit 26e9bd5637a8b002b9bc214793f95cbde4932bb2
Merge: 8838e9b 445c29c
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 18 23:33:34 2007 -0600

    Merge commit 'davids-bugfixes/rest/tests-for-872'

commit 8838e9bb7cf5d0445a8ddbce0bd983551a191659
Merge: edc4b1d 61ef289
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 18 23:25:04 2007 -0600

    Merge commit 'davids-bugfixes/rest/fix-815-by-using-main-explicitly'

commit edc4b1deefee5e0e0088c0f291137bbfa9cb2434
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 18 23:24:57 2007 -0600

    Fixing a SimpleGraph unit test so it doesn't depend
    on hashing.

commit c19835ce9f8a5138b30a1a32ca741c996b0916d2
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Nov 18 11:21:22 2007 -0600

    Fixed most failing tests, but there are still over thirty failing.
    
    At this point, I'm holding the experiment until after the release,
    so I'm committing this for now and will take it back up after 0.24.0
    is out.

commit 4afbaa6f7042eb1cccc8938ee1ccb53c662ba41c
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Sat Nov 17 11:40:15 2007 +0100

    fix #903: add patch from hrvojehr
    
    this moves logging of the command in front of failing from unexpected
    return. This helps very much to debug exec failures.
    
    Additionally I removed the unused local variable "loglevel"

commit 32d9afce4dd732d49a3157ce05f47d6f468569b3
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Sat Nov 17 11:37:06 2007 +0100

    tests for #903: fail when no logoutput is generated on failure

commit 9290cc89a2206fb5204578f8e91208857a48b147
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 15 21:29:18 2007 -0600

    Modifying how default resources are created; they are now
    added to the configuration by the master client, rather than
    by the creating types.

commit ffb4c2dbc7314b364d25e4f7be599ef05b767b44
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 13 11:24:22 2007 -0600

    This commit is the first run at removing all global
    references to resources.  It deprecates the class-level
    [] and []= methods, used for so long to provide closure
    behaviour but now unnecessary with the node configuration's
    ability to function as a resource container.
    
    All of the spec tests pass, but there is much to do to make
    the test/ tests pass, I expect.

commit b65fb8316e10fb31c4ac9d0af75bb3e7f452d312
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Nov 13 10:34:50 2007 -0600

    Fixing a parser test -- really, just removing tests
    that belong with the AST classes rather than in the parser.
    
    Yeah, these tests need to be rewritten.
    
    Committed on an airplane. :)

commit fa1924eb04a2d6600349eddf13e1f3e62b45d6ce
Merge: a535cbb 72510bf
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 12 22:11:40 2007 -0600

    Merge branch 'master' of ssh://reductivelabs.com/opt/rl/git/puppet-luke

commit 72510bfaa65e97f4eaaf246ef8f1c155716967b6
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 12 22:08:44 2007 -0600

    Fixing #800 by refactoring how configurations are retrieved
    from the server.  The real problem was getting all of the validation
    done before any caching, which required a good bit more refactoring
    than I expected.
    
    In actuality, this commit is relatively small even though it covers
    many files; most of the changes just make the code clearer or shorter.

commit dd7caa76e160ed51c8b0e123c18f7526b575bfec
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 12 11:00:54 2007 -0600

    Moving some compile tests to the spec/ directory, and
    switching the node scope to no longer be lazy evaluation,
    just like I switched 'main'.  When I made all of these
    classes and nodes lazy evaluated, I should have decoupled
    my real goal (using resources to evaluate them) from the idea
    of lazy-evaluating them, and this basically does that.
    
    I also changed the scope heirarchy slightly so that scopes will
    tend to be below the node scope, altho this was already generally
    the case.

commit 47a26054fea97641aebb3906ca7416a982f4c0d5
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 12 10:09:05 2007 -0600

    Changing the 'main' class to no longer be lazy-evaluated.
    It was getting evaluated after node classes, which caused
    even stranger ordering issues.

commit a4e8f1ca2cc6c1257e4dae0f32e24ff71aa94eea
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Nov 12 10:08:17 2007 -0600

    Adding a memory terminus for facts, which is really only used for testing

commit 385141599f7a01687113ff5d8d88d07c64ab6b65
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Sun Nov 11 10:18:51 2007 +0100

    fix dependency on $HOME, which causes massive failures when running without environment
    
    lib/puppet/defaults.rb:10:in `expand_path': couldn't find HOME environment -- expanding `~/.puppet' (ArgumentError)

commit 59626cb3907d36e4fd762277daa76f523faf0908
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Sun Nov 11 10:16:37 2007 +0100

    fix failing CA test, when testing with incomplete setup (no ssldir, no DNS)
    
      3) Failure:
    test_webxmlmix(TestBucket)
        [./network/handler/bucket.rb:222:in `test_webxmlmix'
         /home/david/Work/puppet/misspiggy/puppet-luke/test/lib/mocha/test_case_adapter.rb:19:in `__send__'
         /home/david/Work/puppet/misspiggy/puppet-luke/test/lib/mocha/test_case_adapter.rb:19:in `run']:
    Exception raised:
    Class: <OpenSSL::SSL::SSLError>
    Message: <"hostname was not match with the server certificate">
    ---Backtrace---
    /usr/lib/ruby/1.8/openssl/ssl.rb:91:in `post_connection_check'
    /usr/lib/ruby/1.8/net/http.rb:588:in `connect'
    /usr/lib/ruby/1.8/net/http.rb:553:in `do_start'
    /usr/lib/ruby/1.8/net/http.rb:548:in `start'
    /home/david/Work/puppet/misspiggy/puppet-luke/lib/puppet/network/xmlrpc/client.rb:141:in `start'
    /home/david/Work/puppet/misspiggy/puppet-luke/lib/puppet/network/client.rb:95:in `initialize'
    /home/david/Work/puppet/misspiggy/puppet-luke/lib/puppet/network/client/dipper.rb:16:in `initialize'
    ./network/handler/bucket.rb:223:in `new'
    ./network/handler/bucket.rb:223:in `test_webxmlmix'
    ./network/handler/bucket.rb:222:in `test_webxmlmix'
    /home/david/Work/puppet/misspiggy/puppet-luke/test/lib/mocha/test_case_adapter.rb:19:in `__send__'
    /home/david/Work/puppet/misspiggy/puppet-luke/test/lib/mocha/test_case_adapter.rb:19:in `run'
    ---------------

commit a6ad326f71b8aaa0bce40c4d6c29195c53ec1d1f
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Sun Nov 11 09:55:01 2007 +0100

    fix the underlying dependency on the environment in the cron type

commit d48ee3e0f61bad913b4c050e9542b409fdd27e43
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Sun Nov 11 09:45:54 2007 +0100

    fix crontests depending on ENV[USER] by using Etc.getpwuid(Process.uid) instead

commit 8fe892db28206924e6baacbcca2d709dbd80ad49
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Sat Nov 10 19:24:49 2007 +0100

    fix a testfailure when running spec tests as root
    
    when running as root, examples trying to create directories
    with non-standard users failed. This fix evades this difficulty.

commit 445c29c4b108e04b3f077316b36ba50284a7d5d5
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Fri Nov 9 19:25:09 2007 +0100

    fix #872: improve property(:content).insync?
    
    This commit applies ctrlaltdel's patch from trac #872

commit 5726412cb7289c6cfbc421d9081d690ffa48ba9a
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Fri Nov 9 19:19:11 2007 +0100

    tests for #872: check interaction between "replace" and "content"
    
    Currently "Puppet::Type::File when used with replace=>false and content should
    be insync if the file exists and the content is different" fails.

commit 61ef2893c57584ad3166241c6e412c1b4d014a4b
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Fri Nov 9 18:29:04 2007 +0100

    fix #815: add :main to all use() for :reporting and :metrics

commit 418bc21e3fd893b0f1f5315f6a9d0f9a87ae2d01
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Fri Nov 9 18:10:29 2007 +0100

    remove obsolete runners variable

commit 59cc25d798f20bc01943ca341c04716cb037064a
Merge: 3f583dc 956daa5
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 8 19:48:21 2007 -0600

    Merge branch 'routing' into test_routing

commit a535cbbe148802c0afe62cd2d5b29d0768b3a0f0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 8 19:00:06 2007 -0600

    Commenting out the time debugging I was using

commit 3f583dc133ce50ae34bfc151474c6d4196f803ca
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 8 17:06:00 2007 -0600

    Adding unit tests for the module that handles the
    logic around mounting and unmounting.  This includes a fix for
    bug #761, which required a different regex for Solaris.

commit 964aebb96416984815f5ef74e36825915d52fe2a
Merge: 8f04446 22b96e0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 8 16:31:03 2007 -0600

    Merge branch 'master' of ssh://reductivelabs.com/opt/rl/git/puppet

commit 8f04446c9473cf80328dd9cbc9a1d15b6057409a
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 8 16:30:51 2007 -0600

    Fixing the 'mount' tests so that they no longer
    modify the local system and they run fine as
    non-root users.

commit 22b96e0a8ab07ef3fddea3d3602948dbf45c4dd7
Merge: f775572 4194526
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 8 16:13:40 2007 -0600

    Merge commit 'davids-bugfixes/rest/fix-760'

commit f775572bae39b07b21278fdff60f44620c4f4598
Merge: ba19989 b250416
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 8 16:03:56 2007 -0600

    Merge commit 'davids-bugfixes/rest/fix-731'

commit ba19989c6eab23f3897da20ed8a505ede9198d8b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 8 15:58:45 2007 -0600

    Switching the class resource evaluation to only happen
    when using :include, not (for example) when evaluating
    node classes.

commit cf75168dc2f95a530dffb7971733a0db2ef70ba2
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 8 15:54:14 2007 -0600

    Classes once again get evaluated immediately when the
    'include' function is used, instead of being lazy-evaluated.
    
    Previous work caused resources to get created to model
    these classes, but in the process, I removed the fact
    that the classes were evaluated immediately.  This meant
    that you couldn't guarantee that a class was evaluated
    before you went to use its variables.

commit 44410525722d4de0ed416f42c7d094d42f6602a6
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Thu Nov 8 21:02:56 2007 +0100

    fix #891: create a plugins mount which collects all modules' plugins/ subdirs
    
    This is Matthew Palmer's work, from his debian package at
    http://theshed.hezmatt.org/mattshacks/puppet/_patches/load_plugins_from_modules/20070831054902-6856b-0fd1481621def5d0c4d1ae48fb2f1dc357767c1e.patch
    
    I just wriggled a few hunks so they apply.

commit dfe774f55e98db085d8f5729a4b1229513c6c2b0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 8 12:18:42 2007 -0600

    Switching the base class for the Relationship class.
    It was previously using the GRATR::Edge class, which
    had wonky overrides that dramatically slowed down
    sorting (its hash mechanism hashed the source and
    target so that edges with the same source/target got
    the same hash, which we actually don't want any more).
    
    This shouldn't change any functionality, just performance.
    
    I didn't retain all functionality from the Edge class, but
    a lot of that functionality was, um, horrible, like Edge[]
    being equivalent to Edge.new.

commit 419452666e02d82c94450f92e3483b56a72fcd20
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Mon Nov 5 22:32:43 2007 +0100

    fix #760: property_fix has to be called after creating a symlink

commit b250416c272ded3e33cdfbb7ac1de989a1b92094
Author: David Schmitt <david@schmitt.edv-bus.at>
Date:   Mon Nov 5 21:56:49 2007 +0100

    fix #731: add exported=true to collect_exported
    
    this just adds the patch from the bugreport

commit f465e7e96d62f9b18bdebd51319582d5b2ffa332
Merge: 6585835 1ffcce0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 8 11:28:34 2007 -0600

    Merge branch 'rest'

commit 1ffcce079fd7a677ebdc22453a9d10675fb4ed4d
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Nov 8 11:24:46 2007 -0600

    Splitting the puppetd tests into two tests.  It is still not a very good test, but I do not know of a good way to test this, really.

commit 065a1d0281ba326674e37a00d8ced1e3a2dd57e4
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 7 17:48:50 2007 -0600

    Switching the graph base class from GRATR::Digraph
    to Puppet::SimpleGraph, which should dramatically enhance
    performance.  It should be largely functionally equivalent,
    with the only difference being that edges are no longer deduplicated.

commit 3f21e93599653e3a6c82ab0a131ce250503a771e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Nov 7 16:25:04 2007 -0600

    Adding a new graphing base class, because the GRATR stuff
    is just too slow.  This class has just about no iteration,
    and vertex deletation is dramatically (as in, 1000x) faster).
    Here are the results of some very simplistic graph operations:
    
    Vertex tests (add and remove 1000 vertices):
    gratr: Add: 0.01; Remove: 9.70
    simple: Add: 0.02; Remove: 0.01
    Edge tests (add and remove 1000 edges):
    gratr: Add: 0.02; Remove: 0.03
    simple: Add: 0.07; Remove: 0.02
    
    I expect I can get the cost of the edge addition down some, but even
    as it is, it's a couple of orders of magnitude faster.
    
    This doesn't even count things like searching, which I did some other
    testing on and got consistently faster results (somewhere between 1.5x and
    1500x faster, depending on how the test was set up and how big the graph was).

commit ef9949502a1e393d14e8289c507ee3f3509a5350
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 31 12:54:28 2007 -0500

    Caching the 'parent' value, which resulted in
    a drastic performance increase.
    
    However, profiling has shown that GRATR just isn't going
    to cut it.  I think I'm going to have to replace it as my
    graphing base class to avoid the horrible, horrible performance
    I keep encountering.

commit 826efe8d453c1cc45a980603fffc10c91fa0e267
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 31 11:34:06 2007 -0500

    The configurations should now be functional again --
    file recursion was previously not working, because
    the relationship graph was setting itself as a resource's
    primary configuration, which caused it to try creating its
    own relationship graph.
    
    I've now found that the current code is about 5x slower than
    the released code, so now I hope to resolve that.

commit db293cf3b9e9dd129d8c65aa39272425651addae
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 29 12:31:01 2007 -0500

    Fixing a bit of indentation and commenting in the xmlrpc/client file

commit 956daa5b4b1c61db9a5e1d7638ca819005fd7ef0
Author: Rick Bradley <rick@rickbradley.com>
Date:   Fri Oct 26 22:58:47 2007 -0500

    This won't be perfect by any stretch, but put in a moderately reasonable autotest config file.

commit c7b36b76f1319ee18efee8ec1bdf08825cb66f81
Author: Rick Bradley <rick@rickbradley.com>
Date:   Fri Oct 26 15:23:51 2007 -0500

    One significant step closer to getting autotest running properly on the Puppet specs.
    Created a spec/lib/monkey_patches/ directory for holding patches to RSpec functionality.
    Extraced 'confine' and 'runnable?' support from the local copy of RSpec (spec/lib/spec/) and now load them from the monkey_patches/ directory.
    Fixed a bad include in one of the specs.
    Made it possible for the gem-installed spec binary (which autotest calls) to be used with Puppet.
    Imported the Autotest::Rspec class, created a PuppetRspec autotest class, added a discovery.rb file for autotest to pick these up.
    
    Autotest still has the following problems:
    
     * it needs to be run with the proper include path:
    
       % ruby -I spec/lib/ `which autotest`
    
     * the patterns in our custom autotest handler (puppet_rspec) aren't yet fully specified (they
       only recognize changes in our spec files, not changes in the puppet libs
       which they are testing)

commit 6dd0d71b13f6b98b3fd4152421d0124e9786f726
Merge: 54fc80d d03f68e
Author: Rick Bradley <rick@rickbradley.com>
Date:   Fri Oct 26 12:50:19 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit 65858356cb3170e04200a6d8204f0978223e2c61
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 26 11:28:51 2007 -0500

    Adding patch from #879 by tim

commit d03f68eaed6d05483128b495ad1faaf89208d66a
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 26 11:26:57 2007 -0500

    Changing the test/ classes so that they work from the main
    test/ dir or from their own working dir, like the specs do.
    This was just a question of changing how their libraries
    are loaded.

commit c0a07ac724c27fce8d2673e4466e42d46d68f145
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 24 17:50:36 2007 -0500

    File serving should work now, both recursive and
    single files, across modules, local file system,
    and the traditional file server.
    
    This work revolves around making sure that the termini
    produce functional file instances, meaning that they
    know how to find their content or metadata, which largely
    comes down to setting their paths correctly.
    
    I also created a new terminus base class for the local
    filesystem, since there was so much common code between
    content and metadata.

commit 54fc80d5de7b881adca06c85206fb700f4278a73
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 23 12:32:45 2007 -0500

    Exceptions on requests are now captured, exceptions are serialized, and exception text is passed back via REST.

commit e7bfe0bf9b525d6216cbb24be99357d33c0b87ec
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 23 12:09:05 2007 -0500

    Finish serializing successful results (via calls to to_yaml, etc.) for REST handlers.  Refactor request building in REST handler specs.

commit d28a9041039860beb9e19da267bbad40ecebf8f1
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 23 11:12:22 2007 -0500

    REST handlers now properly returning 200 status on success.

commit 7def1eaa0e6e559ed70f260bf7b42d8e84d3740b
Merge: b134f0c de5d91e
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 23 07:28:42 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit 1746751ddc0e5dd5c5d32abe2ddb4d8305d739fc
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 23 00:20:57 2007 -0500

    Adding post- hooks for :find and :search in the indirection class.

commit 09f9c3c52e94b5cdb33f26b464f01285a5ba8c62
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 23 00:06:06 2007 -0500

    Adding the calls to the authorization hooks in the Indirection.

commit b874751cbb04c9250163e8cb5600418e12414dfa
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 22 23:18:58 2007 -0500

    Renaming the FileServing TerminusSelector module to IndirectionHooks,
    because I'm going to add some hooks for transforming returned objects.

commit de5d91e2036de2934a4eec79d35a714f3ed24b10
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 22 22:37:52 2007 -0500

    Renaming the :local termini for metadata and content
    to :file.

commit 7fa99b08f9aa3777fba82f24eb5bb391f3758f48
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 22 22:33:06 2007 -0500

    Link handling is now in the file serving classes.
    This was done by putting all of the functionality in the
    Content and Metadata class (actually, in a new base class
    for them).
    
    There are still some issues, and there need to be integration
    tests between the :local (soon to be renamed :file) termini for
    these classes.

commit 688fcdf11a685dfda297beff50de8d4c751494d9
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 22 19:28:22 2007 -0500

    Adding searchability to the fileserving termini, using the
    new Fileset class.
    
    The tests aren't the cleanest, in that there is still
    a good bit of duplication in them, but it's what we got.

commit 393a3e8743f503543ad34a874e9296d684b0d49b
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 22 15:24:50 2007 -0500

    Adding a Fileset class for managing sets of files.  This
    is the new server-side for file recursion, and I'll next be
    hooking it to the fileserving 'search' methods.  This is
    basically a mechanism for abstracting that search functionality
    into a single class.

commit aab157e77bf471269ef0403576eca0e77e6f51ec
Merge: b2b8f75 264331b
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 22 10:22:36 2007 -0500

    Merge branch 'master' of git://michaelobrien.info/puppet into michael

commit b134f0ce465923a6b0b7f2855850e38599f0f176
Merge: e69a50a 08099b7
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Oct 22 09:35:34 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing
    
    Conflicts:
    
    	spec/unit/indirector/indirection.rb

commit b2b8f756c813f7c9a59ac91b4099304b4be2db4c
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Oct 21 19:37:17 2007 -0500

    Adding authorization hooks to the file_server and
    module_files indirection terminus types.  Both hooks
    use the fileserver configuration, but the module_files
    hook only uses the 'modules' mount.
    
    Also moved all responsibility for knowing whether to
    use the 'modules' terminus type to the terminus selector;
    it was previously spread between that and the file_server
    terminus, which made some things annoyingly complicated.
    This normalizes the deprecation notices and the logic about
    how we make these decisions.

commit 8f827ffe4fa1aa25a2e3c7903967e87c55766996
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Oct 20 15:06:11 2007 -0500

    Renaming the 'mounts' terminus to 'file_server', and renaming
    tests accordingly.

commit 08099b7a383987e292357f285e05933e10205660
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 19 17:35:40 2007 -0500

    File serving now works.  I've tested a couple of ways to
    use it, and added integration tests at the most important
    hook points.
    
    This provides the final class structure for all of these classes,
    but a lot of the class names are pretty bad, so I'm planning on
    going through all of them (especially the file_server stuff) and
    renaming.
    
    The functionality is all here for finding files, though (finally).
    
    Once the classes are renamed, I'll be adding searching ability
    (which will enable the recursive file copies) and then adding
    the link management and enabling ignoring files.

commit 264331b3287067251c202c96ceb3a6d1f5039976
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Fri Oct 19 13:47:17 2007 -0500

    Partial work done for ssl certificates.

commit ec396729d76b26d0d08c0bd633f28fa3c68c414c
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 18 20:54:43 2007 -0500

    Adding this test stub that's been sitting
    around in my repository for a while.

commit fc607513faa54d64186a674a36d81ea010745569
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 18 20:47:56 2007 -0500

    I've now split the file-serving termini into two separate types (in
    addition to Rest):  A local terminus that just uses direct file paths,
    and a mounts terminus that uses the file server to figure out what
    the path should be.
    
    It looks like it also makes sense to split the 'mounts' terminus further,
    so there is a 'modules' terminus used to look files up in the terminus.
    
    I've added some integration tests to verify that everything is
    hooked together correctly.
    
    Lastly, I added a directory for shared behaviours.  There's a ton of
    duplication in this setup, because the Content and Metadata classes
    behave almost but not quite identically across the board.

commit 64c6700bc7530f1213e124d248cc176a7cfe6180
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 18 14:43:08 2007 -0500

    Fixing all of the classes that I just renamed, and adding
    the TerminusSelector module to the File Metadata indirection.

commit 56b83fe1bd1b08ccd3cc8a857e3a993790d2a983
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 18 14:38:12 2007 -0500

    Renaming the file serving indirection termini to match
    the standards I set in the TerminusSelector.

commit 33d7dc0141328dc9ae042c992404943ebaf78d0d
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 18 14:36:38 2007 -0500

    I'm working on making file serving work in the indirector now, so I
    added two abilities to the indirections:  Models can specify a module to
    extend the indirection instance with, and indirections will use a
    :select_terminus method, if it's available, to select the terminus to
    use for finding.  (It's currently only used for finding, not destroying
    or saving.)
    
    The upshot is that a model can have a module that handles terminus
    selection for it, and then extend its indirection with that module.
    
    This will allow me to use the local terminus when the protocol is 'file'
    and the REST terminus when the protocol is 'puppet'.  It should also
    open the door for other protocols if they become available.

commit 815618568d88daf373fb057333c962e31a4b748b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 18 12:24:05 2007 -0500

    Renaming the file_serving/{content,metadata} indirections
    so that they make more sense in the REST API, and creating
    stub tests for the indirection termini.  Now it's on to
    create the rest of the tests for them.

commit 2718b638d1df7fe37941952e396d84d1eff1efc9
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 18 11:56:45 2007 -0500

    This is the first mostly functional commit of the
    new file serving structure.  The next step is to
    hook it up to the indirection so we can start writing
    integration tests to see if we can actually serve up files.

commit e1dd5dd24a550ef2f887a6e4263fb433b22430cd
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 17 17:46:18 2007 -0500

    Adding spec stubs for authorization in the indirection

commit e69a50afbe0c031833c4247a962cfda0b5996d78
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Oct 17 11:50:34 2007 -0500

    Fix test which is conditional on mongrel installation.

commit 8bf519681f3c464f87b853a1e9b07743fa26bace
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 17 11:44:37 2007 -0500

    Oops, forgot this file in my last commit.
    
    I moved the checksum code to a separate module.

commit d0bd48cc50cf90440429569e748877ab6e23491f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 17 11:44:03 2007 -0500

    Adding the first pass at modifying file serving
    to work with indirection.  I've split the
    fileserver handler into four pieces:  Mount (which so
    far I've just copied wholesale), Configuration (responsible
    for reading the configuration file and determining what's allowed),
    Metadata (retrieves information about the files), and Content
    (retrieves the actual file content).
    
    I haven't added the indirection tests yet, and the configuration
    tests are still all stubs.

commit d2b891f6e3b1460602a0056b1b9dc85028c989e1
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Oct 17 11:37:21 2007 -0500

    More specs, fleshing out the returns from REST

commit e5921c5a8025d4e908a5a9b010a126f0b1d5ed15
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 16 18:14:41 2007 -0500

    getting more fine-grained with the response specs -- the target is always moving.

commit 705f76fa1d9a95c54560a82e68c1c47b27755361
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 16 18:08:18 2007 -0500

    Argument passing now supported on {webrick,mongrel}+REST.

commit ce349683b76ab9d21f4d89e2ec818c0755848a1d
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 16 15:56:03 2007 -0500

    Make the actual runtime be more robust when mongrel is not installed.

commit 6cd0f371065da901d8cc3143d8859a389ca87582
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 16 15:52:41 2007 -0500

    Make it possible to run all tests even if mongrel isn't installed.  Shouldn't "confine" produce some output when running spec?  Who knows.

commit 216dd8c47ea42338c2dee0bf6528cdd7e37e0028
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 16 15:38:41 2007 -0500

    Refactoring, argument processing for model methods.

commit abbc824ff4a565f0a0f1362b779252e876b86168
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 16 14:04:38 2007 -0500

    Tweak to move model lookup functionality into the Handler base class where it belongs.  Robustifying the request sanitization a bit more.

commit 2a497fff66a7827059b712e84dcaff171ccab6be
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 16 13:57:56 2007 -0500

    Refactored to use a Handler base class for server+protocol handlers.  Finally eliminated dependency on Puppet.start, etc., from WEBrick HTTP server class.  {webrick,mongrel}+REST now support request handling uniformly; need encode/decode next.

commit 6ab78f62ee589e542fd653a54109c0f5141ea026
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 16 13:24:58 2007 -0500

    Inlined the controller, eliminating a class.  Mongrel+REST has the right bits for request handling prior to the encode/decode/exception-handling bits.  Refactored to make the common logic extractable to a base class.

commit b8c877c121f6b376cd44b13cb90d69c41d0fb004
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 16 11:13:17 2007 -0500

    Registration now built for {webrick,mongrel} REST handlers.

commit 3c370b3570d39c18799085793e083898cda72e68
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 16 10:44:02 2007 -0500

    Going back to each server+protocol object being responsible for only one indirection, as the REST vs. XMLRPC models are different enough that the object must register itself on initialization and handle the request when it comes in.

commit c06edda4c94ef9aa685ed44d7031bb39c4a2b0cc
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 16 10:15:14 2007 -0500

    First pass through initializers of {mongrel, webrick} REST handlers; hooks into Indirection to look up models from indirected names.

commit ab4c7fa825e0d1f702adc215c7ff6d445d3b6559
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 16 00:14:02 2007 -0500

    Minor tweaks to make the ::Server initialization a bit more robust.  Fail on unknown HTTP Server types; fail fast.

commit 099c5469bf8fd6bf1e65be1a8192c14e584e49c3
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Oct 15 23:33:12 2007 -0500

    Finish front end of delegation to server+protocol helper classes ("handlers").

commit b1d62231c587e13ad78fe1bbd292a6c9f1cb99a1
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Oct 15 23:04:24 2007 -0500

    Bringing in initial handlers for server+protocol pairs.

commit 298eff27a6c702c177fa11e08c980c7365382162
Merge: ba95202 a815f78
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Oct 15 23:01:42 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit a815f7888b021a46332c23450795f057533d0093
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 15 19:36:32 2007 -0500

    Reorganizing the file structure for indirection terminus types.
    
    Previously, for example, the configuration terminus that was a
    subclass of 'code' would have been stored at
    lib/puppet/indirector/code/configuration and would have had
    to have been named 'configuration'.  Now, the subclass
    can be named however the author prefers, and it must be stored
    at lib/puppet/indirector/configuration/<name>.rb, where <name>
    is the name you've chosen for the terminus type.  The name only
    matters insomuch as it is used to load the file from disk and
    find the appropriate class when asked.
    
    The additional restriction is that the class constant for the terminus
    type must have its name as the last word, and the indirection must
    be the second to last word.  Thus, in our example, we can choose
    any class constant that ends with Configuration::Code; given that
    there's only one Configuration class at this point, it makes the
    most sense to define the class as Puppet::Node::Configuration::Code.
    
    This is somewhat awkward, because of the class's location on disk,
    but the only other real option is to autogenerate a
    Puppet::Indirector::Configuration class constant, which is, I think,
    uglier.

commit ba952029b057cb64cf28d9e4dfb5c78868a4b53f
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Oct 15 15:29:00 2007 -0500

    Partial support for building Handlers for all handler-protocol pairs.

commit ef8ebe0df4da0a0cd2f599308f40bd707ab18d92
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Oct 15 15:04:10 2007 -0500

    Implementing address & port support for new webrick server.

commit c34efbccf1eec9957253d4fcdcb4ea9c79837ad8
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Oct 15 14:47:25 2007 -0500

    Hooking up address/port support for the various servers w/ specs.  Still need to start up a webrick server w/ address + port (this is far too incestuous with Puppet lib & Puppet.start at the moment).

commit 9a179ec3a9df62c6179e7151831c4f07197cfbce
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Oct 15 12:19:08 2007 -0500

    trivial: WEBRick -> WEBrick, to be more consistent with how the WEBrick ruby classes are named.

commit e56406f15086eb483c00a2904d8a75518412a905
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Oct 15 12:16:48 2007 -0500

    Implementing listening state tracking for webrick and mongrel.

commit ec71e05a162ec299982b90707cc16231c608997b
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Oct 15 12:04:30 2007 -0500

    More unit specs for mongrel and webrick; more code to make them work, yo.

commit 31384fea2263d9ee0e65312b4a0b956436022e63
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Oct 15 11:07:48 2007 -0500

    Pushing functionality down to webrick/mongrel classes now; cleanup in the base server / http server classes + specs.

commit 8c935deed405299c304ccbe370c9240fda63cafb
Merge: e90191a 694f98b
Author: Rick Bradley <rick@rickbradley.com>
Date:   Sat Oct 13 17:52:06 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit 694f98b4d9e7172cec58d407bc5aeae7861e1a06
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Oct 13 14:14:06 2007 -0500

    Fixing failing tests, including making the debian service
    provider test work on non-Debian platforms.

commit 29feac0cecddc910b74601d0914fa2c83757b10c
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Oct 13 14:07:24 2007 -0500

    Translating the report handler to an indirected model.
    I've provided backward compatibility with the old
    handler.
    
    The only terminus type that currently exists for reports
    is the 'code' terminus, which is used to process reports
    in the style of the old handler.  At some point, we should
    likely switch at least some of these report types (e.g., 'store')
    to terminus types.

commit 74d77f76a012d523430e43f1092609a4ca584cc7
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 12 18:00:10 2007 -0500

    Adding version handling through most of the indirection work.
    This counts as the first commit where configuration compiling
    actually uses the caching correctly according to the application
    model.

commit e90191af9300fda00cd29d609ac80daff00332cc
Author: Rick Bradley <rick@rickbradley.com>
Date:   Fri Oct 12 16:17:31 2007 -0500

    more stuff for the interim commit

commit 10039b94c77d4543d3b256b0bbda855d57a17be1
Author: Rick Bradley <rick@rickbradley.com>
Date:   Fri Oct 12 16:17:00 2007 -0500

    interim checkin of network stuffs

commit 512096afbd1dde4a63840ded45b4388e2e34048e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 10 11:01:56 2007 -0500

    Fixing some small spec failures resulting from test fixes.
    The problem was in how TransObjects were converted to
    RAL resources.  (Committed while flying over Arkansas.)

commit 2f86bf077f80bd96f476eaf27a1ac1afbd22958d
Merge: fdfe807 9db7aae
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 9 15:00:19 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit 9db7aae242537b2bd39b8f4ae5723514087e7034
Merge: 32753e1 d4871bf
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 9 12:02:37 2007 -0500

    Merge branch 'master' of git://michaelobrien.info/puppet into michael

commit fdfe807bd986a2b27f0dfd0cecde1a33aeee309b
Merge: 42b9856 01f132d
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 9 11:29:13 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit 32753e11d9cd731760ec8ba3c4f1ad2e3402535e
Merge: afa1dee 01f132d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 9 10:54:21 2007 -0500

    Merge branch 'master' of git://michaelobrien.info/puppet into michael

commit afa1dee5eb3a8b5249715e61f9894b04ab34a6ae
Merge: 275af56 1befcc4
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 9 10:50:07 2007 -0500

    Merge branch 'routing' of http://git.rickbradley.com/puppet into routing

commit d4871bf5fbeff53670ea6c82b2ee3f3c3ea01c83
Merge: 01f132d 5c32c8e
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Tue Oct 9 10:43:17 2007 -0500

    Merge branch 'parser-absent' of http://marcin.owsiany.pl/tmp/puppet into porridge

commit 01f132d8b88467dfd314ad355f1cdf9f546945b3
Merge: d24c1cc ec58355
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Oct 9 10:04:01 2007 -0500

    Merge branch 'master' of git://michaelobrien.info/puppet

commit d24c1ccc56b912e0ff69f7572dd36912c8c739c2
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Oct 8 19:12:39 2007 -0500

    All tests should now pass again.
    
    This is the first real pass towards using caching.  The `puppet`
    executable actually uses the indirection work, instead of
    handlers and such (and man! is it cleaner).
    
    Most of this work was a result of trying to get the client-side
    story working, with correct yaml caching of configurations, which
    means this commit also covers converting configurations to yaml,
    which was a much bigger PITA than it needed to be.
    
    I still need to write integration tests, and I also need to cover
    the server-side story of a normal configuration retrieval.

commit ec58355ac0c42713bb1c661c94cb13793dd95768
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Mon Oct 8 11:54:51 2007 -0500

    Fixed #819.  Applied patch provided by matsuu.

commit 7ac7872c74200d8818a9042d39296a21d857cc22
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Mon Oct 8 11:13:50 2007 -0500

    Fixed #822.  Applied patch provided by DavidS.

commit fc9c850414baff17dc97b0184f34e58b4bec5785
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Oct 6 17:18:30 2007 -0500

    Adding support for versions and freshness-checking
    to the indirection layers.  This should hopefully
    enable the different application models we need in
    our different executables.

commit 42b98562b5237797e1a51fdcdd57aa3c6825b404
Merge: 1befcc4 cdaad28
Author: Rick Bradley <rick@rickbradley.com>
Date:   Sat Oct 6 13:25:12 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit 1befcc46926a27ec5f799d6ad8caa59c3b808c4c
Author: Rick Bradley <rick@rickbradley.com>
Date:   Sat Oct 6 10:38:22 2007 -0500

    Homing in on a clean separation of concerns for a low-coupling, high-cohesion "server" model that will handle REST and/or XMLRPC on webrick and/or mongrel.

commit 5c32c8e8382d800968225734d06663c1a75d80b2
Author: Marcin Owsiany <marcin@owsiany.pl>
Date:   Sat Oct 6 13:29:17 2007 +0100

    Somewhat better documentation of the :absent field feature in fileparsing.

commit d055cbc8caa215301bbc81ce551571c82594d7ae
Author: Marcin Owsiany <marcin@owsiany.pl>
Date:   Sat Oct 6 13:24:01 2007 +0100

    Make it apparent that absent fields in a record have a value of :absent, which is different from what appears in a line.

commit b6dc1aef001c08b0589d041f6f5e3680c8b295fb
Author: Rick Bradley <rick@rickbradley.com>
Date:   Fri Oct 5 20:09:02 2007 -0500

    Trivial tweak on HTTPServer module file

commit a7d220b828ec5f277a3a3bfb33f517fe864579d0
Author: Rick Bradley <rick@rickbradley.com>
Date:   Fri Oct 5 19:51:47 2007 -0500

    Moving the webrick/mongrel "servers" over to HTTPServer module instead of Server.  Using Server as the master class for client connections.  Server (former RESTServer) will instantiate the appropriate subclass based upon Puppet configurator setting.  There are now tests broken in the network section which I can't seem to figure out yet.  Not a happy place to be.

commit cdaad286b1fe5fc3c1ab363c890bb6a8a752c9b5
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 5 17:46:30 2007 -0500

    Fixing error thrown when the end of the file is encountered unexpectedly

commit 7d7e428df34077062aebb8f08f10eef42d0c8907
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 5 17:46:08 2007 -0500

    Removing obsolete comment

commit f084d83df1abf51766e2dd390e118f1189864346
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 5 14:25:29 2007 -0500

    Another round of test-fixing around the changes I made
    to the configuration system.  'puppet' itself still
    works, even with -e, but I expect that puppetd and
    puppetmasterd are broken, and there are still quite a few
    broken tests because the default fact store can't write but
    that's the default behaviour for a networked configuration
    master.

commit 9c58c476c2ffcf9613f14e5881b1177f01d413a7
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 5 11:46:35 2007 -0500

    Adding a :code setting for specifying code to run
    instead of a manifest, and removing all of the ambiguity
    around whether an interpreter gets its own file specified
    or uses the central setting.
    
    Most of the changes are around fixing existing tests to use this new system.

commit d35cd947c82ba9da8ec798100a3c710c34492521
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 5 11:36:27 2007 -0500

    Making "null" the default node source, so nodes are at least created easily

commit 7086ce17d14274f93ef0c03fba531bdb6710e5f7
Merge: 29accba 95b2b93
Author: Rick Bradley <rick@rickbradley.com>
Date:   Fri Oct 5 10:42:14 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit 275af562b462813ddf5ddbad2192ddc2bf57770c
Merge: ce01783 29accba
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 5 00:08:15 2007 -0500

    Merge branch 'routing' of http://git.rickbradley.com/puppet into routing

commit 0e336bf62b818aaa31fcc323ab5d31e5eb92eb46
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Oct 5 00:07:38 2007 -0500

    This commit is focused on getting the 'puppet' executable
    to work.  As a result, it involves a lot of integration-level
    testing, and a lot of small design changes to make the code
    actually work.
    
    In particular, indirections can now have default termini,
    so that configurations and facts default to their code terminus
    
    Also, I've removed the ability to manually control whether
    ast nodes are used.  I might need to add it back in later,
    but if so it will be in the form of a global setting,
    rather than the previous system of passing it through 10 different
    classes.  Instead, the parser detects whether there are AST nodes
    defined and requires them if so or ignores them if not.
    
    About 75 tests are still failing in the main set of tests,
    but it's going to be a long slog to get them working --
    there are significant design issues around them, as most of
    the failures are a result of tests trying to emulate both the
    client and server sides of a connection, which normally would
    have different fact termini but in this case must have the same
    terminus just because they're in the same process and are global.
    
    The next step, then, is to figure that process out, thus finding a way
    to make this all work.

commit 1fa591287a4ab921cec628aa0c5bf58d61fbdef2
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 4 17:07:47 2007 -0500

    Adding the integration tests to the Rakefile for spec,
    fixing the integration tests, and extending the Classmethods
    for the indirector so that indirected classes can set the
    terminus class and cache class.

commit 95b2b93290f619c20a1c2dca11dd9909477857f8
Merge: a93db87 8ba3a70
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 4 16:55:53 2007 -0500

    Merge branch 'master' of git://michaelobrien.info/puppet

commit a93db8728ddc9a4b26dec738ff39863666ea229e
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 4 16:55:15 2007 -0500

    Adding another test to the ldap node source -- we make
    sure we throw an appropriate exception if a parent is specified
    but we cannot find it.

commit 9984a3520dd061acec98495ddd5a21b6126376f4
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 4 16:44:15 2007 -0500

    Fixing some terminology so some ldap tests are easier to read.

commit 6acde71f7687c6ed6d5fce37cf2346cf3162cefe
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 4 16:38:56 2007 -0500

    Switching the indirection from using settings for configuration
    to requiring explicit configuration.  This means that if
    you as an application developer want to use a different indirection
    terminus then you have to specify it; something like:
    
        Puppet::Node.terminus_class = :ldap
    
    Caches use the same kind of configuration:
    
        Puppet::Node.cache_class = :memory
    
    Accordingly, I've removed the existing setting definitions
    from the defaults.rb.

commit 8ba3a701fdcd11509acc032b0524e2e8c9e6857a
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Thu Oct 4 15:31:51 2007 -0500

    Fixed #838.  Applied patch provided by DavidS to add more robust
    update functionality to the dpkg provider.

commit f41c843f6263e7bb2b89c109710307c4ab2779bf
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Thu Oct 4 15:19:03 2007 -0500

    Fixed #837.  Added freebsd service provider by trombik.

commit 533ce4b405e5864332a6a32862a61375273db466
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Thu Oct 4 15:08:56 2007 -0500

    Fixed #855, but I didn't add any tests.

commit 19ad238f16fb5736301720f665419553412561b2
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Thu Oct 4 14:42:45 2007 -0500

    Fixed #827.  Applied a form of the patch provided by porridge and
    wrote a test.

commit 29accba1b9343f4967c15d36506b3bf60d5f0f9c
Author: Rick Bradley <rick@rickbradley.com>
Date:   Thu Oct 4 13:52:22 2007 -0500

    Minor tweaks.

commit 24121996ac214395106a0bb11f4d2a5c350f99b3
Author: Rick Bradley <rick@rickbradley.com>
Date:   Thu Oct 4 13:47:36 2007 -0500

    Allow for multiple REST servers to be active; some terminology changes in spec; fleshing out more behavior, implementing.

commit 102ad23acb1c798c99b013e86b1d67350bbced7c
Author: Rick Bradley <rick@rickbradley.com>
Date:   Thu Oct 4 13:19:15 2007 -0500

    Added .listening to REST server, handle listen states and transitions.

commit 187d91010687199457b892ca765fc1a76471c04f
Author: Rick Bradley <rick@rickbradley.com>
Date:   Thu Oct 4 13:07:15 2007 -0500

    Spec'd a reset() method for clearing out known routes.  Uses the unregister method so that any hooks there will be run.  Probably a violation of YAGNI, but I'm willing to suffer it :-)

commit fd841b33a2920f26d472f4f38a559d8f2aa48a0c
Author: Rick Bradley <rick@rickbradley.com>
Date:   Thu Oct 4 13:00:13 2007 -0500

    Updating first portion of the Network RESTServer spec with example code, getting the added examples to pass.

commit 9236179fadf5d0ee68abab395ba1102cd04f3471
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 4 12:53:09 2007 -0500

    Attempting to reproduce and fix #829 by applying patch by Paul.  I could not
    get a test to show the exception, nor could I figure out how the coding bug
    could have actually had an impact, but it's an innocent-enough fix, so I'm fine
    applying it.

commit a073639bac47c6b1f5638bb0e7a131ae75dff128
Merge: 1ea34a2 9236179
Author: Rick Bradley <rick@rickbradley.com>
Date:   Thu Oct 4 12:52:47 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit e5c623e6d49704e313bc1a77b6a02ac6c92c7a2b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 4 11:25:36 2007 -0500

    Fixing tests for the Configuration object, since I
    added the any_failed? test to Transactions.

commit 1ea34a227ad75df853045f579e80cb455ca3dd5c
Merge: 92d23e0 e5c623e
Author: Rick Bradley <rick@rickbradley.com>
Date:   Thu Oct 4 11:25:16 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit ce0178316d8cefd072f53d39b59ce47332f6ec8f
Merge: f1ec23a 3f90ddb
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 4 10:07:44 2007 -0500

    Merge branch 'routing' of http://git.rickbradley.com/puppet into routing

commit 92d23e0398ffbaf7e264bb7ff716bd6f83130b07
Merge: 1334b78 bd8e382
Author: Rick Bradley <rick@rickbradley.com>
Date:   Thu Oct 4 08:04:44 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit bd8e38236a23ae687c418fcbb90e5f61c8c67b01
Merge: 938f051 3571843
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Oct 4 00:02:24 2007 -0500

    Merge branch 'master' of ssh://reductivelabs.com/opt/rl/git/puppet

commit 938f051256f206e01039d2c5142b2328fc25e639
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 3 23:52:36 2007 -0500

    Fixing #817, mostly using the patch by DavidS.  I could
    not directly use the patch because I have refactored too
    much.

commit 35718437c40ab4228bd58eabf89728b7d0919e50
Merge: bb3b3ce fd11603
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 3 22:29:05 2007 -0500

    Merge branch 'master' of ssh://reductivelabs.com/opt/rl/git/puppet
    
    Conflicts:
    
    	lib/puppet/defaults.rb
    	lib/puppet/dsl.rb

commit fd11603fe47668ba72f0d3f2b984174331a0a154
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 3 21:55:41 2007 -0500

    Removing the Id tags from all of the files

commit bb3b3cedf4082dc884e41b864fa755057d20e228
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 3 19:36:35 2007 -0500

    I finally tracked down the problem that was causing providers
    to sometimes suddenly disappear and thus tests to fail --
    Kernel.require was not loading the normal ruby path (e.g.,
    'puppet/type/cron'), so if someone else loaded that then
    it would replace the in-memory type with a new one, but that
    new one couldn't load its own providers, because the Kernel
    would ignore the providers, thinking they were already loaded.
    
    This doesn't fix all of the autoloading problems, but at least
    we won't suddenly break a ton of tests.

commit 782bc4d3b037684f472e1db53c1878390b8c9a32
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 3 19:34:45 2007 -0500

    Fixing the yaml path so that it is correctly
    created for puppetmasterd.

commit 7da2031beb46c744a2a33af01d84e0d397b1e9ae
Merge: d4afe39 7c8fc8b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 3 18:01:42 2007 -0500

    Merge branch 'master' of git://michaelobrien.info/puppet

commit 7c8fc8b9bd5aeb406f777f36df5fc52b7db5f454
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Wed Oct 3 18:00:52 2007 -0500

    Fixed #854.

commit d4afe39fa1aeb4f4e9d1bcdaf0f924aac2f00584
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 3 17:50:50 2007 -0500

    Fixing #813 -- empty configurations again work.

commit f8c8efeff6f08cf8c23075311ce14bfd4decedb0
Merge: 5d50ca7 1be1db9
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 3 17:32:40 2007 -0500

    Merge branch 'master' of git://michaelobrien.info/puppet

commit 5d50ca790e7f752e07da84197b52ff84d2dcfdb4
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 3 17:31:57 2007 -0500

    Fixing #814 -- when files are missing, the exceptions should
    now be more reasonable.

commit 1be1db91c2ff3103c900da9ba3a3ba533d2587e7
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Wed Oct 3 17:23:59 2007 -0500

    Updated CHANGELOG.

commit 35033ba63222e8d731823b4f4f722fa731ef70a5
Merge: 0b8893b b727a95
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Wed Oct 3 17:09:06 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet

commit 0b8893b3b8ffd391287a590b4f271edca70331da
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Wed Oct 3 17:06:06 2007 -0500

    Fixed #832.  Added the '--no-daemonize' option to puppetd and puppetmasterd.
    The default behavior of 'verbose' and 'debug' no longer cause puppetd and
    puppetmasterd to not daemonize.

commit 1334b786ac622a6094ba68b3e66fce3f5841deed
Merge: 3f90ddb b727a95
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Oct 3 16:42:28 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet into routing

commit b727a95aa4b72ce057653101cf1f50fa49c4b0a8
Merge: b45a7ca f1ec23a
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 3 16:32:48 2007 -0500

    Merge branch 'master' of ssh://reductivelabs.com/opt/rl/git/puppet

commit b45a7ca82d9c59d577c2eedb18531f64e55813d1
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Oct 3 16:32:10 2007 -0500

    Adding more behaviours to the Puppet::Module spec,
    and fixing some bugs in the process.
    
    Specifically, modules were no longer correctly handling
    fully qualified files, and they do so once again.

commit 3f90ddbfc7d20b631ca17f72e2d72d5e7ca00629
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Oct 3 12:49:23 2007 -0500

    Interpreting "hidden" class from spec drafts as a REST Controller.  This name, functionality, and/or location in the tree is subject to change, but it's down now somewhere so we can move forward on it.

commit 861c21d1d7de81a68d15be622521891083b7e258
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Oct 3 12:44:57 2007 -0500

    Added partial spec for the serving of REST information, as well as some client-side REST terminus behavior.

commit ed8fa9b3458cacd67d9bd023a2a319c351e76e95
Merge: 0b67d79 f1ec23a
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Wed Oct 3 10:07:43 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet

commit f1ec23a0e29f3e1fe7809c19139e324f2c525d2d
Merge: 8722e43 1174d99
Author: David Lutterkort <dlutter@redhat.com>
Date:   Tue Oct 2 15:25:11 2007 -0700

    Merge branch 'master' of git://reductivelabs.com/puppet

commit 8722e439b71de005a56820b3e3cf704e3a5b5c8c
Author: David Lutterkort <dlutter@redhat.com>
Date:   Tue Oct 2 15:18:03 2007 -0700

    Use external helper script to talk to yum; should avoid any more trouble with "yum list". Fixes trac #836
    
    Signed-off-by: David Lutterkort <dlutter@redhat.com>

commit 0b67d79d1e006f0ba88090fa711bb75d2850f6f5
Merge: 93f6488 1174d99
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Tue Oct 2 16:13:21 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet

commit 1174d99acb5505b8de577b7f71cee0d32a4cf05f
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 2 14:49:38 2007 -0500

    Fixed a failing test where we presumed that non-string Fact values would have type preserved across a P::N::Client.master.facts call, which is not true.

commit 7fe18e3ffba0d8f206b0e7aef2dd6684a98802b6
Author: Rick Bradley <rick@rickbradley.com>
Date:   Tue Oct 2 14:41:11 2007 -0500

    Fixed a test which was secretly sneaking off and pulling certs from ~ if they were there: Added set_mygroup method, removed duplicate setme method.  Included PuppetTest in the  XMLRPC servlect test.

commit 93f64885100eecb4c235d08e1f9cd266e6d789ad
Merge: df1879b fa643e6
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Tue Sep 25 17:23:36 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet

commit fa643e61c7451c2c46623d2c801a42c6c7640e1e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 25 16:01:07 2007 -0500

    Adding more indirection termini, mostly focused on caching
    information in yaml.

commit 938b91894d09ea804d2fc9eaac57b52f46de793a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 25 15:52:26 2007 -0500

    Adding cache support to indirection.  If you have
    a '<indirection>_cache' setting, then the indirection
    will use the value there as the name of the cache.

commit 8ec60118684fc32b65ce70ccfc009e07b7e6a3cd
Merge: 2e33061 ab1b034
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 25 14:11:14 2007 -0500

    Merge branch 'master' of ssh://reductivelabs.com/opt/rl/git/puppet into indirection

commit df1879b814c25cd3564abaa3064e0cdd6ef50eb4
Merge: 06ad6a3 ab1b034
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Tue Sep 25 12:37:36 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet

commit 06ad6a375080ccbc38e8adc73b8bd91fa7a819fc
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Tue Sep 25 12:34:42 2007 -0500

    Updated the configuration doc to more clearly explain where puppet.conf is expected to be by default.

commit ab1b0344da8faf8d94a363ba4a64e0238845828a
Merge: c8d02bd f8ab62b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 25 12:10:38 2007 -0500

    Merge branch 'master' of git://michaelobrien.info/puppet

commit c8d02bd329743ea0a66528d65d8d05c9c015f259
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 25 12:09:40 2007 -0500

    Fixing ralsh to use a configuration instead of a component

commit ff2828f5dbe68ff1cb06a3503590a3e4bd1b59e3
Merge: f8ab62b ffaa8ce
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Tue Sep 25 12:00:07 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet

commit ffaa8ce07979f4db860950fa9be08ca37964206f
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 25 11:24:33 2007 -0500

    Demoting the "file does not exist" log to debug from notice

commit 4679f4dcc110e3362b0097efe1d5a416c659611b
Merge: c3c3e51 cdc8ea6
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 25 00:43:15 2007 -0500

    Merge branch 'indirection' of git://reductivelabs.com/puppet-luke

commit c3c3e519219ad80ac07d21c74849fbc4246c9d7a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 25 00:42:50 2007 -0500

    Fixing a small problem with the mailman type

commit f8ab62b212788a4591276c95b5f67217f7517e4e
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Mon Sep 24 20:30:11 2007 -0500

    Renamed princs to principals in the k5login type.

commit 6079348fd5e93a9840fe67f47b6a404f1a26f1c3
Author: Digant Kasundra <digant@stanford.edu>
Date:   Mon Sep 24 20:22:36 2007 -0500

    Added k5login type written by Digant Kasundra.  This is for ticket #759.

commit 2e3306143b1f58765f48911ba433a119de323b84
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Sep 24 15:58:44 2007 -0500

    I changed the Terminus class to switch camelcase
    to underscore-separated words, e.g., FactStore becomes
    fact_store.

commit d6fd60cca15641fc1341cce52faf0506d7665044
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Sep 24 14:45:54 2007 -0500

    Removing obsolete fact stores and node sources.  The functionality has been moved into the indirector.

commit cdc8ea6e81c1b5eba5ea784bb7079c4c1f3965a4
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Sep 23 19:04:31 2007 -0500

    Taking a first stab at moving configuration compiling
    into the indirection system.  There are still quite
    a few unanswered questions, the two most notable
    being embodied in unimplemented tests in the Configuration
    Code terminus.
    
    This also requires changing the behaviour in a few places.
    In particular, 'puppet' and the 'module_puppet' cfengine
    module need to store a Node object in memory with the appropriate
    classes, since that's now the only way to communicate with
    the compiler.  That integration work has not yet been done,
    partially because the old configuration handler (which the
    soon-to-be-deprecated master handler now uses) still exists.

commit c40da335123ee839294b37134d1e6361000bf216
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Sep 23 15:39:07 2007 -0500

    Adding a "memory" node terminus, which will
    be used by 'puppet' and the Cfengine 'module_puppet',
    since they need to set up the node specially with
    classes and other weird things.

commit 1e7c648220214eaab253212f1d9dd6bcca9963b7
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Sep 23 14:28:31 2007 -0500

    Fixing the spec for the checksum terminus to match
    the changed design in the previous commit.

commit 048464f2563d3ccf781c16b873be6b74441f1f85
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Sep 23 14:26:56 2007 -0500

    Adding my first integration test, verifying that
    checksum interaction behaves as I expect when
    interacting with the file terminus.
    
    I've also changed how files and checksums behave a bit.
    Files now create model instances with the content as
    the only argument during initialization, and checksums
    now calculate their checksums rather than having them passed
    in.

commit 84146d00eed4765e6dbe05dd8de9f4c3625463b7
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 22 20:00:15 2007 -0500

    Adding the first version of checksum support, which will
    acquire the behaviour of FileBuckets.

commit 3a18348fdbea39f56857b03c8f531bd5a2a8105d
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 22 17:54:46 2007 -0500

    Renaming the 'Puppet::Util::Config' class to
    'Puppet::Util::Settings'.  This is to clear up
    confusion caused by the fact that we now have a
    'Configuration' class to model host configurations,
    or any set of resources as a "configuration".

commit e552c83b2875dab60a5508bfae352e7aa9235746
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 22 17:22:07 2007 -0500

    Adding the base file terminus.  This will, at the least,
    be used as the back end for filebuckets and the
    certificate authority.

commit d6e91ae78698bdbec818d383574f4c279735e172
Merge: a666995 86dde63
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 22 15:04:34 2007 -0500

    Merge branch 'configurations' into indirection
    
    Conflicts:
    
    	lib/puppet/defaults.rb
    	lib/puppet/indirector/facts/yaml.rb
    	spec/unit/indirector/indirection.rb
    	spec/unit/indirector/indirector.rb

commit 86dde63473d29c45d8698ce4edd53c820a621362
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 22 14:25:17 2007 -0500

    All tests now pass in this configuration branch, which means
    it's time to merge it back into the indirection branch.
    
    Considering that this work was what drove me to create the
    indirection branch in the first place, i should now be able to
    merge both back in the master branch.

commit 60cd6a73b2b0cb7b26b091d4214c66eb5ed3b0ad
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 22 12:56:32 2007 -0500

    The structure for handling resource generation is now
    in place, which means I'm over the hump in developing
    this branch.
    
    I have to fix some design flaws I made in the configurations,
    particularly that the 'runner' handler needs to be able to
    specify tags and whether to ignore schedules, but otherwise,
    I think it's straightforward test- and bug-fixing from here out.

commit a66699596452f88d2bc467af4cff3f9a1aec3d1e
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 22 01:24:04 2007 -0500

    Adding the last tests for the ldap node terminus.  I managed
    to forget the tests around the main find() method.

commit ebe7290bf0c9119e268c9037c33da515e527aa5b
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 22 00:16:39 2007 -0500

    All indirections are working, and they have all
    been migrated over to the new organization.  Where we
    would have previously had an 'ldap' node terminus at
    puppet/indirector/node/ldap.rb, we would not have it at
    puppet/indirector/ldap/node.rb, and it would be a subclass
    of puppet/indirector/ldap.rb.
    
    These are called terminus classes, and there are now three
    categories of them:  The base class itself, abstract classes
    that provide most of the functionality (e.g., the ldap and
    yaml classes), and the classes themselves that implement
    the functionality for a given model like Node or Facts.
    
    The base terminus class handles auto-loading any of these
    classes from disk.

commit b9dc6cb22f087f419b328cafa945c9604043b22f
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 21 19:28:01 2007 -0500

    It looks like the new indirection setup is complete.
    
    I only need to port the node indirection termini over.

commit 02275f0b29cee70e3f02d6d8f911eaaf3fad579d
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 21 15:49:25 2007 -0500

    Adding automatic association between terminus subclasses and
    the indirection they're working with.  It looks like I'll be
    moving terminus registration to the indirection rather than the
    top-level Indirector.

commit da0555d948b837e7c16bdca164780c9e71353e4a
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 21 15:15:40 2007 -0500

    Adding the first top-level terminus (yaml).  It works
    and is tested, so now it is time to migrate the
    Facts YAML Terminus to use the <terminus>/<indirection>
    file structure instead of <indirection>/<terminus>.
    
    In this case, that means that I am moving the functionality
    in lib/puppet/indirector/facts/yaml.rb to
    lib/puppet/indirector/yaml/facts.rb, and the class in that
    new file will subclass Puppet::Indirector::Yaml.

commit 0a48e5f5bf5885353edc20f020ae27eb682176f7
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 21 13:42:39 2007 -0500

    Moving the Puppet::Indirector::Terminus class into its
    own file and adding a spec for it.

commit 7e2ff4b39404ad9b0bdbc40d92c80bcb8c76fcf6
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 21 13:18:51 2007 -0500

    Adding a couple more tests to the indirector, talking about
    terminus registration.  I am about to change how loading is
    handled, so that individual termini are declared as normal
    Ruby classes.

commit 7740cd497f936859fa5213c34dae485b5b70ba60
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 21 13:07:34 2007 -0500

    The indirector specs now all pass.  I think I need
    to add a few more specs, though.

commit 4e8b6712b688b23d6cb33f5829d3b15fe9d6833c
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 20 17:31:03 2007 -0500

    The unit tests for the newly-resurrected indirection class
    now work; all we need do is fix the indirector module tests.

commit 8212f88ce3ad2ddbc7e1e713111d9478171c42b8
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 20 15:24:20 2007 -0500

    Fixing all existing spec tests so that they now
    pass given the redesign that Rick implemented.
    This was mostly a question of fixing
    the method names and the mocks.

commit 4cde0344b50084b897792ba4cdd1f62a733d7f53
Merge: 76b34f5 944cd0e
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 20 13:13:17 2007 -0500

    Merge branch 'indirection' of http://git.rickbradley.com/puppet into indirection

commit 944cd0eecfde0179eb594378640c7df84020cedf
Author: Rick Bradley <rick@rickbradley.com>
Date:   Thu Sep 20 13:05:48 2007 -0500

    Whitespace and comment commit.

commit 46d69068fa7b2f3448294c5d3da21c69cef73d2f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 20 12:57:57 2007 -0500

    An intermediate commit so I can start working on a different
    branch.  The file recursion code actually works for the first
    time in a painful while, but there are still some quirks and design
    issues to resolve, particularly around creating implicit resources
    that then fail (i.e., the behaviour of the create_implicit_resource
    method in Configuration).

commit e90a51ff599c823372ddcf4e1ea821cc3f99638c
Author: Rick Bradley <rick@rickbradley.com>
Date:   Thu Sep 20 12:55:12 2007 -0500

    More spec and indirector updates.

commit 129cce8b63c827d16a49c5ff1f6f25daf2906f47
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Sep 19 23:13:30 2007 -0500

    Finally, some progress.  Closing the loops and delegating registered class calls out to the actual Terminus.

commit a6c4041a201dd8984cec89a96a194e96479f6657
Author: Rick Bradley <rick@rickbradley.com>
Date:   Wed Sep 19 23:02:48 2007 -0500

    Reworking the Indirector code.  Continuing to fight the classgen and instance_loader "utilities".

commit 76b34f57a4717fba6665656c4955b9f0abacdf74
Merge: 3ccf483 19e0493
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Sep 17 16:29:43 2007 -0700

    Merge branch 'indirection' of http://git.rickbradley.com/puppet into indirection

commit 9fa2628a844c75b8f554f283dfece01667f20594
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Sep 17 15:21:44 2007 -0700

    This is basically another intermediate commit.  I feel like
    I've gone too far down the rabbit hole to turn back now, but the
    code is clearly getting more centralized around the Configuration
    class, which is the goal.
    
    Things are currently a bit muddy between recursion, dynamic resource
    generation, transactions, and the configuration, and I don't expect
    to be able to clear it up much until we rewrite all of the tests
    for the Transaction class, since that is when we'll actually be
    setting its behaviour.
    
    At this point, Files (which are currently the only resources that
    generate other resources) are responsible for adding their edges
    to the relationship graph.  This puts them knowing more than I would
    like about how the relationship graph works, but it'll have to do for now.
    
    There are still failing tests, but files seem to work again.  Now to
    go through the rest of the tests and make them work.

commit 19e049322879f5195b6fb653ae0c63e776e94835
Author: Rick Bradley <rick@rickbradley.com>
Date:   Mon Sep 17 16:49:53 2007 -0500

    Updates to indirection stuffs.  Making a better spec and migrating to it.

commit b3c8cdb67d9a423a1d14764f1e58f677d7ef8d41
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 15 22:25:54 2007 -0600

    Configurations now set a "configuration" instance variable in resources that are inside a configuration, so the resources can interact with the configuration to get things like relationships.

commit f17f19dae941b17a56c1fc83ed3a89712b98c427
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 15 22:17:20 2007 -0600

    The whole system now uses Configuration objects instead of
    ever converting the Transportable objects into a tree of components
    and then converting that into a graph.  This is a significant
    step, and drastically simplifies the model of how to use a configuration.
    The old code might have looked something like this:
    
        file = Puppet::Type.create :path => "/whatever", ...
        comp = Puppet::Type.create :name => :whatever
        comp.push file
        transaction = comp.evaluate
        transaction.evaluate
    
    The new code looks like this:
    
        file = Puppet::Type.create :path => "/whatever", ...
        config = Puppet::Node::Configuration.new
        config.add_resource file
        config.apply
    
    I did not really intend to do this much refactoring, but I
    found I could not use a Configuration object to do work
    without refactoring a lot of the system.  The primary problem
    was that the Client::Master and the Config classes determined
    how the transactions behaved; when I moved to using a Configuration,
    this distinction was lost, which meant that configurations were
    often needing to create other configurations, which resulted in
    a whole lot of infinite recursion (e.g., Config objects that create
    directories for Puppet use Configuration objects -- yes, I'm
    s/Config/Settings/g soon -- and these Configuration objects would
    need to create directories).
    
    Not everything is fixed, but it's very close.  I am clearly over
    the hump, though, so I wanted to get a commit in.

commit f014d7348fd5dc4bd699fca15c19a2c291df4bb3
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Fri Sep 14 13:23:13 2007 -0500

    Partial fix for #772.  The SIGHUP now produces a EOPNOTSUPP instead of NameError.

commit 3ccf483f77b026dde8a53bd8e9dff6a5fd0f6722
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 13 16:09:44 2007 -0500

    Removing the completely obsolete passwd2puppet and the obsolete component.rb

commit 3632926089cb27b93ff075c05ba21e2340a562ac
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Sep 12 18:40:54 2007 -0500

    Moving the resource container behaviour to the Configuration object, rather than the base PGraph class.  I expect I will just do away with PGraph, but for now, I am at least going to keep configuration-related code in that class.

commit 43f22a2414048b180d2c0e2a421fa8d905c4d8eb
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Sep 12 18:32:26 2007 -0500

    Adding a to_graph method to TransBuckets, so that the buckets can directly generate a graph, rather than having to first convert to RAL types and then have them convert to a graph.  This allows us to make it so components do not need a @children array at all.  This was all done because I am having the "already a parent of" problem again, and I have gotten far enough that it is relatively easy to just make this problem go away once and for all.

commit a6fe70054f4fb3efe4d558ffdd244917ca1c6f9c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Sep 12 15:32:25 2007 -0500

    Another intermediate commit.  The node and fact classes are now functional and are used instead of the network handlers, which have been removed.  There are some failing tests as a result, but I want to get this code committed before I massage the rest of the system to make it work again.

commit 1459c507ddccff2a2a6fbadd4c880c023b5e9893
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 11 19:21:49 2007 -0500

    Adding setup/teardown hooks to rspec, so we can use test/unit methods

commit 3b3065bc73e409874a9e6f1be755754fb2b226bf
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 11 18:48:30 2007 -0500

    Refactoring the feature support so it loads libraries when a feature is asked about, rather than when it is defined.

commit c319fd059d2d563432700214d4946cf0bf925894
Merge: bb69a1f 1638089
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 11 16:34:07 2007 -0500

    Merge branch 'testing'

commit 65c1501504dd7e9166176661f9ed9f80300954db
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 11 16:19:03 2007 -0500

    The Node handler is now obsolete.  Node searching is handled through the indirector.  I have not yet added the tests for the node handlers themselves, which is next.

commit 16380893452bfc0187aab85f9698349f7a42a0b8
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Tue Sep 11 14:45:41 2007 -0500

    Fixed #797.  Removed the warning message about specifying 'enable' or 'ensure' when initializing a service.

commit 36e24e28b2433c2306b5f3edd6f61197f4ea7bb2
Merge: 6f9a444 8114933
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Tue Sep 11 14:18:43 2007 -0500

    Merge branch 'master' of git://reductivelabs.com/puppet

commit 6f9a444bba13f134c2395dd52a3816ab7ec3031c
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Tue Sep 11 14:15:59 2007 -0500

    Fixed #784 by applying patch by vvidic.

commit 5aa4440b6fb8c9199ee549bd8fe0e4afb296c259
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 11 12:38:56 2007 -0500

    Doing an intermediate commit so rick can look at the work I have done so far.

commit bb69a1f08a6b0ba37222eeddf28ffbff657283e7
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Sep 10 17:58:23 2007 -0500

    Renaming the instance loader method to "instance_load".  It was previously autoload, which could class with Kernel.autoload.

commit 81149333c360d6f10e6c1cf58f43b6e18c0a55dc
Merge: ca9c48d 6a105c4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Sep 10 16:16:34 2007 -0500

    Merge branch 'master' of http://northstarlabs.net/git/puppet

commit 6a105c4f208aa94483125a80f14565a106f5d5dc
Author: Jeffrey J McCune <jeff.mccune@northstarlabs.net>
Date:   Mon Sep 10 16:56:04 2007 -0400

    Fixed hdiutil syntax for ticket 812

commit 19a748bb9e1fcdc574dca9de4ee82bd017627a19
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Mon Sep 10 14:28:02 2007 -0500

    Removed TYPE token, replacing it with CLASSREF token, in the grammar and lexer.  Updated CLASSREF token regex in the lexer.

commit e826453107fc3888da4667be9cce9cb7661072f8
Merge: 09f7da5 6700adc
Author: Jeffrey J McCune <jeff.mccune@northstarlabs.net>
Date:   Mon Sep 10 15:27:57 2007 -0400

    Merge branch 'master' of git://reductivelabs.com/puppet

commit ca9c48dd77b36b344c3fb9c1680f473650afdf90
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Sep 10 12:42:19 2007 -0500

    Removing extraneous logging from the node handler

commit 041393d1462b44438ede6dcf47fb05ec1084c998
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Mon Sep 10 12:33:26 2007 -0500

    Fixed #774, which fixed fully qualified collection statements

commit 6700adcacdec4381ee4a27a215ee4b45207aa448
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 7 15:38:24 2007 -0500

    *Finally* fixing the tests that were failing around users and groups.  The problem was that the autoload tests were somehow clearing all loaded classes, including the providers.  This is fixed now.

commit 9af79f117221d93f0d13a2c5ea3e886c6a9d939e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 7 12:10:59 2007 -0500

    Fixing some failed tests.  Mostly cleanup.  Next is to make all of the user tests pass again, dammit.

commit 50874b2f1801b6ad2884803e98bbd220ef4af1bd
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 7 11:00:13 2007 -0500

    Fixing a path test.  I have now made the path stuff a lot cleaner, but it apparently broke this test.

commit ca57c793d4f1ad249f63f26609be2fa9208ca244
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Sep 7 10:58:07 2007 -0500

    Fixing #801 -- resources that have changes when running in noop mode do not record that they were checked, so that they will be scheduled on the next run.  This is a somewhat murky solution, but considering that no one had submitted this bug before, I expect it will not hit many people.

commit caad11a9d15210017f75918b50184bc12f2cc1d0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 6 20:50:26 2007 -0500

    Fixing some broken tests in the master client, and adding a test for #800 but it is unfortunately disabled because we cannot realistically fix it using the current design.  It will be easy after the REST refactor, though.

commit 7abc78ad25979c62b585127a8f2a32c55e96819f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 6 20:12:30 2007 -0500

    Fixing #795 -- configuration elements now make sure all file paths are fully qualified by prepending the wd to unqualified path names.

commit 4212f9c2250377793d6ed636c18c7a8538160366
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 6 20:00:24 2007 -0500

    Fixing #802 -- tags are now applied before parent classes are evaluated, so parent classes can use tagged() to test if a node is a member of a subclass.

commit 4104bd3ee9fa146b49aa446fbf4cc3edcdf0974d
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 6 19:24:25 2007 -0500

    Fixing #807.  The exception handling should more closely resemble how it used to be done.

commit b7f42441b91c921cd31f3d8c7875ce98bdedf786
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 6 18:53:00 2007 -0500

    Renaming some ast resource classes and files so they make a lot more sense.

commit 653c1514b613f27cb22d24b4bdd7b6c118047566
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 6 18:45:41 2007 -0500

    Fixing #806.  Resources correctly look up their fully qualified definition type, just like resource references do, which causes the resource and reference to again agree on the full name of a given defined type.

commit 40e3b372ec2a3b45a5254a85f9b808bf3450e316
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 6 17:18:17 2007 -0500

    A small change to the indirector, moving it to a module instead of a class.  I still do not really know how i will use it, though.

commit a5539cd4e14715c3358506f50dfa38e2914c627c
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Sep 6 11:26:15 2007 -0500

    Adding my indirector class before i rewrite it.  I am probably not going to keep any of this, but i wanted to store a copy before i got much further.

commit b0a947589ea6c7abf5658d9e5038eb7d96a11339
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 4 16:59:30 2007 -0500

    Flipped the switch so that compiles now return a Configuration instance instead of pre-extracting the configuration.

commit 11b127bd6708a18b512ca5b3018ccff1200cc47a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 4 15:14:39 2007 -0500

    Successfully modified all tests and code so that all language tests pass again.  This is the majority of the work necessary to make the separate "configuration" object work.

commit 3b2efd2a4b32478b6c6a71e1421061405a0bb11e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Sep 4 12:09:48 2007 -0500

    We now have a real configuration object, as a subclass of GRATR::Digraph, that has a resource graph including resources for the container objects like classes and nodes.  It is apparently functional, but I have not gone through all of the other tests to fix them yet.  That is next.

commit 0faf76ee187c7fa7c67a7fb7e7c345897006b7d8
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Sep 3 19:38:15 2007 -0500

    More refactoring.  I have removed a few more extraneous methods from Scope, mostly just pointing directly to the compile, and I have begun (but commented out) the move to having resources to model each of the classes and nodes, in addition to the definitions.  This will, again, enable a real Configuration object, and it will enable class versioning and similar features.

commit 9d70b9746c09f648efd6a315b3ea088da38ecd1e
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Sep 3 18:20:04 2007 -0500

    Removing the Scope#setresource method, since it was essentially redundant.  The work is done in either AST::ResourceDef#evaluate or Compile#store_resource.

commit b021587e309f237bd16bd4f5cc51e79266cbd222
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Sep 3 18:01:00 2007 -0500

    Doing a small amount of refactoring, toward being able to use Parser resources to evaluate classes and nodes, not just definitions.  This will hopefully simplify some of the parsing work, and it will enable the use of a Configuration object that more completely models a configuration.

commit 25f6d7c521cb0189cf691fb1c4bce4b675568300
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Sep 1 09:51:03 2007 -0500

    Deleting old documentation that somehow made it back into the tree in the switch to git, and refactoring the evaluate_classes method on the compile object so I can use resources as intermediaries, thus making classes do late-binding evaluation.

commit 62806bb8749d001354078f176fad8a0a54316efb
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 28 17:00:32 2007 -0500

    Renaming the file containing all of the configuration defaults to "defaults.rb", since I am going to create a separate "configuration" top-level directory to contain all of the classes related to managing the configuration for a given node.

commit 6832a4b08ecddbe017cc6393bc02cb448e607b1b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 28 16:15:05 2007 -0500

    Fixing some failing unit tests.

commit 2625eb1db70361f9f14710ccc36090374ee282fb
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 27 17:38:39 2007 -0500

    Making a couple of small bugfixes in the configuration subsystem

commit 1de5ae0da0d336f1b96ceaac5aca1dfed4169460
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 27 14:26:49 2007 -0500

    Adding support for providing a diff when files are being changed.  Currently uses a local diff binary, but could easily be changed to use the ruby diff/lcs library.  Modified puppet and puppetd to automatically show file diffs when in noop mode, but can otherwise be enabled using --show_diff.  This only works when running interactively, because the diffs are printed on stdout.

commit 11081ce8864dca2bc92d8c9f825c3fe7f96333f4
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 26 21:54:17 2007 -0500

    Multiple environment support now works, and I have even tested it in real life.  This commit is mostly a bug-fix commit, resulting from the difference between real-life testing and unit testing.

commit 9ea8e6cc8772053548d3438393dd1ead986ed719
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 26 19:03:25 2007 -0500

    The fileserver now uses an environment-specific module path.  I also made various bug fixes around the network tree.

commit 51ff72c42447e5b9e05db3b24530a4e628454396
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 26 12:58:39 2007 -0500

    Adding a bit of testing for node names.

commit 4e9c63181f4c3912e48ddd97782f07b89826d9fd
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 26 12:53:44 2007 -0500

    Moving the node tests to rspec, and cleaning up the spec of the node, especially WRT the environment.

commit a8f2a33c7e9c0efb12093338179f004298dbcbde
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 26 12:53:36 2007 -0500

    Moving the node tests to rspec, and cleaning up the spec of the node, especially WRT the environment.

commit 9df4fd1f2188c90190e33e165206e7931938607b
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 25 17:14:13 2007 -0500

    And we have multiple environment support in the parser.  The only remaining piece to make this complete is to add multiple environment support to the fileserver.  I also renamed Configuration.rb to Compile.rb (that is, I fixed all the classes that used to know it as a configuration).

commit ba3a861af2e5c30fd9bbbe0e1666fa316139113b
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 25 15:55:43 2007 -0500

    Removing this test for now; I do not have time to port it from test/unit to rspec

commit 37f0eed9657810c1b9e1d6383e6d6ebb027aff2f
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 25 15:54:06 2007 -0500

    Renaming the "configuration" object to "compile", because it is only a transitional object and I want the real "configuration" object to be the thing that I pass from the server to the client; it will be a subclass of GRATR::Digraph.

commit deb0107ed945c25776d10f9e9b9d721b69ec3478
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 25 15:48:46 2007 -0500

    Oops, created a test directory in the main spec dir, rather than in the unit/ subdir

commit 3030d3eb3f6ed5640c14f3dae2c5167c51ce43eb
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 25 15:47:49 2007 -0500

    Modules are now tested with spec, and they now can handle environment-specific module paths.

commit ab5418390e3e49ce3a12b60902f405db157ed45b
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Aug 24 19:19:44 2007 -0500

    The config class now has support for add an environment to its search path.  Now I just need to go through the whole system and use the search path in addition to the parameter name itself.

commit c6e201cdd4ca5ee11a04cac77bf32faf40640b6d
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Aug 24 18:31:00 2007 -0500

    I have added basic support for a search path, altho not yet with any ability to manipulate it.  All config tests pass in both the old tests and the new ones, so it is time to add the hooks for manipulating the search path.

commit 520aaafbb87805a79283386e37deb4b3093a1144
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 23 19:09:45 2007 -0500

    Adding some rspec tests for Config.rb, because I am planning on significantly changing its internals and the current tests, I think, will be harder to migrate than just writing rspec tests from scratch.

commit 724fef1269bd593496bca9827a0ad7d9361e92d4
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 23 13:25:40 2007 -0500

    Everything up to the parser (and the Modules) is ready to support multiple environments, including the parser having an environment setting.  I have also created my first spec-based tests, for the interpreter (and deleted the old test/unit tests).

commit 3d68ed66ca7545c26b83a4c921d21f5aad710ee0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 23 11:52:58 2007 -0500

    Oops, left out the spec rake file from the main spec commit

commit 58494cc8566da04711715e54274f472377b1aba0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 23 11:52:31 2007 -0500

    Building a stand-alone spec directory for creating the new spec-based tests.

commit d59315a07a8a01ca65952d8e8fe9d2f1bb84d30e
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 23 01:17:33 2007 -0500

    Adding the second half of the rspec upgrade -- apparently the "git add" thing I used did not remove the old files, only add the new ones.

commit 5601ecf75d3854a66d087a108e1b06885fa2be12
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 23 00:56:42 2007 -0500

    Upgrading rspec to version 1.0.8.  This only includes the contents of the lib directory, and even then only the spec-related stuff, not the autotest stuff.

commit 7c4d39ec09c10871d7eb234fe4392381245ff443
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 22 22:13:23 2007 -0500

    Adding environment information to the client fact list.  The environment is retrieved from the normal Puppet configuration, so it is set via puppet.conf or the cli, rather than being a normal fact.

commit b599862fc85c968676799edde865a96faa66a75b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 22 21:39:21 2007 -0500

    Fixing the integration test between interpreter and configuration -- the interpreter was not passing on that the config should use ast nodes

commit fb3bfa57d892bd3398fb1434ca9914bb8a7c3b50
Merge: eeedb92 a54fa7e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 22 20:49:37 2007 -0500

    Merge branch 'master' of git://git.et.redhat.com/puppet

commit eeedb9200f1759e85bd01636630359ad897cb066
Merge: b9f529a efcd1e8
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 22 19:00:48 2007 -0500

    Merge branch 'master' of ssh://reductivelabs.com/home/michael/git/puppet

commit a54fa7e81e76445656e97aea0079761238605535
Author: David Lutterkort <dlutter@redhat.com>
Date:   Wed Aug 22 16:41:55 2007 -0700

    Sync to latest specfile in Fedora

commit b9f529a063cabb183966da29739cd924836eb67b
Merge: 0682d7e 282ec89
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 22 18:07:52 2007 -0500

    Merging the multi_env branch with master.  There are not actually any conflicts, so this commit might only be necessary because I did not pull sufficiently often.

commit 0682d7e473cfd8f2fe6bee9eae0868b846fd0d50
Merge: ec50484 8b3361a
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 22 18:03:55 2007 -0500

    Merge branch 'multi_env'

commit 8b3361afae35cfb65754d7bd9aff5b820ed714f0
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 22 17:57:28 2007 -0500

    The last commits before I actually start on the multi-environment support.  There are still failing tests, but apparently only those that are also failing in trunk.

commit f1727f18ab933df9ecbecc2da8fad72eb441e0d5
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 22 16:14:39 2007 -0500

    Adding the topscope metadata to the configuration being returned to the client, just like it expects, and fixing how the resource handler calls the master type.

commit efcd1e88f7869399b00cc7b6a167e4faff397fbb
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Wed Aug 22 11:31:25 2007 -0500

    Fixed CA race condition (#693)

commit 4eb87ed7c8829a6fbc558595be9149e9b3cf5b36
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 20 22:25:00 2007 -0500

    A round of bugfixing.  Many more tests now pass -- I think we are largely down to tests that (yay!) fail in trunk.

commit 2a4e1011dbc244754f434f7eb97f3d41463e5cd4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 20 19:09:26 2007 -0500

    All language tests now pass.  I expect there are other failures elsewhere, but I want to commit this before delving into them.  My method for fixing the tests was to do as little as possible, keeping the tests as bad or as good as they were before I started.  Mostly this was about changing references to the interpreter into references to the parser (since that is where the new* methods are now for ast containers) and then dealing with the new config object and its relationship to scopes.

commit 6467c21e15b8a28e627d1395f76fe8f42ee77d70
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 20 13:28:40 2007 -0500

    The first pass where at least all of the snippet tests pass.  I have unfortunately had to stop being so assiduous in my rewriting of tests, but I am in too much of a time crunch to do this "right".  The basic structure is definitely in place, though, and from here it is a question of making the rest of the tests work and hopefully writing some sufficient new tests, rather than making the code itself work.

commit a846ea900f9fa7a2baaa4fbd0742f080e7fd7a04
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 16 21:21:40 2007 -0500

    The new parser configuration object works now,
    but the rest of the compiling process is hosed
    (although the parser itself should still be fine).
    
    The configuration object is unifying a lot of work
    that was scattered around either the interpreter or
    the scopes, and it simplifies the whole system.
    
    However, its new simplicity has made the complexity
    of the rest of the system that much more apparent,
    and I am resolved to fixing the system rather than
    hacking it sufficiently to just make it work.

commit 09f7da5a5000876e03e9103c76089cfad9a1ba88
Merge: 7d09d46 282ec89
Author: Jeffrey J McCune <jeff.mccune@northstarlabs.net>
Date:   Thu Aug 16 14:25:31 2007 -0400

    Merge branch 'master' of git://reductivelabs.com/puppet

commit 282ec893ef895e0d386126ba70494a3b086030b9
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 16 00:00:28 2007 -0500

    Fixing the spec library so it correctly can see its version

commit 1527f4a615f9c429e90becd90f9ed1e8c1e83249
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 15 17:18:43 2007 -0500

    Adding node caching, so that node sources are not spammed during file serving and such

commit a9539548d957304a03aa8bdc61c06793228f57c0
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 15 17:05:49 2007 -0500

    Keeping the node names in the node object, so that they are available to the interpreter

commit 297dabb63744f8ad468ee4bf5caa54a75754ceee
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 15 16:56:05 2007 -0500

    Refactoring a small part of the interface between the configuration handler and the interpreter.

commit 901ae687eb75885c5b717b03f2d6667f5ed8ffb5
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 15 16:32:06 2007 -0500

    Requiring mocha in all cases in the test tree

commit 70dffdde70b60ae9e84b6ab2889f6b50fe6bed70
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 15 16:31:44 2007 -0500

    The new configuration handler looks to be ready for usage.  Now I just need to convert the interpreter to use SimpleNode objects, then continue with the Configuration object.

commit 7d09d4624dd1d4d69cf5acd355762503e9cb448c
Merge: fb4ab97 aabad8e
Author: Jeffrey J McCune <jeff.mccune@northstarlabs.net>
Date:   Wed Aug 15 15:52:27 2007 -0400

    Merge commit 'aabad8e'

commit aabad8e1e262fb2f63fa4eef0f0e6fc00cc4b01f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 15 14:21:59 2007 -0500

    Adding the necessary name/ip fields to the node methods

commit 65559af75e3da6522f4c3e952a73d80e0040609c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 15 13:55:55 2007 -0500

    Adding a "none" node source, which will be the default node source and will just return an empty node.

commit fb4ab97580f40d664e76aa7107e58d16097570b8
Merge: 445df52 6ff461b
Author: Jeffrey J McCune <jeff.mccune@northstarlabs.net>
Date:   Wed Aug 15 14:50:42 2007 -0400

    Merge branch 'master' of git://reductivelabs.com/puppet

commit 6ff461b8c2fb026398626754f055fca32c7624a4
Merge: 9208931 58e3855
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 15 17:24:26 2007 +0200

    Merge branch 'master' of http://northstarlabs.net/git/puppet

commit 9208931005d55729f2f8f38ad618f019a910d778
Merge: 3bccd52 014a576
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 15 04:57:15 2007 +0200

    Merge /home/michael/git/puppet

commit 445df52bc46f72aeaa6db8cac711744a8cebb1b5
Merge: 58e3855 ec50484
Author: Jeffrey J McCune <jeff.mccune@northstarlabs.net>
Date:   Tue Aug 14 22:57:02 2007 -0400

    Merge branch 'master' of git://reductivelabs.com/puppet

commit 014a576066ae793fb48f55e8e915e6afe3530c6b
Merge: 2ff15c0 ec50484
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Tue Aug 14 18:43:33 2007 -0500

    Merge ssh://michael@reductivelabs.com/home/michael/git/puppet

commit 2ff15c015b45b5b0bcb9e4f2ab67f8dfe3814348
Author: Michael V. O'Brien <michael@reductivelabs.com>
Date:   Tue Aug 14 18:35:32 2007 -0500

    Added shortname support to config.rb and refactored addargs

commit 90a9d09cd08ec072530e2f000e9f7b65f1c41095
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 14 18:25:08 2007 -0500

    Finalizing the node handler.  It now correctly uses the different node sources
    and knows how to retrieve data from those sources.  Now I just need to fix
    the language stuff to use this handler instead of the existing node stuff.

commit 3bccd52b8e25405ac1963297f32390f517c98aa9
Merge: 40491eb ec50484
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 14 22:22:33 2007 +0200

    Merge /opt/rl/git/puppet

commit ec50484518425ec8ac36f89b087beb27d5a3d2c8
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 14 15:20:50 2007 -0500

    Fixing documentation string on the file "ensure" property to remove the confusing mention of "exists"

commit 58e3855bb1c98e45f7e366d0f1fc6d834e0e5e43
Author: Jeffrey J McCune <jeff.mccune@northstarlabs.net>
Date:   Tue Aug 14 09:50:42 2007 -0400

    Added optional per-module lib directory.
    
    Puppet now looks for a lib directory inside each module bundle, and adds
    the directory to the list searched by Puppet::Util::Autoload.
    
    The intent is to facilitate more sophisticated virtual types and flexibility
    within modules.

commit aab419b8c1ad84e51c6f58839290bbe5d1e7b28b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 14 00:09:49 2007 -0500

    An intermediate commit in the work towards adding multi-environment support.
    
    This has required splitting the interpreter up considerably, which is much
    cleaner but is a large project.  There is now a 'nodes' handler, but it is
    currently non-functional, although all the support structure is there.  It just
    needs to have the individual methods fleshed out, and it needs to be connected
    to the 'facts' handler.

commit 40491ebe7ca9692b57fb533412ece8fb694b7d4c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 13 20:12:07 2007 +0000

    Merge /opt/rl/git/puppet
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2773 980ebf18-57e1-0310-9a29-db15c13687c0

commit b59d396b504f40a471459c527b16a1962e32a878
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 13 19:54:52 2007 +0000

    Revert "Updating more milestone names"
    
    This reverts commit 61a747fc2d9bdfbf1b74c4ac3fcaf89114b020e0.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2772 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3e9ac59b293769ac9243ec162467faa13ceb2b2d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 13 19:54:51 2007 +0000

    Updating more milestone names
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2771 980ebf18-57e1-0310-9a29-db15c13687c0

commit ab42534ae243c24c8c702e38195a954ab52eaed9
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 13 14:50:22 2007 -0500

    Applying patch by Adam Jacob to make external node tools able to handle command-line arguments

commit 24e7b4d034bf5e50996846494949fd90ec617b4d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 13 13:02:35 2007 -0500

    Revert "Updating more milestone names"
    
    This reverts commit 61a747fc2d9bdfbf1b74c4ac3fcaf89114b020e0.

commit 61a747fc2d9bdfbf1b74c4ac3fcaf89114b020e0
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 13 12:58:24 2007 -0500

    Updating more milestone names

commit b5aefd4faaa16d95afc9dff7329f06fc1a1841b0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 13 17:00:14 2007 +0000

    Adding milestone names to changelog
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2770 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7e4f270852f18d721083e97c43efda9c30ad6a1d
Author: (no author) <(no author)@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Aug 12 07:53:13 2007 +0000

    Actually honour :namevar => true on newparam calls
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2769 980ebf18-57e1-0310-9a29-db15c13687c0

commit 01b21ae783198102d9c6caac0588754068f4ff22
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 10 15:35:56 2007 +0000

    Removing extraneous debugging from crontab
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2768 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6ab30eb649fc9fa506381af71a988627030ebea4
Author: christian <christian@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 10 03:01:55 2007 +0000

    Fix for setting global exit code ($?) in SUIDManager tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2767 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0195893a75fcc5a3ccbcd15a23a39963821c31f4
Author: (no author) <(no author)@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 9 22:44:21 2007 +0000

    Broaden assert_absent so that it thinks that :purged is equivalent to :absent
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2766 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6a78648fc9623fd12d737bbae3754f896e1e24d8
Author: (no author) <(no author)@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 9 21:43:42 2007 +0000

    Change the service name so that it is less likely to trip on a common word and spuriously fail
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2765 980ebf18-57e1-0310-9a29-db15c13687c0

commit e143cae9a1ed6650a24b2e1a0f3cfc529c849803
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 9 15:56:59 2007 +0000

    trac #763: Make redhat provider default for CentOS (patch by jtimberman)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2764 980ebf18-57e1-0310-9a29-db15c13687c0

commit d2f2bc0ee4a4f2895452b5ab318eb5e6df7fff6b
Author: (no author) <(no author)@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 9 09:41:25 2007 +0000

    Trivial mock cleanups
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2763 980ebf18-57e1-0310-9a29-db15c13687c0

commit ada960be3aed0610e8f9311b6b4c4c3f26254611
Author: christian <christian@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 9 09:18:56 2007 +0000

    Constants in provider/interface/redhat.rb are getting redifined as they are dynamically assigned, changing them to instance variables
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2762 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f059510ae0c2b690b3b800778ca765860645357
Author: christian <christian@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 9 09:03:28 2007 +0000

    Changes to lib/ corresponding to test refactoring from r2759, was unaware that subversion only commited in the CWD
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2761 980ebf18-57e1-0310-9a29-db15c13687c0

commit 13f358d92e0673cd361989e0db28bbdda3e3c8ae
Author: (no author) <(no author)@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 9 08:49:49 2007 +0000

    Highlight what I think is a problem in the test suite that I just can't solve
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2760 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3de4829cf0b607624b8a5f5f1e6055141d85af2f
Author: christian <christian@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 9 08:45:50 2007 +0000

    Refactor SUIDManager tests to run without root, change SUIDManager's behavior to not silently fail when it's not root and fix all other tests that broke as a result.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2759 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5a25701723431e0ebe2d7134ab65d56bee2c5244
Author: (no author) <(no author)@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 9 08:41:54 2007 +0000

    Upgrade mocha to 0.5.1, which gives much better error messages
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2758 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5e8d71da3e060036c695a2db904c880567fc9f69
Author: (no author) <(no author)@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 9 07:56:22 2007 +0000

    Fix the ral:providers:host:parsed tests so they run successfully
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2757 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9530df1d8c3b89404fd7b6eba7bd740dfb464b55
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 7 02:41:08 2007 +0000

    Updated to version 0.23.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2755 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0d312a16f70a61bc2f7da8c355a39d963334bd2e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 7 02:41:06 2007 +0000

    Updated to version 0.23.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2754 980ebf18-57e1-0310-9a29-db15c13687c0

commit b84015af897650aaebdb69674c4be137ea066d8d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 7 02:38:45 2007 +0000

    The last set of bug-fixes before the next release.  This commit just fixes a couple of problems that resulted when I changed the Provider#initialize method to not duplicate its argument, which was necessary for ParsedFile.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2753 980ebf18-57e1-0310-9a29-db15c13687c0

commit aaf5959fe3e9ff90d7288bb1ba8805bad2e7d05a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 6 20:05:28 2007 +0000

    Adding test support for the other mongrel configuration header
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2752 980ebf18-57e1-0310-9a29-db15c13687c0

commit db0ffc7559d727fbfede9079f51e41031b900a89
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 6 19:23:11 2007 +0000

    Copying the "commands" and "confine" statements to the actual dscl providers, since they need to be there to determine where the providers are suitable.  Otherwise base classes could unnecessarily affect how subclasses work.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2751 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5e419cf750dc1ac9572616b7318d7501d9d366ed
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 6 17:59:37 2007 +0000

    Fixing #749 -- environment settings no longer accumulate.  Significantly adding to the cron tests at the same time, such that hopefully we will no longer have these recurring bugs.  I now do every combinatorial of multi-line cron jobs, including doing them all in one file.  There are, unfortunately, still edge cases, but maybe we will have some peace in cron space for a while, anyway.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2750 980ebf18-57e1-0310-9a29-db15c13687c0

commit d121b1f06e40067c499a1a8ef9e805298c20c9a2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Aug 5 19:12:30 2007 +0000

    Removing the code from #745 until it can pass some basic tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2749 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1e6c2baffb7605da2bc40a0a49c267c51a54a056
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Aug 5 19:04:41 2007 +0000

    Adding syslog support by devdas (#745).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2748 980ebf18-57e1-0310-9a29-db15c13687c0

commit 22e7b390878769e2079b5bbd5f10ab152b4b921d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Aug 5 19:01:39 2007 +0000

    Fixing #751 -- the interface providers now have basic tests, at least to verify that prefetching and listing works.  I think these resource types need to be largely rewritten, though, and they currently have no relationship to ifconfig, which seems strange.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2747 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7bda32e9fbb6fb63c5f33fa839f03cc305c2b449
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Aug 5 17:57:31 2007 +0000

    Fixing #731 - we are now correctly only collecting exported resources
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2746 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3d629bb2b237a7bd93e70a029739cb68ee6f9c7c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Aug 5 17:49:23 2007 +0000

    Fixing #730 -- mounts now call flush() before trying to mount
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2745 980ebf18-57e1-0310-9a29-db15c13687c0

commit a8bf96af7649eedb294b0525c877cd8ba565d6e2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Aug 4 20:00:19 2007 +0000

    Adding a file that should have been in a commit from yesterda
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2744 980ebf18-57e1-0310-9a29-db15c13687c0

commit 40e4d6fa02e801a26c2880840befa32718e55452
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Aug 4 00:36:47 2007 +0000

    Fixing #735 -- gen_config now uses a single heading, matching the name of the process
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2743 980ebf18-57e1-0310-9a29-db15c13687c0

commit 97cd057177f18a0e6694aab0e440f86e0bf08d42
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 3 23:49:53 2007 +0000

    Fixing #314 and #729; here's the changelog:
    
        Refactored how the parser and interpreter relate,
        so parsing is now effectively an atomic process (thus
        fixing #314 and #729).  This makes the interpreter less
        prone to error and less prone to show the error to the
        clients.  Note that this means that if a configuration
        fails to parse, then the previous, parseable configuration
        will be used instead, so the client will not know that
        the configuration failed to parse.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2742 980ebf18-57e1-0310-9a29-db15c13687c0

commit 72f2ac39e036d3fea88569d17f3e455670bba063
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 3 23:14:32 2007 +0000

    Apply fix for typo provided by Toshio Kuratomi (bz250870)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2741 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2a37c73b339ced3f1eb8a5fca1f8482837cb2d39
Author: mccune <mccune@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 3 20:43:53 2007 +0000

    Removed stray debugger method.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2740 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5a5d2411265443a9331179c9410271e51b9d98f7
Author: mccune <mccune@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 3 20:36:49 2007 +0000

    DirectoryService provider for users and groups.  Alternative to netinfo, as apple has indicated NetInfo may go away at some point in the future.  It might happen in October.
    
    FIXME: implement groups and groups= instances methods for Puppet::Type::User::ProviderDirectoryservice
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2739 980ebf18-57e1-0310-9a29-db15c13687c0

commit 08d89455aa848f95fcfa4ae35451c0a86563401d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 3 20:18:30 2007 +0000

    Fixing #734.  The problem was that when I switched how the configs were parsed, I managed to lose the ability to keep values set on the cli from being overridden by values set in config files.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2738 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5eacd19aa963c8200df12d6ec593573aa3183850
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 3 19:40:16 2007 +0000

    Renaming the linux interface provider to redhat
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2737 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6841397b2a4d83ba27d3f68e892b03acf9079bcc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 3 19:37:54 2007 +0000

    Applying patch by stick to the linux interface provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2736 980ebf18-57e1-0310-9a29-db15c13687c0

commit 877282e8e9e067483fe0c7384ac8e4643dd495df
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 3 19:31:15 2007 +0000

    Undo previous commit, which was an error
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2735 980ebf18-57e1-0310-9a29-db15c13687c0

commit 81d690ad006248b6194f380d0dc21f6124199557
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 3 19:26:57 2007 +0000

    Do not set any options if they aren't set in /etc/sysconfig/puppetmaster - otherwise we clobber settings from puppet.conf
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2734 980ebf18-57e1-0310-9a29-db15c13687c0

commit 36a3e4a38c50c1dff621a1ddf9a362a670681768
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 3 19:09:07 2007 +0000

    Changes for 0.23.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2733 980ebf18-57e1-0310-9a29-db15c13687c0

commit 52e9fa0e734c6b6a873952fded94071910c2d3ac
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 31 16:35:24 2007 +0000

    Adding interface implementations, as written by Paul Rose
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2732 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7547baf6424ccb5f172566b11b9e3d7fe324fe00
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 31 02:34:28 2007 +0000

    Adding a test for rails
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2731 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1e11a1a418bc3449e7606c450b500005afc2c7d1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 31 02:34:07 2007 +0000

    Removing test that ended up being redundant
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2730 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4b25750475a456a3e23ae03e261cabc74f80ed9a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 30 22:05:44 2007 +0000

    Applying patch my emerose to fix #652.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2729 980ebf18-57e1-0310-9a29-db15c13687c0

commit 87da1726551a9e8c6596146fd3efe07780d728e1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 30 16:18:33 2007 +0000

    Adding the requirement that the cert dn have /CN= in it, thus hopefully catching clients without certs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2728 980ebf18-57e1-0310-9a29-db15c13687c0

commit 530d29031ddb8adf4fb9c1148ca3d0ac749c87dc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 30 16:12:53 2007 +0000

    Applying a modification of the patch from Marcin Owsiany, allowing Mongrel to be a CA
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2727 980ebf18-57e1-0310-9a29-db15c13687c0

commit 64fba484eb91e68f31fad33cea73331485bb76f3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 20 19:23:36 2007 +0000

    Updated to version 0.23.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2725 980ebf18-57e1-0310-9a29-db15c13687c0

commit d3988cc37ad63258b7c166d5bc333a69938cfde8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 20 19:23:33 2007 +0000

    Updated to version 0.23.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2724 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2229dc1621106510a34d1ce80cbec883f8b2af8c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 20 16:46:54 2007 +0000

    Fixing #726 -- mounts can now correctly handle mounted but absent filesystems.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2723 980ebf18-57e1-0310-9a29-db15c13687c0

commit 47b705883bfdb38e3f94cba129936f70e3153735
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 20 16:27:44 2007 +0000

    Adding some code in an attempt to fix #728, but it is all commented out since I could not get it fixed in time for beaker
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2722 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2e14ea4294fb520a95bfa9f8930a1ed47e71e7de
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 20 15:12:34 2007 +0000

    Attempting to clean up the mount documentation as in #727.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2721 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7401adac175c23fc404f691f7837c11f9cfbf80f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 20 03:36:54 2007 +0000

    Caching whether a given file or module has been loaded, because the loading was greedy and was causing files to get loaded every time a class or module was asked for
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2720 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3f1b95790acb335977d0862aa39744d0e3df6629
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 20 03:24:04 2007 +0000

    Fixing the mail aliases generated by the mailman list provider; it was generating capitalized list names
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2719 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3f1c865eab38e6d41ff67de6730ca817ed09a02d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 19 22:12:51 2007 +0000

    Fixing #725.  I was apparently not deleting the alias I was creating to the components.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2718 980ebf18-57e1-0310-9a29-db15c13687c0

commit 55014a263da5dce5b4014babbda2ff412f6f82d5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 19 20:02:26 2007 +0000

    Hopefully fixing #720 -- I added tests and a lame back-off system to give the child process time to write
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2717 980ebf18-57e1-0310-9a29-db15c13687c0

commit eacb06c2e82e52da033b701e4d7e0e4e2e0df61d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 19 20:01:47 2007 +0000

    Converting mount test to use mount everywhere instead of df
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2716 980ebf18-57e1-0310-9a29-db15c13687c0

commit 501e8c85863de33ec98744510770dbe16ba85135
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 19 19:23:56 2007 +0000

    Adding the ability to specify relationships to classes, using Class[name] resource references.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2715 980ebf18-57e1-0310-9a29-db15c13687c0

commit b9dd7ee7e2bf296a8551942c12d6b69624b4457f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 19 18:12:20 2007 +0000

    The first round of bug-fixes in preparation for beaker
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2714 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5d7c5c9cad2b2a32e0aa7ff619cdae4916dbbf6e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 19 18:11:49 2007 +0000

    Adding documentation to the "test" script
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2713 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4f34fb0617659800638f48b52474ae2e7c32dc00
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 19 16:16:11 2007 +0000

    Removing the chdir from util.rb, I forgot that the directory often matters
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2712 980ebf18-57e1-0310-9a29-db15c13687c0

commit f2a1a103aaaf6b390f8f3b7aeb496545f5048876
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 19 00:52:54 2007 +0000

    Hopefully fixing #640, and maybe some warnings at the same time.  I added a call to Process.setsid after the fork, and I chdir'd to /.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2711 980ebf18-57e1-0310-9a29-db15c13687c0

commit fdd2d4955ba2fda2b446e5de9d55c9bdbbe67131
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 19 00:48:09 2007 +0000

    Fix #696. (patch by Jason Kohles)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2710 980ebf18-57e1-0310-9a29-db15c13687c0

commit 90c8b8c1ba74452e27c08cdcec6edb9988a07a62
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 19 00:14:15 2007 +0000

    Fixing #716 -- the package type was considering anything that was not "absent" to be installed, but that included "purged", thus the problem
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2709 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0316bedca52aab6383ed794439f18bd75e5f611c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 18 23:48:58 2007 +0000

    Applying patch by DavidS to fix #711.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2708 980ebf18-57e1-0310-9a29-db15c13687c0

commit 48755b1e2f939d8c5f04310fa1eb8f7d2a595d36
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 18 20:40:11 2007 +0000

    Fixing #702, hopefully.  As suggested, I switched to "mount" instead of "df" to determine whether an fs is mounted.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2707 980ebf18-57e1-0310-9a29-db15c13687c0

commit f59ce4ee06ac734362a8fced4523b657ed4adef3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 18 19:47:09 2007 +0000

    Fixing #695 -- resource references will correctly serialize and unserialize in the db
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2706 980ebf18-57e1-0310-9a29-db15c13687c0

commit 53a469c0000eb1f487eab456c0986d427d714bd7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 18 17:32:46 2007 +0000

    Fixing #703, mostly.  You still cannot do multi-condition queries, but you can at least query against any parameter, and matching any value is sufficient for a match, so the tags work fine.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2705 980ebf18-57e1-0310-9a29-db15c13687c0

commit d5569bcf30ad40b1780c1550368455127114cdd2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 18 16:41:15 2007 +0000

    Fixing #719 -- the filebucket docs now only mention filebucket, not pbucket
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2704 980ebf18-57e1-0310-9a29-db15c13687c0

commit d9a30a679d48140634935d87d0c5d3218daf917e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 18 16:16:08 2007 +0000

    Trying to get rid of the warning from #724
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2703 980ebf18-57e1-0310-9a29-db15c13687c0

commit e61806566f8fff0bf7ef9b7e8c1d3ddec3dc88f8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 17 14:00:29 2007 +0000

    Applying a slightly modified patch by Dean Wilson -- puppetca now exits with a non-zero code when it cannot find certs to clean.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2702 980ebf18-57e1-0310-9a29-db15c13687c0

commit 49d8ef28083f08d859e86cdb3502806ee017bae5
Author: (no author) <(no author)@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 16 23:43:50 2007 +0000

    Guard the rpm command suitability confine better so we hopefully stop seeing all of the 'Command not available' errors
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2701 980ebf18-57e1-0310-9a29-db15c13687c0

commit f104dc516676bfed79d136bea4d57d8c85ca352f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 14 23:04:19 2007 +0000

    Updating the docs to mention that you can use the file server with no server name
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2699 980ebf18-57e1-0310-9a29-db15c13687c0

commit cf25b25d7aae8a7bfe24745c6da4d35095c8c77d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 14 21:18:36 2007 +0000

    Fixing some logging in cron
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2698 980ebf18-57e1-0310-9a29-db15c13687c0

commit 60ef57815050497110925283299efde2b7aafcd2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 14 21:13:04 2007 +0000

    Fixing the rest of #705, except for the env stuff, which I was not able to reproduce.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2697 980ebf18-57e1-0310-9a29-db15c13687c0

commit 53c2f0a4c93d51eed664761bc652e73ccf078a82
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 14 20:26:31 2007 +0000

    Fixing #691 -- I added "refreshable" features to the types that can restart, although exec does not have providers (yet), so I just made the docs a bit clearer
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2696 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4c1a70c79fda6ff44b016217cb228686f99abf63
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 14 20:20:22 2007 +0000

    Reordering some of the type docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2695 980ebf18-57e1-0310-9a29-db15c13687c0

commit e0237d132ff51160e6ff5093242789d7d7ae1e6c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 14 18:09:26 2007 +0000

    Removing notice about "import loop", which was happening constantly when autoloading module files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2694 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1d261bfd2d804ca2d2270884e0e84910267bc4ed
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 14 17:46:37 2007 +0000

    Fixing error message when a parameter is getting redefined
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2693 980ebf18-57e1-0310-9a29-db15c13687c0

commit 554c23c42a81ab78afb9f40df73f022fab8b7d68
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 13 22:28:15 2007 +0000

    Adding rpm as a specific command to :rug
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2692 980ebf18-57e1-0310-9a29-db15c13687c0

commit 54a5f77ed7038fd5d3ee89b574c1efa76d552d27
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 13 21:48:58 2007 +0000

    Fixing #589
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2691 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2c13d536645d1039404ed68f68f8cfbc55838205
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 13 21:46:43 2007 +0000

    Fixing #468 -- fully qualified resources can now be specified as dependencies
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2690 980ebf18-57e1-0310-9a29-db15c13687c0

commit e88d694715f742c659b9a0fa78770e21d6b899bf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 12 22:43:39 2007 +0000

    Applying patch from #714 -- aptrpm now loads on RHEL
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2689 980ebf18-57e1-0310-9a29-db15c13687c0

commit c3290a02bfe4be5f90d72c987d269e336ba4a4a3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 12 22:01:50 2007 +0000

    Fixing the mailman provider so it correctly matches case.  Apparently mailman helpfully autocapitalizes list names.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2688 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2086e07255e02cc61b0bf2e1de72e62a90a19062
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 12 19:51:57 2007 +0000

    Removing extraneous debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2687 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6ddbec3c7c7196af0d402e8103e0291d2f70471f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 12 19:49:41 2007 +0000

    Fixing the interpreter autoloading so that it correctly loads classes even when being loaded from a namespace
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2686 980ebf18-57e1-0310-9a29-db15c13687c0

commit f217fbf3319b06359ad64b8926970eeddb776169
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 12 17:52:34 2007 +0000

    Fixing the instances method.  It now works when there are already managed resources.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2685 980ebf18-57e1-0310-9a29-db15c13687c0

commit edb1be2d7599c12a3116a17d17d5d87e7e45b4da
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 12 16:39:47 2007 +0000

    Fixing the :check metaparam so it does not try to check unsupported parameters
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2684 980ebf18-57e1-0310-9a29-db15c13687c0

commit f1462cb0d262ccd29b2b5cac5bec4b51e91569e8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 12 16:04:34 2007 +0000

    removing the test for a method I removed yesterday
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2683 980ebf18-57e1-0310-9a29-db15c13687c0

commit e98edac0f3e79ffee1178ca7861e8d2f856c8840
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 12 14:40:02 2007 +0000

    Applying docs patch by David Schmitt from #713
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2682 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7580657eb77f6b41c10d54d19be86d7d90dae194
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 12 14:35:45 2007 +0000

    Applying a version of the diff to the defined() docs from David Schmitt
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2681 980ebf18-57e1-0310-9a29-db15c13687c0

commit a4b94cf12874145004b23119b8367a807702ae56
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 12 04:27:04 2007 +0000

    Fixing the first half of #705 -- matching no longer fails.  I think this also fixes #648.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2680 980ebf18-57e1-0310-9a29-db15c13687c0

commit d104d4b32b34434e42a83078bccaa68890c1b373
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 11 20:23:49 2007 +0000

    Having FileType instances automatically back their contents up to a filebucket, so it is much harder to lose content.  This does not yet back up crontab contents, though.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2679 980ebf18-57e1-0310-9a29-db15c13687c0

commit 17a830d5421a0ae9d84914a4215010bf4b16253f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 11 19:30:42 2007 +0000

    Fixing transactions so that they do not flush resources that are in noop
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2678 980ebf18-57e1-0310-9a29-db15c13687c0

commit f570a5f32a03d8ee1e8dde5c0984b83cdbf7b2ad
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 11 18:35:51 2007 +0000

    Adding a maillist type, with support for mailman.  It is not as flexible as I would like, partially because of how mailman is implemented (the "mailman" command is never in the search path), but at least it is working for mailman on debian.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2677 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2d3c920e0fdef4ca38e14677a4a670f0890ff994
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 10 23:24:34 2007 +0000

    Adding support for a "mailalias" type, with /etc/aliases support initially.  I have not yet figured out how to best rebuild the aliases file when necessary.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2676 980ebf18-57e1-0310-9a29-db15c13687c0

commit fdfe0a387d95045d442b945d54a6b757b9581e2e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 10 19:32:45 2007 +0000

    Adding line/file info to parsing errors in ParsedFile
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2675 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9f685e6da1f58f7011864f832e7a4a362870f93f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 10 19:30:39 2007 +0000

    Adding support in Property for declarating whether a given property type will match all @should values or just the first.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2674 980ebf18-57e1-0310-9a29-db15c13687c0

commit c8801b7886bf18a97cc5b7cf70d37a54867d7978
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 10 19:26:36 2007 +0000

    Always setting a to_s value in authstore, so we do not get dumped objects
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2673 980ebf18-57e1-0310-9a29-db15c13687c0

commit e79828f0cdf3c944eed3f5ca8bf9dd618ee2530e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 10 19:25:59 2007 +0000

    Cleaning up a log message in the transaction
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2672 980ebf18-57e1-0310-9a29-db15c13687c0

commit 20b906001b25b749e2158eca508849426c0caa80
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 10 19:25:32 2007 +0000

    Adding benchmark info to fact retrieval in the config client
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2671 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7a71db875d8833065dbefdaf721f74a65414478c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 10 15:31:19 2007 +0000

    Adding patch by Valentin Vidic to add the "+>" syntax for adding values to parameters
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2670 980ebf18-57e1-0310-9a29-db15c13687c0

commit e662c869bf8b2924c12d4ff6f999f0744779257d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 10 04:17:07 2007 +0000

    Fixing #621 -- plugins are now downloaded directly into the $libdir, and autoload looks for them there.  You can now easily download any reloadable file to your clients.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2669 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7befe1bc5ac9d4524c4c43514a24f1bb19b74727
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 10 04:00:28 2007 +0000

    Changing some of the internals of autoloading so that there is a class-level method to query whether a given file has been loaded.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2668 980ebf18-57e1-0310-9a29-db15c13687c0

commit eabe0d1c31052c1fa3cb67cd8950d964cb137a19
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 9 23:15:01 2007 +0000

    Fixing #710 -- you can now specify the rails_loglevel
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2667 980ebf18-57e1-0310-9a29-db15c13687c0

commit d36d0cf16939851f62bd45d3a79e87f483470eb2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 9 23:11:33 2007 +0000

    Fixing a typo in a log message
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2666 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8807ac2950f1eff5efd5204c180d4cfc56378163
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 9 21:32:33 2007 +0000

    Changing "element" to "resource" in the documentation, which just aligns with a terminology change we made almost a year ago.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2665 980ebf18-57e1-0310-9a29-db15c13687c0

commit f5f894968a60a85ee197e8a6b1b29ffa3762ac2c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 9 20:54:35 2007 +0000

    Changing the log message when a resource type cannot be found
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2664 980ebf18-57e1-0310-9a29-db15c13687c0

commit 773f1876ae7cb64a17b872fb14219daba11dcd48
Author: (no author) <(no author)@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 9 06:00:42 2007 +0000

    Ignore the pkg directory if it exists, and fix up a couple of tests that were erroring out, which also will help the confinement of package types a bit more.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2663 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1bcca319521987f5b7aa94ef16d3b3f0d41bde7f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 9 00:06:13 2007 +0000

    Fixing #687.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2662 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8a7fe9fedfcf67f9415a2ecf7fd74f6032d39d8b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jul 8 23:57:56 2007 +0000

    Applying patch by David Schmitt from #701.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2661 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4080077639321884cc633928915664e6e1391c2e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jul 8 23:52:58 2007 +0000

    The parser now throws an error when a resource reference is created for an unknown type.  Also, resource references look up defined types and translate their type accordingly.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2660 980ebf18-57e1-0310-9a29-db15c13687c0

commit 07f05195da27a9e3124d6b987a808c087dce334b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jul 8 23:02:06 2007 +0000

    Making sure that #686 is fixed -- I specifically included the Daemon module in the Puppet mongrel server, and I call daemonize on the Puppet class, rather than the Mongrel http server
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2659 980ebf18-57e1-0310-9a29-db15c13687c0

commit e8217abac6638d73d742c3ecfb1c9792b3ef0803
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jul 8 22:48:08 2007 +0000

    Hopefully fixing #685 -- I added a wrapper around the call to getconfig(), so any timeouts will just throw an error and skip the run, rather than failing and killing the daemon.  This is not the best approach, since really, each method should be wrapped, but it is sufficient.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2658 980ebf18-57e1-0310-9a29-db15c13687c0

commit 60e5e10ef51f9eed05e7fbeff6866668311de181
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jul 8 17:13:19 2007 +0000

    Applying further tests to double-quoted hostnames by Valentin Vidic
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2657 980ebf18-57e1-0310-9a29-db15c13687c0

commit 266d37d3889d93929f77e825fc288b2b57f1001f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jul 8 16:26:51 2007 +0000

    Applying patch by DavidS from #697 to allow host names to be double quoted
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2656 980ebf18-57e1-0310-9a29-db15c13687c0

commit aa741354a75c0d3b4f4b7f37a736a0154d45234c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 6 22:22:10 2007 +0000

    Fixing #596 -- classes in modules now autoload
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2655 980ebf18-57e1-0310-9a29-db15c13687c0

commit d0680c8ed3f1e0df864c25a3f21e73383095629b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 6 17:47:38 2007 +0000

    Fixing the dpkg querying so that it works for packages that are in "config-files" state rather than just missing entirely.  Also fixing logging so that the package version is visible, instead of a dumped object
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2654 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8b14ef8929bdf612071556e24b42ffa1163ed5b3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 6 00:54:51 2007 +0000

    Fixing logging of module mounts; it was using the module as the name, rather than the module name
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2653 980ebf18-57e1-0310-9a29-db15c13687c0

commit 32e5bff4cfe9c14666af0c5134042df4f50e8184
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 6 00:09:10 2007 +0000

    Removing extraneous debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2652 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3ae3a4ec9f25b590bd84a9a2693cde2e6553a6c2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 5 23:54:26 2007 +0000

    Fixing #689, although I have not added unit tests.  The problem was that a tag name was being removed, rather than the tag object itself.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2651 980ebf18-57e1-0310-9a29-db15c13687c0

commit 19e180f9081faf4661020347d678ac4835b920c1
Author: mccune <mccune@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 5 12:58:23 2007 +0000

    Fixed #680 puppet should handle internet enabled image files correctly.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2650 980ebf18-57e1-0310-9a29-db15c13687c0

commit c22e6670ec4981481fba3ed96ac15ae36c1c5c9c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 4 23:04:21 2007 +0000

    Applying patch by daikinee from #690.  I was not able to reproduce the problems, but it did not seem to hurt anything, either.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2649 980ebf18-57e1-0310-9a29-db15c13687c0

commit 50b8f96f7682d8da83996957aa884044705daf33
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 4 22:52:06 2007 +0000

    Fixing #704 -- Puppet was not failing correctly when schedules were missing, I think
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2648 980ebf18-57e1-0310-9a29-db15c13687c0

commit c762c1960cc278f974c098ede994bb82f63fd893
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 4 22:25:23 2007 +0000

    Removing the long-obsolete Element base class.  The Parameter and Type classes no longer have the same base class.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2647 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0ff7827d4d7f42fe59c10af35266f197e83b2b17
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 4 21:06:26 2007 +0000

    Fixing #620 - class names and node names now throw an error when they conflict
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2646 980ebf18-57e1-0310-9a29-db15c13687c0

commit a627f467f0455281ce7fbe4690b7b408fbe80f82
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 26 22:16:11 2007 +0000

    Adding a reference to the LDAPNodes wiki page in the ldapnodes config item
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2645 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0f4de4fbe63d40e4f01ffc32455289cbbaba9856
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 25 17:17:45 2007 +0000

    Fix trac #684 - set exit code for status properly (patch by abnormaliti)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2644 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6b7d3aa037a995a18a598c1e83e150332bb32e1b
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 21 21:32:32 2007 +0000

    Create the right puppet.conf; make sure old config files get preserved and stay functional
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2643 980ebf18-57e1-0310-9a29-db15c13687c0

commit ac36ddd90220dcec5d3f9d9f0c29cd59c9898420
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 21 21:31:19 2007 +0000

    Fix name of main section
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2642 980ebf18-57e1-0310-9a29-db15c13687c0

commit ec2d469b1317874ca170b12ecb5f4af6fb804796
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 21 18:37:19 2007 +0000

    Rename puppet.conf to puppetd.conf
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2641 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8013e9645a62d5fbd8f57c067e1d655b985f4b1c
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 21 17:40:27 2007 +0000

    Get rid of using silly macros in %install
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2640 980ebf18-57e1-0310-9a29-db15c13687c0

commit dc2a0bff1447be715f8ca749a6140edb224a459a
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 21 17:39:34 2007 +0000

    Use single config file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2639 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3aafa84493dbc1f3764526a16fb1fdac6e1671e9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 20 00:16:41 2007 +0000

    Updating reference docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2637 980ebf18-57e1-0310-9a29-db15c13687c0

commit 55a512c21c8a58689c0651376a9e99980cf4791e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 23:52:34 2007 +0000

    Updating trac location for laeg
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2636 980ebf18-57e1-0310-9a29-db15c13687c0

commit 044968fb5669e61aa9ff0d59ad404945a81ebd41
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 23:44:20 2007 +0000

    Updating build files to support laeg
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2635 980ebf18-57e1-0310-9a29-db15c13687c0

commit ada4355b05a15fa7ec075014600df0991a480072
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 23:12:29 2007 +0000

    Updated to version 0.23.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2633 980ebf18-57e1-0310-9a29-db15c13687c0

commit d8f4c532d1846d2efaeab9ef1dffd37fcf6bb3a9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 23:12:25 2007 +0000

    Updated to version 0.23.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2632 980ebf18-57e1-0310-9a29-db15c13687c0

commit 049faf8795cef4e2415c4cbf0b39046b44680f32
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 23:12:23 2007 +0000

    Updated to version 0.23.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2631 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8844fca2c89a9b751fe655a3b4a6d1b586d4f0b2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 23:11:10 2007 +0000

    Changing the paths to match laeg, instead of culain.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2630 980ebf18-57e1-0310-9a29-db15c13687c0

commit d79a7888d172a0cde12508892364c68ef7b55e5f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 22:18:55 2007 +0000

    Modified the fileserver to cache file information, so that
    each file isn't being read on every connection.  Also,
    added londo's patch from #678 to avoid reading entire files
    into memory.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2629 980ebf18-57e1-0310-9a29-db15c13687c0

commit 944e1f4ad477b2e9fbd5fc10be659cd4d9777b40
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 20:04:52 2007 +0000

    More updates to puppet-test
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2628 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4bb0228a76884fbe54a431154704eb7c12842ed8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 15:43:03 2007 +0000

    Updating puppet-test with clearer options around describe and retrieve
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2627 980ebf18-57e1-0310-9a29-db15c13687c0

commit fd15de73381dba872875f0520ee53a4132a4efb7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 01:58:49 2007 +0000

    Removing extra debugging from the interpreter
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2626 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5043adefd3af23e4fdca4073c2f891ac764e0aae
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 01:51:48 2007 +0000

    Updating error message during test failure.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2625 980ebf18-57e1-0310-9a29-db15c13687c0

commit e5a9e24e839942d97f0b0f6dbd097f91f3c880f4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 01:49:19 2007 +0000

    More test fixes.  I seem to be getting very close.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2624 980ebf18-57e1-0310-9a29-db15c13687c0

commit bd444d84f403f0454533ee19e9da6893c054f3b4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 19 00:27:52 2007 +0000

    Refactoring puppet-test -- it now supports specifying a fork level (so you can get multiple tests running in parallel from one host), and tests are modeled explicitly, so it will be easier to add new tests.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2623 980ebf18-57e1-0310-9a29-db15c13687c0

commit a57e39deba39cc04cefd73c9645437fca03ef8e4
Author: mccune <mccune@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 23:57:28 2007 +0000

    Added documentation for pkgdmg provider in the provider desc accessor as per request in #641  It stil might not be crystal clear, but should be better than the one liner it replaces.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2622 980ebf18-57e1-0310-9a29-db15c13687c0

commit 01420acae6d02a54dcc1f1a823fac2b73e8353dc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 21:56:11 2007 +0000

    Adding tracing to prefetch failures, and Fixing the environment support in the cron type (#669).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2621 980ebf18-57e1-0310-9a29-db15c13687c0

commit fa39488560cac2d71461931ab4174387234137ea
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 21:55:05 2007 +0000

    The other half of fixing the versionable stuff -- removing "latest" as a requirement.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2620 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0b1dbbb870cde50eb39005098ed02979ee217f77
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 21:26:04 2007 +0000

    Applying patch in #572 by trombik
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2619 980ebf18-57e1-0310-9a29-db15c13687c0

commit 611e783594149696073324f4108b2eea72416d58
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 21:18:48 2007 +0000

    Fixing my stupid fix of Matt's work.  I conflated :versionable and :upgradeable.  I have now added back all of the "has_feature :versionable" lines.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2618 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4cb30eb103281887aecbc38ca56a71c508d959d3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 21:07:01 2007 +0000

    Adding fink package provider.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2617 980ebf18-57e1-0310-9a29-db15c13687c0

commit 099bf6c582b8e68263f25c0430fcf3d5ac7b1b7f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 21:03:18 2007 +0000

    Fixing some failing tests.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2616 980ebf18-57e1-0310-9a29-db15c13687c0

commit f96ec6d7ab9d18d2068f388508d811c39973df1e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 20:10:35 2007 +0000

    Updating the has_version work that Matt did -- the only thing he missed was that the :versionable feature depends on the :latest method, and when that is present we can safely assume that a package is versionable.  Also, created the :latest method on the dpkg provider, as requested in #647.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2615 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3f6c41334e3cd78c2323900d70fac519cccb3141
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 19:56:19 2007 +0000

    Applying patch by trombik to fix #628.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2614 980ebf18-57e1-0310-9a29-db15c13687c0

commit eb2326d97d38911eef39601eec44d434ddfa2503
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 19:53:33 2007 +0000

    Applying patch by trombik from #624.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2613 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2d07334c9b4e8bf06af5c4fc046984f26b4167ac
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 19:51:17 2007 +0000

    Modifying the CA server so that it will not send back a cert whose public key does not match the csr.  We have been getting a lot of instances of this, so this should cut down that problem.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2612 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6e16d9feb1468aae964115833a223cd07c37036e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 19:33:15 2007 +0000

    Fixing #578 -- Invalid certs are no longer written to disk.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2611 980ebf18-57e1-0310-9a29-db15c13687c0

commit bf5d5d569457b788cb1db4ed497b94469cc91f0a
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 19:29:56 2007 +0000

    Fix #657: allow puppet URL's with no server; 'puppet' looks those up on hte local modulepath, whereas 'puppetd' goes to the default server
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2610 980ebf18-57e1-0310-9a29-db15c13687c0

commit 52f3f8383a4d58c42c958dfa8716d9c1de617a66
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 18:46:00 2007 +0000

    fixing the appdmg provider to load the package provider base class, and trying to clean up the log-file opening in rails
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2609 980ebf18-57e1-0310-9a29-db15c13687c0

commit 12adea893f437a50a7613b13cd0b9198377e584b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 18:37:40 2007 +0000

    Adding puppetrun as an executable in the gem, along with ralsh (#313).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2608 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2ed10d83d6f3f05165085c3e72f2fc8f5ed0b66f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 18:21:59 2007 +0000

    updating changelog for #641
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2607 980ebf18-57e1-0310-9a29-db15c13687c0

commit bfb38525d5374eed9dc35d2d4328cad49c730e2b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 18:21:19 2007 +0000

    Adding appdmg package provider from #641.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2606 980ebf18-57e1-0310-9a29-db15c13687c0

commit f05464e9760fda340b1cc2fc5d46f0fb09b83821
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 18:13:23 2007 +0000

    Adding the output_file.close, as wyvern recommended
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2605 980ebf18-57e1-0310-9a29-db15c13687c0

commit 30ebbc90d396fa929fa1072dfd157e380c4668b5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 18:09:22 2007 +0000

    Applying the patch by wyvern from #662.  This should hopefully kill the client hanging problems.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2604 980ebf18-57e1-0310-9a29-db15c13687c0

commit ac05442d35c2c76a912baff6b13edd240b1cca21
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 16:26:22 2007 +0000

    Updating rrdgraph documentation with a pointer to the new rrd package.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2603 980ebf18-57e1-0310-9a29-db15c13687c0

commit 029a191dbe895048ef9bb54f7862d6135640fd70
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 15:35:57 2007 +0000

    Reverting the change I just made to the config handler; it was only there for testing.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2602 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2b1d47869170690ad4e3cf1473f9fa19db48101e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 15:32:45 2007 +0000

    Adding puppet-test, which is useful for performance testing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2601 980ebf18-57e1-0310-9a29-db15c13687c0

commit afc35631bc3faab0a7a18e36fce438b320a75226
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 06:42:07 2007 +0000

    Adding patch by Ghislain from #670, with slight modifications.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2600 980ebf18-57e1-0310-9a29-db15c13687c0

commit f6838f5c2c20cdd3f96fdfd192388ae57d1f5672
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 18 06:26:01 2007 +0000

    Fixing #548, and making functions support other rvalues, too, including other functions.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2599 980ebf18-57e1-0310-9a29-db15c13687c0

commit f842cef3eddc375875447dc74158ee9c5317bdf6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jun 17 23:11:14 2007 +0000

    Fixing #643 -- replacing the get_posix_field method with a more degenerate version that works even on broken systems
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2598 980ebf18-57e1-0310-9a29-db15c13687c0

commit 46252b5bb858a1f2b87cc8646f3a59f935c58061
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jun 17 21:41:50 2007 +0000

    All rails and language tests now pass again.  All of the rails tests should now be in the rails/ directory, and I have modified resource translation so that it always converts single-member arrays to singe values, which means the rails collection does not need to worry about it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2597 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6084e1a0efa2165e5cb10fff9ef0b06c1560f9c0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jun 17 01:02:31 2007 +0000

    Fixing #673, but I have not written a test case for it.  I moved all rails-related unit tests into the rails/ dir, because they keep getting missed.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2596 980ebf18-57e1-0310-9a29-db15c13687c0

commit e8c6cd96f58aca188e5944256596987e82d147ea
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jun 17 00:06:46 2007 +0000

    Fixing the yum provider, and fixing the unit tests so the failures people were experiencing will result in failed tests.  This fixes #672.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2595 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4f7c650cf7a0ff89abebbb79a227a2515af02c31
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 15 23:11:43 2007 +0000

    Moving puppetd and puppetmasterd back to bin.  Damn. Reverting the fix to #323.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2594 980ebf18-57e1-0310-9a29-db15c13687c0

commit 23f986c7117cf0ad29266834ff7dc49f01e70b42
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 15 23:07:20 2007 +0000

    Move ralsh and filebucket into /usr/bin
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2593 980ebf18-57e1-0310-9a29-db15c13687c0

commit 659792f280c1ab1baaa69a2b569dc57748411870
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 15 23:01:56 2007 +0000

    Adding ralsh and filebucket to the rpm and the rakefile, and changing the url in the rpm
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2592 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6be8b211465ee617e58b96e1622bbf6b6068beb2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 15 19:49:26 2007 +0000

    Modifying the check metaparam so that it just silently ignores metaparams and parameters, since they're uncheckable, and only tries to check properties
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2591 980ebf18-57e1-0310-9a29-db15c13687c0

commit e039f7bcb86c6117a0724c24f33d50aaa67479b1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 15 19:30:20 2007 +0000

    Fixing the type/title index for mysql
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2590 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9ba878a6038b70da5be891baf4d68dbb393e7be2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 15 15:37:03 2007 +0000

    Removing erroneous debug message
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2589 980ebf18-57e1-0310-9a29-db15c13687c0

commit b5523ff881224bd6f4eafcf9a489bbb6331d05c2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 15 14:05:10 2007 +0000

    Trying to load ruby gems, in case needed libraries are installed that way, and fixing a warning in the provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2588 980ebf18-57e1-0310-9a29-db15c13687c0

commit f84ac7d2705296f1dc0e419b5adfdfb4b008de2f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 15 02:40:20 2007 +0000

    Significantly reworking both external_nodes and ldapnodes support (see changelog).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2587 980ebf18-57e1-0310-9a29-db15c13687c0

commit fc9a7982821d61313e55a7ee77b2c9c4542b5926
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 15 00:43:44 2007 +0000

    Fixing error about non-puppet protos
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2586 980ebf18-57e1-0310-9a29-db15c13687c0

commit 45f76c5d0cb6473faf7dca656b90e299799edf94
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 14 17:41:42 2007 +0000

    Significantly optimizing the database queries -- I am getting about 40% better times now.  See http://www.madstop.com/optimizing_the_activerecord_integration.html.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2585 980ebf18-57e1-0310-9a29-db15c13687c0

commit e32a1bd40e6d706b4e0c5316bf32aec52133f309
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 14 14:23:58 2007 +0000

    adjusting the rrd color stack as requested by thijs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2584 980ebf18-57e1-0310-9a29-db15c13687c0

commit 469d999d257d3cbc3ce54cace9e1820233503a76
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 14 12:26:37 2007 +0000

    Updated the CHANGELOG.
    
    Fixed a bug where the false values of resource paramaeters were being
    deleted nd inserted alternately.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2583 980ebf18-57e1-0310-9a29-db15c13687c0

commit 51b9fc125bee7d1d00923afdd801dc32b37e5b40
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 14 06:23:02 2007 +0000

    Fixing (hopefully) the last two providers that had "resource.is" calls
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2582 980ebf18-57e1-0310-9a29-db15c13687c0

commit 77934f4aab58bf0a54bd0ce0579202496a048541
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 14 06:21:40 2007 +0000

    Fixing sun package provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2581 980ebf18-57e1-0310-9a29-db15c13687c0

commit 270cea83439984563e63d40ed315f25525708126
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 14 06:11:46 2007 +0000

    Fixing #644 -- the install.rb file works again
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2580 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8003320eaa5eb4e4084e3463282e8b1226411ae4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 14 06:07:31 2007 +0000

    Applying metrics patch from #659 by thijs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2579 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4910301a2f077abf4440e3ef044207de3732a631
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 14 05:36:30 2007 +0000

    Fixing a typo in the docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2578 980ebf18-57e1-0310-9a29-db15c13687c0

commit c67e01653b53bdb35b8b136fd7c91a838d906e36
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 14 03:39:23 2007 +0000

    A few small fixes here and there, and the rest of the zones commit
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2577 980ebf18-57e1-0310-9a29-db15c13687c0

commit 399c37bf45dab52606b20454a8d6a766193b02a1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 14 03:39:00 2007 +0000

    Fixing #655 -- Solaris zones are again fully functional, from what I can tell
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2576 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9bc236b6a20f29d8e06b2769c74bd3d12dcd9081
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 14 03:38:19 2007 +0000

    Adding indexes for the rails tables
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2575 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7c53aab1ad228636c13aa558838d2d57234bf97a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 13 23:03:29 2007 +0000

    Removing the indexes migration, since the indexes are now in the main db schema
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2574 980ebf18-57e1-0310-9a29-db15c13687c0

commit ef2698c316562172fc78eee45507acd603a06e70
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 13 22:31:52 2007 +0000

    Updating ralsh with more functionality:  You can now perform work on the command line, with commands like "sudo ralsh file /etc/passwd ensure=absent".  This makes ralsh a bit more interactive.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2573 980ebf18-57e1-0310-9a29-db15c13687c0

commit cb5bccc8bb6099ef7800837486638c1ce547cff3
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 13 20:19:38 2007 +0000

    Added to_s to the values to ensure the check versus the database will be
    consistent and booleans and references will check correctly.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2572 980ebf18-57e1-0310-9a29-db15c13687c0

commit d78a7a523a7128a877bd1fd615d18b7c739ea0a8
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 13 20:01:34 2007 +0000

    documentation fix
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2571 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3a2f3d517ab9e4f7fcb8a154915ae45210b7faa1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 13 16:14:52 2007 +0000

    Fixing mongrel test so it does not try to load the mongrel server class on machines without mongrel
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2570 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6aa5d76cb6ef7b5fe84a15eebf933c5d3679b16e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 13 15:51:18 2007 +0000

    Applying patch from #666 by Rainhead and monachus
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2569 980ebf18-57e1-0310-9a29-db15c13687c0

commit ea190c1ad966ca28b9383b4163205a2637763c02
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 12 20:06:51 2007 +0000

    Changed the host to "eager fetch" all the resources and their associated
    tables.  Also removed some unecessary lines from resource.rb that were
    causng it to re-read information it already loaded from the db.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2568 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3003aad5f6f18bb569dc95857990fb53806e280c
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 12 00:38:03 2007 +0000

    Added the teardown of the database back to the tests.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2567 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4442a31b5635dcb360b29fac447b4ea25e4de879
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 12 00:35:27 2007 +0000

    Revert unintentional change.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2566 980ebf18-57e1-0310-9a29-db15c13687c0

commit 68e37a99d5357f022662f9ba7cc564c48aed21a9
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 12 00:31:16 2007 +0000

    Major rework of the rails feature.  Changed the relationship between
    host and facts (now many-to-many with fact_name through fact_values).
    Also changed the relationship between resource and params (similarly
    many-to-many with param_names through param_values).
    
    Added the resource_tags and puppet_tags.  The latter has the tag names
    and the former is the man-to-many link with resources.
    
    There is a little clean up left but the schema is in order.  Also a test
    for the tags stuff is required.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2565 980ebf18-57e1-0310-9a29-db15c13687c0

commit c26f678178d173bd7360362b2959af51c4d39762
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 11 22:49:06 2007 +0000

    Fixing #550 -- I had to list pass and dump as optional fields.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2564 980ebf18-57e1-0310-9a29-db15c13687c0

commit f0b5090f6578ed997554bcd33493ab88877a2765
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 11 22:30:00 2007 +0000

    Fixing #112 - mounts now default to 0 for dump and pass
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2563 980ebf18-57e1-0310-9a29-db15c13687c0

commit d396fd5262358fde2785b27773562d28f0c59a24
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 11 21:54:37 2007 +0000

    Fixing #637 -- defined resources can now correctly be virtual or exported
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2562 980ebf18-57e1-0310-9a29-db15c13687c0

commit ad9c9ceeec3efb068e9485441c6996825af996e4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 11 21:28:00 2007 +0000

    Removing old line from the fix for #660 -- I had strangely just commented it out, rather than removing it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2561 980ebf18-57e1-0310-9a29-db15c13687c0

commit ffb7ae0d63a42a5b0443a3994ac48b6e9caf97b2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 11 21:13:24 2007 +0000

    Fixing #660 by applying patch by freiheit.  Looks like this is another problem with yaml on 1.8.1.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2560 980ebf18-57e1-0310-9a29-db15c13687c0

commit 79b604d83273ad892d264c64ea03f46d321c7668
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 11 20:48:06 2007 +0000

    Oops; I forgot to add the base class for package providers.  Also, cleaning up the package provider code a touch
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2559 980ebf18-57e1-0310-9a29-db15c13687c0

commit c826be96f30f209895083a74eabf8ee1d329bd28
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 11 18:07:34 2007 +0000

    Adding a simple unit test for mongrel, and adding the ability to select the header used to store the client SSL dn.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2558 980ebf18-57e1-0310-9a29-db15c13687c0

commit b50c85dc0fb24b69255feaed91183cb5fde578a0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 11 17:33:34 2007 +0000

    Fixing error when commands fail -- the error code is now printed, instead of the inspection of it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2557 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3479387598a290eb687cea5decd0a5e1b0ca59b0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 8 18:49:53 2007 +0000

    Adding (slightly modified) urpmi support from #592 by Devin
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2556 980ebf18-57e1-0310-9a29-db15c13687c0

commit 73502a7cac443890792ffd9d3bb4778a90413e61
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 8 17:20:00 2007 +0000

    Finishing off the type/provider interface work, including adding package prefetch for all packages.  The only not-done one is yum -- prefetch is set up for rpm, but not yum.  We need to modify prefetching so that it also prefetches latest information, to avoid having to run yum so many times.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2555 980ebf18-57e1-0310-9a29-db15c13687c0

commit bf82d51737df7509faf4601dbbf15b265bd9da3d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 7 16:17:33 2007 +0000

    Fixing the "Server is not a class" problem with mongrel
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2554 980ebf18-57e1-0310-9a29-db15c13687c0

commit 992636af76a91069ce42099e096deb9febb7d06c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 5 18:12:42 2007 +0000

    Applying patches from Valentin Vidic to fix open file discriptor and open port problems
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2553 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1867d0eba516b45c0db40158075d1a2c13b83f1d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 5 01:17:00 2007 +0000

    Fixing the few test failures that resulted from the changes to provider listing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2552 980ebf18-57e1-0310-9a29-db15c13687c0

commit c35d07b4183be141fa606de665c52740f5cc6510
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 4 20:37:14 2007 +0000

        Significantly reworked the type => provider interface with respect to
        listing existing provider instances.  The class method on both
        class heirarchies has been renamed to 'instances', to start.  Providers
        are now expected to return provider instances, instead of creating
        resources, and the resource's 'instances' method is expected to
        find the matching resource, if any, and set the resource's
        provider appropriately.  This *significantly* reduces the reliance on
        effectively global state (resource references in the resource classes).
        This global state will go away soon.
    
        Along with this change, the 'prefetch' class method on providers now
        accepts the list of resources for prefetching.  This again reduces
        reliance on global state, and makes the execution path much easier
        to follow.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2551 980ebf18-57e1-0310-9a29-db15c13687c0

commit a7b057de317ffc60e50405ea1ebb109ba4003b4f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 4 02:21:04 2007 +0000

    Adding a "source" attribute to providers, so eventually types will be able to avoid duplication during listing by only listing one provider for each source (e.g., dpkg and aptitude should not both be listed).
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2550 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0cfd28ecae07178884c7de6252db36a91ecc9062
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jun 3 19:36:02 2007 +0000

    this is a spurious commit to test the trac site
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2549 980ebf18-57e1-0310-9a29-db15c13687c0

commit e8aef1e4c4e1be4d25c00460c761d575204c1f01
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 1 22:15:32 2007 +0000

    Change pi to list properties instead of states
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2548 980ebf18-57e1-0310-9a29-db15c13687c0

commit f2c524dd17585dbdab15a0c0edebb11912018741
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 1 22:12:28 2007 +0000

    Add protect and priority properties; patch provided by Matt Hyclak
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2547 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0a2b43808b461f585cc890781dd9c3e49ae815e3
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 1 22:05:56 2007 +0000

    Fix trac #601: wrong location for client pidfile
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2546 980ebf18-57e1-0310-9a29-db15c13687c0

commit d467e18bc66b124dc4950cb4442d0d67ed4c573f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 31 22:47:01 2007 +0000

    Fixing #532 -- reparsing config files no longer throws an exception.  The problem only occurred when reparsing a configuration file that was also being managed (which was common) and only whent the manifest was up to date (the combination was uncommon).  Reparsing would find the existing file object and use it to check permissions and such, then it would remove all of the internal data in the object, for cleanup; the problem is, the client still had a reference to the object, so when it went to run its configuration, this broken reference was used.
    
    The solution I chose was to remove all objects from memory after every run.  It is negligible to reload them from the cache, and it saves ram for the 99% of the time that the client is just sitting there.  And it makes this problem go away. :)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2545 980ebf18-57e1-0310-9a29-db15c13687c0

commit e8097a2fc1318829b31b4cb3e4b076db30696ef7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 31 20:31:47 2007 +0000

    Changing --show-available to --showall, as requisted by Jeremy Dreese on the list
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2544 980ebf18-57e1-0310-9a29-db15c13687c0

commit e0fbd41053a5a430b4d4916cfa4a45ec5fcfdf90
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 30 22:29:40 2007 +0000

    Switch the package type to use a :versionable feature, and convert all providers to use the feature.  Hope it doesn't break anything.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2543 980ebf18-57e1-0310-9a29-db15c13687c0

commit 37a221c32e8107ec4f436b6619a87b868449516f
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 30 20:36:29 2007 +0000

    Add a grammatically correct 'has_feature' alias, and switch to using it where appropriate in existing code
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2542 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0a605e8e174ba0ee233703f096b48d09a8e38031
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 30 20:28:13 2007 +0000

    Clean up a really hairy code construct in the useradd provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2541 980ebf18-57e1-0310-9a29-db15c13687c0

commit 58be1fd16f636ea2c4d8ff9f1d8a7d8c735a1505
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 30 18:25:51 2007 +0000

    Fixing up2date name matching, as mentioned by Jeremy Dreese on the list
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2540 980ebf18-57e1-0310-9a29-db15c13687c0

commit 464e68878f9e02a81d9c812eca6b464e2c1ff6f9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 30 14:24:41 2007 +0000

    Changing the resource title to be text instead of a string, because some title are > 255 chars
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2539 980ebf18-57e1-0310-9a29-db15c13687c0

commit 48ec13771d90cbff053f72e8b6c06f2d00278fd9
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 30 10:09:22 2007 +0000

    Mark all package providers that don't currently report themselves as being versionable as not supporting versioning; this way we get a more sensible error message when people try to specify a package version.  See #647 for some discussion.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2538 980ebf18-57e1-0310-9a29-db15c13687c0

commit a9ea3c898f79dcdeefe24630c19147eab5cb0c33
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 25 22:24:49 2007 +0000

    Correct a problem with the dpkg provider's handling of the :purged state, and expand the package type's understanding of what purged actually means.  Fixes #644
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2537 980ebf18-57e1-0310-9a29-db15c13687c0

commit d1458bd64fd89b85c876ff557e331f0f551c8e57
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 25 20:39:39 2007 +0000

    Adding a warning for when no properties are specified on services
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2536 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1883b8fa805adb8ea6c133a8df97eb2a53544837
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 25 19:22:47 2007 +0000

    Adding a debug statement describing why restarts are skipped on services
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2535 980ebf18-57e1-0310-9a29-db15c13687c0

commit ca255b932127c59158d42f8af1c0ae5f3d42bc3b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 25 04:49:01 2007 +0000

    fixing the method to check for hostdir writability in the rrdgraph report
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2534 980ebf18-57e1-0310-9a29-db15c13687c0

commit ac686e8cf1b1b87c3e749c09d966467a8aaa589a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 25 04:07:52 2007 +0000

    Changing the location of the classes.txt to the state dir
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2533 980ebf18-57e1-0310-9a29-db15c13687c0

commit 25d5ebd4f5b37d18153942f634f8a3e69daf4288
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 25 02:10:17 2007 +0000

    Adding more detail to the per-host reports dirs, since it was not setting mode or ownership.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2532 980ebf18-57e1-0310-9a29-db15c13687c0

commit 62a4d4c91df2aa6e7a6f28dfdf81f95f28987216
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 25 00:31:28 2007 +0000

    Adding better error reporting on unmatched brackets -- you will now get notification of what was expected in most cases
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2531 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2b372df7038a268eee31372f62e8cf6be989b09e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 24 19:17:23 2007 +0000

    Updating the exec docs to specify that the timeout is in seconds
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2530 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4aef0ba7cfda4b2dc53bc8e379694d9735b401a4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun May 20 16:35:14 2007 +0000

    Fixing #323 -- puppetd and puppetmasterd are now in sbin; packages still need to be fixed
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2529 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6f83d4daab56385df9a1625cf8ffc64b6a8958f7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 18 23:45:30 2007 +0000

    Fixing #501 -- there is now a splay option, disabled by default and when running under --test
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2528 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7d1f7606c38ad7b32651e8bc98e2258feda99294
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 18 23:27:07 2007 +0000

    Adding the execute bit to install.rb and fixing #473 -- there was a /win/ regex that matched darwin but was just supposed to match windows
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2527 980ebf18-57e1-0310-9a29-db15c13687c0

commit 611f88a94ea4d91d8f8ddc95e4e54911ad29c0ca
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 18 17:51:49 2007 +0000

    fixing a documentation bug
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2526 980ebf18-57e1-0310-9a29-db15c13687c0

commit df6f41a01d00f4357245a6833129328df9165242
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 18 03:34:37 2007 +0000

    Changing the notify type so that it always uses the loglevel for logging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2525 980ebf18-57e1-0310-9a29-db15c13687c0

commit ef1a4afc187026db1840073eb4bb4d587e4aa86f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 17 22:08:54 2007 +0000

    Fixing #568
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2524 980ebf18-57e1-0310-9a29-db15c13687c0

commit e8d560ea8242d99f5be51f9385c5045f46ee7015
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 17 21:51:36 2007 +0000

    Fixing #566 -- definitions, tags, and classes can now be single characters
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2523 980ebf18-57e1-0310-9a29-db15c13687c0

commit eed85f41ffc31649032114b7aa89a541d239a257
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 17 21:43:51 2007 +0000

    Adding #629 -- an undef keyword now exists
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2522 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8410c4dc5bfbb450ea740be42e0f0d712bf86e7a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 17 20:57:24 2007 +0000

    Fixing #507 (behaviour in cycles) by changing the topsort algorithm.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2521 980ebf18-57e1-0310-9a29-db15c13687c0

commit 67ee2510834e576b20a82a0692fab2b2332a85c1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 16 16:46:03 2007 +0000

    Using the method for retrieving the dipper class, in case it has not been loaded
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2520 980ebf18-57e1-0310-9a29-db15c13687c0

commit e3b7a5435973e9a28e26a686cac6bbb9cba44545
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 16 16:35:55 2007 +0000

    Making sure there is an editor set for ralsh
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2519 980ebf18-57e1-0310-9a29-db15c13687c0

commit e95734b8bbe570381f4da078b3977a905fe6e031
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 16 00:00:47 2007 +0000

    Redoing autoload a bit in preparation for adding a plugindir
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2518 980ebf18-57e1-0310-9a29-db15c13687c0

commit dbedcd7b9892bc41728a4f334464f152d09d54fc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 15 19:22:36 2007 +0000

    A round of fixes so unit tests pass; most of the failures were from the merging of the transaction-refactor branch
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2517 980ebf18-57e1-0310-9a29-db15c13687c0

commit 28f7d6c7ebd56da3014464c82c73a4f98f3406ea
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 15 00:11:01 2007 +0000

    Fixing #569 - I have added a dynamic facts option to choose which facts will be ignored.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2516 980ebf18-57e1-0310-9a29-db15c13687c0

commit d9f6f418639fb50297a9a0b5415ea57b5f2f303e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 14 18:15:03 2007 +0000

    Fixing the "is" related problems in yum and rpm support, but there are still some package providers that use the "is" method (grep for "\.is[^_a-zA-Z]" in the package providers), and the util/posix.rb module has a call to obj.is.  I will fix those soon.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2515 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1934f2baa3a70511e5b91b46b888ade6ab664563
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 14 18:12:40 2007 +0000

    Removing obsolete parsedtype
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2514 980ebf18-57e1-0310-9a29-db15c13687c0

commit 61784ed61e90cf4cdbae54d7b90799edb120a893
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 14 17:27:56 2007 +0000

    Attempting to fix the fact that the yum package provider calls [] on the ensure property, and making the resulting error more readable
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2513 980ebf18-57e1-0310-9a29-db15c13687c0

commit 85fef63889ca60329493583988affe67b59d143d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 14 16:04:12 2007 +0000

    fixing some problems with the config timeout -- I am not sure it ever actually worked
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2512 980ebf18-57e1-0310-9a29-db15c13687c0

commit 27cabf25fc08ee77df08ec65a440f9d164b9215d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 14 15:19:48 2007 +0000

    Fixing a weird bug that occurred because I was changing @parentclass in the AST stuff the first time it was called, from a string to a the actual instance of the parent.  This worked fine as long as the parentclass was only called when parsing was complete, such as during evaluation, but if anything resulted in it being called earlier (e.g., attempting to add to the class during parsing), then things behaved, um, badly.   This commit fixes the method so that the variable is not modified; there is now @parentclass and @parentobj.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2511 980ebf18-57e1-0310-9a29-db15c13687c0

commit 613c413cd84a690f1fb0cb625380e430bc502c84
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 14 15:15:21 2007 +0000

    Fixing a path problem that resulted from the changes I made to internal variable names -- the pathbuilder method in file referred to @resource instead of @parent
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2510 980ebf18-57e1-0310-9a29-db15c13687c0

commit aed12c36514738e6ec3916e4fc849ef32ed2e716
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat May 12 01:59:08 2007 +0000

    Use @http in store, add filterhost
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2509 980ebf18-57e1-0310-9a29-db15c13687c0

commit 19af1cb35b3d6c1e8d6a986ba5712ca26ac3e907
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat May 12 01:40:47 2007 +0000

    First try at the REST config_store
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2508 980ebf18-57e1-0310-9a29-db15c13687c0

commit 12e565614183a34fff0832a78833f3a6626e2727
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat May 12 00:25:25 2007 +0000

    Initial configuration storage abstraction layer stuff.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2507 980ebf18-57e1-0310-9a29-db15c13687c0

commit 426330c92f0d7706fe9ebde04b19afbfd6d66fbb
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 11 15:11:21 2007 +0000

    Updated the CHANGELOG with changes for retrieve and acts_as_taggable.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2506 980ebf18-57e1-0310-9a29-db15c13687c0

commit 24b11b59829fe773ec49db03bbf8b7ddcc0ef182
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 11 15:07:08 2007 +0000

    Removed acts_as_taggable from the rails stuff.  I haven't removed the tables from the schema nor the indexes yet.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2505 980ebf18-57e1-0310-9a29-db15c13687c0

commit ca2b9e64e76d43380a5e03a87599de1d791a48ce
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 10 22:10:48 2007 +0000

    Not parsing old versions of puppet.conf -- otherwise, puppet parses the whole configuration.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2504 980ebf18-57e1-0310-9a29-db15c13687c0

commit eca5510b293ec83169aae10518c11660886286d1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 10 21:46:59 2007 +0000

    Fixing the to_trans method and ralsh a bit so ralsh now works with the new lack of "is" method
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2503 980ebf18-57e1-0310-9a29-db15c13687c0

commit 55666a515ace73680eaacc7f496fd89305c47f89
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 10 21:27:40 2007 +0000

    correcting some of the function reference docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2502 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1d23013abf9e8db5aa405c87ac6657df3f050926
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 23:08:42 2007 +0000

    Fixing #605 -- providers now refer to @resource or @resource_type.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2501 980ebf18-57e1-0310-9a29-db15c13687c0

commit de212261e75883036f74e241a548d31340440df9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 22:05:32 2007 +0000

    Fixing #607 -- parameters and properties now refer to a @resource rather than a @parent.  The @parent parameter is still set for now, for backward compatibility.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2500 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3e7d44e6288bcb67f29e57a9ff886532ce64878b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 21:30:44 2007 +0000

    Fixing #606 -- now only components mention @children.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2499 980ebf18-57e1-0310-9a29-db15c13687c0

commit 13c7f2f155b23bfb31ce4388a4109385f0c40293
Author: mccune <mccune@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 18:57:15 2007 +0000

    Allow Darwin to remount rather than unmount / mount, as per puppet-users discussion "mount type and ensure => present on OS X" (Message-Id: <C44C8E86-DF31-4344-9B74-937325A03F5F@madstop.com>)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2498 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7f8a9036f1f4aaa19461507bc9bfae9626fade59
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 16:21:56 2007 +0000

    Getting rid of the last vestiges of the logger tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2497 980ebf18-57e1-0310-9a29-db15c13687c0

commit bfc0c358415adaf34312cc7619285b3868cc0c85
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 16:13:40 2007 +0000

    The TODO file has never really meant anything, and it hasn't been modified in 2.5 years
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2496 980ebf18-57e1-0310-9a29-db15c13687c0

commit cdd0dd3aaed16fe2bf3a736f66ad3934d35373e5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 15:26:45 2007 +0000

    Adding default provider info to the providers report
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2495 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2fa529ecb6422f809b38ff5d12ecd3023ebcb90f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 14:43:06 2007 +0000

    Fixing the ability to fail correctly in the fileserver -- a constant was not defined correctly for it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2494 980ebf18-57e1-0310-9a29-db15c13687c0

commit fbfaa0f8b54f9da09796150b7d6cd1856aabe204
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 12:34:47 2007 +0000

    Removed FIXARB's from the pfile stuff.  These have been resolved.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2493 980ebf18-57e1-0310-9a29-db15c13687c0

commit 93cbe77e6de17883e70856fbd44cde8419cde8d5
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 12:33:22 2007 +0000

    Removed FIXARB's from a file that will be going away.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2492 980ebf18-57e1-0310-9a29-db15c13687c0

commit a9666065a2ddcb7b0396d6aa16c3fba05a7204c0
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 12:32:38 2007 +0000

    Removed override of change_to_s since it is the same as the overridden method in EnsureProperty.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2491 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8bad07483d2f7f15162ccc93092412ac7a0ac499
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 12:32:17 2007 +0000

    Removed override of change_to_s since it is the same as the overridden method in EnsureProperty.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2490 980ebf18-57e1-0310-9a29-db15c13687c0

commit b0374d8059a4e54e38d59ba169819de7b2547063
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 12:31:10 2007 +0000

    Removed calls to is.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2489 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5b44159c1a7e0cfa2cb1afcd32b387ac8deeb8a9
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 12:30:03 2007 +0000

    Removed the testing method: checknewinsync.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2488 980ebf18-57e1-0310-9a29-db15c13687c0

commit c1643600e1130e2ddd112abcf16bb040fbffe0bf
Author: ballman <ballman@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 9 01:51:20 2007 +0000

    Merging of refactor-transacton to the trunk.  This work removes the :is attribute from properties and relies on the provider to cache or return the current value of the property.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2487 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f187461a357898395ded25fb0c29a0d90a76896
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 8 20:42:24 2007 +0000

    Hopefully final version of the providers reference
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2486 980ebf18-57e1-0310-9a29-db15c13687c0

commit c99e99d7e11395ca53fadf043c315faf0eb06518
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 8 19:29:38 2007 +0000

    Intermediate commit of more reference work, including making provider suitable more introspectable.  I am about to significantly change the output format of the providers reference, so i want to get this committed before that change.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2485 980ebf18-57e1-0310-9a29-db15c13687c0

commit 73df97386426a830798efeb71c771090f88ba601
Author: josb <josb@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 8 16:25:18 2007 +0000

    The result of .compact.join("\n") isn't assigned to anything. Fix.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2484 980ebf18-57e1-0310-9a29-db15c13687c0

commit 568db0b490c778ca20c6deb6fe4a3eeab71226b8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 8 16:13:18 2007 +0000

    Fixing configprint so it fails correctly when an invalid parameter is provided, rather than throwing a stack trace
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2483 980ebf18-57e1-0310-9a29-db15c13687c0

commit 40b383469aa05cf46f167f56c81b6bc99eecf606
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 8 04:38:32 2007 +0000

    Sorting the network handlers in the network reference
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2482 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7835d2927ef360216612f1a782e88a6606a79d6b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 7 23:59:44 2007 +0000

    Adding a dynamic? option for references, so those are not stored in trac
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2480 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1decfa31a588bc46249c89680c80f74e14183ab1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 7 22:29:44 2007 +0000

    Lots of work related to generating more reference.  Moving all of the individual references out of puppetdoc and into an external "reference" class, which itself can autoload, so it is now easy to add new types of references.  Also adding a network reference, along with an unfinished provider reference.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2479 980ebf18-57e1-0310-9a29-db15c13687c0

commit 69cb72120ced589b81038f685f9765ceb353e062
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 7 22:25:33 2007 +0000

    Removing the obsolete logger network interface
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2478 980ebf18-57e1-0310-9a29-db15c13687c0

commit a040bd48b1e36e9e6e363896fe98e093b3b19bd0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 7 20:07:13 2007 +0000

    First run at moving references to lib/puppet instead of puppetdoc
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2477 980ebf18-57e1-0310-9a29-db15c13687c0

commit f42a755cc2e4bc77880dec9571ccd11f33f2737f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 7 18:59:40 2007 +0000

    Adding a module to abstract using Autoload to load and manage instances
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2476 980ebf18-57e1-0310-9a29-db15c13687c0

commit 53f16125761400df4fb1b99159c6b3bab8f5f397
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun May 6 05:51:12 2007 +0000

    Fixing the time-cleaning in the rrdgraph report
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2465 980ebf18-57e1-0310-9a29-db15c13687c0

commit 494675b1dbf2f7141c201d203b197e03a30b72e3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun May 6 05:42:53 2007 +0000

    Fixing #206 and #422.  Executables will still look for the deprecated config files and load them using the old parse method, but they now prefer a single configuration file, and files can set parameters (owner, mode, group) in brackets on the same line.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2464 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1f8de9d0c211ac5641f5ad827a0f478fff6bd223
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 4 23:09:34 2007 +0000

    Consolidating all of the configuration parameter declarations into configuration, at least partially just because then the docs for each parameter have to be a bit better.  Also, I have gotten rid of the "puppet" section, replacing it with "main", and changed, added, or removed a couple of other sections.  In general, we should now prefer more sections, rather than fewer.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2463 980ebf18-57e1-0310-9a29-db15c13687c0

commit f783859c6fb9dd7eb79a6775b3fb58441b4a8b9c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 4 17:38:19 2007 +0000

    Correcting function reference markup
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2462 980ebf18-57e1-0310-9a29-db15c13687c0

commit e864eabba37e0c1f81a5afcf099c0cd3ec54467c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 4 05:48:39 2007 +0000

    Applying patch to puppetrun docs from JosB
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2461 980ebf18-57e1-0310-9a29-db15c13687c0

commit e1438a553e275f70ba52f97180767a9fd11c1683
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 4 05:06:02 2007 +0000

    adding --summarize option to the changelog
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2460 980ebf18-57e1-0310-9a29-db15c13687c0

commit 28254b55cc65d572e9036046d7765c6dd7505e70
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 4 05:04:29 2007 +0000

    Adding a --summarize option, to get a transaction summary
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2459 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0c07125397428a0c1ca9a4a4d0176f45d8be0979
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 3 20:45:25 2007 +0000

    Fixing #615 (subclasses with similar names) by getting rid of the class "type" and "fqname", and instead using "classname" everywhere.  You should no longer see unqualified class/definition names anywhere.  Also, rewriting how snippet tests work, to avoid creating all of the files, since the point was the parsing tests, not functional tests.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2458 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8d7ec14836809f1433e645c3069691d2f6c70e52
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 3 05:24:13 2007 +0000

    Adding a fact handler, along with an abstract interface for fact stores and a simple yaml fact store, towards the Node Classification work.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2457 980ebf18-57e1-0310-9a29-db15c13687c0

commit 79dcd33aebf8749719e9eff009b8bb3fdaf77751
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 3 04:38:51 2007 +0000

    Set LANG/LC_ALL/LC_MESSAGES/LANGUAGE to 'C' whenever we execute things, so that the output that comes back is more easily parsed, without needing to understand all sorts of foreign languages
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2456 980ebf18-57e1-0310-9a29-db15c13687c0

commit a1d4f3567d976b087a2986b202f0f457b8da5d0e
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 3 01:00:26 2007 +0000

    Update to latest shipped for Fedora/RHEL
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2455 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4022968bba3c6c3f8664f4d30f8b8c073c646d8e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 3 00:41:34 2007 +0000

    Committing all the work that josb did, plus a couple of small changes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2454 980ebf18-57e1-0310-9a29-db15c13687c0

commit bf3767625a6f5243381aaef57eb4637eeeb4e9df
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 2 18:15:28 2007 +0000

    Applying patch to puppetd from Jos Backus
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2453 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8d11bb8a8dc6a6dff4f88e2a07f8ed14c5d3fc6d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 1 22:44:06 2007 +0000

    Fixing class name for Handler in puppetd
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2452 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1ccdff5505b5d32b6d3b67219101fe4ba97c9d4c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 1 22:20:17 2007 +0000

    Adding --serve back in as an option to puppetd, and failing when a handler is specified but missing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2451 980ebf18-57e1-0310-9a29-db15c13687c0

commit fb4f04da2cb287a270090551084c4cf2e715c3dd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 1 04:00:46 2007 +0000

    updating changelog with version number
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2450 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0f02a54e9436624f5d8c7263e46fca2e4728b1b6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 1 03:52:40 2007 +0000

    Updated to version 0.22.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2448 980ebf18-57e1-0310-9a29-db15c13687c0

commit e04999951c388c83d35462bf42f770c9af8c7d35
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 1 03:52:35 2007 +0000

    Updated to version 0.22.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2447 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4f2b90308b5e5032a81d2158aa2d02257ab0c63a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 1 03:52:33 2007 +0000

    Updated to version 0.22.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2446 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3e895b54616fe1df50e5b0e944a96352a0846aac
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 1 03:45:09 2007 +0000

    Changing the remount stuff back to not repeating the mount options.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2445 980ebf18-57e1-0310-9a29-db15c13687c0

commit 64382700d8bb42d281cea47078c53dce33e0c2cb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 1 03:14:09 2007 +0000

    Adding a "supports_parameter?" method to test whether a given provider supports the features required by a given parameter.  This is used during attribute instance creation, but its creation was necessicated by test code.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2444 980ebf18-57e1-0310-9a29-db15c13687c0

commit c9de332e8ab75f234d79e2dc8a3fcd2949a1f224
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 21:08:06 2007 +0000

    Fixing the fileserver naming tests after the change to allow "-" in fileserver module names.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2443 980ebf18-57e1-0310-9a29-db15c13687c0

commit 80ec4943a9db1272fb405a459a763f8b8a6abd52
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 19:42:58 2007 +0000

    Fixing #430 (I hope) -- execs now autorequire the specified user
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2442 980ebf18-57e1-0310-9a29-db15c13687c0

commit 483c25e04314f66e48290c9e3141000872b23145
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 19:41:18 2007 +0000

    Switching the simpler features to a single file, so it is easier to add new features
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2441 980ebf18-57e1-0310-9a29-db15c13687c0

commit c369c6a81141c2b32a08112155cc85d2f3b67f3f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 19:29:15 2007 +0000

    Fixing cron to correctly match blank lines, fixing #602
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2440 980ebf18-57e1-0310-9a29-db15c13687c0

commit f69dcdab8e23017edcec0ffc9a6bcee6bf7fd608
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 19:21:59 2007 +0000

    Working a little bit on rails failures, with no real progress
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2439 980ebf18-57e1-0310-9a29-db15c13687c0

commit e05392e26491b71e83620f4310773a78ac3b6177
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 18:15:01 2007 +0000

    Fixing a bug in the tests introduced a while back when I switched to using "generate_report"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2438 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7fb7146aeed37af556ac5acf9e23a00c96267e4c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 17:30:35 2007 +0000

    Updating the changelog for #594
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2437 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3aafd81fa48d46737f1fe126bb3ff0d99520a180
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 17:29:02 2007 +0000

    Fixing #594 -- Files on the local machine but not remote machine now purge.  Note that this introduces a difference in behaviour between recursing locally and recursing remotely.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2436 980ebf18-57e1-0310-9a29-db15c13687c0

commit c2bc8481eb2507c2127f5c67f698f85a222acb4a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 16:19:37 2007 +0000

    Adding purge => true to downloading of facts and plugins, and removing some extraneous logging from the provider base class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2435 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7e971436c9967c5bfe95a418911db41f4e937696
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 15:57:57 2007 +0000

    Allowing "-" in fileserver module names, #617
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2434 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4dbcc5d2dafde3e4388937ab9b81174e2758bbe7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 15:43:50 2007 +0000

    Changing the resource handler to return the whole object, rather than just type and title
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2433 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8b60d206cc8cb83931929b97008890fcb3998bca
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 15:38:06 2007 +0000

    Not stripping domain info from the ldap node, as requested
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2432 980ebf18-57e1-0310-9a29-db15c13687c0

commit 63e907c0555499e6a695944c1c4fc5b9d6bd17f0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 15:28:37 2007 +0000

    Switching the mount command to always add the mount options, so that the parsed provider can be used even in cases where /etc/fstab is ignored, like it is on OS X.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2431 980ebf18-57e1-0310-9a29-db15c13687c0

commit dad93738dda74a1ba6f2fab09661eed7540a9417
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 15:19:23 2007 +0000

    Fixing the tests for the aptrpm provider.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2430 980ebf18-57e1-0310-9a29-db15c13687c0

commit 89ac6d7e7ad5259749ad06765ae537849bbd290c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 30 14:40:34 2007 +0000

    Adding "rug" package provider from #609
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2429 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4296e4e3e3b83cfdba20ba7ccde67c5454b28eaa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Apr 28 01:18:23 2007 +0000

    I managed to put those provider tests in the wrong file -- the file meant to test the resource type interactions with providers, rather than the provider file.  Fixing that, and the failed test resulting from that silly mistake.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2428 980ebf18-57e1-0310-9a29-db15c13687c0

commit 21eab22997732b98850320906e514b50f6b6fe97
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 27 23:25:59 2007 +0000

    Okay, one last try -- the Util#binary command was not returning a path in all true cases, and the provider tests were poorly written and missed it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2427 980ebf18-57e1-0310-9a29-db15c13687c0

commit 94bd3b28284f92583d6c49165d0dff1560e888ff
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 27 23:20:25 2007 +0000

    Apparently I messed up providers a bit; binaries were not having their full paths returned, which made most providers suddenly unsuitable.  This fixes that, and adds tests to verify behaviour.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2426 980ebf18-57e1-0310-9a29-db15c13687c0

commit 96eed993c3079cb5aa785a8f10b0d8f317e00193
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 27 18:41:03 2007 +0000

    Closing #585 -- providers can now have optional commands, which only differ from normal commands in that they do not affect a provider's suitability
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2425 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0a46bb2c490a4a58a231f1557ed975d40dff9183
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 26 19:09:24 2007 +0000

    Fixing #603 -- I had to add a special case for escaped carriage returns.  I am not entirely sure this is the right solution, but so be it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2418 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9a1a88ce82618de01c368cc9f8e34cb33d5f5ad2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 26 18:58:07 2007 +0000

    Fixing #574; puppetmasterd now exits with non-zero error code when there is a failure
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2417 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3169bfa0eba2d0abf2342a16383243d1ba402fc8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 26 18:56:19 2007 +0000

    Adding extra info to the "Parameter already set" error, as requested in #573
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2416 980ebf18-57e1-0310-9a29-db15c13687c0

commit 86c206b1dc51936aadfc1140a97759b5194b629b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 25 21:44:22 2007 +0000

    Possibly adding the ability to manage passwords on os x.  I expect it does not work, since there is probably no way to set up an encrypted password, but at least it now creates a user that can not log in by default.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2415 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0aeda974813104c0f0e940f75c4d19888515f7fc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 25 20:59:00 2007 +0000

    Adding the ability to manage passwords with the useradd provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2414 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7fbd3ffe886e821a4e85e2fe9a27529133f1b84b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 25 20:04:59 2007 +0000

    Adding the ability for parameters to declare that they require a given feature, and resources will not instantiate that parameter if required features are missing.  This is mostly useful for properties.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2413 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4aaae628342debf5f964f4913a3392b641a49f20
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 24 20:47:08 2007 +0000

    Adding a note to the references indicating that they are autogenerated.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2412 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0681cfa481964cbe4362bc9b78f58bb283535ed3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 24 18:59:20 2007 +0000

    Refactoring puppetdoc so it is a bit cleaner and is actually object-oriented.  PDF output still fails miserably (there has to be some kind of markup problem, but I have no idea what), but other output now successfully varies on the pages.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2411 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0ff37720f9af4ffbb34f63ab90d4901d4ddb9508
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 24 06:39:22 2007 +0000

    Last modifications to rst conversion before bedtime
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2410 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1d036bb020b857b048cffe90346ddbbb73c2f59d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 24 06:20:21 2007 +0000

    All conversions to RST are done, but I did not quite succeed at making puppetdoc able to generate a single PDF with all of the references in them.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2409 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9526e536fd66828b4f7f3e9fb59177d30e24e2b0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 24 02:41:16 2007 +0000

    Mostly done with the conversion to restructured text, but there are still some tweaks to perform on the typedocs output.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2408 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8d3673d5df4f09909f092c5cb42ef8870762db1a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 23 18:01:36 2007 +0000

    Adding a :block_eval option to FileRecords in FileParsing, so ParsedFile providers can have records just define a bunch of methods at once, rather than using lots of hooks.  This is cleaner when custom parse and generate methods are used.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2407 980ebf18-57e1-0310-9a29-db15c13687c0

commit a478ed2b5beadd1124c375ced21a9343dc6c591a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 23 06:16:10 2007 +0000

    Translating all of the docs except the type docs to RST
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2406 980ebf18-57e1-0310-9a29-db15c13687c0

commit 70ec0cc1d90aad151141e8139a0d17213e49346b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 23 03:30:41 2007 +0000

    Removing the naming restrictions on cron names
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2405 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5afa587dfe152e29dba480305be8042fa9fb3f0a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 20 16:40:47 2007 +0000

    Fixing #588 - the parser correctly ignores directories in globbing now
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2404 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3c5ba06db8c8ae79d52e7d1af13df5aaec5dc46f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 20 16:29:28 2007 +0000

    Fixing #587 -- just defaulting to root when there is no USER set in the environment.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2403 980ebf18-57e1-0310-9a29-db15c13687c0

commit e1b04448be2af1865722dda2b22e4e0f95c31074
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 20 15:59:57 2007 +0000

    Fixing #591 -- puppetd now correctly restarts itself when it receives a HUP
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2402 980ebf18-57e1-0310-9a29-db15c13687c0

commit 37ffb636f1cdc108097fa65723140ee9de8b12dc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 20 15:59:09 2007 +0000

    Removing the stubs for nodevar; I did not mean to commit them
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2401 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7cc3a2f11463d241e4c62687c0418a98a6fa6a81
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 20 14:33:50 2007 +0000

    adding note about the class variables in the change log
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2400 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5436f96b054f6bd3706e147becf0f30552d5fde4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 20 02:22:02 2007 +0000

    Enhancing the docs a bit for the apple package provider.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2399 980ebf18-57e1-0310-9a29-db15c13687c0

commit 775c72b74e603215c4db8b9f8aa2277bf2d05e79
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 19 19:54:37 2007 +0000

    Adding support for aptrpm from #227 as added by Ian Burrell, the rest of the commit
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2398 980ebf18-57e1-0310-9a29-db15c13687c0

commit be68411ac59bca3cd57463c7cf530b76093a6769
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 19 19:54:20 2007 +0000

    Adding support for aptrpm from #227 as added by Ian Burrell
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2397 980ebf18-57e1-0310-9a29-db15c13687c0

commit f1f4c42ee7900ef2bdf80846cfd3a8bd65e13b4a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 19 19:48:51 2007 +0000

    Adding patch by apowers from #545.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2396 980ebf18-57e1-0310-9a29-db15c13687c0

commit df0cd95253f0573f527ab6bb7f2dd3fb9bebb445
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 19 19:47:25 2007 +0000

    Adding init script by apowerrs from #546.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2395 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9828b257a811775eaa0597009a471426578cee83
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 19 19:12:30 2007 +0000

    Fixing fileserver doc links
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2394 980ebf18-57e1-0310-9a29-db15c13687c0

commit f8a0e99380a9a57e67363b33fb5ad54619244257
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 19 18:34:03 2007 +0000

    Adding the functionality requested in http://mail.madstop.com/pipermail/puppet-users/2007-April/002398.html .
    You can now retrieve qualified variables by specifying the full class path.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2393 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9946249255a69431349185807f4291745b15ca7f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 18 21:15:23 2007 +0000

    Only caching the configuration when it has been successfully turned into Puppet objects
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2392 980ebf18-57e1-0310-9a29-db15c13687c0

commit b6d0d27a86cfc8aab5b2b4d5239d005f78f14029
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 17 18:54:52 2007 +0000

    Adding a --version argument to puppetca
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2391 980ebf18-57e1-0310-9a29-db15c13687c0

commit da4d252b3d7b8d819a671f98f97047b324106562
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 6 15:49:38 2007 +0000

    Changing the test package for debian
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2390 980ebf18-57e1-0310-9a29-db15c13687c0

commit b8b14d35276e97c39992b6bf619d4e8135f78294
Author: mccune <mccune@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 4 21:35:00 2007 +0000

    Forgot to change Puppet::Util::SUIDManager#run_and_capture arguments to execute
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2387 980ebf18-57e1-0310-9a29-db15c13687c0

commit efe9a833c43358e23ae252456a07b37cc9904a0a
Author: mccune <mccune@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 3 15:51:18 2007 +0000

    Fix for #565: Final merge of changes from source:branches/execute-refactor into source:trunk
    Generated with
    svn merge -r 2378:HEAD https://reductivelabs.com/svn/puppet/branches/execute-refactor trunk
    
    CHANGES:
     - Puppet::Util#execute now takes hash key/value pairs as arguments after the command array.
     - Processes executed from the base service provider are now silenced.  That is, their
       standard input, output, and error pipes are all directed to /dev/null.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2385 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8ab272265d30ea01322943c688e815ad772a571a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 31 06:35:23 2007 +0000

    Hah!  Finally fixing the problem where mount tests would fail when run as part of the whole suite.  The real problem was that I was changing the filetype of the provider without setting it to change back after the test, but the key change that made it straightforward to fix this problem was that my test loader was not exiting with a non-zero code when there was a failure, which mean that the ./test script never thought anything failed.  I fixed the former, then fixed the test script to work fine with -n method_name stuff, and quickly found the problem.  *whew*
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2377 980ebf18-57e1-0310-9a29-db15c13687c0

commit f9d89b50139e7688e22525b26cd479f164927788
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 30 23:45:48 2007 +0000

    Changing the date that certs are valid to start one day before the cert is created, so clocks that are off by a little bit can still be used.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2376 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4615e3a70cf53ba62a00d5d8f01a6d0ec9dffc26
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 30 23:17:40 2007 +0000

    Fixing Client.read_cert so that it automatically adds the certificate information to the driver when the certificate is correctly read.  This makes sure the Net::Http instance has the cert all set up.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2375 980ebf18-57e1-0310-9a29-db15c13687c0

commit ca5d0682705a3b5ee175e25b6cb5fca939a85443
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 30 15:48:23 2007 +0000

    Updating the docs for the sourceselect parameter
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2373 980ebf18-57e1-0310-9a29-db15c13687c0

commit 295b3571bbca407a86b2c79b6189004bc05e2eac
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 30 00:47:03 2007 +0000

    Renaming some methods so that we can generate a report on a transaction and then retrieve it later
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2372 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1e8e7ee55a11b0fe472e6efb3457cf7ce527cbed
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 30 00:46:38 2007 +0000

    Fixing #567.  I overrode the propertychanges method to only return changes if the file exists or if the file has a property that could create the file.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2371 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4863012792cbc3039e392069df9806790d591ea1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 29 18:22:24 2007 +0000

    Enhancing the report docs a bit
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2367 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0ecb77569f58170c869525ad678a94b6d0fdcab2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 28 06:58:45 2007 +0000

    Adding last bits to the change log for 0.22.3
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2365 980ebf18-57e1-0310-9a29-db15c13687c0

commit a999752497e0a3a812d23e34d17960d332985c59
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 28 06:39:33 2007 +0000

    Updated to version 0.22.3
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2363 980ebf18-57e1-0310-9a29-db15c13687c0

commit 24ad5abcfd37d167715937b5e93e81e866b6011a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 28 06:39:32 2007 +0000

    Updated to version 0.22.3
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2362 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9ce7c795c6dd00a0d9c452a7f80ff35dcd4d9bd1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 28 06:39:30 2007 +0000

    Updated to version 0.22.3
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2361 980ebf18-57e1-0310-9a29-db15c13687c0

commit e1545892ead7e03a2ada0ecc1fd3c897cd45be6d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 28 06:27:16 2007 +0000

    Fixing puppetdoc with the recent changes to the networking code
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2360 980ebf18-57e1-0310-9a29-db15c13687c0

commit 801d0f74f683bbee427ae1d1dd685558217e52c8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 28 06:06:54 2007 +0000

    Fixing a bug I apparently introduced in the testing that would have made user management not work with netinfo.  In the process, I am enabling validation on the nameservice subclasses.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2359 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2544f75f46dcf45a397bf59345072cfa48cf2e90
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 28 05:45:46 2007 +0000

    Fixing the documentation to match reality, as reported in #548.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2358 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4358e853086f46e32e189496e3f7618dbf3f04bd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Mar 27 22:16:13 2007 +0000

    Trying to fix the problem that occurs when noop somehow manages to be nil when downloading files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2357 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2ad9469ffac37f4dac284e906f8ba16ea7aff4b8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Mar 27 18:06:50 2007 +0000

    Changing gems to automatically include dependencies
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2355 980ebf18-57e1-0310-9a29-db15c13687c0

commit 858cb81d5507fcc3eca60a234b758614f6bb9fd4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 26 17:19:24 2007 +0000

    Updating changelog and adding filebucket to the exluded file list in the Rakefile
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2354 980ebf18-57e1-0310-9a29-db15c13687c0

commit d54b645f3e5a7d3be6218ef578025a1d546af34a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 26 17:19:16 2007 +0000

    Updating changelog and adding filebucket to the exluded file list in the Rakefile
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2353 980ebf18-57e1-0310-9a29-db15c13687c0

commit fa2655212135e54ca714fef03fdc2f9671980df8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 24 22:07:19 2007 +0000

    Fixing #562; I had to fix how the client class was loaded
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2352 980ebf18-57e1-0310-9a29-db15c13687c0

commit 142d0fa46860eb5390efbcccca51c57b6b689fe6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 24 21:33:13 2007 +0000

    Applying patch by Ian Burrell from #559
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2351 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2c3abbeef6298683dd199f2a5e663caaaa88dffa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 24 21:24:29 2007 +0000

    Refactoring some of the rails code.  The speed is now pretty good, but the tagging stuff does not seem to be working and is certainly working very ineffficiently.  Blake says he is going to take a look at that.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2350 980ebf18-57e1-0310-9a29-db15c13687c0

commit 33f4a66a4ead50a570bd5eeeb97087829f84e132
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 24 21:17:37 2007 +0000

    Renaming pbucket to filebucket
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2349 980ebf18-57e1-0310-9a29-db15c13687c0

commit 52df47e489d390be9b466da3ef16c2379b9dddba
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 24 21:16:20 2007 +0000

    Finalizing the filebucket client, with test code.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2348 980ebf18-57e1-0310-9a29-db15c13687c0

commit def15e3de0a488f2f9d75eeb43d04381742609f6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 24 19:57:56 2007 +0000

    Adding filebucket client app
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2347 980ebf18-57e1-0310-9a29-db15c13687c0

commit c5e1a44a6d8c61cdd28276b46d53428b82d03c6b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 22 22:22:47 2007 +0000

    Fixing the "readcert" method after getting the signed cert; the method got refactored, and essentially renamed in the process
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2346 980ebf18-57e1-0310-9a29-db15c13687c0

commit 60d36e277e00fc3fea3146b20dc6af73058fabba
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 22 15:40:28 2007 +0000

    Moving the authconfig setting to configuration.rb instead of network/authconfig.rb, as mentioned by Koen Vereeken
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2345 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5bd0e8c6035e5d175c6c609813e844ae3a77a055
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 22 04:56:05 2007 +0000

    Rails is now significantly faster.  I refactored all of the queries; they are mostly reduced to three queries, each of which is relatively fast, although there are still a ton of file- and tag-related queries that I cannot find the source of.  Note that this speedup requires indexes, which will only get added if you start puppetmasterd with --dbmigrate (although you cannot always start with that, as there is an error in the init code).  I expect that the indexes will not help unless you forcibly reindex your database, but after that you should see significant speed improvements.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2344 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4c357d84960bc3cbaf26db8d9a94eccbf95f9a34
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 21 22:12:25 2007 +0000

    Adding a migration to create indexes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2342 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5ad9bf49296d35bcaf527476fa6b700c23e13ee5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 21 20:45:14 2007 +0000

    Fixing #553; -M is no longer added when home directories are managed
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2341 980ebf18-57e1-0310-9a29-db15c13687c0

commit 804c0f406442dcb2546495f026a9f66d5d507432
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 21 20:39:36 2007 +0000

    Fixing the same bug as the Metric stuff, but for logs this time.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2340 980ebf18-57e1-0310-9a29-db15c13687c0

commit 46152c1fe63c0ee3f2f6bf75618d8300be02fe1c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 21 18:32:09 2007 +0000

    Fixing the Metric class old clients can still refer to the Puppet::Metric class.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2339 980ebf18-57e1-0310-9a29-db15c13687c0

commit 36feb296a8f3538efe3a359dc4a811421790364a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 21 01:40:43 2007 +0000

    Fixing a small bug in testing whether instance methods are already defined.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2338 980ebf18-57e1-0310-9a29-db15c13687c0

commit 45904ca40b0fc7d473df34af88a8647a7b29bc8f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 23:09:38 2007 +0000

    Updated to version 0.22.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2336 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0452878632b244709f0f089af22e2f0a27b7352b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 23:09:30 2007 +0000

    Updated to version 0.22.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2335 980ebf18-57e1-0310-9a29-db15c13687c0

commit 474b86c921e3fa17ffd48c3b846b2e5f3dc70640
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 23:04:32 2007 +0000

    Hopefully the last batch of commits before I release 0.22.2.  Mostly just get tests to pass.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2334 980ebf18-57e1-0310-9a29-db15c13687c0

commit 90d8b2dfb123b42a2b1fc6104ae5d63be635bdb5
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 22:34:28 2007 +0000

    Remove no-lockdir patch. Clean changelog
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2333 980ebf18-57e1-0310-9a29-db15c13687c0

commit a68a7c285dbb8524acbf7f2cf1da3b915116f0e3
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 22:31:23 2007 +0000

    Change puppet's homedir to /var/lib/puppet
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2332 980ebf18-57e1-0310-9a29-db15c13687c0

commit 145c39c79dfb6f235579f93ff85c54930d00920f
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 22:18:35 2007 +0000

    Don't clobber an explicitly given waitforcert
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2331 980ebf18-57e1-0310-9a29-db15c13687c0

commit 41e1285553870f0b425b88a6209fab8733b421b2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 22:13:09 2007 +0000

    Reverting changeset [2243]; this apparently causes chkconfig not to work
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2330 980ebf18-57e1-0310-9a29-db15c13687c0

commit bcc937a2c65de110f3afc28b84ca8a971ab7e88f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 21:37:52 2007 +0000

    Absolutely guaranteeing that the provider is always created before anything else.  Previously, it could get created later if it were using a default.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2329 980ebf18-57e1-0310-9a29-db15c13687c0

commit 60ea7d2a9df65f3c2ed492ec4447420c5e5151fe
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 21:29:08 2007 +0000

    Fixing #432 - you can now manage home dirs with users.  You cannot yet purge home directories, because there is still controversy over how that should be done.  Also, allowdupe is now handled like a feature, which is, um, better.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2328 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3d17685f9954b584cf84a6fe224b2513007108f0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 20:24:08 2007 +0000

    Adding a "has_feature" method, so a provider can just declare that it has a given feature
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2327 980ebf18-57e1-0310-9a29-db15c13687c0

commit 290ad14f50dcb6e530e6f2624fe05d1c4cac3538
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 19:39:26 2007 +0000

    Finally fixing #504, I think; I even have tests to prove it.  It was a little thing, in the end.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2326 980ebf18-57e1-0310-9a29-db15c13687c0

commit 32662cb32365a10901bdee81fcf3e8480ebf607b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 19:19:49 2007 +0000

    cleaning up an error message a bit
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2325 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9b5833a63cc88fff7ce8e157e6ab079d3fd3f631
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 19:16:10 2007 +0000

    Clarifying the errors a bit when nodes come from external sources.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2324 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1f8b768e4ebef4e9ee54ee96db2544d6f9522bbf
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 18:42:14 2007 +0000

    Apply patch from Ian Burrel (trac #479)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2323 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3e2510f697413e9237ca2c7107857f1d6f32e602
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 18:40:06 2007 +0000

    Adding the "ralsh" executable (formerly known as x2puppet).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2322 980ebf18-57e1-0310-9a29-db15c13687c0

commit 531136ef9ef7bfa1626fb967708e7289be7fb23e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 17:43:58 2007 +0000

    Updating the config generation stuff a bit, mostly just cleanup, but also changing the servername fact to be the fqdn of the server.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2321 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0153a0618396847dc1ecb05be4745adad9c34a45
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 17:43:16 2007 +0000

    Changing the config cache location to the state dir
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2320 980ebf18-57e1-0310-9a29-db15c13687c0

commit f0460675bb2aab878ca97c8dbc66485912cf73c9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 17:42:57 2007 +0000

    Adding context to the warning message about unknown escapes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2319 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0040edf562e8fc9892a02aad3f8898f2147a7876
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 17:42:37 2007 +0000

    Changing execution to reopen stdin to /dev/null
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2318 980ebf18-57e1-0310-9a29-db15c13687c0

commit b804573baaa882978e6df802dc9171a12ed7c5b4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 17:42:17 2007 +0000

    Changing notify to default to its message being its name
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2317 980ebf18-57e1-0310-9a29-db15c13687c0

commit e2c5dbb2cc022034a54b1207310eff43be93ce85
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 16:42:41 2007 +0000

    Another round of bug-fixes, prompted by test logs from David Schmitt
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2316 980ebf18-57e1-0310-9a29-db15c13687c0

commit 92bad78a6aebb9abeac8e734b5ce56b88e21cdda
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 13:56:26 2007 +0000

    Fixing the spelling of David Schmitt's name and giving credit to Chris McEniry in the changelog.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2315 980ebf18-57e1-0310-9a29-db15c13687c0

commit 547fb64aec7def14987abfb3a01970a2b4471847
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 08:30:27 2007 +0000

    Adding a provider feature table to the provider feature docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2314 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5b2ffbcb5d2e4113efec9c8ba882c5506d53c242
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 08:15:36 2007 +0000

    Adding provider features. Woot!
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2313 980ebf18-57e1-0310-9a29-db15c13687c0

commit 80dac92b3a5ebd2cb8904505845d63759b5cebb3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 06:42:46 2007 +0000

    Following Russ Allbery's advice and using the Candidate field in the apt-cache output.  Apparently I'm blind.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2312 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3606482b279863b2ea9abf2c2c97070260ec0626
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 05:22:38 2007 +0000

    Updating changelog for #487
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2311 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4dc72337aca3a4bf81b37bcea8557ef46636aadc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 05:21:44 2007 +0000

    Fixing #487.  I know use "apt-cache policy", instead of apt-cache showpkg, because it clearly shows which version will be installed.  This is basically impossible to test well, so I just added a test that verifies we always get a value back, although I cannot really test that it is the "right" value.  Also, I modified the logging of packages so if there is a latest version, you will get the new version number, along with the old, in the log.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2310 980ebf18-57e1-0310-9a29-db15c13687c0

commit 973f9d05e8f7e722fc23e274c1be54ff8390abf0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 04:43:29 2007 +0000

    Taking another crack at #504 -- I was using Pidlock incorrectly.  I should have been using "locked?" but was using "lock".
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2309 980ebf18-57e1-0310-9a29-db15c13687c0

commit cef41c26eaec80aeaf1e28c2224bfa764df4519e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 04:40:25 2007 +0000

    A slight fix for #507.  This should at least provide better information if this problem crops up, although I cannot reproduce it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2308 980ebf18-57e1-0310-9a29-db15c13687c0

commit 177888365d70a5eafe47d8fdc16295dbb11ce297
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 04:23:27 2007 +0000

    Changing the "found a bug" message to something a bit more informative.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2307 980ebf18-57e1-0310-9a29-db15c13687c0

commit 184266d6229eb45a19303b4cffd5f32f96105918
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 04:18:06 2007 +0000

    Fixing #447 - filebuckets now use deeply nested paths
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2306 980ebf18-57e1-0310-9a29-db15c13687c0

commit b43600284c7d976bdbfd376dacd7f834852763c9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 03:34:16 2007 +0000

    Oops.  Fixing the other tests to now past the facts to "fresh?", as required by the fact checking.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2305 980ebf18-57e1-0310-9a29-db15c13687c0

commit 61b34906552ca4bd46f9a07dec419a44bac94652
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 01:44:44 2007 +0000

    Fixing the fact caching so that facts are only downloaded and retrieved once, rather than once during fresh checking and once during config compile.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2304 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5f7ae353a0ca9cadaf8fdc8803e1227ee6583d25
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 01:42:10 2007 +0000

    Fixing #519.  The facts are now cached in the state file and changes to them force a recompile.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2303 980ebf18-57e1-0310-9a29-db15c13687c0

commit a2a9d93fd3f9de6d4c6d13ca8d99c2d496a39e40
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 01:19:09 2007 +0000

    Fixing #544 -- there is now an --ignoreimport option for commit hooks.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2302 980ebf18-57e1-0310-9a29-db15c13687c0

commit a212ea748f13296489ef39a6404b6ff1ff2def78
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 19 00:46:25 2007 +0000

    Adding #539.  Definitions can now have titles, and both $title and $name are guaranteed to be set within any definition.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2301 980ebf18-57e1-0310-9a29-db15c13687c0

commit 90bdc33e440eba602426f709b31b8fca430e19d6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 23:47:54 2007 +0000

    Adding test to make sure ensure does not conflict with any of the creating types.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2300 980ebf18-57e1-0310-9a29-db15c13687c0

commit e952029322eab81580e9c05f5310d78068d2f9bf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 23:39:12 2007 +0000

    Adding #541.  There is now a "generate" function.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2299 980ebf18-57e1-0310-9a29-db15c13687c0

commit 66546610ceb5f14d7dce1da9286def4b1497bd60
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 23:08:32 2007 +0000

    Fixing #538.  There is now a simple file() function to read in file contents.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2298 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5ecfd39340f70b8c49e53e2c472e92aeafde3992
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 22:54:41 2007 +0000

    Looks like I already accidentally committed the switch from using system() to exec().  I am hoping this will fix the many problems people are having with processes hanging around (e.g., #509).  This change just removes the attempts at closing TCPServer instances, which should now be fixed from using exec instead of system.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2297 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6b85962b0c519157fac3376e0baf262f0ce38bf7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 22:48:57 2007 +0000

    The first round of fixes for failing tests.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2296 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8eddd4bcd23923a166e1ab7d81be1c1f2d341cdf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 19:25:15 2007 +0000

    More work on #542 -- services in noop now produce noop events so that they can themselves trigger further changes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2295 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2fe9998e0256a39b413d9e73a04ba4e7784ea3e6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 19:11:57 2007 +0000

    Removing bogus log message in file parsing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2294 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3b8dc6abbc17b07e68b838f939a461b288d08400
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 19:02:33 2007 +0000

    Removing the cycle checks from the splice! method in pgraph, which *considerably* speeds up splicing of very large graphs.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2293 980ebf18-57e1-0310-9a29-db15c13687c0

commit adedab177824ca4c02eee219df34fceda32678a5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 19:01:31 2007 +0000

    Getting rid of a warning in the rpm provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2292 980ebf18-57e1-0310-9a29-db15c13687c0

commit 40eeadbde0d91bf1028bb5e655f1428953ee66dd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 18:18:34 2007 +0000

    Adding example cron tab from #492 and making the read/write tests ignore whitespace.  This cron now parses successfully, as I thought it would with the move to providers.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2291 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2a3f56cc91a38cc6046aeb7f301058561d8d55f7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 18:00:26 2007 +0000

    Fixing #529 -- specified targets keep their values.  The problem was that I was using model[:target] instead of model.should(:target) and model.is(:target).  The real problem was that my tests were using a parameter for tests but all of the real code uses properties.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2290 980ebf18-57e1-0310-9a29-db15c13687c0

commit fe2f0d9ffc2c3fd324d9f85d57ff6a7262a3b185
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 17:08:28 2007 +0000

    Fixing #533 -- puppetd now exits in onetime mode.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2289 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5257837ecb85fd37553430fe5e5030d775dbb7bb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 16:56:20 2007 +0000

    Fixing #491 -- the client correctly realizes when the cache file is missing and only considers the config to be in sync if that is not the case.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2288 980ebf18-57e1-0310-9a29-db15c13687c0

commit a76afb7b9298854ebbc2307c1a41adf0b8fb51b9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 18 16:39:48 2007 +0000

    Trying to clean up the error message from #490.  It looks like the problem is just a failure in one of the types, and it has nothing to do with the state file.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2287 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4a6d705bc086540e7d569c88f0130ad599bed5b1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 17 23:16:37 2007 +0000

    Fixing #542.  Transactions now cause services to warn when they would have gotten restarted by a noop resource.  Also fixing #549 -- transactions now only refuse to delete required resources if they are being purged.  All other resources can be deleted just fine.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2286 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8387d48a42e8893bbf71278ee807e12204027aaf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 17 23:11:45 2007 +0000

    Fixing #540.  I modified Puppet::Network::Client::Master so that it disables noop during its run, so that facts and plugins will always be downloaded.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2285 980ebf18-57e1-0310-9a29-db15c13687c0

commit 86c63ce2d9e93786cb27f9056b90f6887cbc8826
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 17 02:50:48 2007 +0000

    Fixing cron support (I hope).  It now uses providers, and seems to work, at least on my os x box.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2284 980ebf18-57e1-0310-9a29-db15c13687c0

commit ba23a5ac276e59fdda8186750c6d0fd2cfecdeac
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 17 02:48:41 2007 +0000

    Adding spec libs, so we can use them some day
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2283 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8ea6adaeb1e3d0aa6348c2a2c3a385d185372d06
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 14 17:52:39 2007 +0000

    Clarifying that the ruby RRD support is provided by a binary library
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2282 980ebf18-57e1-0310-9a29-db15c13687c0

commit df4595e98f953432267756c84a37a5495e9720ef
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 14 17:49:19 2007 +0000

    Significantly reworking the internals of the fileparsing code.  It now
    passes around an instance of a FileRecord, rather than just a hash, which I
    think makes it much easier to understand.
    
    Moved the sshkey parsed provider test to its own directory and made it better.
    
    This work is all being done so I can move cron jobs to using providers
    instead of the current unmaintainable state of affairs.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2281 980ebf18-57e1-0310-9a29-db15c13687c0

commit b05ae2ae1262469df264e3a35b30f7a1d1805c18
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 9 01:40:35 2007 +0000

    Don't blow up when PUPPETLIB isn't set
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2280 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0fa3c434b658fe432c306dc9e52e6b8c949ad3cf
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 9 00:52:47 2007 +0000

    Search manifests first within modules, and if no module is found, search in
    the directory the current manifest is in.
    
    Glob patterns can be used for the path, but the path only matches a module
    if the first part of the path is not a glob.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2279 980ebf18-57e1-0310-9a29-db15c13687c0

commit 38975de420bfd2f1350e7e55a996db40bc05d0b8
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 9 00:49:35 2007 +0000

    Introduces a new implicit 'modules' fileserver module, whose allow/deny can
    be set from the fileserver.conf, but whose path is ignored and can
    therefore not be used directly in puppet:// URL's.
    
    When the fileserver looks for a file/directory, it first checks if the
    first part of the URL references an existing module. If one is found, a new
    temporary mount for that module is generated with the same permissions as
    the 'modules' module. If no matching puppet module is found, the fileserver
    behaves as it always has.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2278 980ebf18-57e1-0310-9a29-db15c13687c0

commit ebcb6b6df7af42632a6c1beaa1b60171ff32b61e
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 9 00:48:28 2007 +0000

    The template function now tries to first find a template within a module
    (if the template path looks like it belongs to a module) and only when that
    fails looks for it in templatedir
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2277 980ebf18-57e1-0310-9a29-db15c13687c0

commit ba6257c02ef5e4bd32d58d40087f84dda95141c3
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 9 00:47:27 2007 +0000

    The basic plumbing for modules: a modulepath config parameter, and a new
    class Puppet::Module that will contain the module-related
    functionality. The modulepath can be extended by setting the environment
    variable PUPPETLIB
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2276 980ebf18-57e1-0310-9a29-db15c13687c0

commit 10d68915c513ca9aa69862d17111acbf9ff87164
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 21:18:43 2007 +0000

    Adding support for a prefetch hook on individual providers, rather than only supporting it for the whole class.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2275 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4fa800805dc87a84c2af6281305e6015c44207e9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 19:07:07 2007 +0000

    Fixing a few of the log messages so file content changes always include the md5 sum
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2274 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6ad8998a7edb1027eca7913f2d7bfdf66f81cbf4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 17:35:18 2007 +0000

    Adding a bit more testing to the config stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2273 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3489bd85669dd06ad0ec06430556aaeb4ba14e5d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 17:07:35 2007 +0000

    One last try at getting the config and mode stuff working.  The tests were passing because "mode" is a valid config option in the tests, but not in the real configuration.  So, now the Config class correctly only tries to set the meta params if they are valid options, otherwise they get skipped.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2272 980ebf18-57e1-0310-9a29-db15c13687c0

commit b36f9c9a53bb568c7f72a81dfb75cee9f16e66d1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 16:53:45 2007 +0000

    Fixing the config path to use Puppet[:name] rather than Puppet.name
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2271 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6b92c0454829ec0ccd600679adabc1263f663974
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 07:37:43 2007 +0000

    Oops, forgot a file in the commit
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2270 980ebf18-57e1-0310-9a29-db15c13687c0

commit f59cadec5c453ef15b457c9f5b08999c23c69d01
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 07:36:46 2007 +0000

    Fixing a bug related to link recursion that caused link directories
    to always be considered out of sync.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2269 980ebf18-57e1-0310-9a29-db15c13687c0

commit b6df3369bc8a1dadfab2c7baa6d4572785c075fb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 07:09:42 2007 +0000

    Looks like [2265] was not a complete solution -- it resulted in failures when the config set modes via integers.  Everything is working now, and tested more completely.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2268 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0925fb0cd9b7d370a57247b00f402d33f6f0d78b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 06:03:36 2007 +0000

    Adding some more testing on the @should values for :groups on users, and fixing a bug that often made :groups think it was out of sync.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2267 980ebf18-57e1-0310-9a29-db15c13687c0

commit 333842bd860aee58cb8e7712c9e24f812b53107e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 01:47:36 2007 +0000

    Putting the final touches on #144, most of which I had provided in the mongrel work.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2266 980ebf18-57e1-0310-9a29-db15c13687c0

commit fa253b58c1a1fe473c4515611ab7f8427111a0c3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 01:23:22 2007 +0000

    Fixing #489.  I was unnecessarily converting to octal in config.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2265 980ebf18-57e1-0310-9a29-db15c13687c0

commit 69338dab705de27cf8ccb9ae87d88e018234469a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 00:50:36 2007 +0000

    Adding some changelog info for the next release, which is still a ways away, probably.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2264 980ebf18-57e1-0310-9a29-db15c13687c0

commit 205bbb90af1a9026a886cda46ad16235ce56332a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 00:21:38 2007 +0000

    Flushing out the ability to have a stand-alone CA server, specified using ca_server and ca_port.  This is just a final unit test, since the code was done and lutter fixed the rest in [2261].
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2263 980ebf18-57e1-0310-9a29-db15c13687c0

commit 185a003d392e7a185edbc73b0b2d4a70289f2a61
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 8 00:16:53 2007 +0000

    Fixing #531 and #414.  This includes pretty much a complete redesign
    of the AuthStore class, with (hopefully) all of the edge cases removed,
    the code is now much cleaner, the tests are (I think) complete, and
    everything is just generally better.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2262 980ebf18-57e1-0310-9a29-db15c13687c0

commit fde8b285584ce33d6b72f8d52614330f54807d65
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 7 22:20:51 2007 +0000

    Fix typo in default config and add simple test to check default config sanity
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2261 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7e41d436fe343103b67d7078c08c3ec444ea0aa7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 7 01:16:57 2007 +0000

    Turning a failure into an error when, for some reason, pfiles do not have paths set.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2260 980ebf18-57e1-0310-9a29-db15c13687c0

commit 46d344b9daa24047b60183cc94509d306b6b562a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Mar 6 19:03:05 2007 +0000

    Merging the webserver_portability branch from version 2182 to version 2258.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2259 980ebf18-57e1-0310-9a29-db15c13687c0

commit 68233706a9ff05be8fa8ab3ab7198cd0918517d6
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 2 01:48:23 2007 +0000

    Sync with latest Fedora specfile
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2253 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4a73da3370f9223c5fd43dc9ee008fb87b6ca24b
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 2 01:38:21 2007 +0000

    Don't include bin/pi in distributed tarball (and hence fix trac #471)
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2252 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1808c50ea15f48eab7110f34685fbb4c84b6a00a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 1 17:41:00 2007 +0000

    Apparently the include function was not failing when it could not find asked-for classes.  Now it does.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2250 980ebf18-57e1-0310-9a29-db15c13687c0

commit 521606bfa83ef3e9f02be846689cda3d759db607
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 1 00:07:16 2007 +0000

    Allowing trailing commas in selectors
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2247 980ebf18-57e1-0310-9a29-db15c13687c0

commit 90806867a15b8f97f3d289617b13a6fc2facbca8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 28 17:03:21 2007 +0000

    Committing patch by Dennis Jacobfeuerborn to only use the domain name if it is set.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2246 980ebf18-57e1-0310-9a29-db15c13687c0

commit 17c59f8d83145c728bca3636dfa7c42f66967169
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 28 16:58:48 2007 +0000

    Adding "ignorecache" option to always force a recompile of the configuration
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2245 980ebf18-57e1-0310-9a29-db15c13687c0

commit ebc4dd231e4970e9d3ccbbe57d0df9f38cf4c1aa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 28 07:20:25 2007 +0000

    Fixing #464 and #515.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2244 980ebf18-57e1-0310-9a29-db15c13687c0

commit ff9ec47e4b9b13c043c41e5b74a0b0fb82ba8ba5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 28 06:52:10 2007 +0000

    Applying patch in #528 by ask.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2243 980ebf18-57e1-0310-9a29-db15c13687c0

commit cc260268a88f69a6bb28535b17ced7228aa71314
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 28 06:46:43 2007 +0000

    Fixing #467.  It is a hackish solution, because I just reordered the definition of the params, but it works for now, anyway.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2242 980ebf18-57e1-0310-9a29-db15c13687c0

commit d229d49c5614c5ca9e15ae5716968a184f6f1bc7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 28 05:32:46 2007 +0000

    Fixing at least part of #514.  This does not get rid of all errors, but at least it fixes the spurious warning
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2241 980ebf18-57e1-0310-9a29-db15c13687c0

commit be8dfd92b4d1212a9beaa520f80043fe67e0bbbb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 28 05:32:03 2007 +0000

    Fixing a problem with the splice! method on the graphing.  The problem was another issue with hash ordering, where it would usually work but sometimes start failing.  The solution was to splice the containers in topological-sort order.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2240 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4df0738de2e93b8c0408561153543682aa1a3455
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 28 01:21:58 2007 +0000

    Applying a modified form of the patch by cstorey from #523.  The modifications were mostly around the fact that Strscan does not set $1 and its ilk.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2239 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0f16bf3c5b925f5656a5592b527ae56d92c662f9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 28 00:14:27 2007 +0000

    Fixing #526.  Implemented as a period of "never", rather than adding a new parameter.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2238 980ebf18-57e1-0310-9a29-db15c13687c0

commit 07fce232e6a0bb0cfd2e1c84b933e41f851a2045
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 28 00:07:41 2007 +0000

    Fixing #477.  setvar() can now accept the file and line info from callers.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2237 980ebf18-57e1-0310-9a29-db15c13687c0

commit d5444e0dd8fc8c419ebd5239512b81438bbec847
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 27 23:57:55 2007 +0000

    Fixing #199 and moving service tests (which are completely atrocious) around.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2236 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7d965aecfe3c472381e0dd2113e51844c3000e05
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 27 23:18:52 2007 +0000

    Applying patch by cstorey from #521
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2235 980ebf18-57e1-0310-9a29-db15c13687c0

commit 36ae6a26c20e3a7258f57cdee03f5f8a2244a813
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 27 23:17:44 2007 +0000

    Making the package provider tests able to be executed separately, and using "clear" instead of resetting @objects in the types.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2234 980ebf18-57e1-0310-9a29-db15c13687c0

commit b7a0fb462a767598964a52bf21c467e1d9e3e420
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 27 23:16:54 2007 +0000

    Make up2date the default for RHEL <= 4, and confine it to RHEL; make yum the default for RHEL >= 5. Fixes trac #478
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2233 980ebf18-57e1-0310-9a29-db15c13687c0

commit 672e281c62cdae3fc9e675b0850465c61cbff5df
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 27 22:14:56 2007 +0000

    Fixing #142.  As expected, trivial.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2232 980ebf18-57e1-0310-9a29-db15c13687c0

commit 87f100aa6ffc3087028a956ab73e19daf8f27f52
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 27 21:31:02 2007 +0000

    Applying patch by DavidS from #522, along with test code and a small bit of code cleanup.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2231 980ebf18-57e1-0310-9a29-db15c13687c0

commit a3f36748528ea760b5965f972941c6022d0449e9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 27 20:34:32 2007 +0000

    Redoing some aspects of the graphing in hopes of helping hte performance a bit.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2230 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1a7d8b6715b6dfb55be7a0e36442af4d04e46954
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 27 17:36:58 2007 +0000

    Fixing file backup defaults to correctly use the puppet filebucket by default.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2229 980ebf18-57e1-0310-9a29-db15c13687c0

commit d833c3e82826582e40d38c14c1900db3d997b44e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 27 17:11:32 2007 +0000

    Changing the log messages for source and content properties to mention the md5 sum of the new content
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2228 980ebf18-57e1-0310-9a29-db15c13687c0

commit 789b786d24ab83e963b802b81c6f8254c4b4e08c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 27 16:30:53 2007 +0000

    More code related to #517.  Oops.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2227 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4c885b7aa48746b6b946c7b2b0cd0abc50216ecf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 27 16:30:09 2007 +0000

    Fixing #517 and more.  Classes now support more than one namespace in their search path, parent classes automatically have their namespaces added to subclass namespaces, and (huzzah) there is a "search" function that can be used to add new namespaces into their search path.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2226 980ebf18-57e1-0310-9a29-db15c13687c0

commit aad512371967156a39ae422f0a3ca95891f4064d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 27 16:11:29 2007 +0000

    Fixing #524.  Functions, both statements and rvalues, now support no arguments as long as you use parens.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2225 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3e13e360aa66d7eb521a0cc041c0dca049774efc
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 26 01:17:48 2007 +0000

    Actually commit the changes to lib/puppet that were supposed to be part of [2223] (Fuck svn and it's partial-repository-by-default behaviour)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2224 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1d711dcfd902035b9be81debcfb5c271f78ae154
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 23 08:18:10 2007 +0000

    Partially complete #241.  Add a 'purged' value for Package.ensure, and add a handler for all of the Debian providers.  Also wrote sensible test cases, and so we've now got Mocha running around in our source tree.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2223 980ebf18-57e1-0310-9a29-db15c13687c0

commit a752eb2e7152ad81ad747d7c8604694d51d25fd8
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 23 00:31:17 2007 +0000

    Fix #516, 'Cached manifests get unescaped twice'
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2222 980ebf18-57e1-0310-9a29-db15c13687c0

commit db8a23eb56521d106a11ac2b2b619c7849d65a70
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 22 23:11:59 2007 +0000

    Print stacktrace in debug mode when catchign a signal - useful for understanding client hangs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2221 980ebf18-57e1-0310-9a29-db15c13687c0

commit fa02d67a9de63e457b122ccedf4fb329ee04949b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 22 12:10:19 2007 +0000

    Fixing #472.  Apparently this has been broken since I did the parser redesign.  I had to fix the scope trees so that subclass scopes are subscopes of the parent scopes, which used to be the case but was far more complicated.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2220 980ebf18-57e1-0310-9a29-db15c13687c0

commit d145aae53ddf43de1a5140ce9226e1b2f383376f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 22 12:02:35 2007 +0000

    Fixing #505, #508, and #513.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2219 980ebf18-57e1-0310-9a29-db15c13687c0

commit 774415b1561dcbbbb8e98c1ad48d3378e90ea791
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 21 17:14:26 2007 +0000

    Allow 'key=' to be the only thing on a line (livna uses this)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2218 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4d02823302255a2359ed69d37612a4fa775a743e
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 21 00:06:25 2007 +0000

    I believe this fixes the issues in ticket #469
    My testing on mysql shows connections being reaped.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2217 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7a9e28ae0524663b96b994d70af44f0b361b7940
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 20 00:35:12 2007 +0000

    Applying patch from #495.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2216 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6fbd5fd3a581f116b9ec251b9f9e78ad36b792d3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Feb 18 20:09:35 2007 +0000

    Removing extraneous debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2215 980ebf18-57e1-0310-9a29-db15c13687c0

commit 90b105841d2573fc87df9efc74b6a31c227c38f8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Feb 18 05:58:27 2007 +0000

    Fixing a problem in collecting exported resources.  Virtual resources worked fine, but exported resources resulted in an essentially infinite loop.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2213 980ebf18-57e1-0310-9a29-db15c13687c0

commit deab3a0698ea1cb2824a1a4478078385791a8e99
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Feb 17 19:34:08 2007 +0000

    Fixing the default dbadapter back to sqlite3
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2212 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3d093ae712ce6fe7c59cd616a092c1aedfd1b976
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Feb 17 19:19:15 2007 +0000

    Applying patch from #510 by curzonj.  Note that the right solution to this problem is to use the ruby API, but it does not appear to be stable yet.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2211 980ebf18-57e1-0310-9a29-db15c13687c0

commit 65599af2f4b48cd78e651f3a807f27283bf038fc
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Feb 17 02:07:32 2007 +0000

    Re-add the files
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2210 980ebf18-57e1-0310-9a29-db15c13687c0

commit beb78735f5ec4e7932c36dc7fdf9907ac770a938
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Feb 17 02:06:46 2007 +0000

    Undo the param_name param_value merge
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2209 980ebf18-57e1-0310-9a29-db15c13687c0

commit f4f555d0ec405e215d1b2a44b18fee1c4fc2e0de
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Feb 17 02:05:55 2007 +0000

    Renamed Puppet.name to Puppet.execname so rails 1.2 doesn't freak out
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2208 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9a672ec630222dd6e7f07a9d3ccd75c9bca82b19
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Feb 17 01:57:50 2007 +0000

    Undo the param_names param_values changes
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2207 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8b18fdfe1ad86fd28732e3bbe243459a4f00c74c
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Feb 17 01:52:59 2007 +0000

    Undo the params & facts stuff
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2206 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9fe8905abf99c7683d4ac0ce111f567d83f22b54
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 16 23:26:24 2007 +0000

    Changing date to datetime in the database
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2205 980ebf18-57e1-0310-9a29-db15c13687c0

commit 964c805d220b0bcf0afb03b6e1a654d2d2705ffa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 16 23:25:24 2007 +0000

    Trying to fix problem of locks lying around
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2204 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2418e4a5dc8a750ae488021b8d7e7d7b2b06de1f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 16 23:25:09 2007 +0000

    Adding hook to update timestamp when a report is run
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2203 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0aa3b6683a37cee2a24dd8050e8242efe50856d5
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 16 23:14:51 2007 +0000

    Change Puppet.name to Puppet.execname so rails 1.2 won't freak out.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2202 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6555dadc51feaa58b3dcebc74e2c426a64353395
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 16 23:06:50 2007 +0000

    Update relationships
    Remove dynamic class generation for now.
    Include the fact class
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2201 980ebf18-57e1-0310-9a29-db15c13687c0

commit 328e5765d93e8f70c241d836ae95d1158602f227
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 16 06:06:10 2007 +0000

    Revamping collections to get what is hopefully more reasonable behaviour when they are used in combination with defined resource types.  You should now be able to combine them in just about any way and get "correct" behaviour, which in this case means that you can have virtual definitions or definitions wrapping virtual resources and the resources will still all get realized.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2198 980ebf18-57e1-0310-9a29-db15c13687c0

commit 69d4bfe13a579da05a1a02be3880b16bd2a2f1a0
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 15 22:36:38 2007 +0000

    This works for me.  Probably not the most universal fix.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2195 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9de665c4dae754740c11a634ef50e90dae823a07
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 15 22:32:30 2007 +0000

    Apparently using "gem" requires an environment we don't have.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2194 980ebf18-57e1-0310-9a29-db15c13687c0

commit 91991f186711251f20e1608815c49d360051c29a
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 15 20:26:40 2007 +0000

    Merge fact_names & fact_values, and param_names & param_values.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2191 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0b5600a6b49400551b01cec7aa3286d42e45d36c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 15 19:08:12 2007 +0000

    Fixing features to use the new feature location
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2190 980ebf18-57e1-0310-9a29-db15c13687c0

commit 17a5f4c7107353c5933f8c5c654abe7e409da56c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 15 17:10:43 2007 +0000

    Applying patch from #502 by Jose
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2189 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6216ae5edf1f71dbc8d0e9da26a109db451f89b3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 13 15:20:02 2007 +0000

    Applying patch from #497 by Jose Gonzalez
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2188 980ebf18-57e1-0310-9a29-db15c13687c0

commit 258651c58f7763896cc876775d23e2b45aea8753
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 12 18:55:40 2007 +0000

    Applying patch by Jeff McCune from #496
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2187 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9cd2636a53c65cd581a14a8a5c1eb3abf5140f3a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Feb 11 23:55:08 2007 +0000

    Applying patch from #474 by David Schmitt.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2186 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4effff4aa589f13f8960712bbf270231fda27d39
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Feb 11 23:52:23 2007 +0000

    Fixing #482.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2185 980ebf18-57e1-0310-9a29-db15c13687c0

commit c3b623253ed12159ec68bc64f05d83ef652e8118
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Feb 11 23:51:25 2007 +0000

    Fixing #493.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2184 980ebf18-57e1-0310-9a29-db15c13687c0

commit 81ae3977e61d13256bc079228ad938a5655a8b41
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Feb 11 23:50:15 2007 +0000

    Applying doc patch from #494.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2183 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1756bec99b9136463e5d35f1de4119b813ce40cc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 8 05:11:49 2007 +0000

    Fixing #484.  Moving unit tests at the same time.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2181 980ebf18-57e1-0310-9a29-db15c13687c0

commit a216df2bcb304ad379e152f2f59ef7d942f54f3b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 8 02:22:57 2007 +0000

    Okay, last file moves for the night.  The test code has been moved to match the lib directory, and I have moved a couple of things into network/ instead of network/server, since they did not belong as much.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2180 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7e07e3dc843798bdbc7a03428ca054adaff2fb72
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 8 01:39:39 2007 +0000

    Moving all of the client and server code into a single network/ directory.  In other words, more code structure cleanup.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2179 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6d8068eddd0d29ec53f62557eb53f6ebb8e40591
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 7 23:56:59 2007 +0000

    Moving some of the stand-alone classes into the util/ subdirectory, to clean up the top-level namespace a bit.  This is a lot of file modifications, but most of them just change class names and file paths.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2178 980ebf18-57e1-0310-9a29-db15c13687c0

commit 162602323406117444ce4375ead91d8f92f2b31a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 7 18:20:08 2007 +0000

    Adding a libdir setting for puppet, so you can store your modifications to puppet in a separate directory.  This probably will still be somewhat limited because it will always depend somewhat on load order.  For instance, if you add a new provider, it might not be available when you expect, since providers are all loaded as soon as a type is loaded, which might happen before the libdir is set.  It should always work fine if you do not override it, but if you do override it, things might behave a bit strange.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2174 980ebf18-57e1-0310-9a29-db15c13687c0

commit 99c8a548c7980408cde0ffc51a3b7685a4965978
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 7 17:48:51 2007 +0000

    Adding a parameter to allow you to override how an exec refreshes itself.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2173 980ebf18-57e1-0310-9a29-db15c13687c0

commit dd71a514b6970d3b4f8167a4f29849b1b1fc631d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 7 17:29:37 2007 +0000

    Changing exec so that the checks apply to whether an exec is refreshed.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2172 980ebf18-57e1-0310-9a29-db15c13687c0

commit 31c9a6fc7c2bff76a5c3d49a89111dd3c84706df
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 7 17:29:19 2007 +0000

    Disabling the netinfo mount provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2171 980ebf18-57e1-0310-9a29-db15c13687c0

commit ad359f3ce5e2a792dcaa9586960d09bf4f639327
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 7 17:21:52 2007 +0000

    Reorganizing some of the tests.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2170 980ebf18-57e1-0310-9a29-db15c13687c0

commit d4031312ecddc6fab15b5bc9693b8af0a23a57b8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 7 06:47:10 2007 +0000

    Merging the state-rename branch.  This includes the diff from version 2156 to 2168.  All states should now be properties, with backward compatibility for the types that restricted themselves to the methods.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2169 980ebf18-57e1-0310-9a29-db15c13687c0

commit f6f72f2288e3e3427abf0883a7ec507becc90f08
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 6 20:30:23 2007 +0000

    fixing the cookbook link fix
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2165 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3a024d7600a7e74394da54b47084397cbcbae7aa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 6 17:09:23 2007 +0000

    Removing the default value for :ensure on mounts.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2164 980ebf18-57e1-0310-9a29-db15c13687c0

commit 71346e93d765af1aa61b8826dbb897e41ad38e85
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 6 06:13:21 2007 +0000

    changing the cookbook link
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2161 980ebf18-57e1-0310-9a29-db15c13687c0

commit f80bd5e41623f2bdb8c5495caa12274c36e1cad3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 19:24:58 2007 +0000

    Fixing exec so it actually works when path is specified as an array
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2155 980ebf18-57e1-0310-9a29-db15c13687c0

commit d117aa835fdce43f57c5a24743411da847570532
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 16:18:29 2007 +0000

    Updated to version 0.22.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2153 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1e902091f5298d7c3721c7e8a01f1b6f5a98331b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 16:18:26 2007 +0000

    Updated to version 0.22.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2152 980ebf18-57e1-0310-9a29-db15c13687c0

commit 463d3a820329a516207f193943c1a985154863eb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 16:18:21 2007 +0000

    Updated to version 0.22.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2151 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1d059b0b363aee47cfb776aebcdfc829000e4822
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 16:15:36 2007 +0000

    Fixing #470, I think.  I basically just threw away the validation and let suidmanager do it all when running commands.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2150 980ebf18-57e1-0310-9a29-db15c13687c0

commit 69a07b1d856efaba9bba8c9cccc8a4f11efcbfdd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 05:57:25 2007 +0000

    The resolve functionality in "test" is almost working...
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2149 980ebf18-57e1-0310-9a29-db15c13687c0

commit 42d15feb3c74e1cae6c70dcd3ea895796f0a8e7b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 05:43:51 2007 +0000

    Adding note about removing mounts netinfo provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2148 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2c79bbfe15c464bbf41a8b80f4aaff1d476a6b98
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 05:13:37 2007 +0000

    Oops, that last commit seems to have broken the rakefile.  Works again.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2147 980ebf18-57e1-0310-9a29-db15c13687c0

commit 38362016f97c891f4b5b0d1fb38f8491c8eeac05
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 05:03:34 2007 +0000

    Trying to get the functionality I had in previous tests.  Mostly I want
    to be able to load many files but run just a couple of methods, which
    test/unit supports via -n, selectively enabling -d.  I now can do this
    with the Rakefile, using 'TESTOPTS="-n <method> -d" rake <blah>,
    although I find that a bit kludgy (certainly more so than
    'rake -n <blah> -d <blah>').
    
    However, I also want to be able to automatically determine which test
    suites conflict (meaning something in one suite causes a failure in
    another), which too-often happens.  So, I'm going to mess around some
    with 'test' until I get that, and then see if I can move that
    functionality to the rakefile.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2146 980ebf18-57e1-0310-9a29-db15c13687c0

commit fd2982fdd6268dd5d0a517fc57e03f5f3e2b389b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 01:29:48 2007 +0000

    Fixing executable tests to take new rundir into account
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2145 980ebf18-57e1-0310-9a29-db15c13687c0

commit a62fd3e0ab6791c769e0e82dd83772927b1d4cee
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 01:20:20 2007 +0000

    Filenames for test must _end_ with '.rb'
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2144 980ebf18-57e1-0310-9a29-db15c13687c0

commit 12bf8163eff417a7014ca7f9d223c0f01719d3d1
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 01:19:52 2007 +0000

    Fix to make running tests work in ruby 1.8.5
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2143 980ebf18-57e1-0310-9a29-db15c13687c0

commit 18eebaf87e14db77dce9114078501efe7392fba4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 00:58:11 2007 +0000

    Fixing selector tests to get rid of a lame hash ordering bug in the tests.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2142 980ebf18-57e1-0310-9a29-db15c13687c0

commit a3a85d870c51d563d380b33b09b37d5fd144cd5f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 00:57:41 2007 +0000

    fixing rails test to take into account the fact that resources now do not always return arrays
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2141 980ebf18-57e1-0310-9a29-db15c13687c0

commit f1deaa8cc69a4d6255840cd2480be633635c2b86
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 00:56:49 2007 +0000

    Fixing autogen so it passes on non-Darwin systems.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2140 980ebf18-57e1-0310-9a29-db15c13687c0

commit 173f5cc03640a119e77a39047cd7f4f6f0fa1a4e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 00:34:11 2007 +0000

    Fixing a purging bug introduced by [2138].  I had to move the purge check to the recurse method, rather than the localrecurse method, because the purge check needs to happen after sourcerecurse.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2139 980ebf18-57e1-0310-9a29-db15c13687c0

commit 62ab87309abcbc80d469c68ee210f34f566f42c0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 1 00:12:39 2007 +0000

    Deleting the file even if a source is specified, as mentioned by Robert Nickel.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2138 980ebf18-57e1-0310-9a29-db15c13687c0

commit c8f38b7fee12eefb2bed00681b4952ac7ad3f14f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 31 19:38:02 2007 +0000

    Renaming "pelement" to "resource".  The old name is a holdover from before we had settled on "resource" as a term.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2137 980ebf18-57e1-0310-9a29-db15c13687c0

commit ea73cdbec49f9451d04902e69ad9fe4bf07a3c11
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 31 19:37:31 2007 +0000

    Fixing Files to work with the Resource server.  Basically I just remove the "target" value if it is a nullop, so that it does not cause a conflict with "contents" on the far side.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2136 980ebf18-57e1-0310-9a29-db15c13687c0

commit d7fde427ad38329c8ad044ce3a13e88d156ebaa6
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 31 18:19:12 2007 +0000

    Adding explicit umasks to these tests.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2135 980ebf18-57e1-0310-9a29-db15c13687c0

commit a4de59ca838b38d1c2f23e577865074c43b92593
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 31 16:51:10 2007 +0000

    Fixing rundir so that it is only set to be in /var if the process is named puppetd or puppetmasterd.  Otherwise the unit tests set it to /var/run/puppet, which has the chance to cause hangs.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2134 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9dc6cf6342a70c83b8422bffa3ada7f9e1e2c538
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 31 16:50:16 2007 +0000

    Removing all remnants of the old symlink type
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2133 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7889b0b252b24ff860dbf1a27bc78b928b187ae9
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 31 06:48:31 2007 +0000

    Revert 2125, and instead change the way the 'latest' version is selected from the sorted list of versions
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2132 980ebf18-57e1-0310-9a29-db15c13687c0

commit 97583b481da9fd905428ce34eb225d34081f5179
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 19:32:37 2007 +0000

    Updating changelog for 0.22.1, although I am not quite ready to commit yet.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2131 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8d90e5672e1f516310cd98077e8932b79c4970cf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 19:18:32 2007 +0000

    Puppet can now read files on stdin.  This means you can put "#!/usr/bin/env puppet" in the first line of a puppet manifest and then execute the manifest normally.  Yay!
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2130 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8821300528e0e0ba4c4f0055911d263ae0b0133b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 19:07:18 2007 +0000

    Providing a partial fix for #428.  Resources can now be deleted as long as all of their dependencies are also being deleted.  This, combined with the fix to #433, means that you can now explicitly specify the order of deletion, and everything will work as long as all required objects are being removed, too.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2129 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0a62369718e3299990ef36ad657e22f7032446c9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 18:43:39 2007 +0000

    Partially fixing #460, take 3 -- fully-qualified classes can now be included.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2128 980ebf18-57e1-0310-9a29-db15c13687c0

commit 788a74e80c6af40ca2a0d162c5445a0aa0ba866a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 18:39:21 2007 +0000

    Partially fixing #460, take 2 -- fully-qualified definitions can now be used.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2127 980ebf18-57e1-0310-9a29-db15c13687c0

commit a7bd7863fe67e2441013c8c26bcc112d76650dcd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 18:18:12 2007 +0000

    Partially fixing #460 -- fully-qualified class names can be used as parent classes.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2126 980ebf18-57e1-0310-9a29-db15c13687c0

commit c9e7699c2e98eb9622a6dfca2be1442aeb51dfd3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 17:57:36 2007 +0000

    Fixing #462.  The package sort order was always resulting in the lowest-version package being first, rather than highest, so I inverted the sort order.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2125 980ebf18-57e1-0310-9a29-db15c13687c0

commit add6e5d11d9057d027365237adcada0767fb2017
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 17:44:20 2007 +0000

    Applying patch in #465.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2124 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1f9ede298078a5121fdc5e5972530fb4a58b330e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 17:41:22 2007 +0000

    fixing #427. Facts now timeout, both in loading and downloading
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2123 980ebf18-57e1-0310-9a29-db15c13687c0

commit 049d79c56656469cdd832dea69a1cdf220f3c43e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 08:17:31 2007 +0000

    splitting the tagmail report into multiple methods and adding test code
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2122 980ebf18-57e1-0310-9a29-db15c13687c0

commit 727672fbfb1099fea1e3d6eb8ea8ad5f8f5b6e58
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 06:46:20 2007 +0000

    Not creating the listening server at all if --onetime is enabled.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2121 980ebf18-57e1-0310-9a29-db15c13687c0

commit af3863ea9fd26fd8594262583bf47c211668631e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 06:34:00 2007 +0000

    Fixing #440, albeit with a slightly hackish fix.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2120 980ebf18-57e1-0310-9a29-db15c13687c0

commit 01ec5ba96f8bf53f77974785d60ef79553488f08
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 05:27:56 2007 +0000

    Moving code from external sources into an external/ directory
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2119 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1374e4ebe54912225979cd30d4bc1bb74bbb7800
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 01:21:19 2007 +0000

    Moving the switch that disables the certificate authority into the main library, so they can be disabled in the configuration file.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2118 980ebf18-57e1-0310-9a29-db15c13687c0

commit dc580cf1258f62ce2cb690f132f231d76fa010ff
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 30 01:12:38 2007 +0000

    Fixing #433.  I basically just added checks to all the places where I add edges, to make sure automatic relationships lose out to explicit ones.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2117 980ebf18-57e1-0310-9a29-db15c13687c0

commit e418691b32f470bf78efd19a792f46b05645d86f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 29 22:52:19 2007 +0000

    Fixing the warning message related to namespaceauth.conf
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2116 980ebf18-57e1-0310-9a29-db15c13687c0

commit d3fc49dd9b15199472db26d52c5c6e3593014359
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 29 22:49:55 2007 +0000

    Fixing a problem that occurs when puppetd starts with an up-to-date configuration -- the default schedules and filebucket were not being created.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2115 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6c61f0cc1c3607cd61215c73aaa2cc9c13386f8b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 29 19:35:33 2007 +0000

    Fixing #463.  I redid all the autogen stuff so it can handle autogenerating string values for stupid os x.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2114 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8198e7e4861e9f98773176f78c23e1246399186a
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 29 18:32:46 2007 +0000

    pointing documentation to the wiki now
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2113 980ebf18-57e1-0310-9a29-db15c13687c0

commit 54c458ce690231980cb8f0c0a691880a4f3b788c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 29 18:16:16 2007 +0000

    Fixing #438.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2112 980ebf18-57e1-0310-9a29-db15c13687c0

commit 04017b3399f8e0b2421b38864fa6593dfc3eec78
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 29 17:30:47 2007 +0000

    Fixing #444.  I was losing the list of sources when creating new children.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2111 980ebf18-57e1-0310-9a29-db15c13687c0

commit b7560d54ebf1b8908e4961c6667cb9c8ec1e00dc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 29 00:53:29 2007 +0000

    A couple small bug-fixes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2110 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3aff4a0e9debfe22bd2a4b024b89410f481d09f7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 29 00:47:56 2007 +0000

    Doing more work on #113.  Mostly, just making sure remounts do not happen spuriously very often.  They will still have extra remounts when changing the value of "ensure", but that is not currently avoidable (similar to #199).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2109 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1cc8ecb0640420d6eb7a66fcb0d282337a263b84
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 29 00:07:05 2007 +0000

    Fixing info around newtype options
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2108 980ebf18-57e1-0310-9a29-db15c13687c0

commit dd502db3a976ef6b5091d9cb514427a5de21ff8f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jan 28 23:40:50 2007 +0000

    Fixing #113.  I added support in the transaction for self-refreshing, which just creates a special trigger for resources that have self-refreshing enabled.  Logging is a bit different for them, so it is clear why they are refreshing.  I still need to verify the remount methods work in the providers.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2107 980ebf18-57e1-0310-9a29-db15c13687c0

commit bf46e7d363bbedc683abd63ab159ed170803009a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jan 28 22:54:32 2007 +0000

    Adding a "self_refresh" option, so resources can refresh themselves if they have changed in the current transaction.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2106 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1f41c35c6c081c2f673d713588220e78d8c7c1b0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jan 28 20:43:22 2007 +0000

    Fixing #454.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2105 980ebf18-57e1-0310-9a29-db15c13687c0

commit c07494ff770d7e6432fed4e48e36f5b801b05f8d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jan 28 20:22:37 2007 +0000

    Fixing #441.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2104 980ebf18-57e1-0310-9a29-db15c13687c0

commit 992424462d5a7b1380de6a1e375b19d4c49163d8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jan 28 19:39:15 2007 +0000

    Fixing #431.  Collection was always returning an array, even when only a single value was passed.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2103 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0a9c8da2c31c22d6713b1c0d6b50ad4759fc6617
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jan 28 02:08:38 2007 +0000

    Changing how transactions check whether a resource is being deleted.  This is a small step towards fixing #428.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2102 980ebf18-57e1-0310-9a29-db15c13687c0

commit f6a3d94fc69e98c812e732f473b77bb34c55faeb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jan 27 22:53:12 2007 +0000

    Fixing #455.  A simple fix, fortunately.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2101 980ebf18-57e1-0310-9a29-db15c13687c0

commit 81025d1004f08fee26fa0766da2a87420ba7b971
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jan 27 20:30:21 2007 +0000

    hoo
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2100 980ebf18-57e1-0310-9a29-db15c13687c0

commit e29ef5c5bdb05337bec4e18af665399b886720f0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jan 27 20:13:54 2007 +0000

    Updating reference docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2099 980ebf18-57e1-0310-9a29-db15c13687c0

commit af4f7d7bebfc3b6346c86e90b99f37c98d6bca73
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 26 22:36:51 2007 +0000

    Fixing documentation references to refer to the wiki
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2098 980ebf18-57e1-0310-9a29-db15c13687c0

commit 37acfb9bc8675f33aef159f298e35e3e43998c4f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 26 22:15:49 2007 +0000

    Fixing #442.  You can now do: defined(File[...]) to see if a resource is defined.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2097 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2db68781a11de7b135d0abc332ed144c4e4b71c3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 26 21:58:38 2007 +0000

    Fixing #434.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2096 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6475487218f9dbe210f79e59b9b7c1be46f18280
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 26 21:54:18 2007 +0000

    Fixing #423.  Configurations now default to timing out after 30 seconds (tunable with configtimeout).  This only happens for remote configurations, not local configs compiled using puppet.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2095 980ebf18-57e1-0310-9a29-db15c13687c0

commit a081d418937248c33387f94af17849ecb7566e26
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 26 21:45:45 2007 +0000

    Fixing #418.  The problem was that multiple objects might include Daemon, which means that Daemon#shutdown can be called multiple times.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2094 980ebf18-57e1-0310-9a29-db15c13687c0

commit c33d5e4a686ccb8482c73ae290455a987b4f32e7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 26 21:45:02 2007 +0000

    Using Time instead of Time.to_i for compile time, because some versions of ruby have trouble converting Bignum to yaml
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2093 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6d791f511962c26c3e6d8eb2c7bdc7db687fe762
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 26 21:19:49 2007 +0000

    adding client name to processing line
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2092 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7670df215afa6cf92ac5e42375f880a05c09c98c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 26 20:48:00 2007 +0000

    Fixing #445.  Nodes can now inherit from default.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2091 980ebf18-57e1-0310-9a29-db15c13687c0

commit afe77b6bb543edc3f53183cdb55c230cfc0d6eb4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 26 20:37:44 2007 +0000

    changing selector error message
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2090 980ebf18-57e1-0310-9a29-db15c13687c0

commit aab3214359b39b4ecd26a4ecd415cc0d29304dbf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 26 20:02:58 2007 +0000

    reworking the selector case-insensitivity test
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2089 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9f8a3b1c45fa3957292ed0a743538559bb49c11e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 26 00:38:02 2007 +0000

    Removing an extraneous debug message, and fixing the case where the server compile fails in --test mode -- it resulted in an extra warning message.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2088 980ebf18-57e1-0310-9a29-db15c13687c0

commit ca1e36b2848dcd2357bb9944d0caaec722215104
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 25 21:53:30 2007 +0000

    Applying patch from #457, as submitted by Jeff McCune.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2087 980ebf18-57e1-0310-9a29-db15c13687c0

commit 81ae09e0aa51e32637459c71cd564bc57389bc6b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 24 22:57:05 2007 +0000

    making yum the default packager for centos
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2086 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5735d48231f079c88144635620fadf0f66f18287
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 23 20:33:40 2007 +0000

    Wrapping the resource generation methods in begin/rescue blocks so that failures cannot kill the transaction.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2085 980ebf18-57e1-0310-9a29-db15c13687c0

commit e8f3806d567505ecf8119b7457c1c652002d6910
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 23 20:13:50 2007 +0000

    Fixing error-catching in resources.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2084 980ebf18-57e1-0310-9a29-db15c13687c0

commit a3041cd5a2fc42e20445a8058aeea277a9d62c2b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 23 16:01:38 2007 +0000

    Updating changelog for 0.22, which fixes #429.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2083 980ebf18-57e1-0310-9a29-db15c13687c0

commit bda74bcd8e569d8be26bd1b958e38c0a15f5177c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 23 15:32:19 2007 +0000

    Fixing #415.  Configuration parsing now removes trailing whitespace.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2082 980ebf18-57e1-0310-9a29-db15c13687c0

commit f8115a79b97c89412616958f56ca1b723a6e2d24
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 23 15:28:21 2007 +0000

    Fixing #424.  The configuration compile time is now cached in the yaml cache file.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2081 980ebf18-57e1-0310-9a29-db15c13687c0

commit 53f3b8c8bbb5adc1e0eaf1806f328ec39534b3ec
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 23 15:26:33 2007 +0000

    Fixing rundir so that it does not throw an error when not running as root
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2080 980ebf18-57e1-0310-9a29-db15c13687c0

commit c285d7af0eea29e787eb889d393145da72402b56
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 23 13:49:32 2007 +0000

    Fixing #437.  Transactions now check whether graphs are cyclic, with a somewhat-useful error message if they are.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2079 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9720a9764155b707126c2254fab3fa4d2516b352
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 23 05:22:01 2007 +0000

    Fixing #436.  Also finally renamed pfile/uid.rb to match the state name.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2078 980ebf18-57e1-0310-9a29-db15c13687c0

commit db5494fff2fe521d616ba726e9ab2d3bafb94a21
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 23 05:11:50 2007 +0000

    Fixing #421 by changing the rundir to /var/puppet/run.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2077 980ebf18-57e1-0310-9a29-db15c13687c0

commit bfb5506ee194a1c45c18d2eb60aa0af590fffa7f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 23 04:01:04 2007 +0000

    Fixing #416.  There is now an option (downcasefacts) that determines whether facts are downcased by the client.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2076 980ebf18-57e1-0310-9a29-db15c13687c0

commit 53c3f5a0dba8e69aa9c668318f5c1004f0c84b08
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 22 19:44:36 2007 +0000

    Make rpm operations much faster by suppressing unneeded verification
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2075 980ebf18-57e1-0310-9a29-db15c13687c0

commit bcd81bc6c8ffdba7f5244d871e242daa6f5e5497
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 22 15:29:26 2007 +0000

    updating docs with new location for reference info
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2074 980ebf18-57e1-0310-9a29-db15c13687c0

commit f06941885d9e552720f20027202e0bbebacd2949
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 18 22:50:51 2007 +0000

    Moving the reference docs to the top level
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2073 980ebf18-57e1-0310-9a29-db15c13687c0

commit c03a8c99210fc2494d59be22ffb25f46ed02d774
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 18 22:06:34 2007 +0000

    updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2072 980ebf18-57e1-0310-9a29-db15c13687c0

commit 42b78a0689b1a8b108140f5e031ae2ef18a337a2
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 15 23:07:52 2007 +0000

    Use a specific ActiveRecord subclass to check for the proper existence of AR in the Rails feature test, so that we don't kill everything if the machine has Rails installed, but it's an old version that doesn't support polymorphic associations
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2071 980ebf18-57e1-0310-9a29-db15c13687c0

commit e64e64d55a71865de4a14e8e812e361aae8db5c4
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 12 01:02:48 2007 +0000

    Make the version string optional in the dpkg-query output parsing regex (Fixes: #425)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2070 980ebf18-57e1-0310-9a29-db15c13687c0

commit 32bbb3aceee92ae66fe38cc746984a176367de10
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 11 02:12:20 2007 +0000

    Clear existing yumrepo instances befoer listing - assumes list should only return "is" instances
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2069 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3dea96118a35ee5d8337609bb8b722630378bd99
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 10 03:25:25 2007 +0000

    Enclose values in single, not double quotes; otherwise if values have $ in them, the manifest will be incorrect
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2068 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5836c2340bd09eebc5a59fce408ae0d535b07f6f
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 10 03:24:05 2007 +0000

    Allow listing of yumrepos
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2067 980ebf18-57e1-0310-9a29-db15c13687c0

commit a676e082433611c733c646dc0ebc52db47d51255
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 10 03:23:34 2007 +0000

    Sync with latest in Fedora repo
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2066 980ebf18-57e1-0310-9a29-db15c13687c0

commit 965a82dd16f5479c505f12867fed1c88e2e8ae91
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jan 6 01:18:17 2007 +0000

    Minor cleanup, leave cursor at beginning of indented line, not its end
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2065 980ebf18-57e1-0310-9a29-db15c13687c0

commit c35b44120684356bacc6d1e1c19cb202ad12bbc0
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jan 6 01:07:23 2007 +0000

    Add indentation written by Mario Martelli
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2064 980ebf18-57e1-0310-9a29-db15c13687c0

commit f7d8350f97eeeb226d1d2c098452893537984107
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 22:39:12 2007 +0000

    Updating docs for 0.22.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2063 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4ee6c9701814c76d77bd22057d988ef06dbeefc9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 22:26:04 2007 +0000

    Updated to version 0.22.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2061 980ebf18-57e1-0310-9a29-db15c13687c0

commit 98ed0ae0d68f0cff940d11a0ff33d5194d31ee38
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 22:26:03 2007 +0000

    Updated to version 0.22.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2060 980ebf18-57e1-0310-9a29-db15c13687c0

commit 38cfa671d5f372b784a3705de18c732e72b8723d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 22:26:02 2007 +0000

    Updated to version 0.22.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2059 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3446dd60bd5d7790b60b2c8f474615ed4619279f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 22:25:21 2007 +0000

    Last round of fixes before the next release
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2058 980ebf18-57e1-0310-9a29-db15c13687c0

commit 954a285a25c990c48d68aeb46bf866cede0af007
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 21:55:18 2007 +0000

    Fixing puppet test task for older ruby versions
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2057 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7afa69cf4fcf0a42f4c3cbfce407f341b8a0d81d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 21:49:24 2007 +0000

    Fixing rake test so it works with the new puppet loader
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2056 980ebf18-57e1-0310-9a29-db15c13687c0

commit 54c387f36aa6032a8e16fa8a621c1ad803cf263a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 20:20:20 2007 +0000

    Adding #408.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2055 980ebf18-57e1-0310-9a29-db15c13687c0

commit d0ecc0e45cc5ff0cd5235e6ab9bcd031030973c2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 18:26:12 2007 +0000

    Messing around a bit with how tests work
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2054 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2728f500c62118a19b5f93640747cbfdbd97a9bd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 17:15:12 2007 +0000

    Adding a bit more comments to the :template function
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2053 980ebf18-57e1-0310-9a29-db15c13687c0

commit 704bd761057f075a0754bf6880bbb5c3b6014695
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 17:09:04 2007 +0000

    Fixing a few testing bugs that have crept in, and fixing a self-reference problem when configuring, graphing, and setting graphdir manually.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2052 980ebf18-57e1-0310-9a29-db15c13687c0

commit e75671111b56e14ef6459bb783a261752efa0089
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 05:12:37 2007 +0000

    Fixing #411.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2051 980ebf18-57e1-0310-9a29-db15c13687c0

commit 48bbd0b33720440d39d41cebf2c83ce1571cdc08
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 04:54:59 2007 +0000

    Further work on #407.  I forgot to actually connect it to the interpreter internals.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2050 980ebf18-57e1-0310-9a29-db15c13687c0

commit f6beef5c57381973c68468be9d4b1cac593a037c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 04:44:24 2007 +0000

    Fixing #407.  You can use external_node to specify a command to retrieve your node information.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2049 980ebf18-57e1-0310-9a29-db15c13687c0

commit f8f7c57b9e10477fc14f6bc655ad194598c91980
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 5 00:09:36 2007 +0000

    Don't rely on the type to store the actual NVR of the package; breaks in the provider tests since they call the provider slightly differntly
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2048 980ebf18-57e1-0310-9a29-db15c13687c0

commit 42c13e27535c868d6b70ba806554197ce3b833dc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 23:51:41 2007 +0000

    Adding a timeout to execs.  This is not really a sufficient solution, since it needs to be added throughout the system, but this is a good start.  The default timeout is 5 minutes.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2047 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6e10004e67b6d6f964c65edc27e8d2b350ba0175
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 22:45:48 2007 +0000

    Using Puppet.settraps in puppet executable, instead of old ad-hoc code.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2046 980ebf18-57e1-0310-9a29-db15c13687c0

commit 903b40b60ea21a272a6a26d046e95eecf79c9cc2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 22:40:29 2007 +0000

    Applying patch by mccune from #409.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2045 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5e470b3fa7a2160e8f16cc9052252d05412f79a7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 21:33:07 2007 +0000

    Regressing to always creating files/directories as root, rather than trying to do it as the right user.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2044 980ebf18-57e1-0310-9a29-db15c13687c0

commit bb72a08729b559b8b5a2c35509e2e20a6a605535
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 21:24:20 2007 +0000

    Throwing warnings instead of exceptions when dpkg-query produces info we cannot understand
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2043 980ebf18-57e1-0310-9a29-db15c13687c0

commit 08a56cbd4430ecebeba0b28909e3a0616e9a0091
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 21:05:14 2007 +0000

    Fixing module_puppet to use the usage? feature.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2042 980ebf18-57e1-0310-9a29-db15c13687c0

commit 239727c4ddc5db7c3764a4d113f781022d9c6d1f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 20:59:20 2007 +0000

    Re-enabling the dirchmod test and fixing its syntax
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2041 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2195b7637d52877aedf5b8e1d58b001d4a51dbd2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 20:43:50 2007 +0000

    Trying to fix #364.  Somewhat used the patch provided by nslm.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2040 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8fd976515e52effb4d99feebc3a9c58684ea9df8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 20:31:11 2007 +0000

    fixing filebuckets so that only the client bucket is created on clients
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2039 980ebf18-57e1-0310-9a29-db15c13687c0

commit d5651f80fe47b9aeb18bf0ba36e9618ccd33c7c0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 20:09:58 2007 +0000

    Fixing tests so they now include descriptions with all config options, which is now required.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2038 980ebf18-57e1-0310-9a29-db15c13687c0

commit a454dfb4fb60c26782b5ebbb6c6a5392321f9c1d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 19:47:50 2007 +0000

    Creating two filebuckets by default, one for the client and one for the server
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2037 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9c1a4464a95220c07c0dbc4b761bc70d4177183f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 19:47:05 2007 +0000

    Fixing #403.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2036 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2b271f8ab5853a6b48de14ca52a20979c96d42a4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 06:54:54 2007 +0000

    #398 is already fixed, but this will fix things so it cannot happen again
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2035 980ebf18-57e1-0310-9a29-db15c13687c0

commit f4b2e13dfbfa00c40400d979275b6b98bff05f4f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 06:44:01 2007 +0000

    Fixing #391.  Keeping track of times of compile and freshness checks.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2034 980ebf18-57e1-0310-9a29-db15c13687c0

commit 098081d88fe17b221bad00c17ccff42324823a7a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 06:29:14 2007 +0000

    Setting up specific allowed types for sshkey
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2033 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5292e4eb4dd57c0db3f2ab216216f9e21301f53b
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 02:21:27 2007 +0000

    Handle continuation lines in inifiles properly; stick a little closer to how python's ConfigParser parses
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2032 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2366c95a00570c074ebfbeb5f0150dfc994b7b23
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 4 01:01:31 2007 +0000

    Explicitly require puppet/filetype; otherwise, tests for this module fail
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2031 980ebf18-57e1-0310-9a29-db15c13687c0

commit cbd20f00899433c46ce7cb25f966e54217621d7f
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 3 23:22:29 2007 +0000

    Simple script to produce type info
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2030 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3b6bf05d93b82e433800a0a85ed4f09d13b17e62
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 3 19:51:21 2007 +0000

    Fix yum update breakage - query should not change the name the user gave us; instead, the fully versioned pacakge name is now stored in the instance parameter
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2029 980ebf18-57e1-0310-9a29-db15c13687c0

commit 587deea19a6d966217f2e70f3dd2f87a0b6b28ca
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 3 19:47:51 2007 +0000

    Tone down the debug spewage from yum
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2028 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9115fefb1a615e3d918c3eaa266135a651be17eb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 3 19:45:52 2007 +0000

    Adding extra connection statements and enabling concurrency support in rails, hopefully fixing #399.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2027 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0ef89715c590137299e89496bf6ee09d97a8b2b2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 3 19:43:42 2007 +0000

    Fixing #394.  LoadedFile was not checking to see if files went missing.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2026 980ebf18-57e1-0310-9a29-db15c13687c0

commit f58bda2b0bde6b4c1b464d058ada31df4a7ea3b4
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 3 19:42:33 2007 +0000

    The package name must match at the beginning of a line; otherwise we might get fooled by other yum spewage
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2025 980ebf18-57e1-0310-9a29-db15c13687c0

commit caabe9b3f5460fb5cc669017cab81be8aabf68a0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 3 19:09:52 2007 +0000

    Not saving tags right away.  This seems to cause postgres to explode.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2024 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9271142ada86319e25bb2a40ca84eb81e737c2d5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 3 18:44:02 2007 +0000

    Adding a check to the rakefile to throw a warning if the test task is missing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2023 980ebf18-57e1-0310-9a29-db15c13687c0

commit 651640c7c4773be43605e08625301e604547ac5c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 3 17:32:26 2007 +0000

    Fixing #401.  Transactions were trying to trigger every resource, even those that did not respond to the specified callback.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2022 980ebf18-57e1-0310-9a29-db15c13687c0

commit c140037f486ef4f0933e6a4a78b44f1105859b8b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 3 00:47:04 2007 +0000

    Not setting the graphdir to the puppet user, since it is only used by puppetd
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2021 980ebf18-57e1-0310-9a29-db15c13687c0

commit 127f0dff768a7205a1ed9552427f278c025b0d8b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 3 00:44:52 2007 +0000

    Using text for parameter values, instead of string, so the fields support larger amounts of text
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2020 980ebf18-57e1-0310-9a29-db15c13687c0

commit 86e434e8b9bcbeac7cd56adb8d2a581aafe53bae
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 2 22:24:32 2007 +0000

    Adding postgres as a dbadapter option
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2019 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2d25816b027b1837bded7b7a723a44ce1c77405e
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 2 21:31:41 2007 +0000

    Fix trac #354, and some other oddities around installing multiple versions of the same package.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2018 980ebf18-57e1-0310-9a29-db15c13687c0

commit 50965c7a0f4f9cf342c469f8d586d0a2f2b4efa8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 2 20:23:27 2007 +0000

    Changing "sourcematch" to "sourceselect"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2017 980ebf18-57e1-0310-9a29-db15c13687c0

commit 373f1770de9a6f3c741832cc86f0bcdc30a14bce
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 2 07:35:14 2007 +0000

    Adding sourcematch parameter to file.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2016 980ebf18-57e1-0310-9a29-db15c13687c0

commit cc05e8d97d233e698a5d70e7d5a288a78a942389
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 2 06:58:42 2007 +0000

    Fixing the error thrown when a dependency cannot be retrieved, WRT to #395.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2015 980ebf18-57e1-0310-9a29-db15c13687c0

commit 57d093309f7fcc003cbd420133a8923e1174260c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 2 06:54:05 2007 +0000

    Fixing #396.  Using the provider command instead of a direct exec, which automatically captures stderr.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2014 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0887fcdac1d2973f49de7022e1cc1882295d4aa3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 1 23:20:52 2007 +0000

    Modifying the "Resource#set" method to simplifying adding new parameters
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2013 980ebf18-57e1-0310-9a29-db15c13687c0

commit 56619d573bd2da90d798f35b290c4538ec3e1ffe
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 1 23:11:02 2007 +0000

    A couple of small fixes to pass existing tests.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2012 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4482691e4151663660a120ff1d053d3d43bb3faf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 1 21:33:02 2007 +0000

    Fixing some failing tests on fedora.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2011 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3e933cc6799f3cc62421109f7c998d2828adbf9a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 1 21:32:45 2007 +0000

    Enabling debugging except when running under rake.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2010 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3b2521b3cc3b647c7c421bf1d93d5967234e8676
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 1 21:08:45 2007 +0000

    Fixing graphing tests, and correctly only using storeconfigs in tests where rails is available
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2009 980ebf18-57e1-0310-9a29-db15c13687c0

commit 54a838e68e52b2eac353d70cb9281ca75d741839
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 1 00:08:05 2007 +0000

    Fixing #369.  I was not flushing changes to disk when ensure was out of sync.  This is going to become a common problem, and should probably be addressed by the framework rather than by individual types, but for now, it works.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2008 980ebf18-57e1-0310-9a29-db15c13687c0

commit b8f798f0ad88c990b5f9fe4c2d7b830aeb36a446
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 31 22:10:42 2006 +0000

    Fixing #390.  You can now add --graph to produce dot files, and you can then produce pngs or whatever from those.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2007 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0a1dd1ae8e5d77c22596579fbedfbe1db19b4445
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 31 06:27:24 2006 +0000

    Use Puppet::Util.sync instead of MonitorMixin to ensure that only one thread runs the executor at once
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2006 980ebf18-57e1-0310-9a29-db15c13687c0

commit 23b75e2739e62d18d044121fef98462b721b65cb
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 31 06:26:23 2006 +0000

    Fix a syntax error in lib/puppet/daemon.rb (That'll teach me to not run the test suite before committing)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2005 980ebf18-57e1-0310-9a29-db15c13687c0

commit 38244fb13d3506243e86ab443bbc7da36f4e07dd
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 31 06:25:13 2006 +0000

    Create rundir in a test that needs it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2004 980ebf18-57e1-0310-9a29-db15c13687c0

commit 27c1b49bb78729d0bb545f5998d4539c64f14d71
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 31 05:57:23 2006 +0000

    Switch puppet/daemon.rb to use Pidlock
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2003 980ebf18-57e1-0310-9a29-db15c13687c0

commit 16f7980ef4d65a89007079f15c04744b5bedfc65
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 31 05:45:53 2006 +0000

    Switch the run-lock to use Pidlock instead of the ad-hoc code
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2002 980ebf18-57e1-0310-9a29-db15c13687c0

commit e4843f1e5bf177577252a06598c5e84940e719ef
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 31 04:31:53 2006 +0000

    Make Pidlock#lock return true if we currently hold the lock
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2001 980ebf18-57e1-0310-9a29-db15c13687c0

commit e2525058b69fc07d4cb336b15f9a8afbd9e718b5
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 31 04:07:48 2006 +0000

    Add a Puppet::Util::Pidlock class, for use by locks and PID files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@2000 980ebf18-57e1-0310-9a29-db15c13687c0

commit c1035ccb7e0eb04c68b6e95b877f700d828b3be9
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 31 02:58:55 2006 +0000

    Add system library directories directly in puppettest.rb, so you don't have to do it by hand in every single underlying directory; also change the debug check slightly so that we actually put debug stuff only when we really want it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1999 980ebf18-57e1-0310-9a29-db15c13687c0

commit a333539dd03e52aabb4d60a6f64570378a47081a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Dec 30 23:31:27 2006 +0000

    Applying patch by rainhead from #392.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1998 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7e62bb041185b0ddbde058a26e22f00b38add78f
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 22:01:03 2006 +0000

    Add updated_at for all tables
    make sure it's removed from the resource hash that gets returned
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1997 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6d8b3f3c9db44aea50cad8b8a13cc56d3fff2f81
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 19:38:54 2006 +0000

    Removing debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1996 980ebf18-57e1-0310-9a29-db15c13687c0

commit da3e9d45436b4855d3fec156bd8465a17e03f92d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 18:15:53 2006 +0000

    Hopefully fixing tagging problem
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1995 980ebf18-57e1-0310-9a29-db15c13687c0

commit 280f0b46618d201e6e2f89f938c8d6b66dc12eea
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 18:08:15 2006 +0000

    Still trying to track down the tagging problem
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1994 980ebf18-57e1-0310-9a29-db15c13687c0

commit 79e9b4650afce007525b501aef189cc37762b568
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 18:05:30 2006 +0000

    adding a bit better error reporting when tags are bad
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1993 980ebf18-57e1-0310-9a29-db15c13687c0

commit 419cdf0ea090a1c1ce5dc2cdc51106f77393ae68
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 18:03:01 2006 +0000

    exiting sleeper after no more than two minutes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1992 980ebf18-57e1-0310-9a29-db15c13687c0

commit fa538bccd3c85ed40be3bf55c63f0c23753402b3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 17:45:39 2006 +0000

    Moving the tagging stuff to an "external" directory, instead of "lib".
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1991 980ebf18-57e1-0310-9a29-db15c13687c0

commit 01660045b77bb6b8e310cfd948ca50161348c748
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 17:28:40 2006 +0000

    Adding carriage returns to output of puppetrun
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1990 980ebf18-57e1-0310-9a29-db15c13687c0

commit f52e2d006fb3ae8f0b3f58deac8f4287708bdb7b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 17:27:30 2006 +0000

    Trying to clean up how rails is loaded
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1989 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3a313ad40521856cd9d8784b460c5403f6b4f98f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 17:27:11 2006 +0000

    Supporting arrays for the backup parameter
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1988 980ebf18-57e1-0310-9a29-db15c13687c0

commit 17306c01d4b608247cc76af0548a223119beac9a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 17:19:17 2006 +0000

    Features now load dynamically using method_missing, so that undefined features never throw errors.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1987 980ebf18-57e1-0310-9a29-db15c13687c0

commit 96f91f6856a60492e38427234acdf756f5825ab5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 05:03:07 2006 +0000

    Adding a bit more testing to mounts, and pulling a bit of the transaction into a separate method to shorten the apply() method.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1986 980ebf18-57e1-0310-9a29-db15c13687c0

commit a2b0ee6b3a8fd6f404ff61b8a64ce924e34b9eb7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 04:53:48 2006 +0000

    Finally writing unit tests for Transaction#trigger, and drastically simplifying the method in the process.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1985 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9ff80c082a673f18b57a0bf85a28b126a2533eed
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 04:20:51 2006 +0000

    *whew* Okay, simplified the splice method a bit, and I am actually somewhat confident that the stronger testing is correct.  I have had a lot of problems with tests usually passing but sometimes failing, mostly because of ordering problems related to multiple edges.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1984 980ebf18-57e1-0310-9a29-db15c13687c0

commit bb9c813feb3c6a27a3765d593cae56e800b46fb1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 04:15:36 2006 +0000

    Did a short-cut on the graphing, since we currently only support one type of subscription.  This solution still will not scale to all that many edges, but it works, although it will fail if we need to support different types of subcriptions.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1983 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7ae62a5dd2323c38b2dd5ba662d8c140b0f9345c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 00:05:03 2006 +0000

    A couple of small bug fixes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1982 980ebf18-57e1-0310-9a29-db15c13687c0

commit c4c3d77c58ae07560eafe838abbbf8271d923e57
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 29 00:01:52 2006 +0000

    Some tweaks to graph splicing, although I do not think it will be enough to handle some of the edge cases.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1981 980ebf18-57e1-0310-9a29-db15c13687c0

commit d07570b78d6c6cc670b4e6c770fb409b64c5b24d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 28 19:14:11 2006 +0000

    Looks like providers work again on Solaris.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1980 980ebf18-57e1-0310-9a29-db15c13687c0

commit 652982257d7d4b1fdfada25880d70b29702a4c69
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 28 08:06:46 2006 +0000

    I have not yet finished testing, but most of the providers now successfully pass arrays to execute() instead of strings, which means that the vast majority of execution problems are now gone.  I will finish testing tomorrow, hopefully, and will also hopefully be able to verify that the execution-related bugs are fixed.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1979 980ebf18-57e1-0310-9a29-db15c13687c0

commit 038d6a6e79da9db5a12ca3e78c4539178cc49b44
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 28 07:20:03 2006 +0000

    Fixing #387, hopefully.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1978 980ebf18-57e1-0310-9a29-db15c13687c0

commit a5cf0560c8f3d1119659c87473455eb141608e51
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 28 06:49:03 2006 +0000

    Fixing #388.  Paths now look a lot cleaner.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1977 980ebf18-57e1-0310-9a29-db15c13687c0

commit 883c64aaa0c0a81fa299424dec4a61f73c910820
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 28 00:08:07 2006 +0000

    A couple of small bug-fixes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1976 980ebf18-57e1-0310-9a29-db15c13687c0

commit 65e76e837654671e51c4ae3cb132452d23a83cef
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 27 19:53:02 2006 +0000

    Fixing #353.  It was as simple as exiting with a different error code depending on the results of the call.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1975 980ebf18-57e1-0310-9a29-db15c13687c0

commit d3a7c28ac7ea9a68a024d89cf39f1f6502b0a900
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 27 19:42:30 2006 +0000

    Fixing #386.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1974 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1d057396de46eab64f757d79c7996d0ca0245043
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 27 19:37:57 2006 +0000

    Switching files to use a filebucket named "puppet" by default.  Also, set up MasterClient to create that default filebucket.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1973 980ebf18-57e1-0310-9a29-db15c13687c0

commit 92ff7121ec656b36815b14533fba5e92c165eb08
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 27 18:20:37 2006 +0000

    Fixing #365.  I am not sure what the problem was in previous versions, because the new graphing stuff changed the solution to this problem, but it all works now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1972 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8ff7e0c75eda0291a169074c67fa0a90db9c4e7b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 27 17:18:35 2006 +0000

    Closing #362.  Case-insensitivity is handled by downcasing all host names.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1971 980ebf18-57e1-0310-9a29-db15c13687c0

commit f1dc103396511d30aa8ae42036b6aa1aee712da3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 27 07:02:45 2006 +0000

    Hopefully fixing #355.  I could not actually reproduce the specific problem, but I found a couple of issues around the problem and they are all gone now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1970 980ebf18-57e1-0310-9a29-db15c13687c0

commit a3ce917ca16cbe509b95f7d5b6adc83687e64bf8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Dec 23 17:06:53 2006 +0000

    Fixing #348.  Overrides now support an extra end-comma.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1969 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5e58273cdfbbea944d5faeba4af70c5eb940ddb7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Dec 23 06:30:29 2006 +0000

    Loading the rails lib early on, so that the rails configuration parameters are accepted on the CLI, as noted in #357.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1968 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2742995c0396beb9de9598b43ecde6b20b203d32
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Dec 23 06:26:39 2006 +0000

    Fixing #343.  Collections and definition evaluation both now happen on every iterative evaluation, with collections being evaluated first.  This way collections can find resources that either are inside defined types or are the types themselves.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1967 980ebf18-57e1-0310-9a29-db15c13687c0

commit 85b19c4815c4e605bcfa561298786ca3c1f68de0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Dec 23 05:19:52 2006 +0000

    Fixing #349.  Doing some hackery so defined types can now (again) be used as dependencies.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1966 980ebf18-57e1-0310-9a29-db15c13687c0

commit 311aba94792c2984d2944c9ac99a4ff5d79db697
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Dec 23 05:05:58 2006 +0000

    Fixing #66.  The "defined" function previously checked for definitions and types, but since types and classes can't have the same name anyway, the function now works for classes.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1965 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9bb5c50d0b30b4dfb82b6b705dfcbf0e126a9d61
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Dec 23 04:49:56 2006 +0000

    Not downcasing facts any longer, closing #210 (although not using the patch from mpalmer, since I had not noticed the patch was there).  Also, making all nodes, classes, and definitions case insensitive, closing #344.  Finally, I added case insensitivity to the language in general, which should preserve backwards compatibility and probably makes the most sense in the long run anyway.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1964 980ebf18-57e1-0310-9a29-db15c13687c0

commit be711d357857f5e6d4a28a22bd60dd89e9e136c0
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 22 01:28:01 2006 +0000

    Allow execution of bare strings as long as there's no attempt to change uid/gid
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1963 980ebf18-57e1-0310-9a29-db15c13687c0

commit c616572d59b8b5142f64193ab87073fbc3b788f7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 21 18:09:51 2006 +0000

    Fixing test to work with new style of graphing.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1962 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2c2177c74c55af4ee009b0b9835bf824128d5091
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 21 02:47:47 2006 +0000

    *whew* Fixing the vast majority of the graph-related performance problems.  I found a simple solution to handling events produced by generated resources, and that basically fixed all of the performance problems.  Transaction tests still fail, but I wanted to get the fix in now so I do not forget it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1961 980ebf18-57e1-0310-9a29-db15c13687c0

commit 299bdc1b23bbf39e436f5e67b598d60606ca6513
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 20 19:41:38 2006 +0000

    Fixing #380.  The problem was that a method was sometimes returning :absent when I expected it to return nil when the group was not found.  All fixed, yay.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1960 980ebf18-57e1-0310-9a29-db15c13687c0

commit e605c4aadd3a3c4cccbd01661c21a715ec3f0773
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 20 19:12:01 2006 +0000

    Adding some defaults to users, mostly for darwin because it is kinda stupid when it comes to this info
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1959 980ebf18-57e1-0310-9a29-db15c13687c0

commit 41562cc9a2e0d491ccd1c6627292c46b6e442903
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 20 18:57:57 2006 +0000

    Adding test for the fix to #361
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1958 980ebf18-57e1-0310-9a29-db15c13687c0

commit a9dd641c215c1ef78eef3c3edcc8c4edb0cec95a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 20 18:53:56 2006 +0000

    Fixing #361, I think.  It appears to be a problem with missing a setting for realname.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1957 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1bdf3794184b45a4e14633785d0be5cd9320348b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 19 22:47:37 2006 +0000

    Applying patch from #384, by jgonzalez
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1956 980ebf18-57e1-0310-9a29-db15c13687c0

commit 253376a2add0e1d5d7828da5dd94eae18938f38b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 19 22:46:01 2006 +0000

    Fixing #385.  Puppetca correctly exits with non-zero exit code if there are no certs to sign.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1955 980ebf18-57e1-0310-9a29-db15c13687c0

commit 36e8d65bbdf236203741d3a3b0d98a1eb51a75a9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 19 22:42:39 2006 +0000

    Fixing #372 and #374.  All is not perfect, since OS X still cannot set UID, but it is much better.  There is still plenty of bug-fixing to do on other platforms, I expect.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1954 980ebf18-57e1-0310-9a29-db15c13687c0

commit 115ec095357171381e2af3aa5ebbd61164b40064
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 19 22:04:09 2006 +0000

    Re-add support for tags and file/lines
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1953 980ebf18-57e1-0310-9a29-db15c13687c0

commit f851ca64cf3861ffa63cf2698fd4719361803f82
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 19 05:47:57 2006 +0000

    Adding :replace aliases, as requested in #366.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1952 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9f4870637ce57d548d23c0b3330200014327c268
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 19 04:57:57 2006 +0000

    All rails *and* language tests now pass, with the exception of a language/resource test that passes by itself but fails when run as part of the whole suite.  Also, I added deletion where appropriate, so that unspecified resources, parameters, and facts are now deleted, as one would expect.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1951 980ebf18-57e1-0310-9a29-db15c13687c0

commit dc5f4dc0d01dc2ccb4679afbf3802a7ab0f3c126
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 19 02:08:11 2006 +0000

    Fixing most of the rails stuff.  I think everything basically works now, and now I am just going through and making sure things get deleted when they are supposed (i.e., you remove a resource and it gets deleted from the host's config).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1950 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5a52855c1da2cb4716587bf0223c6d20eddaf00a
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Dec 18 20:49:08 2006 +0000

    Fix up a problem with initialising an sqlite3 data store, presumably only with older versions of Rails
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1949 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3c93400026dbb98cffe149c873feebb5ab9e5be7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Dec 18 19:23:28 2006 +0000

    Adding daily snapshot tasks, altho they only work at my site
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1948 980ebf18-57e1-0310-9a29-db15c13687c0

commit 10dbb17ed1b2241618f13973d02e17de1dd4e44f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 17 22:19:49 2006 +0000

    Some more graph optimizations; I think I am now close enough that I am basically just going to spend a bit more time making sure the modeling is right in the transactions, and then walk away for now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1947 980ebf18-57e1-0310-9a29-db15c13687c0

commit b01ffe6fa50e92a4586199096c1f6995ad8dd617
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 17 00:08:02 2006 +0000

    Adding a simpler and *much* faster tree_from_vertex method, and using it instead of the default one
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1946 980ebf18-57e1-0310-9a29-db15c13687c0

commit a481f9b75b1cedeb5368e133b69395c97b389d48
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 17 00:06:19 2006 +0000

    Requiring puppet/rails in the interpreter before Rails.init
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1945 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9df9e4bbff1f4490a2107ff2930da035e11406cf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 17 00:05:46 2006 +0000

    Getting rid of the db init stdout and reindenting
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1944 980ebf18-57e1-0310-9a29-db15c13687c0

commit 02cfc44af55f719235a58ca9cc23f7d29e49cd3c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Dec 16 23:59:31 2006 +0000

    Simplifying the splitpath method a bit, altho it is still strangely slow
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1943 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9fa779469071438f2160e45e8ab75d74e220f63b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Dec 16 23:59:08 2006 +0000

    Simplifying the the Puppet::Type[] method
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1942 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0dbe96d26b7f592a4c9ec7055b66e0dc14701a9b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Dec 16 23:58:24 2006 +0000

    Redoing the benchmarking a little bit
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1941 980ebf18-57e1-0310-9a29-db15c13687c0

commit f622e18eff86d7a65e47cb6fd3ac07cceb5b3ecb
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 21:10:22 2006 +0000

    Go back to restype and remove STI classes, they were more trouble than they were worth.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1940 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9ad62d24093563e947d846fa3771bcebf550b8ee
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 21:01:59 2006 +0000

    Modifying rails test
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1939 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0dac4ec6be5d89bb17ca474516e9b900d361f1b4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 18:05:39 2006 +0000

    Changing some of the error output.  This gets rid of the duplicated information that occurred when definitions or nodes were duplicately defined, and it tightens the error output a bit.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1938 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0f78282588d5350f7e0bc04cb5e9d14c3620d65d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 17:39:22 2006 +0000

    Adding unit test for #364.  It passes on OS X.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1937 980ebf18-57e1-0310-9a29-db15c13687c0

commit dc96f987824d5ee66e36fed42065088467926a06
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 01:44:47 2006 +0000

    Adding some selectability to host creation for testing.  Using find_or_create_by results in lots of saves instead of one big one at the end, which causes initial saving to be much slower.  To switch between them, just modify the value of "create" at the top of Host.store.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1936 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6b5d001a41061fec36fa0b45bf197ea696bb6882
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 00:33:30 2006 +0000

    I like to checkin one-liners a lot.  I'm cool.
    set the type when we create the object, might be a bit faster
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1935 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7173c1f761373fa6d48c3418255ec9fceabe7aee
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 00:30:48 2006 +0000

    Don't use find_or_create_by_title since titles aren't unique.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1934 980ebf18-57e1-0310-9a29-db15c13687c0

commit e28c6045e7645f011cdad308701c1c34f80f9cae
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 00:17:16 2006 +0000

    Remove old files, don't require pp anymore
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1933 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3d070f71b55aefd2191b0027ecb2d2384e305085
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 00:14:42 2006 +0000

    These are the same versions from changeset 1837
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1932 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0cd579997a8ea619968c58a39493d28b9af87e6d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 00:11:00 2006 +0000

    Some rails modifications
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1931 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6d9ae0cf32f43cbcffa2ac8fb355c65d8ceeb9a0
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 00:07:19 2006 +0000

    Don't dump out debugging stuff.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1930 980ebf18-57e1-0310-9a29-db15c13687c0

commit 342a4a61ab3da8dd0b5efbd7b075dd659ae1db51
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 00:06:00 2006 +0000

    Don't symbolize the param names
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1929 980ebf18-57e1-0310-9a29-db15c13687c0

commit 56098cad3fd22d0385481ad7af02771d60c85580
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 15 00:05:34 2006 +0000

    Rename some stuff I missed when it was reverted
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1928 980ebf18-57e1-0310-9a29-db15c13687c0

commit b5fd82260d5cd05e594c6adf87f1c1017ecf07fe
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 14 23:35:50 2006 +0000

    acts_as_taggable plugin
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1927 980ebf18-57e1-0310-9a29-db15c13687c0

commit 98ebb870d4da4efb0abcec52405c52bfff528cf0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 14 23:24:19 2006 +0000

    Moving the mount provider tests into a subdir, and fixing the basedir calculation in tests so it does not matter where the test is called from
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1926 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8714e14c10492361cac62726a3c1abe44d9ec23f
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 14 23:20:26 2006 +0000

    New rails stuff redux.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1925 980ebf18-57e1-0310-9a29-db15c13687c0

commit 026ec4f3996655f01b85b03c6db79c9e15d035c5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 14 23:13:34 2006 +0000

    Small changes to the test rakefile.  This rakefile still is not completely satisfactory, as I cannot use it to load all libs but only run on test method, which is often important when trying to track down a bug that only occurs when multiple files are loaded.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1924 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8be0d33b4a48c2fe32a3d3e67f426586b1d88811
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 14 22:56:33 2006 +0000

    Fix service.list, in particular for the redhat provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1923 980ebf18-57e1-0310-9a29-db15c13687c0

commit 29ded0199011a34547dd7acc231f662757e681d1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 14 22:50:28 2006 +0000

    Fixing painfully difficult to find bug in defining exported resources
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1922 980ebf18-57e1-0310-9a29-db15c13687c0

commit 72f8b3205296e1242ff63061fb7a6770cd423609
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 14 19:53:47 2006 +0000

    Reworking the package tests.  Now providers are tested individually
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1921 980ebf18-57e1-0310-9a29-db15c13687c0

commit f5e7915b54a4bdb21067ad82142751b542345969
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Dec 14 03:34:31 2006 +0000

    Rewriting the test rakefile so test directories can be more than one directory deep.  This will be particularly useful for providers.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1920 980ebf18-57e1-0310-9a29-db15c13687c0

commit 40c0905b175a050433862f700ac8e244e3cbbcbc
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 13 21:34:32 2006 +0000

    Fix up the filelist for gems, so that all of lib/puppet gets put into the gem, not just the top-level .rb files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1919 980ebf18-57e1-0310-9a29-db15c13687c0

commit c35988aafbbbe3882ff1a5a7ff3ee472f77fb4c1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 13 17:59:21 2006 +0000

    Another round of bug fixing.  Now everything passes except mounts, at least on OS X.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1918 980ebf18-57e1-0310-9a29-db15c13687c0

commit ab604527648e91b84529c3fb83761b5e9b269b77
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 13 16:40:12 2006 +0000

    Fixing the next round of bugs, mostly little things but I had to modify transactions so they are willing to delete implicit resources even if they have dependencies, else we would often not be able to purge files at all.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1917 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3937aa3519652612899b5d22e3f99ffb9aa8c40c
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 13 02:31:15 2006 +0000

    Never default to rpm provider; use up2date on RedHat. This also works on RHEL5, which does not have up2date, the provider properly fails over to using yum
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1916 980ebf18-57e1-0310-9a29-db15c13687c0

commit c7633468d990edc63e32e59521178b30740b7516
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 13 00:47:37 2006 +0000

    You can now use the "resources" type to purge resources.  I still need to modify transactions so they do not purge resources that have relationships.  Also, apparently the noop metaparam was never actually working; now it is, and there is a test for it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1915 980ebf18-57e1-0310-9a29-db15c13687c0

commit 64d96e9891da508293508491370084d85d977ae7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 12 23:47:45 2006 +0000

    adding a note about facter to the faq
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1914 980ebf18-57e1-0310-9a29-db15c13687c0

commit e96049fa3a84cfabc8a8a61c418b56eab5183a6d
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 12 22:19:36 2006 +0000

    Change the filelist slightly so that the externally-included lib/rake doesn't end up in the gem
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1913 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8829aa7d489fffaba31c0ff8ac4ff0562357551c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 12 21:33:54 2006 +0000

    Adding a metatype to manage resources of a specified type.  For now, this metatype just supports purging unmanaged resources.  Also, fixed a few tests here and there
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1912 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4abbdc13f4a1762eb5d848763dde1780f6408de8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 12 20:11:35 2006 +0000

    Working some on the export/collect problem.  It actually works now, but there are not yet sufficient tests for it, so I will leave the bug open until we have got the new work in place.  I also added a "rails" feature, so I do not have to keep testing whether ActiveRecord is defined.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1911 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8fee5383eb214b7e4aa38b0438f23d2a326fb103
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 12 17:31:21 2006 +0000

    Adding a short note on variable interpolation
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1910 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8accd804cf816642248e935b0e4c7adcea291443
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 12 17:08:53 2006 +0000

    Adding a bit of clarity about file locations
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1909 980ebf18-57e1-0310-9a29-db15c13687c0

commit dd1c4b9049da2e6860b8f055d67f0bd56af5cc87
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Dec 12 05:56:15 2006 +0000

    Add a task to build Debian packages more-or-less 'directly' out of SVN.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1908 980ebf18-57e1-0310-9a29-db15c13687c0

commit 01fecb135c794b927eef5a586a369f42d0365c92
Author: mpalmer <mpalmer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Dec 11 23:33:35 2006 +0000

    Add external Rake task file as an svn:external, and modify the Rakefile to add lib to the load path
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1907 980ebf18-57e1-0310-9a29-db15c13687c0

commit b3eb9f1a24ec9d0fc294ce0fe57c929df8baedf5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Dec 11 23:32:15 2006 +0000

    All tests should now pass, with the possible exception of some tests that might fail when all tests are run in one process.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1906 980ebf18-57e1-0310-9a29-db15c13687c0

commit e287d1e1f1f4ff912ad8c049f8abe44d085011fa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Dec 11 20:44:38 2006 +0000

    Almost all tests now pass.  I have basically reached the point where I was before I integrated graphing, except that all of the relationship handling is now inside the transaction, and any kind of recursion (including file) is *tons* easier to model and manage.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1905 980ebf18-57e1-0310-9a29-db15c13687c0

commit 37a059be9538bc90e09a17a45573fc44da6861b4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Dec 11 18:16:52 2006 +0000

    Most tests now pass in the whole system, but there are still about 8 cases that do not work.  I am working on those now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1904 980ebf18-57e1-0310-9a29-db15c13687c0

commit 374c830a217cd69f28797d8a771b725a0346b32e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 10 18:41:02 2006 +0000

    Removing the explicit load for most types in type.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1903 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8aebdfc2a2dcc1c34488f2cd270d339a3ac135bd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 10 00:46:20 2006 +0000

    Removing the reference to the symlink type
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1902 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2d43580c50b6bb23ce1c938af276c69af750beb9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 10 00:45:50 2006 +0000

    Most of the graph handling is now done, and all of the recursive types (basically just file, tidy, and component) now correctly use the generation mechanisms in the transactions, instead of sticking them in their @children array.  Now I just need to go through the rest of the tests and make sure everything passes.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1901 980ebf18-57e1-0310-9a29-db15c13687c0

commit d3b76d6e0d8891c8109d559f61363cd11c246529
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Dec 10 00:43:02 2006 +0000

    Removing the symlink type finally.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1900 980ebf18-57e1-0310-9a29-db15c13687c0

commit cdd1e6e19e7b8fc340ebcf543a30564c76e71eb9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Dec 9 16:40:50 2006 +0000

    Another intermediate commit.  Most of the graphing work itself is now done, but I am in the middle of converting files to use the graphs and at the same time am writing some actually decent tests for the file recursion stuff.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1899 980ebf18-57e1-0310-9a29-db15c13687c0

commit 01e5b692f0ba209956f4b84c7e597bd867154cbf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Dec 6 20:41:10 2006 +0000

    adding note about --no-client
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1898 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8ff90eff2f3107e47584a474545b4e10cda287a4
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 1 17:54:43 2006 +0000

    Fix bug in example code: all resources now must have names
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1897 980ebf18-57e1-0310-9a29-db15c13687c0

commit f3a0c488b884b59df790fce0192dd1a2d735ad7c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 1 04:11:11 2006 +0000

    Most of the graphing work is now done.  I have also added the generator work in transactions, but I need to migrate files to using it.  Until that migration is done, files will not work correctly for many cases.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1896 980ebf18-57e1-0310-9a29-db15c13687c0

commit a7354d0e3bd77625de9da5f5846bfefbc6d88121
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Dec 1 00:21:45 2006 +0000

    Fixing link to fsconfig reference
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1895 980ebf18-57e1-0310-9a29-db15c13687c0

commit ccd7b581bf990df618d410441c1f8d349aa225d9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Nov 26 09:55:04 2006 +0000

    Intermediate commit -- I am ready to start pushing the graph stuff into the types and transactions, which will break everything for a little while.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1894 980ebf18-57e1-0310-9a29-db15c13687c0

commit c301b1b8f7fb417cf61b6ad4975eaa3714100306
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Nov 21 02:08:46 2006 +0000

    Make spec file work for Fedora < 5 and RHEL < 5
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1893 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3e3f70ec2a0dd8fc4f5718d3a97fec410493d638
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Nov 17 20:15:23 2006 +0000

    Adding GRATR and the beginnings of graph integration.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1892 980ebf18-57e1-0310-9a29-db15c13687c0

commit 34c89b01fd957a4ed59c0505a002184be8b410fc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Nov 17 16:03:30 2006 +0000

    fixing typo
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1891 980ebf18-57e1-0310-9a29-db15c13687c0

commit b3c3de22fd5f46e762c6a7c650a50b169b1e6089
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Nov 17 04:58:04 2006 +0000

    Fixing #342.  Classes needed to have their namespaces set to their fully qualified names, so that contained code and definitions looked for definitions starting with that fq name.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1890 980ebf18-57e1-0310-9a29-db15c13687c0

commit 407610138972c02266420c8ff76a55ce19537f96
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Nov 17 04:56:22 2006 +0000

    Fixing mount tests after fixing the backward compatibility
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1889 980ebf18-57e1-0310-9a29-db15c13687c0

commit 185ba8cc77bb90ac566ed2b6fe9132ae5c78d378
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 16 21:47:50 2006 +0000

    Fixing backwards compatibility in mounts -- they were not correctly copying the path over to the name
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1888 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5f5417aada66f65d9aeb924f64aebb28077286cf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 16 21:45:30 2006 +0000

    Fixing #347 (I hope).  Doing a provisional require of rubygems.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1887 980ebf18-57e1-0310-9a29-db15c13687c0

commit c369e4023eb391dbb95b8efa6fb19a2ecdfab709
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 16 21:37:34 2006 +0000

    Fixing #346 -- on some scripts I accidentally used "feature" instead of "features"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1886 980ebf18-57e1-0310-9a29-db15c13687c0

commit c3c5851c0ff4bc9a07572646ef7fb745f09cf79f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Nov 15 01:26:53 2006 +0000

    Fixing configuration storage -- there was a check being done that caused false values to get converted to nil values, which failed in the database
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1885 980ebf18-57e1-0310-9a29-db15c13687c0

commit 25d563b1152701b55490fbb5c83c6b177ed8b4f1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Nov 14 17:11:05 2006 +0000

    updating syntax matcher to highlight dollar signs in prototypes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1884 980ebf18-57e1-0310-9a29-db15c13687c0

commit 60af8e23fee55b646fd7e86007efa37aae115570
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 16:59:22 2006 +0000

    Updated to version 0.20.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1882 980ebf18-57e1-0310-9a29-db15c13687c0

commit e313a265bb3378b7b27f33f73d137f81672b2492
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 16:59:21 2006 +0000

    Updated to version 0.20.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1881 980ebf18-57e1-0310-9a29-db15c13687c0

commit 68d9e785bba10937e67122b7c2d5e7b57a45b08d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 16:59:20 2006 +0000

    Updated to version 0.20.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1880 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7d46167e017f4fa95342a439547f732c06e7e13c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 16:58:46 2006 +0000

    Updating changelog for 0.20.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1879 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7fa96cb82d438f214b33af688c065bd6d387f609
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 09:46:15 2006 +0000

    Another small fix, just for solaris
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1878 980ebf18-57e1-0310-9a29-db15c13687c0

commit db5d9d427efeaa4b376adc2bf3f4e0e95b7fe03e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 08:50:09 2006 +0000

    Another testing fix
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1877 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0efa96921ba4babf6554a9674b6dc415408fed36
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 08:48:09 2006 +0000

    Fixing more tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1876 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5d2f95475d558197a56674cb641fa5def8f16065
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 08:40:35 2006 +0000

    Fixes to the test system, and a couple of small fixes to the main code.  Also, disabled the "port" type, because I cannot seem to model it correctly.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1875 980ebf18-57e1-0310-9a29-db15c13687c0

commit f8b9e866082794e5d7fb0082ebf4df24823b2053
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 07:55:05 2006 +0000

    Fixing a small syntax error in the port provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1874 980ebf18-57e1-0310-9a29-db15c13687c0

commit 35de0e3bd74e94de92ac0e9209a4884cf07c88a0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 07:49:48 2006 +0000

    Temporarily reverting all of the recent rails work so that I can release 0.20.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1873 980ebf18-57e1-0310-9a29-db15c13687c0

commit 26b32b953d8e097785b38aa90e5e4bff6ae9247e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 07:24:09 2006 +0000

    adding svn keyword to notify type and reindenting
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1872 980ebf18-57e1-0310-9a29-db15c13687c0

commit e936fccc16c88d6060a6cc7324bd4bf223cb8c33
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 06:42:53 2006 +0000

    Removing the caveat so that the log message is always provided during a run.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1871 980ebf18-57e1-0310-9a29-db15c13687c0

commit b2e98b1b9fa5b178819c3d5532a22066d159e978
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 06:27:19 2006 +0000

    Fixing #339 for real this time -- fixing the log message
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1870 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1bf97cdf3f9b43ee88bda36d1a05aa3d0011598c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 06:11:39 2006 +0000

    Fixing #339, and the bigger problem it concealed.  Metaparams are now only added to resources that do not explicitly set them.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1869 980ebf18-57e1-0310-9a29-db15c13687c0

commit 50d28efe13f8ce525b32e16c7c882361a86a9758
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 05:32:15 2006 +0000

    Applying patch from #335
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1868 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0a35c340c544351f6c82817dc2cff7b9fc6895ff
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 05:21:28 2006 +0000

    Removing some debugging, and trying to track down a bug where symlinks get recreated for now reason
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1867 980ebf18-57e1-0310-9a29-db15c13687c0

commit ff06a8d6865550c5bfe1a2960df82651fe5277eb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 05:13:38 2006 +0000

    Ported sshkey over, yay.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1866 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4e96031745a215b84f1ae45916050f35741f9201
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 04:20:57 2006 +0000

    Adding a NetInfo provider for hosts.  Yay!
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1865 980ebf18-57e1-0310-9a29-db15c13687c0

commit 064ddbc218c56de91318c9dfedc481e67ed60750
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 03:28:47 2006 +0000

    Hosts now work again, and it should be straightforward to create a netinfo provider, too.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1864 980ebf18-57e1-0310-9a29-db15c13687c0

commit bb80c1bb2c977fe462fa9d74031929547c2bbc40
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Nov 13 02:07:07 2006 +0000

    Ports are still broken, but I need to work on something else while I am thinking about how to fix them.  Stupid /etc/services.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1863 980ebf18-57e1-0310-9a29-db15c13687c0

commit 25b575fcdd588a619a89ac3fce474f4f35de3fb1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Nov 12 22:17:49 2006 +0000

    adding a comment to namespaceauth.conf
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1862 980ebf18-57e1-0310-9a29-db15c13687c0

commit b2a49c936fac6bce5785d1cb9a825daf56c3a510
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Nov 12 22:16:59 2006 +0000

    adding up-to-date example configs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1861 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4d5f70f017c744229ea83cda03c2c4334a010d1d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Nov 12 21:25:13 2006 +0000

    Trying to get a netinfo provider for mounts working, but i give up.  I am leaving it in place but marked as highly experimental.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1860 980ebf18-57e1-0310-9a29-db15c13687c0

commit bd169b44a0ce58413fb5b031c3f12cd4ca6f4cbe
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Nov 12 04:12:48 2006 +0000

    Mounts work again, at least with the parsedfile provider.  I still need to create a netinfo provider, but it should be short and easy.  And, painfully, I still need to port the other six or so subclasses to this new provider.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1859 980ebf18-57e1-0310-9a29-db15c13687c0

commit 138150d1f240d3c249b2985540af1a7e327802e1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Nov 11 22:11:14 2006 +0000

    Doing some refactoring in how state values are set.  The primary motivation was to provide the ability for the "newvalue" method to specify whether the provider should still be called, and if so, in what order (e.g., before or after).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1858 980ebf18-57e1-0310-9a29-db15c13687c0

commit 568501319a1ac175883afa55c2377e0c1d09dc4e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Nov 11 19:07:28 2006 +0000

    Fixing the state class so that blocks are optional for values.  This is useful for cases where you want to specify values for validation but you want a method called on the provider instead.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1857 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0643113a7a8127ce559aa0cce0b81df5e99d386c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Nov 11 07:40:16 2006 +0000

    An intermediate commit.  All of the classes that use parsedfile are assuredly broken, since I have basically completely rewritten it.  These classes have been a thorn in my side almost since I created them, yet they have been significantly less functional that I wanted.  So, I decided to do the rewrite I have been putting off, just to spend all of the maintenance time now so I do not spend 3 days on them every release.
    
    Tomorrow I will be porting all of the existing types (including cron, hopefully) over to this new base.  This will also make it possible to add other types of providers to these classes; we should be able to reuse the netinfo provider for os x types, and we should be able to create a cron provider that writes to /etc/crontab instead of user crontabs.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1856 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7c8614b0589f7c843d17b9d16720419817394cee
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Nov 10 23:52:02 2006 +0000

    Adding module for parsing files.  This module is only included into the parsedfile provider base class, but it is cleaner to have it broken out like this.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1855 980ebf18-57e1-0310-9a29-db15c13687c0

commit f9d62136a76c9a8e6885261e6930414e8ae1f496
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Nov 10 20:06:49 2006 +0000

    Fix silly regexp mistake where lines with values containing '=' were parsed improperly.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1854 980ebf18-57e1-0310-9a29-db15c13687c0

commit b44ebe21d550663af82c44b090b29f8cc902ed36
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Nov 10 17:51:47 2006 +0000

    Fixing some warnings
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1853 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9f8849e81a34a2cf5d81a1c5fdea2aa9d51aa63d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Nov 10 06:01:03 2006 +0000

    Mostly small changes toward 0.20.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1852 980ebf18-57e1-0310-9a29-db15c13687c0

commit 10634d69c654686d05f34a39e1ba1c603a13a3cb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 22:50:34 2006 +0000

    Fixing #324.  Mkusers was not specifically ignoring the root user, and it is now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1851 980ebf18-57e1-0310-9a29-db15c13687c0

commit 349e2aabe04a770e277b1a0a36cf180610f7f5b3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 22:33:54 2006 +0000

    Updating docs with correct links for the doc restructuring, as mentioned in #322.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1850 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5a4f80786d5b2079ce977e9cccd5503e3f8f2580
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 22:12:59 2006 +0000

    Fixing #326 -- parseonly now just creates a simple Master without opening a port
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1849 980ebf18-57e1-0310-9a29-db15c13687c0

commit cbb4578f054afcbad5b4d7a49601d2207da18d0b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 22:02:49 2006 +0000

    fixing #327; debian packages now correctly register their "latest" status
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1848 980ebf18-57e1-0310-9a29-db15c13687c0

commit 87fd075e6ac3876909c9bc2c6eabbed3fd9f1f5d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 21:43:39 2006 +0000

    Adding a simple report that just duplicates client logs onto the server
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1847 980ebf18-57e1-0310-9a29-db15c13687c0

commit 10c860f4e05cfb6bb3f6836478e093026e364161
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 21:25:02 2006 +0000

    Slightly more doc updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1846 980ebf18-57e1-0310-9a29-db15c13687c0

commit 114cd8ac4191eab4ee0c59a19e8a3e6b4dddc3d3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 21:24:44 2006 +0000

    More doc updates -- I moved the doc headers into separate files, rather than having them in the code
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1845 980ebf18-57e1-0310-9a29-db15c13687c0

commit b14982a1354f477ee30ab44d340ea1e47e902257
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 21:06:47 2006 +0000

    Small fixes here and there.  The rails changes needs to be pushed through the collection code, so I am committing so Blake can take a look at that.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1844 980ebf18-57e1-0310-9a29-db15c13687c0

commit aa2da583d03b0f72ec27304c7de079767075f7e6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 20:47:30 2006 +0000

    Updating docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1843 980ebf18-57e1-0310-9a29-db15c13687c0

commit f438bab057fac9e02e2d8f71276e7a7fbc933427
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 20:32:39 2006 +0000

    Refactoring the doc generator a big
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1842 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1f548f943a804d2fdd7fdb838a1da6806f468344
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 20:29:35 2006 +0000

    Updating documentation
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1841 980ebf18-57e1-0310-9a29-db15c13687c0

commit 87aea8b6eec95a139cd3a35c5f7033d454a24cfb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 19:00:10 2006 +0000

    Fixing rrdgraph report (as marked in #334); also, expanding the docs on all of the existing reports.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1839 980ebf18-57e1-0310-9a29-db15c13687c0

commit 51882d98289eea6b362ea99231d480728e937797
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 18:59:16 2006 +0000

    The new rails files.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1838 980ebf18-57e1-0310-9a29-db15c13687c0

commit cf166c25911f521cdf12178ebbe0b39f81473b35
Author: shadoi <shadoi@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 9 18:57:01 2006 +0000

    Rails stuff part 1
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1837 980ebf18-57e1-0310-9a29-db15c13687c0

commit 28c283c73388c3f76e1d715c41ebd82ac35ca9a4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Nov 8 20:51:44 2006 +0000

    Fixing some sticky problems with checksums when just using the "check" metaparam.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1836 980ebf18-57e1-0310-9a29-db15c13687c0

commit 744ded30a02883dd8ce5fbf2b847f10acb226d6e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Nov 8 05:22:24 2006 +0000

    Merging the code over from the oscar branch.  I will now be doing all development in the trunk again, except for larger changes, which will still get their own branch.  This is a merge of the changes from revision 1826 to revision 1834.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1835 980ebf18-57e1-0310-9a29-db15c13687c0

commit dc4d98091a5566be289830839f1d6eb39367b42c
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 23 23:41:39 2006 +0000

    Syncing up with FE repo specfile (only mandatory changelog entries)
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1825 980ebf18-57e1-0310-9a29-db15c13687c0

commit 033de88eedba55623bf3c71597d87b5da8df46b4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 23 16:24:27 2006 +0000

    Making some documentation changes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1824 980ebf18-57e1-0310-9a29-db15c13687c0

commit e741b7b7552918fbca849a59c17baaf0351e16df
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 20 22:25:57 2006 +0000

    Fixing some Class.to_s handling
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1823 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0930b5e5f86305393016f3169cce4018672773de
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 20 19:58:41 2006 +0000

    Mostly rewrote intro doc
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1822 980ebf18-57e1-0310-9a29-db15c13687c0

commit 71924ad2515b30926c1c7b5f31725304bd11cb4e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 20:07:37 2006 +0000

    Updated to version 0.20.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1820 980ebf18-57e1-0310-9a29-db15c13687c0

commit a488dd99e009a66329028cb5885283445e4f4600
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 20:07:34 2006 +0000

    Updated to version 0.20.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1819 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4688d9360b35b61e8dcf165f35e6eb689f0d7866
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 20:07:31 2006 +0000

    Updated to version 0.20.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1818 980ebf18-57e1-0310-9a29-db15c13687c0

commit f9f939ec2e071a7854fb2aab32ffe07d371206d8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 20:06:55 2006 +0000

    Updating changelog for 0.20
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1817 980ebf18-57e1-0310-9a29-db15c13687c0

commit e3b4f234a39f264b488c80fd526fe820a09fc16c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 19:54:16 2006 +0000

    Another round of bugfixing, including finding out that the tagmail report was leaving zombie processes lying around
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1816 980ebf18-57e1-0310-9a29-db15c13687c0

commit 07f616badf4e067000fa5d49c2698b8b6b5a7609
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 19:23:25 2006 +0000

    A round of bug-fixing on OS X
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1815 980ebf18-57e1-0310-9a29-db15c13687c0

commit ed38ba4473ac34e18ef83f761a83b312e6c41921
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 19:16:25 2006 +0000

    Doing some work on the DSL.  It behaves a little more like the real language now, although overrides use the same syntax as normal resources, and there is no facility for specifying defaults
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1814 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7b34e25d1cb4c70568ed05e01556a12994b19dbf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 18:15:43 2006 +0000

    Another round of bug-fixes in preparation for 0.20.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1813 980ebf18-57e1-0310-9a29-db15c13687c0

commit ead49c673e352166d87f47cbbea2086d4c1fc2f7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 14:40:50 2006 +0000

    Applying patch from #318.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1812 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7261cbb0a5c05d5e18573ccdeb7c3ce84ba11f68
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 14:39:33 2006 +0000

    Applying patch from #319.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1811 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3a6683ea720a53bd2ddb34b9215bdc676bdcdb2c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 06:01:18 2006 +0000

    Changing the realize() function to be just syntactic sugar for a collection -- it literally creates a collector object now.  The benefit of this is that it is late-binding, so file order does not affect whether a resource is available.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1810 980ebf18-57e1-0310-9a29-db15c13687c0

commit 05080ff50b73597f0a3f86242b63985a1e5e6003
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 05:28:03 2006 +0000

    adding docs for virtual resources
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1809 980ebf18-57e1-0310-9a29-db15c13687c0

commit a05b8f5116af3a4908d5aed2a6a320b227609ec7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 04:45:55 2006 +0000

    Adding a "realize" function that can be used to make one or more resource non-virtual.  It is just syntactic sugar for a collection by title.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1808 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8a4bf1bd9d5ed674c0eed2c64d8a5f587452ede2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 04:03:01 2006 +0000

    Hacking cron so that it works even though I have changed ParsedType.  The whole stupid thing needs to be rewritten from scratch, but this is the best i can do for 0.20.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1807 980ebf18-57e1-0310-9a29-db15c13687c0

commit d77d6d4f9ec20c830c4e9ed34c8e2f1197386f4c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 03:43:48 2006 +0000

    Adding prefetch of providers to transactions.  Nothing is using it yet.  I wrote it for cron jobs, but it is too much work to fix this for cron jobs right now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1806 980ebf18-57e1-0310-9a29-db15c13687c0

commit f1ebef038b12231e876510c7247a82f6367a8d45
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 18 00:22:45 2006 +0000

    Fixing virtual object collection.  I apparently broke it when I added rails collection back, and I never created any end-to-end tests.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1805 980ebf18-57e1-0310-9a29-db15c13687c0

commit 52105c61ac135cc197910fc3a6c32d43fa8ce6cd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 17 23:07:03 2006 +0000

    Fixing doc generation for objects w/out their own docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1804 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1d35f2822aaa673cb6f3ea6da9c773b89ccb25ee
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 17 22:45:57 2006 +0000

    Fixing a bug that only occurred if a defined resource was already defined in memory.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1803 980ebf18-57e1-0310-9a29-db15c13687c0

commit ada77773591f5e17ddcdb4af6c20ded3715ecda9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 17 21:53:40 2006 +0000

    sshkey now uses a provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1802 980ebf18-57e1-0310-9a29-db15c13687c0

commit 95f2fe70bf63791fb691d539281f5cfbfd1fb664
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 17 21:38:30 2006 +0000

    Ported mount over to using providers
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1801 980ebf18-57e1-0310-9a29-db15c13687c0

commit 86dae84dad4cd5688029c398109b15b6074cf3c4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 17 19:47:32 2006 +0000

    Fixing ports to now use a provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1800 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7e488b2dfb9e4c04a9be0c5f824947b55fd0226c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 17 19:41:37 2006 +0000

    Working on migrating the parsedtypes to using providers for the parsing aspects.  This just converts the hosts; I will convert the others next.  This is all work from the sync-retrieve-refactor branch, modified to work with trunk.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1799 980ebf18-57e1-0310-9a29-db15c13687c0

commit ce4c49417b7f8192c7a0da757745dafc32fb6de5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 17 15:14:09 2006 +0000

    Fixing puppetmodule to use env to find ruby
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1798 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0472b2410225927226272c5ecc14d1ab6cdb9f09
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 17 15:12:48 2006 +0000

    First batch of fixes from running tests.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1797 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5ddbc3659d4a46bd9a688702668df0301d57ade1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 17 06:09:41 2006 +0000

    Fixing sbindir path, thus fixing #302.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1796 980ebf18-57e1-0310-9a29-db15c13687c0

commit 29ff4f3963b78939ed67ee5b526393ae14e744a0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 17 06:03:14 2006 +0000

    Switching from calling "up" on the migration directly to using the "migrate" method.  It is still not checking versions or allowing external forcing of migration, but it is a start.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1795 980ebf18-57e1-0310-9a29-db15c13687c0

commit b4ebe76e6aa14efee6c5c56a61c4ee7f5784997e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 17 03:06:45 2006 +0000

    Rewriting nearly all of the tests for the tidy type, and redoing the internals of the testing.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1794 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9e5ea8c2c52f3d4b48fa01eb56264b323a2c4581
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 22:01:40 2006 +0000

    Fixing the test scripts so that the library path
    is modified in ruby instead of in the env line
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1793 980ebf18-57e1-0310-9a29-db15c13687c0

commit 72688e3444c96655cf108099a0db92ed6b6bd91f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 19:12:44 2006 +0000

    Fixing gennode; it was not actually adding the class code to the generated node.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1792 980ebf18-57e1-0310-9a29-db15c13687c0

commit 816c5ce7243bdad1157985dd23a7333b9a8ccf0a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 18:26:41 2006 +0000

    Adding a ruby header to all of the tests so that they can now be executed as normal ruby scripts.  Using multiple commits because I am having some svn problems.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1791 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1d56ca63ef3405c1599f64bf9a6ae899debf1434
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 18:26:33 2006 +0000

    Adding a ruby header to all of the tests so that they can now be executed as normal ruby scripts.  Using multiple commits because I am having some svn problems.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1790 980ebf18-57e1-0310-9a29-db15c13687c0

commit 624eddfb279c640f42fb08438c9d0879ea53f8cf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 18:26:14 2006 +0000

    Adding a ruby header to all of the tests so that they can now be executed as normal ruby scripts.  Using multiple commits because I am having some svn problems.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1789 980ebf18-57e1-0310-9a29-db15c13687c0

commit 67704e78ff77967814eb39fc919ad2373ca4e6ff
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 18:26:09 2006 +0000

    Adding a ruby header to all of the tests so that they can now be executed as normal ruby scripts.  Using multiple commits because I am having some svn problems.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1788 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0859da957443b94daa73c19b9842eaf612146f7b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 18:25:47 2006 +0000

    Adding a ruby header to all of the tests so that they can now be executed as normal ruby scripts.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1787 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1020c04c11f2bde3522a78860ff9ae8a97933f35
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 18:04:46 2006 +0000

    Making all test suites executable, adding some tests for handling changing files from one type to another, and fixing #304.  The problem with #304 was only occurring when backing up to a filebucket (I can only think the example code was wrong)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1786 980ebf18-57e1-0310-9a29-db15c13687c0

commit dad596e6c5e241607eee92e54890b53affeba02b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 03:54:18 2006 +0000

    Fixing #291 -- the problem was that instead of throwing an error on a missing server, puppet was just exiting.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1785 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9a8636c3c22ca5b7d244e1a80e9c2bf8b4dffe8f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 02:46:50 2006 +0000

    Moving all of the configuration parameters out of puppet.rb into puppet/configuration.rb, and adding a PATH setting as requested in #307, although it does not include a default.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1784 980ebf18-57e1-0310-9a29-db15c13687c0

commit 86b33867b156f9d80bdccf895f16ec0ac3a8a204
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 02:35:23 2006 +0000

    Adding the ability to have hooks for configuration parameters.  This will simplify things like setting the shell path.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1783 980ebf18-57e1-0310-9a29-db15c13687c0

commit 32deb3ff495921769ee0cc6f245e121e59336b1a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 02:06:48 2006 +0000

    correcting warning about spaces before parens
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1782 980ebf18-57e1-0310-9a29-db15c13687c0

commit c48f68c79a76b2c7de408ee2e98d2f03d468f8a2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 16 01:01:35 2006 +0000

    Adding patch from Jeff McCune, #317
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1781 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9bd5593b98b7de2bb5293439abde7200d9f97412
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Oct 15 20:07:29 2006 +0000

    adding explicit load of ast/branch to its subclasses
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1780 980ebf18-57e1-0310-9a29-db15c13687c0

commit b9ed053939f0e4c3a4c906b252127d8228ac7d26
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 14 16:24:35 2006 +0000

    Format tweak for fact tutorial.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1779 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5403a91dc3824f9b31873187bba0451ad60a327a
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 14 16:16:29 2006 +0000

    Adding a summary of using facter and using imported facter facts with puppet.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1778 980ebf18-57e1-0310-9a29-db15c13687c0

commit 90e4c7b0debd24624f44b6f4fb007491304d7791
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 14 15:59:48 2006 +0000

    Adding some documentation to the programmer's documentation introducing the concept of providers.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1777 980ebf18-57e1-0310-9a29-db15c13687c0

commit f5453504c003e7aad50a887242892309971616f8
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 14 15:54:29 2006 +0000

    Adding some documentation to the programmer's documentation introducing the concept of providers.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1776 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7b755909cc570c9900b4faef5313794e33ddebef
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 12 17:15:26 2006 +0000

    New documentation hierarchy: fixing indexes.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1775 980ebf18-57e1-0310-9a29-db15c13687c0

commit db24e17550c2c39d3e8f65dd21728ef7dbf82737
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 12 17:11:58 2006 +0000

    New documentation hierarchy: fixing indexes.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1774 980ebf18-57e1-0310-9a29-db15c13687c0

commit 628f6c984af258a3c9c3ba2c8c6c18cf76929613
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 12 17:00:11 2006 +0000

    New documentation hierarchy: fixing indexes.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1773 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9c01560bf9420cabe7332d7c31c3215bec2e7880
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 12 16:37:05 2006 +0000

    New documentation hierarchy: adding indexes.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1772 980ebf18-57e1-0310-9a29-db15c13687c0

commit ba33249e5fcd3c3818b4ccc0ce884d46b6db6408
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 12 15:58:16 2006 +0000

    New documentation hierarchy.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1771 980ebf18-57e1-0310-9a29-db15c13687c0

commit da7cb9fc2339cea48d727a6256b1a66769b14af0
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 12 15:57:41 2006 +0000

    New documentation hierarchy.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1770 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7b0e528141fc740f0719ff1e52d4f600833abd8c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 11 17:32:28 2006 +0000

    I was stupidly creating an error but not raising it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1767 980ebf18-57e1-0310-9a29-db15c13687c0

commit 29cce30adc0c0fd41c3c81431c9b68b0b68f4025
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 11 02:34:46 2006 +0000

    Moving methods around so they are alphabetical
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1764 980ebf18-57e1-0310-9a29-db15c13687c0

commit ed89572efd487b595aed943cd6b7a2920003b49d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 10 20:59:10 2006 +0000

    Committing the metatype branch -- this is just splitting the type.rb code into multiple files for readability
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1762 980ebf18-57e1-0310-9a29-db15c13687c0

commit b4fd8d18ed58bbfb947d5f348f28141c92c22f3a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 10 19:06:09 2006 +0000

    Catching missing ldap correctly in puppetrun
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1759 980ebf18-57e1-0310-9a29-db15c13687c0

commit b5344f2acbf447be853af78f34a4b1562ae060f2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 9 22:51:55 2006 +0000

    Fixing the problem reported by Adnet Ghislain where facts do not load on later runs.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1757 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f9264bcc30312cc927eac72c66415eae7b69e88
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 9 18:34:57 2006 +0000

    Fixing code from [1754] -- I stupidly did not even do a parse check, and I had to refactor the patch because parameters do not have code associated with their values.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1755 980ebf18-57e1-0310-9a29-db15c13687c0

commit 94484df1a8d00e0eae35cbe09c0e5d2ff4b16f49
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 9 18:29:44 2006 +0000

    Applying patch from #234 from David Schmitt.  This is also untested, and the patch is slightly modified.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1754 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4a8c5dcb03af548d48972057387fd6810bead49e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 9 18:20:01 2006 +0000

    Adding modified patch from #256 -- apt now uses "responsefile" for the preseed file.  This is untested, though, since I do not know how to test it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1753 980ebf18-57e1-0310-9a29-db15c13687c0

commit a7c88e8bc42a686f0e1b88b4473caa8a18cffea6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 9 18:00:45 2006 +0000

    Adding patch from #308.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1752 980ebf18-57e1-0310-9a29-db15c13687c0

commit 08900a409350acfb3bea62ea8470095eeae450da
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 9 17:52:22 2006 +0000

    Fixing #298 - refreshonly now correctly deals with specified false values
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1751 980ebf18-57e1-0310-9a29-db15c13687c0

commit 133c17fa6665256cafdcd1cf76d2ae50233c44f4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 9 17:41:36 2006 +0000

    Fixing #305 -- logs now reopen when Puppet restarts, and there is also now an autoflush mechanism available so logs will flush to disk immediately.  I also now trap USR2 and reopen logs when it is sent, so if you just want to reopen logs you do not have to restart the whole process.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1750 980ebf18-57e1-0310-9a29-db15c13687c0

commit c3cc16274d2a2cc0b394bb7ec7fbb8b45491abcc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 9 16:44:38 2006 +0000

    Fixing #309 -- files now correctly replace any number of slashes with a single slash.  Also, trailing slashes are removed, since that is how Puppet expects to find files internally.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1749 980ebf18-57e1-0310-9a29-db15c13687c0

commit c8ea361d6af3cac2022d3726aafc1d9ae7c52f97
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 9 16:36:52 2006 +0000

    Fixing #301 -- s/logfile/logdest/g
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1748 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1c6cb608660165d688adc4aafce7e773d732be22
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 9 16:33:13 2006 +0000

    Fixing #310 -- users no longer autorequire their homedirs, and files now autorequire their owner and group.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1747 980ebf18-57e1-0310-9a29-db15c13687c0

commit 34f8337c68ff6f4b8ff57e604bae77529eb0d16e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 7 20:52:19 2006 +0000

    Refactoring reporting.  Reports are now modules instead of simple methods.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1746 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5b6ee8c823a78f26cd1a1ad957da3d234910b9c2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 7 00:19:10 2006 +0000

    Adding a "genmodule" equivalent to classgen, which we will use for reporting
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1745 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1cdbe5237df68a4cc3b0945fa8469e5190882288
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 6 18:45:39 2006 +0000

    Added a section about testing.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1744 980ebf18-57e1-0310-9a29-db15c13687c0

commit 96aabac9607a6031bc2a53d802720d11ec9cf311
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 6 17:21:44 2006 +0000

    adding id tag to tags.page
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1743 980ebf18-57e1-0310-9a29-db15c13687c0

commit d532ea8acc0d3755082c13a4bee05debe95297c2
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 6 16:12:10 2006 +0000

    Documentation edit
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1742 980ebf18-57e1-0310-9a29-db15c13687c0

commit addfe16f8c81598915911edcb56ad560992d9032
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 6 16:07:33 2006 +0000

    Adding a document to outline the use of tags
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1741 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0716c8357046fe2fff40c168bff6863b9b4dc4a5
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 6 13:49:11 2006 +0000

    Expanded documentation for rrdgraph report.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1740 980ebf18-57e1-0310-9a29-db15c13687c0

commit 675495cb21c716f325b23b50ac526929bf592f0f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 6 03:13:15 2006 +0000

    Many, many, many performance improvements in the compiler (I hope).  I did not change functionality anywhere, but I did some profiling and significantly reduced the runtime of many methods, and especially focused on some key methods that run many times.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1739 980ebf18-57e1-0310-9a29-db15c13687c0

commit ab0141a2e03542902fc0d83d76b55d5e4b8811d0
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 5 22:18:05 2006 +0000

    More specific configuration and argument documentation.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1738 980ebf18-57e1-0310-9a29-db15c13687c0

commit c7a73812a84178425f774af0fa14d97c67469451
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 5 22:17:00 2006 +0000

    Documented signals the puppet daemons accept
    Documented host type to make it clear ipv6 is supported
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1737 980ebf18-57e1-0310-9a29-db15c13687c0

commit aea6eafed31bbe5e5b2103dcfc161f8633af0ece
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 5 22:05:33 2006 +0000

    adding id tag to reports
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1736 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f058a0b1bef40edb7a077e370cd3bb5db241e65
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 5 21:22:22 2006 +0000

    Fixing the rrdgraph report so that it creates a separate rrd directory for each host
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1735 980ebf18-57e1-0310-9a29-db15c13687c0

commit b8920939ade4d9956a7f3b2ba3a2c77a3f788c58
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 5 20:47:20 2006 +0000

    Fixing weird case where the default node is in one node source and the real node is in a different one
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1734 980ebf18-57e1-0310-9a29-db15c13687c0

commit 06a7d345bef7a41cb6320e14a1dd9476505fd65f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 5 19:24:44 2006 +0000

    Fixing ldap nodes -- they were always returning true because i was returning an empty array for missing nodes.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1733 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2489764b12031f20022d08e662ee3fa826a75b95
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 5 16:00:42 2006 +0000

    Changed document priority.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1732 980ebf18-57e1-0310-9a29-db15c13687c0

commit c1afdec08fdb4f698cead85af37dbef34fa5bf39
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 4 22:56:20 2006 +0000

    Another minor formatting fix.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1731 980ebf18-57e1-0310-9a29-db15c13687c0

commit c9f6113aa353227fefa8fbcc721579563ab5f93e
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 4 21:49:57 2006 +0000

    Missing tick.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1730 980ebf18-57e1-0310-9a29-db15c13687c0

commit d72c970481247978fde8fb22f6f49fac090d296b
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 4 21:44:56 2006 +0000

    Adding some documentation on reports.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1729 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8a8191faad0c0b94c73a11e04d9ab04f938880c8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 4 19:46:47 2006 +0000

    updating install docs with new suse pkgs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1728 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1213d6060ae8fdf75dace54b978804a37aa70c31
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 4 18:44:26 2006 +0000

    Removing some left-over debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1727 980ebf18-57e1-0310-9a29-db15c13687c0

commit 28cee40689440388994a4768bd301ae32c8ecc05
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 4 18:24:24 2006 +0000

    Merging the changes from the override-refactor branch.  This is a significant rewrite of the parser, but it has little affect on the rest of the code tree.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1726 980ebf18-57e1-0310-9a29-db15c13687c0

commit e0e291332bd4676962a28c7b220ae5c5e9651c0a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 4 18:00:25 2006 +0000

    Renaming logfacility to syslogfacility as recommended by lutter.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1725 980ebf18-57e1-0310-9a29-db15c13687c0

commit 30fa686137993ab35fbc135b499f8c5f4ad7ec8b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 4 16:34:04 2006 +0000

    Adding configurability to the syslog facility, using the "logfacility" parameter.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1724 980ebf18-57e1-0310-9a29-db15c13687c0

commit da0c862bad2aaa8a7b318314c02e8e6d5f98807f
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 4 14:08:48 2006 +0000

    Do restart as stop + start, since sending HUP to puppetmaster doesn't work (see trac #289)
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1723 980ebf18-57e1-0310-9a29-db15c13687c0

commit ee76231a439c56a4a248ab8d0d9e86918bc05d99
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 3 19:43:38 2006 +0000

    adding links to the real deb pkgs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1720 980ebf18-57e1-0310-9a29-db15c13687c0

commit dc6d4265f7d3e5be18917cfb194abe7ae3cfde9c
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 3 13:32:39 2006 +0000

    Comment out the setting of PUPPET_LOG, so that puppetd uses its default
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1719 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6e6cb8f56c6840034a1f711d28907cbc7e5fa81f
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 2 17:08:36 2006 +0000

    Messages will now be at current loglevel, regardless of whether the object path is displayed.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1712 980ebf18-57e1-0310-9a29-db15c13687c0

commit 30f9fa3134809d38e5cf397946d30bbb3622fb38
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 2 16:50:05 2006 +0000

    Added parameter 'withpath' to toggle printing of the object path.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1711 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8cc3c8a1fc6e1923b10ad2cea7bd615cd39f77d0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 2 16:04:25 2006 +0000

    adding a note about single-quoting node names
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1710 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5da80dbbfe93d542834bd4672f1af8ebd337877b
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 29 22:08:40 2006 +0000

    - New type Notify for sending client-side log messages
    
    	type.rb
    	type/notify.rb
    
    - Added server-side functions named after each of the syslog log levels (debug, info, notice, warning, err, crit, alert, and emerg)
    
    	 parser/functions.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1708 980ebf18-57e1-0310-9a29-db15c13687c0

commit f53b9b05dbc596f4baa4bff3760b10df9f5fb59f
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 29 22:05:19 2006 +0000

    - New type Notify for sending client-side log messages
    
    	type.rb
    	type/notify.rb
    
    - Added server-side functions named after each of the syslog log levels (debug, info, notice, warning, err, crit, alert, and emerg)
    
    	 parser/functions.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1707 980ebf18-57e1-0310-9a29-db15c13687c0

commit 04c0c1429efadd15d940097992e084870077846c
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 29 19:07:53 2006 +0000

    Changing warnonce to Puppet::Util::Warnings.warnonce.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1706 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8214c485816bc852ee33636494b4fd447629961f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 29 19:01:05 2006 +0000

    Fixing suidmanager so it uses warnonce instead of using a variable that only existed in Util
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1705 980ebf18-57e1-0310-9a29-db15c13687c0

commit de304e50c085aaaba246862de45163cedf0f617f
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 29 18:07:56 2006 +0000

    Rephrased a short section about finalizing the object dependence hierarchy.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1704 980ebf18-57e1-0310-9a29-db15c13687c0

commit fee5116c3ac544d48d3ba5d6b434ce953d6330b0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 28 16:34:07 2006 +0000

    Fixing reported problem of crons rewriting every time when the environment is set
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1701 980ebf18-57e1-0310-9a29-db15c13687c0

commit 244a11d36f70ea38a85de709dc7cfcb80b610f7e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 27 17:36:42 2006 +0000

    Fixing what I hope are the last batch of problems caused by the addition of the suidmanager module.  Also fixing a couple of other small issues that somehow cropped up.  All tests should now pass again.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1699 980ebf18-57e1-0310-9a29-db15c13687c0

commit 674841cd2b218e1425b0337d1839d54392c5b2b9
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 27 17:04:57 2006 +0000

    Just fixed some RCS/CVS id tags.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1698 980ebf18-57e1-0310-9a29-db15c13687c0

commit 98028ce5399d471d496e588cf85f8359f14d6d48
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 27 17:02:14 2006 +0000

    Adding flush functionality as requested by Scott Seago
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1697 980ebf18-57e1-0310-9a29-db15c13687c0

commit fd9b2f6293b0d4c9a6d1296ea8567701352aec67
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 27 00:53:21 2006 +0000

    File types were dying silently on OS X when the group specified in the manifest was not a valid group.
    
    The code now generates some errors, but current behavior doesn't raise fatal exceptions
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1695 980ebf18-57e1-0310-9a29-db15c13687c0

commit db7d7848fc0b64601c1ac375a92a8709b39a42f8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 26 15:30:24 2006 +0000

    Fixing SUIDManager#asuser so that it only resets egid and euid if they were changed
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1693 980ebf18-57e1-0310-9a29-db15c13687c0

commit dfef7e1647a0b87f8010c53e138efd9ecba2871b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 26 00:03:46 2006 +0000

    Adding a note about another error
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1691 980ebf18-57e1-0310-9a29-db15c13687c0

commit d888d9ed79d7315e9aa013a5835d616101be1119
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 25 20:10:38 2006 +0000

    Added some documentation to the security page to offer some example invocations useful for generating/signing certificates for clients and servers.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1690 980ebf18-57e1-0310-9a29-db15c13687c0

commit ab225aad435c8780fd5ba3bd91ac226b4bc05baf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 25 19:06:06 2006 +0000

    regenning configref with the fixed spacing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1689 980ebf18-57e1-0310-9a29-db15c13687c0

commit b4970a9b989a79a96deaa391a5d5b359e2818491
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 25 19:00:24 2006 +0000

    Expanded documentation of command-line arguments for the puppet executables. (Tweak)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1688 980ebf18-57e1-0310-9a29-db15c13687c0

commit cc08e2f6999d23edaa839367767d60855a246bcd
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 25 18:52:00 2006 +0000

    Expanded documentation of command-line arguments for the puppet executables.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1687 980ebf18-57e1-0310-9a29-db15c13687c0

commit 008a1383216fbd55ba2895f48d483b5eac3d55ee
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 25 18:51:13 2006 +0000

    Expanded documentation of command-line arguments for the puppet executables.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1686 980ebf18-57e1-0310-9a29-db15c13687c0

commit f2ac4dc6f80560dabf509af8e94763ee2a7462bc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 23:07:19 2006 +0000

    Updating changelog for 0.19.3, and merging the version changes over.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1680 980ebf18-57e1-0310-9a29-db15c13687c0

commit 68016a91204a993bea6197302e5dfc04840a1422
Author: erikh <erikh@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 22:43:41 2006 +0000

    ! rename file because rake_test_loader is dumb.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1675 980ebf18-57e1-0310-9a29-db15c13687c0

commit 287b18c281959b824706ee4e36165d418873765f
Author: erikh <erikh@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 22:42:15 2006 +0000

    + New assertion: assert_uid_gid will check that the UID and GID have been changed to the proper values. This uses a fork and a FIFO to achieve it's checking.
    ! nonrootuser and nonrootgroup now only return users/groups that are less than 255, due to the "Darwin debacle"
    ! many, many, many fixes for suidmanager. This is rather embarassing.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1674 980ebf18-57e1-0310-9a29-db15c13687c0

commit 55f2873d454dfb32593171e3f2b16f3b4221d897
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 22:24:12 2006 +0000

    Merging the fix to server/master.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1673 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3aac2e1eb48efa8f97d9c2e00b224c448cb77e8f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 22:18:20 2006 +0000

    Some small housekeeping things that I saw while doing other bug hunting
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1672 980ebf18-57e1-0310-9a29-db15c13687c0

commit 48082a10240db22c39a61811cc98ee3ea6bf68a5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 20:04:48 2006 +0000

    adding note about the irc channel
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1669 980ebf18-57e1-0310-9a29-db15c13687c0

commit 515f3ccf6c9a7993bba61cdc358a7101c158c1aa
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 19:52:50 2006 +0000

    Harded-coded pathname to OSX's ssh_known_hosts as a work-around until the ssh pathnames are user-configurable.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1668 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7b5604b200048e0314f408055e7bb54876c4e0ce
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 19:33:21 2006 +0000

    Adding some test reports
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1667 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6f11dee740e6e9ebc5fffed779212d24584ce6c4
Author: erikh <erikh@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 17:19:02 2006 +0000

    + Puppet::SUIDManager - This replaces all calls to the built-in ruby 'Process' library for uid/gid/euid/egid operations, including (not surprisingly) Puppet::Util#asuser and a method to run commands and capture output. This is due to many inconsistencies (through bugfixes) between ruby versions in the 1.8.x branch. This is included in the core puppet library and can be used by all puppet types and providers.
    ! Modified Puppet::Util#uid to check (and warn) if passed a nil value.
    ! Changes to use Puppet::SUIDManager instead of Process and relevant Puppet::Util calls.
    ! Removed Puppet::Util#asuser.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1666 980ebf18-57e1-0310-9a29-db15c13687c0

commit 320ac389de52e67283fbe455a3ec6917bdd3a348
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 05:14:58 2006 +0000

    Updating CHANGELOG for 0.19.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1665 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f9dcb58f9527912a19237e0fcfa23dcdba95446
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 05:04:34 2006 +0000

    Updated to version 0.19.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1663 980ebf18-57e1-0310-9a29-db15c13687c0

commit 595d5ba866968d7bf21baca15d69036c273c8585
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 05:04:29 2006 +0000

    Updated to version 0.19.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1662 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6902f2d2dec840c806f4a1b7d2c948fe1faa7870
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 05:04:27 2006 +0000

    Updated to version 0.19.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1661 980ebf18-57e1-0310-9a29-db15c13687c0

commit 164c18f0ce0c1ebb25b8417f2a820b805e4a9f92
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 22 04:57:25 2006 +0000

    As requested by Christian Warden, triggering an object now results in
    an event, which can result in further triggers.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1660 980ebf18-57e1-0310-9a29-db15c13687c0

commit 98004b283f46794e3f9334ccdd286e1ccc8d065f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 23:33:24 2006 +0000

    Adding some error handling for when a non-existent report is asked for, and adding a bit more testing.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1659 980ebf18-57e1-0310-9a29-db15c13687c0

commit a1e27bc3fad9a142448ee46edf35e612b741d453
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 23:09:23 2006 +0000

    Adding trace information to autoload.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1658 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0bd3055d29f9ee7785a8664360b89fc015a83a4e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 22:30:35 2006 +0000

    Switching Autoload#loadall from using "load" to using "require", so it will not reload already-loaded files.  Also updating the checksum docs a bit.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1657 980ebf18-57e1-0310-9a29-db15c13687c0

commit eecc7cc99835b70867197991efff3c5103185326
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 21:46:12 2006 +0000

    Fixing error in tagmail when there are no messages to report
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1655 980ebf18-57e1-0310-9a29-db15c13687c0

commit a468c15b6c3d1bd86c846cd0db44d8ca207b2bec
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 21:38:40 2006 +0000

    Disabling a test on solaris, since apparently sh on solaris is different than everywhere else
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1654 980ebf18-57e1-0310-9a29-db15c13687c0

commit 64a3392c7ca172e400ba36c43724b3fbf5f75b4c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 21:28:39 2006 +0000

    Small test fixes in preparation for 0.19.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1653 980ebf18-57e1-0310-9a29-db15c13687c0

commit d35d04e325dba0c3b0bb8924809e3f77b00a3c4e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 20:28:30 2006 +0000

    Adding class list method to group.  Also added a test to verify every type responds to "list", but it does not pass right now so it is disabled.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1652 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9afdf1fa429cd5f81f68d27e172af208d6118e22
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 19:43:45 2006 +0000

    Adding an Autoload instance to Type.rb so that I can load all known types for documentation purposes.  And, of course, loading all types in puppetdoc.  Also updating zone.rb to fix markdown's stupidity in trying to interpret the ERB template, and adding some timeouts to puppettest.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1651 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1ae434461d074dc859f768776af3934b66282d07
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 19:38:48 2006 +0000

    more fixes to the zone examples
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1650 980ebf18-57e1-0310-9a29-db15c13687c0

commit c8c3ee9b12e7fc2a43ea045a4c15eef819597c24
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 19:31:24 2006 +0000

    doc updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1649 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2e17e4a12a04de202aaa4cd7290d8288d938b2ae
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 18:59:46 2006 +0000

    Doc updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1648 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9bd69c4a7a1f19e4e1ab8d2dea37fbcda85522d1
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 18:15:41 2006 +0000

    Typo: As stood had "remove" for "remote"
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1647 980ebf18-57e1-0310-9a29-db15c13687c0

commit fcf16f77b2bab88a16ec18d1fedf7d730ea42613
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 18:13:23 2006 +0000

    Fixing #245, opened by marthag.
    
    Every other executable parsed the config file before calling
    genconfig, but puppetd reversed it for some reason.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1646 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1ad76d14c3d0736a70796de3df105464311f4756
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 18:09:22 2006 +0000

    Fixing #278, opened by Digant, with patch.
    
    Tagmail now supports negating tags with '!'.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1645 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5faa45d328e183c84754692b2a3837a09a190437
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 17:22:26 2006 +0000

    Fixing #274.  I just set :ensure to be :link when :target is set.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1644 980ebf18-57e1-0310-9a29-db15c13687c0

commit 62abbd5d3f4d7f9ec0f1781ee8247c8942a34a0f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 17:16:07 2006 +0000

    Fixing #283, opened by luke.
    
    I now always set the owner and group to Process.uid and Process.gid,
    respectively.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1643 980ebf18-57e1-0310-9a29-db15c13687c0

commit ea4b9c83810976235d3486d42e22ec8cf279abf1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 17:06:34 2006 +0000

    Fixing #285, opened by ericb.
    
    The problem here was that I was not escaping URIs throughout the chain, which
    I am now doing.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1642 980ebf18-57e1-0310-9a29-db15c13687c0

commit c99843a75a837c042d231242896851ff56e91d34
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 15:54:52 2006 +0000

    Fixing #288.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1641 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2b27289b599047335fb2d63c6f2248125c74aae9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 15:47:27 2006 +0000

    Fixing #293, I think.  The problem was that the groups state was not correctly passing strings in all cases, which caused some very strange problems internally.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1640 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0870c5c910271bd7b915ecd566721e8077a11bd4
Author: ajax <ajax@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 21 06:06:43 2006 +0000

    Fixed a minor typo
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1639 980ebf18-57e1-0310-9a29-db15c13687c0

commit dc8fb0a30154258084c39d62c9ee2fdf6d9c48a6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 20 22:38:46 2006 +0000

    Fixing #292 (A bug in tagmail that causes any tag other than 'all' to fail)
    and #277 (tagmail report missing To: header).
    
    #292 was weird because the messages just didn't have the tags at all.
    The problem was that states didn't have tags, yet states were the source
    of nearly all messages.  So, I added tags to the states, and included
    the state name in the tag list.  Also, types were not including the type
    name in the tag list, so I added that.  And, of course, a few unit tests
    to check it all.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1638 980ebf18-57e1-0310-9a29-db15c13687c0

commit afed9a17224ab28788b3f64008c13ce18c1ca914
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 20 22:32:23 2006 +0000

    adding an extra make target for debugging, rather than defaulting to always creating the debug file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1637 980ebf18-57e1-0310-9a29-db15c13687c0

commit e88bf774d53911a8e30ed52f0a4685d382d56d91
Author: erikh <erikh@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 20 14:44:06 2006 +0000

    Rake::TestTasks were running the test suite inadvertantly against the installed tree instead of the development tree due to a botched "libs" setting.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1636 980ebf18-57e1-0310-9a29-db15c13687c0

commit bc15e049826fea2ef88e2e6d1bc031835a078b77
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 18:37:15 2006 +0000

    Fixing provider commands and Util#execute so they always include the command output when possible, as mentioned on the list
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1635 980ebf18-57e1-0310-9a29-db15c13687c0

commit f0a93455982129112b8680f47f8f9182adbcd810
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 18:22:12 2006 +0000

    Regenerating docs, and correcting some markup mistakes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1634 980ebf18-57e1-0310-9a29-db15c13687c0

commit 62917fcd73fa7eac1b254a46ddb54dd1b4d9fe6d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 18:21:44 2006 +0000

    Small update to the fileserver tests; it was apparently not making some test dirs correctly
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1633 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3891f48119ea01d04d7495cf2f07a9ddb37b2afc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 18:04:20 2006 +0000

    Converting to using the Rakefile for testing.  The old 'test' script is
    now deprecated, and I'll send an email to the dev list and update the
    docs to reflect that.
    
    This still isn't the final solution, because the module structure is a
    bit weird, but at least it's a starting point, and everything from here
    on out is small changes, as opposed to large architectural changes.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1632 980ebf18-57e1-0310-9a29-db15c13687c0

commit dcab464f8db80e6d8c91a595a77875222f2927bf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 16:12:52 2006 +0000

    Reworking test/lib structure a bit, and renaming all of the files so that their file names match their module names
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1631 980ebf18-57e1-0310-9a29-db15c13687c0

commit abe1d3c07039e6d6a6a916e0ca83d560ca944b3a
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 09:05:04 2006 +0000

    Fix trac #282 (Change URL to configref, mention --genconfig)
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1630 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7030aca4c4b010668cb6a3cbb63ea9ea2bc8dfd1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 07:59:58 2006 +0000

    Small modification so i can make more changes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1629 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6a1b43aa6c3d2d90ce8659b30feeb5c0c8699cd4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 07:04:14 2006 +0000

    updating changes from the trunk
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1628 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6747b6a20b694e21296f1314c81a56e3cceef0d0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 06:03:11 2006 +0000

    going through all of the other providers and making sure any reference to a state uses the :should value, not the :is value.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1627 980ebf18-57e1-0310-9a29-db15c13687c0

commit 69d4083945194650e907119026bac675c5a7d5f3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 05:45:57 2006 +0000

    Fixing case of silly states on os x, where files are owned by "nobody" and File.stat returns a huge number.  I thought i had already fixed this, but apparently not.  I added a test, and it is definitely fixed now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1626 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8cbe19f2aa68bd9c331bd8423fed149120754f70
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 05:35:53 2006 +0000

    Fixing the same bug in the netinfo provider -- it was retrieving the "is" value instead of the "should" value
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1625 980ebf18-57e1-0310-9a29-db15c13687c0

commit 613781258282a3928ca9dfead457d73303636241
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 04:59:14 2006 +0000

    Fixing #280; added a warning and exiting if no hosts are specified to clean
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1624 980ebf18-57e1-0310-9a29-db15c13687c0

commit 533a0229e494d67891d8e52d54bf537635cc80de
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 04:56:03 2006 +0000

    applying patch from #275.  aptitude -q works fine on my testing release, but apparently stable does not support it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1623 980ebf18-57e1-0310-9a29-db15c13687c0

commit 94f5865e4156a744e3d75a94ea337a07a0cfb82e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 04:51:05 2006 +0000

    Removing the no-longer-necessary type/nameservice info -- it is all in the provider tree now
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1622 980ebf18-57e1-0310-9a29-db15c13687c0

commit 94762e1ef4d935d3c1a0c2621e7be7230da21c07
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 19 04:03:01 2006 +0000

    Trying to fix a bug where files other than site.pp do not get noticed for reparsing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1621 980ebf18-57e1-0310-9a29-db15c13687c0

commit 176d483efa052754f38ab15f1592a630da8d6cb7
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 18 12:18:56 2006 +0000

    Add config option 'node_name' to control what puppetmaster considers the proper name of a client (name in the SSL cert or name uploaded with facter) Default to name from the cert
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1620 980ebf18-57e1-0310-9a29-db15c13687c0

commit fd4ef3c95cdd17cba69823593170f773e0daa092
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 18 10:45:14 2006 +0000

    Better documentation around certificate revocation and mgmt
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1619 980ebf18-57e1-0310-9a29-db15c13687c0

commit c8a6df0c40a878d2b96cf6e56586ba37e9c8eceb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 18:32:48 2006 +0000

    Updated to version 0.19.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1618 980ebf18-57e1-0310-9a29-db15c13687c0

commit ee8b8c7efd93402021ce927cb5bc3b6b8e456c1e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 18:32:47 2006 +0000

    Updated to version 0.19.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1617 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6f8551194a9b2d4a6a0438b0f14d1e21d2ac6a83
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 18:32:45 2006 +0000

    Updated to version 0.19.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1616 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0e58f655a38c66f37977f42cecf7a9accffb9b2c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 18:32:19 2006 +0000

    Updating changelog for 0.19.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1615 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4a3c8d1ee40f1e6ce1fa7170b1e87a9621a1af31
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 18:25:46 2006 +0000

    Adding testing for the default? method, and fixing it to support arrays and returning false when no defaults are specified
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1614 980ebf18-57e1-0310-9a29-db15c13687c0

commit 48992d712bc6d226d117bebd887c0fd42816fc3a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 17:32:26 2006 +0000

    Using the "trace" configuration parameter to determine whether a stack trace should be printed, rather than just using "debug".  I added the param a little while ago and was using it internally in Puppet::DevError, but I just now went through the whole configuration and switched to using it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1613 980ebf18-57e1-0310-9a29-db15c13687c0

commit cda7253b2da3b6980f5cf2846f631597ef249000
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 16:54:50 2006 +0000

    Adding patch from #235
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1612 980ebf18-57e1-0310-9a29-db15c13687c0

commit 521920592a526f4dee720daf1de0a55748ac5648
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 16:38:47 2006 +0000

    Fixing docs, as mentioned in #271.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1611 980ebf18-57e1-0310-9a29-db15c13687c0

commit c04cb13c9471271378ac6f1c8f4b305f48ae766f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 16:25:47 2006 +0000

    Reverting the work done in [1605] and [1606].  I have added it as a patch in #271.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1610 980ebf18-57e1-0310-9a29-db15c13687c0

commit 08499b10c1bdccbcaeeacf1826cc156a80524e0e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 07:09:28 2006 +0000

    Adding the feature from #259.  I had to rework the Scope#lookupvar a bit, but everything now works as expected when variables are either undefined or set to empty strings.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1609 980ebf18-57e1-0310-9a29-db15c13687c0

commit 26bf373eee9d5ac09296bd5eab3af11b44f28826
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 06:55:29 2006 +0000

    Applying patch in #160.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1608 980ebf18-57e1-0310-9a29-db15c13687c0

commit e46d0072cf352c3555c45ab5d01e32615821de6a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 06:52:29 2006 +0000

    Fixing #262.  I somehow lost the line that only added a given user's jobs to each tab.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1607 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0af8ad72f9d44c4fe8b817d724b562b4c38ca654
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 06:22:16 2006 +0000

    Removing a test in the parser that is no longer necessary because of how imports work now, and fixing a snippet not to interfere with a local fact
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1606 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5669d1b30f8a6cef1f239eef4bb185e82ceb9c6f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 06:06:50 2006 +0000

    This commit adds two important features (but which probably were not
    worth the priority I suddenly placed on them).
    
    First, it adds search paths as I originally requested in #114.  There is
    now a 'lib' setting, which can be used to tell Puppet where to find
    manifests.  Any file you tell Puppet to parse will have its directory
    automatically added to the lib path.  Also, Puppet will check the
    PUPPETLIB environment variable for further directories to search.
    
    Second, it converts the 'import' mechanism into a normal function, which
    means that you can now use variables and what-have-you in it.  Of
    course, this function uses the lib mechanism.  This is something that's
    always bothered me about the language, and having it fixed means you can
    do simple things like have custom code in the top scope for each
    operating system and then do "import os/$operatingsystem" to evaluate
    that code.  Without this, you would either need a huge case statement or
    the code would need to be in a class, which often isn't sufficient.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1605 980ebf18-57e1-0310-9a29-db15c13687c0

commit fbdd6c471161f0438399227140cb7195c0e6993d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 05:58:18 2006 +0000

    Specifically rescuing Exception, since apparently the default does not rescue LoadErrors and everything else
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1604 980ebf18-57e1-0310-9a29-db15c13687c0

commit 349bddd92303073857f429f117804acc8b0d0dd9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 05:35:17 2006 +0000

    collecting output from blastlist, for later use
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1603 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4cd37ade1574a326f9ce267af2edc61a78deea86
Author: erikh <erikh@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 04:00:38 2006 +0000

    Merged test framework into trunk - still not ready until tests are converted to use it.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1601 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4897995e4cbe4ec3e452de50404799cfc27ed90b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 03:27:18 2006 +0000

    Fixing the "Adding aliases" message, so it is clear when an alias with spaces in it is used
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1600 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6bb4814ec66f2cb09381a1bc0fa30f9c85d47443
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 03:22:50 2006 +0000

    Fixing #267.  The problem was that the user provider was retrieving the @is value instead of the @should value, because it was using [] instead of the should method.  I fixed the FakeModel to behave a bit more like real types, so that it keeps track of the is/should values, and also to keep track of which attributes are valid, since I immediately ran into another problem stemming from the use of the fakemodel.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1599 980ebf18-57e1-0310-9a29-db15c13687c0

commit e5aa761d3b45a722d9644776755572447161bba3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 02:20:34 2006 +0000

    Updating changelog for 0.19.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1598 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2c57173a737bcdf12e6f3481a50e2788f5d1b4e3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 02:01:58 2006 +0000

    Raising element creation errors up outside the "create" method, so that tests can more easily tell when an object is invalid.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1597 980ebf18-57e1-0310-9a29-db15c13687c0

commit 16d9d6fe69d6eb01f7655c760d54de5986e2b3f1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 01:27:15 2006 +0000

    Fixing spelling of retrieve, to fix ##268
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1596 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3b8c9ff8235e1a2cfc7e17dae9933979e10264b3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 15 01:01:08 2006 +0000

    Fixing #269.  I was aliasing every case where the title and name were different, where I should only have been aliasing isomorphic types, which does not include exec
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1595 980ebf18-57e1-0310-9a29-db15c13687c0

commit bf5d0bc3cd4fd688aae2c0b1b93c32ddcbf3983c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 14 18:11:53 2006 +0000

    Catching all errors encountered during loading, not just LoadError, to fix ongoing problems with rdoc/usage.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1593 980ebf18-57e1-0310-9a29-db15c13687c0

commit 64eb1e8c37bfc4b35814f3aa58dd497b4bb3d8b7
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 14 16:50:46 2006 +0000

    Let puppetd listen (when given --listen) without a CRL
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1592 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5e2091b1ee3a7ddb601af43254de51b7e0bd24a2
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 14 16:45:39 2006 +0000

    Brute force fix for trac #266
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1591 980ebf18-57e1-0310-9a29-db15c13687c0

commit 37c9633f115013f718e561823e4a05880dfd599e
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 14 10:16:41 2006 +0000

    Fix test_host_specific to not depend on the path of the test directory and reenable it
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1590 980ebf18-57e1-0310-9a29-db15c13687c0

commit aa56185ee28dd10aa43bc5950a371d85c02f29c2
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 14 08:59:00 2006 +0000

    Expanding the Fedora/RHEL instructions some
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1589 980ebf18-57e1-0310-9a29-db15c13687c0

commit 47dc2905e3b05a93b97b28822fd7c3b8c5ea8c9a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 14 06:15:31 2006 +0000

    adding note about david's yum repo
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1588 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8ff418c94b7c69ec38b4723ef0dc039554da44ef
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 14 03:10:20 2006 +0000

    Fixing the problem with fileserver expansions, and doing a bit of refactoring to make things clearer
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1587 980ebf18-57e1-0310-9a29-db15c13687c0

commit cf5291a355dcdb92c0de4564633a30a4933f6b69
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 13 23:10:46 2006 +0000

    Fixing the interpreter to nodesearch across all listed names, just like is done in the manifests.  Also fixing a comment in type.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1586 980ebf18-57e1-0310-9a29-db15c13687c0

commit ca6ac62824ddbb14d827687ade5235801b70383c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 13 20:52:57 2006 +0000

    fixing typo
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1585 980ebf18-57e1-0310-9a29-db15c13687c0

commit 05274261029dd69a1bde74828853c179859fec5c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 13 18:05:09 2006 +0000

    adding gentoo notes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1584 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3e1b6bc8e2d3c27d279e4160c8a1082cfa68d777
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 13 17:43:45 2006 +0000

    Adding a :trace config option that prints stack traces of DevErrors, and using that in DevError instead of :debug
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1583 980ebf18-57e1-0310-9a29-db15c13687c0

commit 95269bf12514e6f6c67f304a58e3dd858fbba0f3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 13 17:43:08 2006 +0000

    Adding test code for providers that makes sure the default and confine mechanisms work internally.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1582 980ebf18-57e1-0310-9a29-db15c13687c0

commit 09f264a540cb863ac7df380efc01993b82e5a0b1
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 13 16:50:43 2006 +0000

    Add config parameter ca_ttl and deprecate ca_days; ca_ttl makes it possible to generate certs that are valid for < 1 day
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1581 980ebf18-57e1-0310-9a29-db15c13687c0

commit 130b2455572dae21def75ca2ac8e9f5a89672daf
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 13 16:48:56 2006 +0000

    Use Pupet.warning instead of nonexistant 'warning'
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1580 980ebf18-57e1-0310-9a29-db15c13687c0

commit a5f4f53266569c2b00383993670334a6ae9b7fd0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 13 16:24:43 2006 +0000

    Fixing #261.  Applied patch, with small modifications.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1579 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0c0936be7cf6b02c11ce931fd2b830392bfc2329
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 13 16:11:08 2006 +0000

    Adding a module for helping with warnings, starting only with the "warnonce" method
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1578 980ebf18-57e1-0310-9a29-db15c13687c0

commit af1de894bcb5afcba2976ad4e8c7ebb2a789f240
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 12 09:58:54 2006 +0000

    Sync with FE repo
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1577 980ebf18-57e1-0310-9a29-db15c13687c0

commit c651b19c8fae76cc76355fb551b79cb1984a049e
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 12 09:58:15 2006 +0000

    Disable the sample fileserver module by default, otherwise users get spurious warnings about nonexisting directories
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1576 980ebf18-57e1-0310-9a29-db15c13687c0

commit 65bb635c3d4504472ea9d03e5419c99158581902
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 6 22:09:12 2006 +0000

    Updated to version 0.19.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1574 980ebf18-57e1-0310-9a29-db15c13687c0

commit 61e42e7814dcf6f221c6487960b17c19af975cd0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 6 22:09:08 2006 +0000

    Updated to version 0.19.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1573 980ebf18-57e1-0310-9a29-db15c13687c0

commit 12b219e156aee9068b004eb08add86fb80019841
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 6 22:09:04 2006 +0000

    Updated to version 0.19.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1572 980ebf18-57e1-0310-9a29-db15c13687c0

commit e309b76e168f83e27cf541dc19a02c5b25c1e47c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 6 04:49:45 2006 +0000

    Modifying the provider base class so that it defines a method for every used command (e.g., you call "commands :rpm => 'rpm'", and it defines an "rpm" method.  I then pushed this throughout the package providers, which are the heaviest users of commands.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1571 980ebf18-57e1-0310-9a29-db15c13687c0

commit c5ce953462f424138f0009ce978eb9620aff84a7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 6 00:49:14 2006 +0000

    Adding aptitude support, including a new util::package module that provides a method for package version sorting, and a couple of smaller bug fixes.  This fixes #237.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1570 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2113eed0137630836b3de3e2a8bc17b6cb7198e8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 23:46:32 2006 +0000

    Adding hasrestart parameter to services
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1569 980ebf18-57e1-0310-9a29-db15c13687c0

commit fcc5bae22cb2a0286975cfc0bcab52a2a7f7973d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 23:20:45 2006 +0000

    Adding an "env" parameter to exec, for providing extra environment settings, as requested in #236.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1568 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8310c9d18a89e499b63a10e7890d836dcfc86f46
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 22:57:48 2006 +0000

    Adding a "withenv" execution util method, and using it in :exec for path handling.  Next will be other env handling.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1567 980ebf18-57e1-0310-9a29-db15c13687c0

commit f8254c6a1a080c89608ca98b7fe8e6231a9d213f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 22:41:32 2006 +0000

    Fixing #230.  If the first line in the cron tab, before the header, starts with TZ= then the header will be inserted after the TZ line.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1566 980ebf18-57e1-0310-9a29-db15c13687c0

commit fa16a92ff96d37d6b0d443536218d9d46d56eadd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 22:35:53 2006 +0000

    Fixing small bug in cron where removed fields are not deleted from the file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1565 980ebf18-57e1-0310-9a29-db15c13687c0

commit e28250dc1d30cf9e9c13e157143e140b402c967e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 21:29:03 2006 +0000

    Adding further gentoo support -- finalized portage support, plus conf and init info for puppetd
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1564 980ebf18-57e1-0310-9a29-db15c13687c0

commit 41c90815e16dc65103c617ce56a071902ff93123
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 20:53:43 2006 +0000

    Adding the Daemon module back into the Client class, which fixes #247.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1563 980ebf18-57e1-0310-9a29-db15c13687c0

commit 46fbf95b16622d33bcb791f0489bee1f87fb33e5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 18:33:20 2006 +0000

    Adding an "ignoretags" attribute to transaction, and setting it for downloading plugins or facts, and for creating config directories
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1562 980ebf18-57e1-0310-9a29-db15c13687c0

commit b303e8d3b7c31ebccabb0b3238104f5f019c5b6a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 18:10:57 2006 +0000

    Adding the ability to download facts from the central server.  This allows facts to be available before the configuration is compiled.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1561 980ebf18-57e1-0310-9a29-db15c13687c0

commit b36df181f4f2064b3dbbce861912262594044b14
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 17:04:55 2006 +0000

    A small fix to the install/update aspects of packaging.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1560 980ebf18-57e1-0310-9a29-db15c13687c0

commit 47c86e5571afe1ea68c68fd1353d71f7cb9bdb76
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 16:39:24 2006 +0000

    Fixing the package type so that :ensure is always used for version specification, rather than :version, which is now deprecated.  This provides much more consistency.  I have not tested on all platforms yet, but I want to enable testing on Gentoo, also.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1559 980ebf18-57e1-0310-9a29-db15c13687c0

commit 19992f7ec1dc2c320618ab1a31b93949528c0aaf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 04:04:40 2006 +0000

    updating documentation for how to specify versions
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1558 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7eed92e6f9f7ca3899f09f750b7c1f99acfa0e27
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 03:55:54 2006 +0000

    Applying a patch from Jose Gonzalez Gomez; apparently this makes package updating work
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1557 980ebf18-57e1-0310-9a29-db15c13687c0

commit 40b2ed6dbf97a8b3afbef7db6611f81a2ed2ca3e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 03:51:11 2006 +0000

    Adding portage support again, since it was added in the branch i reverted
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1556 980ebf18-57e1-0310-9a29-db15c13687c0

commit 617fe58626aa8a13af10071ca87f66d6363cf058
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 01:51:23 2006 +0000

    Removing all of the changes I made towards refactoring in the last couple of days.  They have all been moved into the sync-retrieve-refactor branch.  This branch will soon become 0.19.0, and will not include that refactoring.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1555 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f39318ce46148c3bd483d790c965f277a4eb1c9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 01:41:09 2006 +0000

    Committing a small amount of work in cron.  I have decided that this is too last-minute, and not important enough to hold up the release.  I want to get this refactoring done, but it is clearly not the 4 hour job I hoped it was.  It will have to be in another release, I think.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1553 980ebf18-57e1-0310-9a29-db15c13687c0

commit b43b489073beb01da9b4de501d3c019326d97961
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 5 01:03:57 2006 +0000

    Committing functional mount support.  All that's left in this chunk of work is cron.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1552 980ebf18-57e1-0310-9a29-db15c13687c0

commit 639ed3d75380dc59e05bb38c920f18836fd12913
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 4 16:30:42 2006 +0000

    Adding first version of the portage provider, as contributed by Jose Gonzalez Gomez
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1551 980ebf18-57e1-0310-9a29-db15c13687c0

commit 655881c0d3ff87727a396ee8304a5c4369117580
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 4 03:13:13 2006 +0000

    Ports now work with a provider
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1550 980ebf18-57e1-0310-9a29-db15c13687c0

commit daa79e2da4d7a8a32c461da9bfb01c7a98763a5c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 22:01:46 2006 +0000

    Intermediate commit; ports are not working yet
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1549 980ebf18-57e1-0310-9a29-db15c13687c0

commit b657850bf5cc02b25200720a57d5e3e381a98b62
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 21:40:30 2006 +0000

    Fixing SSHKey support.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1548 980ebf18-57e1-0310-9a29-db15c13687c0

commit 270f4448e26a45d213f8aa35c9ecf53843382358
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 21:06:41 2006 +0000

    Beginning the process of moving parsedtypes to a provider.  Each parsed
    type will have a parsedfile provider, which will be responsible for all
    of the file parsing and generation.  This should allow us to create a
    useful DSL for file handling, but it also *drastically* simplifies these
    types.
    
    These types have always been a bit fragile, and it was never quite clear
    who was responsible for what.  Now, with the type/provider split,
    everything is much clearer.
    
    I still need to convert host, sshkey, and mount, and something needs to
    be done with cron.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1547 980ebf18-57e1-0310-9a29-db15c13687c0

commit b9b338432ee0dbad7798685736fcc80ff0164924
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 16:41:41 2006 +0000

    This is the initial commit of the changes to sync and retrieve.  The
    structure itself is now in place, and a few of the types (the most
    complicated ones -- file, user, group, plus exec since it was my easy
    first test) have been converted.
    
    I'm now going to finish going through all of the types and finish
    chnaging them so that they don't produce any warnings.
    
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1546 980ebf18-57e1-0310-9a29-db15c13687c0

commit 37330340833ddca9e542804fe64755ab8feb9eeb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 04:13:00 2006 +0000

    Renaming parsedfile to loadedfile, which makes much more sense and reduces some naming conflicts
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1544 980ebf18-57e1-0310-9a29-db15c13687c0

commit a88799323a5779f002b65800ebb9d768bea27f05
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 03:14:46 2006 +0000

    Adding Gentoo support from #224.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1543 980ebf18-57e1-0310-9a29-db15c13687c0

commit c626796754a1b20b1152a0382b985986a5e1fb30
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 03:03:23 2006 +0000

    Adding eat-last-line support in ERB
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1542 980ebf18-57e1-0310-9a29-db15c13687c0

commit a11505035c62ce850cd49648bda1f25c811674c4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 02:59:39 2006 +0000

    Adding pre- and post-hooks, as requested in #233.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1541 980ebf18-57e1-0310-9a29-db15c13687c0

commit f797487ee2672c7e91b74c57d839cd52102a16d1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 02:49:04 2006 +0000

    Fixing #239 -- missing checks now throw an ArgumentError.  This will break if any command purposefully returns 127, but that would be a bug anyway, I suppose.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1540 980ebf18-57e1-0310-9a29-db15c13687c0

commit ff18e5592467c4b8fe2cedf48cd8f9332e0eff32
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 02:37:56 2006 +0000

    Adding support for file purging, as requested in #250.  Any unmanaged files in a purge-enabled directory will be removed.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1539 980ebf18-57e1-0310-9a29-db15c13687c0

commit 18320ee5144c76de4d1d2c5c0fa27fd719882991
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 02:12:43 2006 +0000

    Adding a "force" parameter in files to fix #242.  Currently only used when replacing directories with links, but should probably be used in other places.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1538 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7fd5b6f91c207efe26a4d296a03be82ec2cdb03d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 02:03:38 2006 +0000

    Specifying true/false allowed values for file[:replace].
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1537 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8cbe1d32377cef0761441baaba03695655275710
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 01:58:48 2006 +0000

    Adding logcheck script from #244.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1536 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2cb2e03071f3411d1418ec19b14b0d13035e691a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 01:56:45 2006 +0000

    Applying patch from #251, and switching "confine" to "commands", so we can document the command requirements.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1535 980ebf18-57e1-0310-9a29-db15c13687c0

commit 712e157c826f23085820b0e64fd6832382a89f2f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 01:52:43 2006 +0000

    Adding SuSE files from #252.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1534 980ebf18-57e1-0310-9a29-db15c13687c0

commit 42812f8512493d319b71bcc749e1760443ee8ecc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 01:49:17 2006 +0000

    Applying the patch from #253 plus tests.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1533 980ebf18-57e1-0310-9a29-db15c13687c0

commit fd864286ab88ae674de45fbbb0717f2b7c2182c4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 01:31:11 2006 +0000

    Updating templating docs with more about usage, and adding installation notes about ruby segfaults on Debian
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1532 980ebf18-57e1-0310-9a29-db15c13687c0

commit f587d8881e0e5c4d9cde372fdaccf85f8e55e50b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 01:29:11 2006 +0000

    Adding note about configprint, indicating what versions include it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1531 980ebf18-57e1-0310-9a29-db15c13687c0

commit 989716e5a7519d6635617a87c0effb5d9373b9b0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 3 01:28:46 2006 +0000

    Adding zone patches
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1530 980ebf18-57e1-0310-9a29-db15c13687c0

commit 96350b20cd2e6b651dc9f488a9ab7b319f6b8f57
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 2 19:04:40 2006 +0000

    Fixing #257, where host aliases were not being retained.  The problem was that the "should" method was returning an empty array if it was not set, and it should instead return nil.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1529 980ebf18-57e1-0310-9a29-db15c13687c0

commit 114debdd0eb872b40e8b7d9019e62c5010617afa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 2 18:10:46 2006 +0000

    batch of small bug fixes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1527 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2802b70bbc54a833e90c6f2601fdb75f32a9cf98
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 2 16:12:19 2006 +0000

    Making sure that the svn bin directory is at the beginning of PATH, rather that at the end, so the svn-versions of the exes are being tested.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1526 980ebf18-57e1-0310-9a29-db15c13687c0

commit b086280f1df18bcea13b67d5ac7aa1693357823d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 2 16:11:04 2006 +0000

    Removing type/provider references on type removal
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1525 980ebf18-57e1-0310-9a29-db15c13687c0

commit 053f37c01ca7a68d3c87554b3526fc9281b4b2e1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 1 17:47:57 2006 +0000

    adding notes about the libruby deb package
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1524 980ebf18-57e1-0310-9a29-db15c13687c0

commit 77783e53dc733e314d649a22eff52f0a157a292b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 31 00:40:01 2006 +0000

    disabling reporting until i can find a way to make reporting only work with puppetd, not puppet -- clearly puppet should not try to report
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1522 980ebf18-57e1-0310-9a29-db15c13687c0

commit 199f5b0db724bc54b5dd0a0d6cd8da469c801012
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 31 00:39:32 2006 +0000

    Fixing the state so it tries to call provider methods and only checks for errors, rather than checking with respond_to?
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1521 980ebf18-57e1-0310-9a29-db15c13687c0

commit b6b9d0b43cc5d4adec0fdba3b148b237d7de9dc6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Aug 30 18:17:30 2006 +0000

    Setting both "report" to true by default; I am going to enable pluginsync by default once I have plugins well-documented
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1520 980ebf18-57e1-0310-9a29-db15c13687c0

commit 02b8b135b1bbd076b20b1245ec347210159d0420
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Aug 30 06:58:07 2006 +0000

    Fixing array printing in to_manifest
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1519 980ebf18-57e1-0310-9a29-db15c13687c0

commit 29edb14ac04ead2bc832a83acfcc3c597ad81bef
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Aug 30 05:25:34 2006 +0000

    Fixing service refreshing -- there was a problem persisting from the provider work
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1518 980ebf18-57e1-0310-9a29-db15c13687c0

commit 14d64dd3f3714c05963204d77afac7cd1e8d9b23
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Aug 30 05:25:00 2006 +0000

    downgrading the template interpolation message
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1517 980ebf18-57e1-0310-9a29-db15c13687c0

commit fa0446bcdac90c3c0880f77b089066350be271dd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 29 23:39:10 2006 +0000

    Adding back in the code to change the euid.  I removed this yesterday because I thought it was redundant.  It is absolutely clear that I need to add tests for running as separate users.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1516 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6f175ce41fa4a7a62783c173965683c87c61095b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 29 23:27:27 2006 +0000

    Adding automatic stacktrace printing to deverror.  I need to go through and remove the redundant puts in the rest of the code, but I need this now for some client debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1515 980ebf18-57e1-0310-9a29-db15c13687c0

commit a46a620486b106ffc8e653b48a1de58ca6a64933
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 29 06:10:48 2006 +0000

    disabling chuser on os x, since it is broken with < ruby 1.8.5
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1514 980ebf18-57e1-0310-9a29-db15c13687c0

commit a53d8407e78b447d26fa10cc482b0dd55dc3bd9d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 29 06:10:24 2006 +0000

    fixing provider commands; I broke them when making them easier to document
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1513 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0f231b8668701f3a3259a7be8b2cccc21a5c5a34
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 29 05:42:45 2006 +0000

    Skipping blank lines and comments in autosign.conf
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1512 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9381d5f2524caaf8bab61fdbf304e97d77a08dbe
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 29 00:34:08 2006 +0000

    Fixing report lookup so it looks up by name, not method
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1511 980ebf18-57e1-0310-9a29-db15c13687c0

commit 948c96aba6190627b125ae967b2f9962013a0df9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 29 00:31:50 2006 +0000

    Changing autosign mode to 644
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1510 980ebf18-57e1-0310-9a29-db15c13687c0

commit 762599b73c0fa4e04a9e7a7048d99b7223056b47
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 29 00:23:40 2006 +0000

    Fixing tagmail config processing so it fails when appropriate
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1509 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0674c9a567e3453ae6b2d3746c0ecde29a68329e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 23:56:45 2006 +0000

    Fixing reports error reporting
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1508 980ebf18-57e1-0310-9a29-db15c13687c0

commit a6c38b5de22f6b80b2592492826d84e22b1a1503
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 23:42:00 2006 +0000

    Fixing location of ca cert
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1507 980ebf18-57e1-0310-9a29-db15c13687c0

commit 04b25572bda950d3d088a31d88b4c27d35274fa2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 23:28:37 2006 +0000

    Fixing report autoloading; I was calling the wrong method, and they were never getting loaded
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1506 980ebf18-57e1-0310-9a29-db15c13687c0

commit 47dbf82cbdf41d4103c6b3b0df6c008f7de76229
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 18:30:19 2006 +0000

    Upgrading Triggering line from info to notice
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1505 980ebf18-57e1-0310-9a29-db15c13687c0

commit d45d22b7547a608c7821905024f530bbae1259d7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 16:30:49 2006 +0000

    Adding a module specifically for making doc generation easier, and adding defaults info to provider docs.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1504 980ebf18-57e1-0310-9a29-db15c13687c0

commit e1aff4cd2f456bfc9567e9be5dd73b3c8ed14ec9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 07:03:16 2006 +0000

    Last commit of puppet docs for the night
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1503 980ebf18-57e1-0310-9a29-db15c13687c0

commit b9ad6041cf2a80760a17fd5fe884cadeb52f0fce
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 06:55:22 2006 +0000

    Modifying providers so that docs generate better
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1502 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9b526bab55cefe136a8497863bafc81cdbcbcb42
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 06:43:48 2006 +0000

    Adding provider docs for required binaries
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1501 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6aaeb0583ab35d5e1a3dab5d3a2dcccdbdfa4d7f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 06:24:54 2006 +0000

    Updating generated docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1500 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5395e23f5427e165bafbab8b7c030641481ab4c2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 06:13:29 2006 +0000

    Adding pointer to templating docs into the file[content] documentation
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1499 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8dbca3d5ff65dea26265981ad8489cd0e0212ad6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 06:12:39 2006 +0000

    adding notice that "$" is now required in definition prototypes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1498 980ebf18-57e1-0310-9a29-db15c13687c0

commit 333c22920cf4399c77a122ece87e13454e71b509
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 06:10:34 2006 +0000

    adding first draft of templating doc
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1497 980ebf18-57e1-0310-9a29-db15c13687c0

commit 628896b49e0ebc396604c0725aab7b9d372c7016
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 05:59:40 2006 +0000

    Adding a "configprint" option for printing out the local config state
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1496 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9f7621b04acd7ed4845afd1182e1e6ce13e8fb04
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 05:32:04 2006 +0000

    Adding a little more validation to the schedule, and documenting the source search-path stuff in files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1495 980ebf18-57e1-0310-9a29-db15c13687c0

commit ad32b716d82576c98e708e6dbbcec60f0372e54c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 04:50:59 2006 +0000

    Tracking down some weird bugs that managed to creep into the parser.  I expect that the main ones were a result of the If support.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1494 980ebf18-57e1-0310-9a29-db15c13687c0

commit db0be8e38044b8aaaf9469c5c461c84295b55732
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 03:44:31 2006 +0000

    Committing some changes to the %h expansion in fileserving.  This change makes the expansion entirely isolated in the Mount class, which makes it much easier to test.  Also, switched the fileserver config to use ParsedFile, which makes it a bit easier to understand and handle reparsing.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1493 980ebf18-57e1-0310-9a29-db15c13687c0

commit a44b1dd4eaa3dea2b9b8f85d982e2dc4fd06d92a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 03:42:26 2006 +0000

    Committing the other half of the fix for #231; oops
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1492 980ebf18-57e1-0310-9a29-db15c13687c0

commit ed1547112dcffe712605e1985c287d252788582c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 28 02:27:17 2006 +0000

    Fixing #231.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1491 980ebf18-57e1-0310-9a29-db15c13687c0

commit 55d3fb8360bff73711f3d4bf9286fb380a1b2d61
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Aug 26 06:29:59 2006 +0000

    Support for %h and %H replacement in the path of fileserver modules.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1490 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2540cdf2704eb62dfa760c334fcde105645ee007
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 25 23:30:38 2006 +0000

    Demoting the xmlrpc access logs to debug from info
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1489 980ebf18-57e1-0310-9a29-db15c13687c0

commit 38a184e4e1dc728fa4893a0b8779ab66a94961df
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 25 21:36:06 2006 +0000

    Changing permissions on the cert file and the ca cert file, since it is no problem for them to be readable and sometimes it is required
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1488 980ebf18-57e1-0310-9a29-db15c13687c0

commit b612a15f9585a4922e7bc928bf534180396bc22d
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Aug 25 20:00:21 2006 +0000

    Try this; seems to work for machines with both ActiveSupport installed and not. MissingSourceFile is an AS thing, though it subclasses LoadError.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1487 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8fcec23c16eb3698a2549c9b668f0e40ad84d082
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Aug 23 03:30:49 2006 +0000

    Adding up2date support, as submitted by Kostas Georgiou (with some modifications to support providers).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1486 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9576d1dda88bd14490b91f7aee0dbaee28969f79
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Aug 23 02:23:25 2006 +0000

    Certificate revocation through puppetca. Keep a simple text inventory of all certificates ever issued.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1485 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4151fd59ef6490c875140a874c0a13c5d3f311aa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 22 23:34:40 2006 +0000

    Committing definition inheritance.  I have not yet written tests yet, but my last commit pretty seriously broke some things without me realizing it, so I wanted to get this in.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1484 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1b2ee4bb9d9fef44bdf8217f45d6893b7609a432
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 22 21:27:11 2006 +0000

    Adding "if/else" constructs.  No operators, no elsif, but it is a good start, anyway.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1483 980ebf18-57e1-0310-9a29-db15c13687c0

commit ea32a38d73dc4c1dec030c2c52d339e8976b881b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 22 00:33:44 2006 +0000

    Function autoloading now works as requested in #214.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1482 980ebf18-57e1-0310-9a29-db15c13687c0

commit bba972fd1bcbb7747f73eee6b6789e02ad18071a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 21 23:50:51 2006 +0000

    Adding warnings and error throwing for #218 -- metaparams in prototypes are treated specially.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1481 980ebf18-57e1-0310-9a29-db15c13687c0

commit a1d71d9e5faaebe61c51750c5dfcc2276d4be904
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 21 23:12:30 2006 +0000

    adding faq item about ipv6 support
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1480 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6e4d4c9bb15ad0210f63e8448aa48263979a1991
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 21 23:04:32 2006 +0000

    Accepting patch from #220, thus fixing the bug.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1479 980ebf18-57e1-0310-9a29-db15c13687c0

commit e3221616187150b588d5f6afd1347afa3a909100
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 21 23:02:56 2006 +0000

    Fixing #225.  Normal file copying worked with spaces, but recursive file copying did not.  I modified one of the support methods so it works now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1478 980ebf18-57e1-0310-9a29-db15c13687c0

commit bf43c76deddb8475fea43515ebd530b5d3f331a2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 21 22:54:17 2006 +0000

    Fixing #228.  The real problem was that "present" should match any type of file existence, whereas it was just matching files.  If the file was a directory, as in this case, Puppet considered it to be out of sync.  Now, "present" matches files, links, or directories, but still creates an empty file if the path is missing.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1477 980ebf18-57e1-0310-9a29-db15c13687c0

commit aee1c6a6ad10e3a42a8f4150b4838425e3580253
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 21 22:23:48 2006 +0000

    adding cookbook into to the docs index page
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1476 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7ade561e75853116baef15f3750e3563e6a6faaf
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 21 21:54:13 2006 +0000

    Support for certificate revocation and checking connections on the server against the CRL
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1475 980ebf18-57e1-0310-9a29-db15c13687c0

commit c6fc6c56cea381c7bdf15e8610a28a4c6924ecf5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 21 19:32:41 2006 +0000

    Adding a link to the cookbook
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1474 980ebf18-57e1-0310-9a29-db15c13687c0

commit b2031aa32995331474244150bbc97f467e3ada7b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Aug 20 02:28:33 2006 +0000

    Making some of the metaprogramming a bit more explicit and a bit easier to manage.  In the process, I have created multiple Util modules, only one of which is used for this current commit.
    
    The main work in this commit is that I created a single, common method for dynamically creating classes and moved all of the Class.new users to using this class.  It handles a lot of the complexity for me, and most of the users have just a couple of lines of code, now, instead of tens.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1473 980ebf18-57e1-0310-9a29-db15c13687c0

commit beba3e480c7ad7f942414a8aa31f96b5b42b53e4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Aug 17 05:08:36 2006 +0000

    Finishing changes to support titles instead of two types of names.  This is basically a bug-fix commit.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1472 980ebf18-57e1-0310-9a29-db15c13687c0

commit 607d7c6afec7ab73203382676cc98b6d52898e1d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Aug 16 19:49:14 2006 +0000

    A first pass of changing one of the types of names to titles.  I still have to fix a lot of tests, but the core itself is now working.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1471 980ebf18-57e1-0310-9a29-db15c13687c0

commit 12452ee9ca294563f2e2724ff36f179004f9846f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 14 06:21:03 2006 +0000

    Merging r1468 from the implementations branch with r1438 from when the branch was first created.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1469 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4d6120a1f77cfe76fafbe32caa5d853449562376
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 14 06:08:25 2006 +0000

    Committing changes that require dollar signs in prototypes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1468 980ebf18-57e1-0310-9a29-db15c13687c0

commit abaeb86d9c86a333c1a1e4c1f2a1bdf9fc62eaa4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 7 18:23:26 2006 +0000

    removing classing example, since it involves parameterized classes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1450 980ebf18-57e1-0310-9a29-db15c13687c0

commit e684cd39e046455fc594820ab74c6fe533359ff3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Aug 6 23:41:17 2006 +0000

    Adding some documentation for the cfengine module
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1449 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1eaf1bca447720553447bb5887538404f3261ec1
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Aug 5 00:06:05 2006 +0000

    Fix problem when --fqdn is used
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1448 980ebf18-57e1-0310-9a29-db15c13687c0

commit e6aa4ab0341570b3a99db419bcc0d9e3e6503abb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Aug 2 18:42:40 2006 +0000

    documentation updates, pointing to the suse yum repository and specifically mentioning package locations
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1445 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0e862a31b823d4a87e8ccdafbebff183f4f70a5f
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 1 23:53:40 2006 +0000

    Fix shebang lines in executables
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1441 980ebf18-57e1-0310-9a29-db15c13687c0

commit 450b495c5badef26b86ca296417610014c9df2cd
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 1 22:45:09 2006 +0000

    Added comments to stay in sync with the spec file checked into Fedora Extras CVS
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1440 980ebf18-57e1-0310-9a29-db15c13687c0

commit d6fc1b7c818339997823e38c3f3217fa8c67569c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 31 22:56:52 2006 +0000

    more ordering info
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1436 980ebf18-57e1-0310-9a29-db15c13687c0

commit 89b4dfd7036e99d51aea427ae59d8ce7901b97b4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 31 22:48:44 2006 +0000

    adding ordering information
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1435 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7957ce0c0f940278e5a62db5b2c281494ad4a772
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 31 22:48:30 2006 +0000

    fixing puppetdoc to add ordering info
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1434 980ebf18-57e1-0310-9a29-db15c13687c0

commit f974ffc950235e55274a3abf4bc360af4557d5c8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 31 22:25:59 2006 +0000

    Fixing the master server so that it always uses the Facter hostname, not the cert or IP hostname.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1433 980ebf18-57e1-0310-9a29-db15c13687c0

commit eb8c6878c37bf32dc2a7079ce1b0b959774d6fde
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 31 21:13:59 2006 +0000

    updating links after a link validator
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1432 980ebf18-57e1-0310-9a29-db15c13687c0

commit 257fb78ef6b64aff5e12f57fc6dca32027dc7eb9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 31 20:50:37 2006 +0000

    fixing faq links
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1431 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3ef466397372e0b438be739395a91d88e78e5c9c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 27 07:21:23 2006 +0000

    adding DSL class.  Sorry, not much in the way of docs.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1430 980ebf18-57e1-0310-9a29-db15c13687c0

commit 31b1d0bdffdf11949f08c3ee20480163da56b2d4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 24 15:44:36 2006 +0000

    fixing more doc links
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1429 980ebf18-57e1-0310-9a29-db15c13687c0

commit b2f1aa009d6ab1fc3ccae5418a7d1fb9209c0498
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jul 23 19:18:35 2006 +0000

    doc updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1428 980ebf18-57e1-0310-9a29-db15c13687c0

commit b8bf11319c65f2bf7fe2a8b521abb080cd0df90d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 22 21:10:47 2006 +0000

    Updated to version 0.18.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1426 980ebf18-57e1-0310-9a29-db15c13687c0

commit 94cc68b556e658e805cdad6ad851162c4325c7d1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 22 21:10:46 2006 +0000

    Updated to version 0.18.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1425 980ebf18-57e1-0310-9a29-db15c13687c0

commit ce95ee350ccd1b6318dc7375106ae1246ecef7cd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 22 21:10:44 2006 +0000

    Updated to version 0.18.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1424 980ebf18-57e1-0310-9a29-db15c13687c0

commit f13c451d5b72231ee57aa7c073f4b23792b24820
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 22 21:09:10 2006 +0000

    updating changelog for 0.18.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1423 980ebf18-57e1-0310-9a29-db15c13687c0

commit cdeccab2e0fc1b40b5060780c99d52f936f9732d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 22 03:32:56 2006 +0000

    Another batch of bug fixes, this time focused on OS X patches.  Looks like I did not test on os x last time.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1422 980ebf18-57e1-0310-9a29-db15c13687c0

commit b42eaee1a7e8dd1ef7a7daad5d0b03aba6113d00
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 21 23:12:51 2006 +0000

    First round of bugfixes in preparation for 0.18.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1421 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9e61510ac96cc53b2fbc58efa969499eb0c0c11f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 21 21:16:09 2006 +0000

    Fixing #77.  As I feared, this was a pretty complicated fix; I had to add a lot of infrastructure to both ParsedFile and Config.  All config files now have a timer created for them, and by default they check for file changes every 15 seconds.  If there is a change, they get rid of values set by the file (but not set on the cli) and set the new values, then the re-use all of the sections, so that any changed directories or whatever get recreated.
    
    This is still not a 100% solution, since things like open files could still be messed with, but I think this is about as close as we are going to get.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1420 980ebf18-57e1-0310-9a29-db15c13687c0

commit 310b3a11eec563c4687041f9ae1a0b894571bc05
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 21 20:11:13 2006 +0000

    Adding timeout functionality to the ParsedFile class, in preparation to adding config reloading to the Config class.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1419 980ebf18-57e1-0310-9a29-db15c13687c0

commit c8537a51c61290c9ba32d57fed31b389dbbdeb29
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 21 19:38:29 2006 +0000

    Apparently objects were legal rvalues, which does not make any sense.  Fixed this, and added a test verify.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1418 980ebf18-57e1-0310-9a29-db15c13687c0

commit 21ae8fbdcef5b31f4794869b075e344606446555
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 21 19:33:36 2006 +0000

    Fixing #185.  Added a check for cdrom sources, and added an override parameter.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1417 980ebf18-57e1-0310-9a29-db15c13687c0

commit 039abd6d792dd99bf5c1ad272c4f841f80ea5642
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 21 19:05:30 2006 +0000

    Fixing #176.  You can now do duplicate UIDs (or GIDs on most platforms) with :allowdupe.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1416 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2091eddc4e53cb2e16646081b3bb64e1342858f8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 21 15:37:15 2006 +0000

    Fixing #200.  I basically just moved the daemonize statement before most other code.  This makes things a little less nice when starting puppetd manually, since it might still fail and the user would not know without checking logs, but it is the only real option at this point.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1415 980ebf18-57e1-0310-9a29-db15c13687c0

commit 76aec7c684fb877dad8fe5098dfb2c043999bc80
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 21 15:20:44 2006 +0000

    Fixing #202.  Just bumped the log level to notice and changed the wording slightly
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1414 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3cc3f6696481e4e0b8756ecb0cc58aa8536c5862
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 21 15:15:06 2006 +0000

    Applied patch in #203
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1413 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7228413b9a8d4085a5cf1f0f3f9ab944a0a8ee44
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 21 15:10:59 2006 +0000

    Fixing #201; users now autorequire extra groups
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1412 980ebf18-57e1-0310-9a29-db15c13687c0

commit ebd28e84fd559adde54422723cf774bdda6d8ed6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 21 15:10:31 2006 +0000

    moving plugin evaluation into a begin/rescue block
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1411 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8e25115d46966bebeb5c7a9d03ab14c4f5785609
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 21 15:10:11 2006 +0000

    Fixing puppetdoc's output
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1410 980ebf18-57e1-0310-9a29-db15c13687c0

commit 041c07bb9be409b22d443e8db18d6425bccf4f13
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 20 22:51:07 2006 +0000

    adding all mailing lists to index
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1409 980ebf18-57e1-0310-9a29-db15c13687c0

commit 19e411b76b46d331fe82b66f0b1710195e1476e7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 20 19:01:58 2006 +0000

    removing message about the statefile not existing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1408 980ebf18-57e1-0310-9a29-db15c13687c0

commit 09e0792b9a3c6d237963cf11f38fee7af4fd1dd6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 20 16:57:37 2006 +0000

    more doc modifications
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1407 980ebf18-57e1-0310-9a29-db15c13687c0

commit c9640a78a67feaebe51cc4f43e12e50cbebea687
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 20 16:06:19 2006 +0000

    Updating some docs, and renaming configuration reference page
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1406 980ebf18-57e1-0310-9a29-db15c13687c0

commit 40e2db3cf7d08b4870384bf690728df87edb6835
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 20 15:40:04 2006 +0000

    All docs moved over now, and the real index page exists again
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1405 980ebf18-57e1-0310-9a29-db15c13687c0

commit 813d1c9daf8e4cb479980f6327968b64890a36d7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 20 15:30:16 2006 +0000

    committing docs before i move all of them into a separate subdirectory
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1404 980ebf18-57e1-0310-9a29-db15c13687c0

commit f02f6f713b7058a9c554181d8b3496cee4d51f16
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 18 23:34:29 2006 +0000

    Adding Solaris SMF manifests and methods
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1403 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0b90333d2ca6fb2fa8ff77618851cfb30bd9eead
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 18 15:35:15 2006 +0000

    Fixing #191.  I was only testing for parsed cron instances, not for created ones.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1402 980ebf18-57e1-0310-9a29-db15c13687c0

commit aba3d6522f83f86c4d04c864becee4e2bc31d95c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 18 14:00:33 2006 +0000

    Fixing bug in scope/interpreter where nodes found in ldap must have parent nodes.  The problem was that the the scope was using the presence of a parent node to determine whether a node was found.  Instead I added a flag in the arguments to "Scope#evaluate" to mark nodes as found.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1401 980ebf18-57e1-0310-9a29-db15c13687c0

commit 01c880869215288a269b1f607a7c3b4707a47abf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 18 13:19:21 2006 +0000

    Adding a unit test for plain "nodesearch"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1400 980ebf18-57e1-0310-9a29-db15c13687c0

commit 08650c10ae0ef84840c739f048f5c747f5df0832
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jul 16 20:56:36 2006 +0000

    fixing html markup
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1399 980ebf18-57e1-0310-9a29-db15c13687c0

commit e74b8affe2aefcea3294ac4567c76e8a15624b73
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jul 16 20:41:23 2006 +0000

    fixing html markup
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1398 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8273f2176114c670a75d8784280dd97e77892788
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 13 20:37:50 2006 +0000

    fixing index page in the docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1397 980ebf18-57e1-0310-9a29-db15c13687c0

commit b23b79786ca1d5c02bd88b49c639e023db347c23
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 21:18:44 2006 +0000

    Updated to version 0.18.3
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1395 980ebf18-57e1-0310-9a29-db15c13687c0

commit fe8ce260e709649f05ead0e00e5d9753e81a12eb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 21:18:40 2006 +0000

    Updated to version 0.18.3
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1394 980ebf18-57e1-0310-9a29-db15c13687c0

commit a984a90c15faf8e138eb5dae3abeed2be2f6ed29
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 21:18:39 2006 +0000

    Updated to version 0.18.3
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1393 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8063ab1f573e7d4404fddca62a4134b2254f8d1d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 20:58:25 2006 +0000

    Fixing filebucket server so that paths are not added multiple times
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1392 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1ab45947dab40a99c331a5dc550dc00f54dc3180
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 20:40:53 2006 +0000

    Adding tests for previous config bugfixes, and updating changelog
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1391 980ebf18-57e1-0310-9a29-db15c13687c0

commit a6cc3e473fd68bbb7493a81c14fa1a607d88a5a3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 20:22:27 2006 +0000

    Fixing reports so that multiple host report directories can be created.  There was a config conflict before.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1390 980ebf18-57e1-0310-9a29-db15c13687c0

commit 73556a8c71ee1f847f498a8b9db8ff810902dfee
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 20:17:59 2006 +0000

    Fixing templating so it immediately fails when a variable is not found, as opposed to passing up the method_missing heirarchy, which was causing a nasty memory leak and some kind of weird, long-running search
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1389 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1ec1b9905d0b2f0ba0a0cb3b7dc293ee204cdbc5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 20:07:31 2006 +0000

    Fixing weird case involving interpolating config params in a URL
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1388 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f28c6f110dc4f8ecf230f26e150974dcb9918d7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 19:42:00 2006 +0000

    Fixing weird cases where configs might think non-files could be files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1387 980ebf18-57e1-0310-9a29-db15c13687c0

commit b116ac7acb63db61f29883ca4936052e546d9104
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 18:38:42 2006 +0000

    adding sysidcfg param to zones
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1386 980ebf18-57e1-0310-9a29-db15c13687c0

commit a3849d713e44e6f3037f146990d9568e51cea13e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 17:36:32 2006 +0000

    Fixing templating bug that can result in what looks like an infinite loop, and changing default timeout to 2 minutes instead of 30 seconds
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1385 980ebf18-57e1-0310-9a29-db15c13687c0

commit 86a92de183232a986f0c53820576f364711477a6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 16:53:59 2006 +0000

    Reducing log level of missing file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1384 980ebf18-57e1-0310-9a29-db15c13687c0

commit 71399017c06b5f38e1e091f932066280552e586c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 16:52:20 2006 +0000

    Fixing error when template does not exist
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1383 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3fbd06a3f38f9895dae0eee69e058b2d6f2dbb83
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 16:27:42 2006 +0000

    Fixing misstated error name ExecutionError in blastwave packaging support
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1382 980ebf18-57e1-0310-9a29-db15c13687c0

commit 829c7548cb94521c5c26a4eda31e2389c543dd27
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 11 16:17:05 2006 +0000

    Fixing reports server so it refers to the main server
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1381 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0acebb193a0b32decc37bff8edab2fddd5bf832c
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 10 23:13:06 2006 +0000

    Default the passno to 2, defaulting to 0 is a bad idea since it disables fsck
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1380 980ebf18-57e1-0310-9a29-db15c13687c0

commit 44c54fc0a5e5d52d679d694e652d727cc1c15841
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 10 21:17:49 2006 +0000

    changing plugin owner to root
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1379 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9be1e0b887ccc761188e2f47d76bf72afc1bcb85
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 10 21:10:03 2006 +0000

    changing default plugin host to be $server
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1378 980ebf18-57e1-0310-9a29-db15c13687c0

commit a4a04feb41ec7d1b4ef0367929fbe6d79eba7034
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 7 19:26:18 2006 +0000

    adding rake targets
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1377 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0c96fc607d32f9e68634d1c838fa8a6af71c5ad3
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jul 7 18:50:39 2006 +0000

    Doc change: explain what the values for ensure do
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1376 980ebf18-57e1-0310-9a29-db15c13687c0

commit 67dab0e978e537af9d85a84e481624da74a5dfeb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 6 17:59:30 2006 +0000

    adding another state that is equivalent to "stopped" for smf services
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1375 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8a10b0802cd4e91d67acfad1a4e2fb47a173f5b3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 6 04:43:07 2006 +0000

    Adding the newly generated docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1374 980ebf18-57e1-0310-9a29-db15c13687c0

commit e57f6e78ce305850b93e7da683a13597eb41936f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 6 04:39:59 2006 +0000

    More documentation updates.  I think this is sufficient for replacement of the plone site.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1373 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9b7f428843cb117e2de14e27153631827ee0b865
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 6 02:42:58 2006 +0000

    Fixing rakefile so it generates docs from markdown, and adding big-picture.page to the menu
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1372 980ebf18-57e1-0310-9a29-db15c13687c0

commit 70877fb4cfabcfe92688093e8bce79f0dea2c9b7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 6 02:31:29 2006 +0000

    removing faq.rst file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1371 980ebf18-57e1-0310-9a29-db15c13687c0

commit fefe1c51725f942fd28aab1cd7e0a5228ed263da
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jul 6 00:40:36 2006 +0000

    Updates; remove mention of patches from specfile completely
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1370 980ebf18-57e1-0310-9a29-db15c13687c0

commit f42666c0f1ae199c6c893d4a90a5e9e53f0106c4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 5 18:10:50 2006 +0000

    updating changelog for 0.18.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1369 980ebf18-57e1-0310-9a29-db15c13687c0

commit eff8d6ef0312b7f26e35b103e0dff9b148f54bd5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 5 17:17:39 2006 +0000

    Accepting the patch from #190.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1368 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6b281eda564c4108f1955deb724e8beebb1e39cb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jul 5 17:13:59 2006 +0000

    removing cf2puppet from rpm
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1367 980ebf18-57e1-0310-9a29-db15c13687c0

commit bd9fd8dce7d08da80e1cd9f20b9df51d3c8f554c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 4 23:53:57 2006 +0000

    Updated to version 0.18.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1365 980ebf18-57e1-0310-9a29-db15c13687c0

commit 71036e780b04a8aacd714025c5773d52cfe64012
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 4 23:53:54 2006 +0000

    Updated to version 0.18.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1364 980ebf18-57e1-0310-9a29-db15c13687c0

commit aa879632dac801051c57f2d131ca62a70832d6a7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 4 23:53:52 2006 +0000

    Updated to version 0.18.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1363 980ebf18-57e1-0310-9a29-db15c13687c0

commit afe84ecaa26b280bf3cbf1544197cc92389a6446
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 4 23:53:23 2006 +0000

    small fixes towards 0.18.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1362 980ebf18-57e1-0310-9a29-db15c13687c0

commit e17f4ed1d9e4011b0d7ccca35f3ff16541f05f26
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 4 16:43:16 2006 +0000

    adding host information to reports and tagmail report
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1361 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1503b42c46d28e6bbb965c97fecd90b765e4356a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 4 16:30:22 2006 +0000

    renaming tagmail config file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1360 980ebf18-57e1-0310-9a29-db15c13687c0

commit c3a8d45ee644b0e7d71e62014cb65b8e8174391c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 4 16:27:35 2006 +0000

    Redoing reporting a bit, so that reports are now defined as methods.  If they are not methods, then they cannot use return, which makes things a bit uglier.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1359 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3c22bc944d68210881411f0c80f2252516557f5d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 4 16:07:47 2006 +0000

    fixing some smallish bugs in preparation for 0.18.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1358 980ebf18-57e1-0310-9a29-db15c13687c0

commit 73569d054b1bcede4f0b4bd64487f98d060b78ba
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 4 06:06:09 2006 +0000

    fixing a small but important typo, and adding sunfreeware as a dupe of blastwave packages
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1357 980ebf18-57e1-0310-9a29-db15c13687c0

commit 87ce8ed7b672b574b4bd2870a42b6c186182c5a7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jul 4 05:45:28 2006 +0000

    Adding blastwave packaging, and doing some fixes on gem and sun packaging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1356 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2e78526b6bf646584feb19adb95a4f5fdd8f8b7a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 3 23:15:15 2006 +0000

    Some updates resulting from trying to track down a segfault introduced when I upgraded to 1.8.4-5 in Debian.  I never found the segfault and had ot downgrade to 1.8.4-1.  I expect it will not be encountered in real life, only in testing.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1355 980ebf18-57e1-0310-9a29-db15c13687c0

commit e57c5131aee017bd015e9419b5a1ceeb306677a7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 3 20:06:32 2006 +0000

    Adding Ruby Gem support to packaging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1354 980ebf18-57e1-0310-9a29-db15c13687c0

commit 25cf31b00057d552fcffde568049e37655c31fbc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jul 3 16:22:42 2006 +0000

    Adding minimal update checking for templates.  It will only check the templates that have been parsed in this process, but it is better than nothing.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1353 980ebf18-57e1-0310-9a29-db15c13687c0

commit c899e2327b35f09f8061607bbb3b7c732500c5ba
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jul 2 19:28:53 2006 +0000

    documentation updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1352 980ebf18-57e1-0310-9a29-db15c13687c0

commit c1e0bc625f41a55ba741818c4f238a8b48e4ba2f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jul 1 17:27:54 2006 +0000

    More report and metrics manipulations.  This should be the last of it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1351 980ebf18-57e1-0310-9a29-db15c13687c0

commit 34e779fcf2bfed1c6874084af6c99e072c4ecc7f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 30 22:30:27 2006 +0000

    Significantly redoing metrics.  There are now no class variables for metrics, nor no class methods for it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1350 980ebf18-57e1-0310-9a29-db15c13687c0

commit 24f07e0686cc9d81452d33daf215fa050ec89129
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 30 20:46:07 2006 +0000

    committing tests for previous changes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1349 980ebf18-57e1-0310-9a29-db15c13687c0

commit dea7e24423adbb8bc0839dedcf1157d6dff6a91b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 30 20:43:55 2006 +0000

    oops; adding transaction report class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1348 980ebf18-57e1-0310-9a29-db15c13687c0

commit 70143d217fcf3cd2bfbcfd0e5c9c38292716de2b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 30 20:43:29 2006 +0000

    Trying to merge metrics and reports.  There is now a separate transaction report class, and it works throughout the previously existing system.  I will next go through trying to make a metric report that graphs the metrics in rrd.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1347 980ebf18-57e1-0310-9a29-db15c13687c0

commit 795ec70fc1ae678178e4a7cf16ea8fa76a122ea6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 30 20:41:41 2006 +0000

    adding a "thinmark" method, which does a simple benchmark with no logging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1346 980ebf18-57e1-0310-9a29-db15c13687c0

commit 19b5d3033cc9a80666941b607e2fc5932fa8011e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 30 14:44:11 2006 +0000

    Accepting patch #189, although I am just putting the environment statement in the main part of the class, since there are two apt commands
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1345 980ebf18-57e1-0310-9a29-db15c13687c0

commit ff6562f9fa1ddf7e816256764f1bcc491693df9f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 30 14:42:46 2006 +0000

    Fixing #133.  Added a "notify" and a "before" metaparam; notify is the opposite of subscribe, and before is the opposite of require.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1344 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9bb9e1062a7bf747d1972d69eca9f00d2c0bd030
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 30 01:43:02 2006 +0000

    Fix a small bug in mount where parsing fails if dump and pass are missing (they are optional on Linux) Revamp the tests slightly so that they parse fstabs provided in svn rather than relying on the fstab on the system the test is running on.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1343 980ebf18-57e1-0310-9a29-db15c13687c0

commit f792a02aa153eedf5293791daaf355232f357cc4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 30 00:28:16 2006 +0000

    Moving the template handling into a simple wrapper object so templates don't have full access to the scope object without some real hacking.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1342 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8b60619f5857569c2971237c80cf214cb8e71b3f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 29 23:51:21 2006 +0000

    adding some tests for the template function
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1341 980ebf18-57e1-0310-9a29-db15c13687c0

commit a6dc7f2e22bf548240064a68ae2ee04309f7de24
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 29 23:35:57 2006 +0000

    Adding initial template support.  It is just a function, and a method_missing method on Scope.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1340 980ebf18-57e1-0310-9a29-db15c13687c0

commit e47a98769380b37ec1ee65cf922ce2cc7aa7b88a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 29 20:32:17 2006 +0000

    First commit of complete reporting support.  The only existing report at this point is the tagmail report.  I expect reporting to get significantly modified from here, but it is a good start.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1339 980ebf18-57e1-0310-9a29-db15c13687c0

commit ea9189604a5f8475a87ec03415a1a47681eba0fb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 29 19:29:05 2006 +0000

    changing the #!ruby lines to #!env ruby
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1338 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1677594f3de4070af8712515a20e6448b990ba8d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 29 17:11:10 2006 +0000

    Adding reporting client, server, and tests.  At this point, the server just stores the report in a file as YAML.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1337 980ebf18-57e1-0310-9a29-db15c13687c0

commit 56a28456c240bc25b89a4a6b02e39aaaef162391
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 29 16:05:52 2006 +0000

    Adding report collection to both statechange and transaction.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1336 980ebf18-57e1-0310-9a29-db15c13687c0

commit d2754895ead8e8b036e29a628e3de9fad1abba34
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 28 20:33:51 2006 +0000

    Updated to version 0.18.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1334 980ebf18-57e1-0310-9a29-db15c13687c0

commit 35ef37b261e9d262a440c3eb7d7acae3959e6cb5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 28 20:33:48 2006 +0000

    Updated to version 0.18.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1333 980ebf18-57e1-0310-9a29-db15c13687c0

commit 427831c7eb9a5617539a70e49858f3148d08435e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 28 20:33:47 2006 +0000

    Updated to version 0.18.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1332 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7adafc60c2faa452620b39a5254f26c9156f79d5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 28 20:14:45 2006 +0000

    For each type, adding a "new<type>" method to Puppet::Type, so instead of typing Puppet::Type.type(:file).create(...) you can now type Puppet::Type.newfile(...).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1331 980ebf18-57e1-0310-9a29-db15c13687c0

commit e8c57ae6decdd5409c102f23488a18022f80836d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 28 19:47:36 2006 +0000

    Cleaning up plugin handling a bit -- they can now be colon-separated paths, and I added a separate "plugindest" setting for determining where plugins are synchronized to.  The major feature I added, though, is that Puppet::Type now knows how to load plugins, and treats :pluginpath as a search path for plugins.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1330 980ebf18-57e1-0310-9a29-db15c13687c0

commit d98ab112a6ed5cd84d4e8b2e9c349283923ecc29
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 28 18:51:11 2006 +0000

    Fixing zone tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1329 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4985d8fc6b74d99a3770293a1323949056b023bd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 28 17:49:10 2006 +0000

    adding message about retrieving plugins
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1328 980ebf18-57e1-0310-9a29-db15c13687c0

commit dec40539df8dcdc49d3277b6b0d4669cb3e25edd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 28 16:31:53 2006 +0000

    updating CHANGELOG for 0.18.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1327 980ebf18-57e1-0310-9a29-db15c13687c0

commit 547121158f91ace7fe1e0c6f6b7fe0570acbf28c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 28 16:17:46 2006 +0000

    Moving the timer monitoring to after the services are created (because they actually create the timers), and adding a sleep statement to give the threads enough time to create the timers.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1326 980ebf18-57e1-0310-9a29-db15c13687c0

commit ad1396d3d960b805d3f9510d105937b6854deb90
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 28 15:17:56 2006 +0000

    Fixing backgrounding in puppetrun; I had the bit flipped between the client and the server, such that setting --foreground caused the clients to go into the background.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1325 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5be3c107fa1c81c26e379eb900f780589ccffa04
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 27 22:16:21 2006 +0000

    Converting Parameter#proxymethods from using eval to using define_method
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1324 980ebf18-57e1-0310-9a29-db15c13687c0

commit b2304f19c1128895dbaa2b60f8d5d27f84b2f80c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 27 21:16:47 2006 +0000

    Making sure fail function converts everything to strings
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1323 980ebf18-57e1-0310-9a29-db15c13687c0

commit c363af0628386b9d67121db7c4f2fa2a5e8b9f65
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 27 21:14:55 2006 +0000

    Adding "fail" function, which will raise a ParseError if it is encountered.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1322 980ebf18-57e1-0310-9a29-db15c13687c0

commit 57a5a71d517bd8a6ec977f7b17691695299f7959
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 27 18:47:48 2006 +0000

    Catching errors thrown during object evaluation and marking the objects as failed.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1321 980ebf18-57e1-0310-9a29-db15c13687c0

commit 506269fdfddbf04acd113299496f2f2c6b79b662
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 27 18:46:45 2006 +0000

    adding hooks for ignoring files in the plugins directory, and defaulting to ignoring cvs and svn files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1320 980ebf18-57e1-0310-9a29-db15c13687c0

commit 76859574c36761db81a25283d759edfcc591cf84
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 27 18:15:16 2006 +0000

    removing that info message, duh; it produces a lot of spurious output during parsing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1319 980ebf18-57e1-0310-9a29-db15c13687c0

commit c8861943c3ff520a041b2264683843afc7d84e93
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 27 17:59:57 2006 +0000

    Adding info messages about errors loading plugins
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1318 980ebf18-57e1-0310-9a29-db15c13687c0

commit 772ea917e5b93f105118fcf0152cd0622f6a8b3c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 27 17:23:04 2006 +0000

    Adding support for special freebsd @schedule crap.  Also making sure that cron listing works as expected.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1317 980ebf18-57e1-0310-9a29-db15c13687c0

commit 08f113c6ccfb0bc3db4c717df575b1219a46603a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 27 05:53:08 2006 +0000

    switching puts to print, so the carriage returns are always included in the messages
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1316 980ebf18-57e1-0310-9a29-db15c13687c0

commit bdd1761c561ed80003a62068157c4aaf32c83a73
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 27 05:15:51 2006 +0000

    Largely refactored how log destinations are handled, although it is not exposed externally.  Most of this work is related to handling a large number of small problems related to threading.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1315 980ebf18-57e1-0310-9a29-db15c13687c0

commit 73a4bcc8357b13bb45ae0c5ccdda35b8563f1971
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 27 00:22:03 2006 +0000

    Changes to make puppet package more LSB compliant. Update specfile for very latest Fedora ruby packaging guidelines. lsb-config.patch only checked in for documentation purposes, since changes are part of this checkin.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1314 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0411f74bc139ddb8147f9aa82d83700dc576939a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 26 22:47:51 2006 +0000

    Fixing some more small problems in puppetrun
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1313 980ebf18-57e1-0310-9a29-db15c13687c0

commit 31c17e47607bdebf8e2591a98e9fd6f862d3852a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 26 19:19:06 2006 +0000

    Adding more docs to puppetrun, and fixing bug that can cause hosts to get skipped
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1312 980ebf18-57e1-0310-9a29-db15c13687c0

commit faab17ba0dc356101712ccc85a1c07d679d31828
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 26 18:52:37 2006 +0000

    adding - to HUP in init scripts
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1311 980ebf18-57e1-0310-9a29-db15c13687c0

commit bb5366f2602c29405a75dd1ba142ab32b5b08841
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 26 18:35:30 2006 +0000

    Updating init scripts to use HUP for restarting
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1310 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3c5b10dba78ec71e99b7021389d9aeb0ad8f4941
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 26 18:16:52 2006 +0000

    Adding a "latest" test for rpms, since I have been told this is not working.  It seems to be working fine, but the test cannot hurt.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1309 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5cf2a4d3311a06774a597fa9c2692f6e135491dc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 26 17:51:05 2006 +0000

    Adding HUP and USR1 hooks
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1308 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4a717068d28db602ea831b88404d47305115c53f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 20 18:46:58 2006 +0000

    Fixing #178.  I just added URI escaping and unescaping to file names.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1307 980ebf18-57e1-0310-9a29-db15c13687c0

commit f9a4d7addd7e31e6b868cbbf3cc87ffbfea781e3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 20 18:38:48 2006 +0000

    Fixing #175.  The setpidfile setting was being ignored.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1306 980ebf18-57e1-0310-9a29-db15c13687c0

commit d812840a89092ccd04c2ad81a3bd80a6cc2f7882
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 20 18:31:54 2006 +0000

    Fixing #182.  Added a retry section to try reconnecting to ldap.  Only one reconnect is attempted in a given search, and LDAP produces bad enough error messages that we reconnect regardless of the error thrown.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1305 980ebf18-57e1-0310-9a29-db15c13687c0

commit 46824cd8167e2d07ba1f1bdb0cc24789b3a565b1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 20 18:10:06 2006 +0000

    Setting pluginsync default to false, and (hopefully) fixing autosign problem when the file exists and autosign is set to true (#180).  The problem was that the puppetmasterd script was redundantly setting autosign in the CA, when the CA already knows how to deal with autosigning, which meant that autosign was being set before the config was parsed.  Thus, there was no bug when autosign was set on the command line but there was when it was set in the config.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1304 980ebf18-57e1-0310-9a29-db15c13687c0

commit 15905bd5ee0d692e44bed516fe720c278ce67835
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 20 01:34:24 2006 +0000

    Fixing broken symlink behaviour mentioned on the list
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1303 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0a1e847961977221b36d7d6c8babffe6fa69c4b6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 20 00:25:35 2006 +0000

    Adding plugins and plugin management.  The Master Client will now automatically download plugins if pluginsync is enabled, and they will be automatically sourced.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1302 980ebf18-57e1-0310-9a29-db15c13687c0

commit edabf9e4938b06d2c03117e4812749fb7779bce7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 19 19:50:20 2006 +0000

    documentation updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1301 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4df2583c3c7dda428d37780f1905738899056030
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 19 19:12:54 2006 +0000

    More documentation changes.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1300 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8ad200886f527c18839f6055b695d794a7b9e438
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jun 18 00:12:26 2006 +0000

    adding id tags to all of the docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1299 980ebf18-57e1-0310-9a29-db15c13687c0

commit 58826ca44cfac18e3d1642b45701bc05217bf365
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jun 18 00:11:15 2006 +0000

    further work on converting from rst to markdown
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1298 980ebf18-57e1-0310-9a29-db15c13687c0

commit b6a52b7ad29a79ddca0fb0c35df3fbdec67464cd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jun 18 00:10:50 2006 +0000

    further work on converting from rst to markdown
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1297 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3772aaf3d3d96058d9a88b86e477e9845fc49736
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jun 18 00:00:30 2006 +0000

    further work on converting from rst to markdown
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1296 980ebf18-57e1-0310-9a29-db15c13687c0

commit e891ffb0280bb13411d4614d9ae4be3522d291cc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jun 17 02:04:50 2006 +0000

    updating some docs and puppetdoc in preparation for a move to webgen instead of plone
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1295 980ebf18-57e1-0310-9a29-db15c13687c0

commit 90e8ad811495ecf8fd3f3d4572dff3644ce1dfe7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jun 17 01:57:18 2006 +0000

    removing the old rst index file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1294 980ebf18-57e1-0310-9a29-db15c13687c0

commit 644fd4e5ff3cf3a31370be48c7d960e74204477d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jun 17 01:56:04 2006 +0000

    updating docs to work with webgen
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1293 980ebf18-57e1-0310-9a29-db15c13687c0

commit f0907607347c26127dd566fbe5b19c8528d25f5d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 15 23:13:01 2006 +0000

    Fixing my autorequire fix; oops
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1292 980ebf18-57e1-0310-9a29-db15c13687c0

commit 084a31da45e5069ec485b502e388604591857200
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 15 18:28:30 2006 +0000

    fixing autorequire message to include the object type
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1291 980ebf18-57e1-0310-9a29-db15c13687c0

commit bdb9110b358e7701e3b120cfbab6ca99253460a2
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 15 15:43:36 2006 +0000

    Delete entries from the config file if their should is 'absent'
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1290 980ebf18-57e1-0310-9a29-db15c13687c0

commit 883921c7607da1a805b223ffeff6950f97192315
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 15 15:41:47 2006 +0000

    Test that setting a state to 'absent' really deletes it from the config
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1289 980ebf18-57e1-0310-9a29-db15c13687c0

commit e841d8fafac51837b13c3f429d988944aaba2119
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 15 15:27:49 2006 +0000

    Adding test and fix for empty execs being ignored
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1288 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6ef3d88110fd44b51733d03ff01f5f84aa327fb7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 15 15:17:26 2006 +0000

    fixing interpreter to initialize ldap in the nodesearch_ldap method, which really only matters for testing (since it is already being inited in the nodesearch method
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1287 980ebf18-57e1-0310-9a29-db15c13687c0

commit 662fcafdb8020b34b060d70d54fca996ece36ab8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 22:12:01 2006 +0000

    making links even if the target does not exist
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1286 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0ab461b3d4a619821ed850a8fd5f8bb1cb751c4c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 18:12:00 2006 +0000

    Updated to version 0.18.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1285 980ebf18-57e1-0310-9a29-db15c13687c0

commit daac8cfefdd18b7a59515a99788e9f966cc28b5c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 15:39:49 2006 +0000

    Updated to version 0.18.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1282 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8779dbebc99337d5869d6581f863168978718dd1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 15:39:47 2006 +0000

    Updated to version 0.18.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1281 980ebf18-57e1-0310-9a29-db15c13687c0

commit ae3dba9e63054f4d0ebe622a9b6bef580ae33f3c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 15:39:29 2006 +0000

    updating changelog for 0.18.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1280 980ebf18-57e1-0310-9a29-db15c13687c0

commit ead6b17e983eaeefa7276634366219f23dfb5f59
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 15:30:25 2006 +0000

    updating documentation for sshkey
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1279 980ebf18-57e1-0310-9a29-db15c13687c0

commit 20b0a6ddad185f8f631fc2b1e4917dc169fe1442
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 14:40:30 2006 +0000

    fixing transaction tests to just warn when the user is not in more than one group, rather than failing.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1278 980ebf18-57e1-0310-9a29-db15c13687c0

commit be92c44ffaeb22018f5bcfbc165de7dd8933022b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 05:55:58 2006 +0000

    Setting options and the facility for syslog
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1277 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9a1b9ec9ce8c148c73107b056729e5325a7ca478
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 05:19:26 2006 +0000

    Fixing some logging issues with puppetmasterd when daemonized with verbose mode on, and fixing ldap support when daemonizing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1276 980ebf18-57e1-0310-9a29-db15c13687c0

commit c1dd0a1a157ea2d73e178c377b942b5f4053e317
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 04:27:45 2006 +0000

    Changing statechange noop message so it's a bit clearer
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1275 980ebf18-57e1-0310-9a29-db15c13687c0

commit 603a53c863350f4f2ce9658ee874711d80cf6c76
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 00:44:51 2006 +0000

    Just logging host failures, not exiting
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1274 980ebf18-57e1-0310-9a29-db15c13687c0

commit c1f0fb7206fb9ac94adcc1526a0df9f5aeb76568
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 00:22:18 2006 +0000

    Adding fqdn, an --all flag, and --test mode to puppetrun
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1273 980ebf18-57e1-0310-9a29-db15c13687c0

commit f86357d64a2fce39fd0795d2a4e9f286ee0ce696
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 14 00:11:06 2006 +0000

    adding namespaceauth and --listen docs to puppetrun
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1272 980ebf18-57e1-0310-9a29-db15c13687c0

commit 97c7342cfd6aefc8bff20fd8dc9cae0ee213810c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 23:49:53 2006 +0000

    Adding fixes for solaris zones
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1271 980ebf18-57e1-0310-9a29-db15c13687c0

commit 02d397c7c7d08ac6203f231032cc4ab6dcf70dd9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 23:41:04 2006 +0000

    abstracting out ldap connections so that there is a single method responsible for all of them and a single connection can be shared in all classes if necessary
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1270 980ebf18-57e1-0310-9a29-db15c13687c0

commit 076e8889a7c566415cb6dca1019aaaa2f14ef8bb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 23:36:40 2006 +0000

    adding ssl usage to puppetrun
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1269 980ebf18-57e1-0310-9a29-db15c13687c0

commit 15da00c2366583f54e834a11faf98d1e46f172d1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 23:36:18 2006 +0000

    Fixing ldap usage when ldap libs are not available
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1268 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4a5b886f453dffefba4e9be0ab9c7fc53d2438ce
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 23:11:09 2006 +0000

    removing extraneous debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1267 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7ed556083fa1b8ed8230c86b52a78430abb2ff19
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 23:07:18 2006 +0000

    Fixing installer; it somehow got broken with recent DESTDIR fixes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1266 980ebf18-57e1-0310-9a29-db15c13687c0

commit fd8e080768a3a4e048e8638b60c74afd9d798e98
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 22:55:14 2006 +0000

    Fixing #173.  At this point, I am just calling both "--add" and "on", or "--del" and "off".  This should probably be broken up into other states, but....
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1265 980ebf18-57e1-0310-9a29-db15c13687c0

commit ef163ba0d0033635745220c7b2d1f209f4e1700e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 22:54:33 2006 +0000

    fixing parallelization to match the docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1264 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1dfd55408d3a9f5c609ee562d0e948c15c5629fb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 21:23:58 2006 +0000

    Fixing packaging to deal with the fact that yum exits with 0 exit code even when it is told to install a non-existent package.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1263 980ebf18-57e1-0310-9a29-db15c13687c0

commit df340d6cd176f375df94e35ed2efc48b622348f2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 20:21:40 2006 +0000

    Correcting puppetrun docs and fixing a test so it works with older versions of facter
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1262 980ebf18-57e1-0310-9a29-db15c13687c0

commit b4b3c27ff4d0c748c68efd856865dffb65f0ba90
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 18:09:40 2006 +0000

    Adding support for default nodes as requested in #136.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1261 980ebf18-57e1-0310-9a29-db15c13687c0

commit ba4071cba3fc4c975538199933945f09bd4d28b2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 18:09:07 2006 +0000

    changing puppetclient schema to descend from top instead of iphost
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1260 980ebf18-57e1-0310-9a29-db15c13687c0

commit 07e0d592c42249481aa7578e521182c6c19271ca
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 17:31:10 2006 +0000

    Fixing #169.  Tags are ignored during config.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1259 980ebf18-57e1-0310-9a29-db15c13687c0

commit c380bfe234769165ba5c2e2d197dd1a1bdfa3e2b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 17:26:32 2006 +0000

    Fixing the main bug reported on the list today relating to file sourcing truncating linked-to files.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1258 980ebf18-57e1-0310-9a29-db15c13687c0

commit 90762c55bc48d2af2ebba13898fe6134f087ed18
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 17:25:17 2006 +0000

    adding noop marker as requested
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1257 980ebf18-57e1-0310-9a29-db15c13687c0

commit ec0609d81cb5f2b44fce7174b72dd2c5a06dfbe6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 13 15:57:06 2006 +0000

    A round of bug-fixing in preparation for the next release.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1256 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9af5d697385fd28843d1603e9e6afd272ec5e560
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 12 20:54:33 2006 +0000

    adding nothing test to zone tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1255 980ebf18-57e1-0310-9a29-db15c13687c0

commit a6122e8d67ffc0165e8746150e6af7f53cb7be2d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 12 20:04:25 2006 +0000

    Fixing ldap node lookup.  The test was set up badly, in that it did not actually provide a way to enable ldap node support, even though there was a config option that should have worked.  All works now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1254 980ebf18-57e1-0310-9a29-db15c13687c0

commit 360a40567479b8c50c5123cddf643e931c2665cc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 12 19:04:34 2006 +0000

    turning on output flushing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1253 980ebf18-57e1-0310-9a29-db15c13687c0

commit edfaf6e03cd0a47f964fab0b9a27888ec002d680
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 12 19:01:43 2006 +0000

    Adding support for following referrals
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1252 980ebf18-57e1-0310-9a29-db15c13687c0

commit 555e1b8e18e010aeefb8b181b2e2e367fd2e4e4b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 12 18:23:40 2006 +0000

    Fixing #135.  I was setting the object to the result of an include? test, instead of just "obj = ary[val]", so all but the first bucket-backed files were getting errors.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1251 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8ceb1f30496d89f883d9dfa00d5eab001dcd1450
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 9 21:22:25 2006 +0000

    Found a bug where single-value selectors can fail on a second compile.  Fixed it, and am now compiling all snippets twice.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1250 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4ca7ece1f294488615d5899cb4710c5cb13c5e23
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 9 18:42:08 2006 +0000

    modifying rakefile to specify the package hosts; they were previously hard-coded in the build library
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1249 980ebf18-57e1-0310-9a29-db15c13687c0

commit 09d2cd031ffdd16968c92710d6d56715866c334e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 8 21:46:07 2006 +0000

    Fixing #168.  Reworked the regex to allow matching TLDs.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1248 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1fc4ec373f8ee272077e2e78a380ac78879ffabe
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 8 20:54:49 2006 +0000

    Fixing #167.  Started with the submitted patch and made a few more modifications, and added a regression test.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1247 980ebf18-57e1-0310-9a29-db15c13687c0

commit c90d0b1144c095ecd16f3e3243b003adc686675c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 8 20:38:44 2006 +0000

    Fixing #157.  Objects are no longer allowed to be their own parents, and there are checks in both directions to stop this.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1246 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7c358df27b17e13a42e9b6af3b946e2e91f9785d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 8 20:06:41 2006 +0000

    Fixing #166.  Function names are no longer reserved words.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1245 980ebf18-57e1-0310-9a29-db15c13687c0

commit e73f2d479f4d3f1ea84016ee554f729d78808620
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 8 17:28:28 2006 +0000

    Fixing #158.  I did not add a force option, since I always back files up before I replace them.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1244 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4266f64ed5eea79e939c39b18861685a5b5a8ec7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 8 16:32:40 2006 +0000

    adding faq to docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1243 980ebf18-57e1-0310-9a29-db15c13687c0

commit d6d05d4e3d2aafa95a0af8705b6b2f03367ac451
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 8 16:32:34 2006 +0000

    Fixing #154.  Basically just accepted the patch that fixes master.rb and added a test case for it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1242 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1cef8f576cf21f715f497e6ff9e350aea9c2a93d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 8 16:18:48 2006 +0000

    Applied patch from #153.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1241 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2257d6f557174f9e70aa3e6abfcb26362236aea6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 8 16:15:38 2006 +0000

    Fixing #155.  It is now valid to have arrays with no values, although you will still likely get erratic behaviour elsewhere in the system, depending on what you do with this.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1240 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0e5240913117ee9a8263da1545c4b803d01199cb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 8 16:10:18 2006 +0000

    Fixing #159 -- packages now have a default value for ensure (:installed).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1239 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3758bdb08913baab3d5cbeba7b2329f71834e446
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 7 20:03:43 2006 +0000

    adding rakefile for the docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1238 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1a93e6d6d8c253da985262f7adfeb533570ec17f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jun 7 18:14:00 2006 +0000

    copying all documentation from the plone site
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1237 980ebf18-57e1-0310-9a29-db15c13687c0

commit d84827e09510bd069f912fc3d1c30a38355a054a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 6 04:06:14 2006 +0000

    Committing largely complete Solaris zone support.  I still need to add static filesystem support, but everything else should work.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1236 980ebf18-57e1-0310-9a29-db15c13687c0

commit 73c5c585c06fb1058f23d37c04cb2648d2e85c2b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jun 6 04:02:41 2006 +0000

    removing one of the stack traces from error output
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1235 980ebf18-57e1-0310-9a29-db15c13687c0

commit 95f273eb416d0544161cb2a5aca677e2f2239b37
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jun 5 16:05:56 2006 +0000

    Fixing #163.  Strings can now correctly escape dollar signs.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1234 980ebf18-57e1-0310-9a29-db15c13687c0

commit a3ed62936c81951105fd5d7676858c8f9add3b38
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jun 2 23:38:55 2006 +0000

    Intermediate commit; most of the core zone functions now work, and some of the configuration functions work.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1233 980ebf18-57e1-0310-9a29-db15c13687c0

commit 81ce66a92a482aa1225fffa98fce4e874d2a83d0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 1 21:17:13 2006 +0000

    Fixing node tests to handle comma separation
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1232 980ebf18-57e1-0310-9a29-db15c13687c0

commit 011e811f6e9096eedc1b500bb00841292897258b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 1 20:39:13 2006 +0000

    temporary commit so i can transfer my testing to a faster, sparc box
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1231 980ebf18-57e1-0310-9a29-db15c13687c0

commit add6b805e84feb2636335b1b3a87ef1b11db60a5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 1 00:48:56 2006 +0000

    Fixing #160.  Fixing the error in Puppet::Type#[]= and scope.newobject
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1230 980ebf18-57e1-0310-9a29-db15c13687c0

commit 76ff83d86ce2bfaea69bb57af766833ea21095a5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jun 1 00:30:07 2006 +0000

    Fixing #161.  Basically, AST::ObjectDef now catches when users specify a name as a parameter instead of the name before the colon and modify the results accordingly.  This catches this kind of problem, and the normal name handling picks up everything else.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1229 980ebf18-57e1-0310-9a29-db15c13687c0

commit b08816b000242def032f7099cad2d27310ed389c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 31 22:52:52 2006 +0000

    Fixing #162.  Node names must now be comma-separated.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1228 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2fcbc7f5433fab36b60bedf5a97dd610ef231721
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun May 28 22:13:46 2006 +0000

    Adding an "execute" method to Puppet::Util, and including the module in element.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1227 980ebf18-57e1-0310-9a29-db15c13687c0

commit 354b945c5a023e457c22a3bd22cdfd7615a6d154
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun May 28 21:04:15 2006 +0000

    adding zone management stub; switching to my home vm for testing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1226 980ebf18-57e1-0310-9a29-db15c13687c0

commit 98ad43a19e71c2a100c4e025027e71abe44729e6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 25 21:54:49 2006 +0000

    fixing destdir in installer, and adding solaris conf stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1225 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4cd30194f18cdb792bc551080b95c0a6ce400de5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 25 06:24:44 2006 +0000

    Did some work on making sure object removal actually works, thus stopping some potential memory leaks.  Also explicitly removed objects in more places, again hopefully forestalling memory leaks.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1224 980ebf18-57e1-0310-9a29-db15c13687c0

commit 45a9edbe23c43b5e1c8e2c6683502a6a6ef54661
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 25 06:08:11 2006 +0000

    Reworking cron; adding many unit tests, and making it much more like a ParsedType (although still not quite the same).  Too many of my tests were invalid; I think those are all fixed now, and it appears to work as desired.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1223 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3ab4a897c863755d5af0000172260c42d30a025a
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 19 21:15:35 2006 +0000

    Small fix to include puppetrun in /usr/bin
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1222 980ebf18-57e1-0310-9a29-db15c13687c0

commit 62a0ff03990c855cb16d5cfb7671cea0cfa63217
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 19 20:29:13 2006 +0000

    adding puppetrun to the red hat spec file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1221 980ebf18-57e1-0310-9a29-db15c13687c0

commit fda013a57782626f1bbdce16ee2b8ac9dcfeb61a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 19 19:20:05 2006 +0000

    Updated to version 0.17.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1219 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3c15a28acf7e77a951415f27fe82666592b60072
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 19 19:19:43 2006 +0000

    updating changelog for 0.17.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1218 980ebf18-57e1-0310-9a29-db15c13687c0

commit a08ca93db15561ec74c793dba10c6f31c972d9dd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 19 19:18:30 2006 +0000

    Fixing #138, all of it, I think.  Environment settings are now allowed, although all bets are off in terms of parsing existing environment settings in crontabs.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1217 980ebf18-57e1-0310-9a29-db15c13687c0

commit 69cf2fe278eb20b718663535bbae18965a1ece63
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 19 18:31:20 2006 +0000

    Adding a small fix to cron tabs; they will at least parse tabs that have env settings in them, although you still cannot, at this point, set them.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1216 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0381cc1280c2c4c16687f7537962e9e1f1186d85
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 19 17:58:47 2006 +0000

    slight ldap fixes in puppetrun
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1215 980ebf18-57e1-0310-9a29-db15c13687c0

commit d55adda617793c90a0ad38b09ef620b14d2e497b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 19 17:29:35 2006 +0000

    First version of puppetrun.  It seems to mostly work, but I need to test it with greater parallelization.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1214 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5671ce8bbc6eb75664190a7a2fe4b195ee31d4b7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 18 22:16:03 2006 +0000

    Added the last of the tests for the runner, along with the necessary work in puppetd to be able to start it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1213 980ebf18-57e1-0310-9a29-db15c13687c0

commit b3ea53cd99df84a93fe2f093d2224e711f49e5dd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 18 20:41:54 2006 +0000

    Adding a lot of structure to puppet.rb to make it easier to manage multiple objects in a single process, including making it easy to add threads.  Added some testing for all of that.
    
    Also added a "runner" server, meant to be started within puppetd, so that clients can have runs triggered from a central host
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1212 980ebf18-57e1-0310-9a29-db15c13687c0

commit 93771b7935e544630c3416fda928a3820c615df2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 18 17:48:10 2006 +0000

    fixing user[:groups] management when the user is absent
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1211 980ebf18-57e1-0310-9a29-db15c13687c0

commit 738698c34bf20ae534c37e7304033344fefa4bdf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 18 05:34:38 2006 +0000

    Updated to version 0.17.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1209 980ebf18-57e1-0310-9a29-db15c13687c0

commit ed9adf5a3ec1947ff7a8a90d4336017e4e2f5519
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 18 05:33:55 2006 +0000

    updating changelog for 0.17.1 and 0.17.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1208 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9b5de115eaea8f45ae056ed98c2a61202869c250
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 18 05:09:19 2006 +0000

    Allowing empty files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1207 980ebf18-57e1-0310-9a29-db15c13687c0

commit 53821182c7e7452a982806c300b1515192b886a3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 18 05:00:43 2006 +0000

    Fixing #146.  I think I mostly just fixed the error message; I do not think there was another bug there.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1206 980ebf18-57e1-0310-9a29-db15c13687c0

commit 89ce72ff802b5dcfbbc01aa9818e3eb4a869bfa8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 17 23:42:22 2006 +0000

    fixing stupid debian rails mistake
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1205 980ebf18-57e1-0310-9a29-db15c13687c0

commit dc3a6d5a8a30047e3136786a8841869b7e35b422
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 16 01:52:30 2006 +0000

    Making sure file recursion works for all valid inputs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1204 980ebf18-57e1-0310-9a29-db15c13687c0

commit 373afa35710cf6a50f171341c569db5550026fbf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 15 21:51:54 2006 +0000

    updating version on spec file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1203 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4296b02686b8b76deb4dfd2a3f091e2fe89deab3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 15 21:38:48 2006 +0000

    Updated to version 0.17.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1201 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3be0f959e3b29561ef19f5c7940256fe6316cd33
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 15 21:14:42 2006 +0000

    Wrapping the host storage into a transaction.  It might have a slight performance improvement, but, ah, unlikely.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1200 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9d6166e964d188fb0c9232413d9da41f15fd1bf4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 15 20:59:42 2006 +0000

    adding a test to make sure that defaults get taken up by components
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1199 980ebf18-57e1-0310-9a29-db15c13687c0

commit a0bcf5a355569633de420e109bce493cc8808a26
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 15 20:19:03 2006 +0000

    Adding code to try for the rails gem if the library cannot be found normally, and adding some protections in case there are problems
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1198 980ebf18-57e1-0310-9a29-db15c13687c0

commit 122e2bc780e2b135c8d95ce28be74eac5a6e3fd2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 15 19:16:34 2006 +0000

    only performing collection tests if activerecord is available
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1197 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f14c3f3f30926869dac798b5a03351fca55b1df
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 15 19:12:18 2006 +0000

    failing more intelligently in init if ActiveRecord is missing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1196 980ebf18-57e1-0310-9a29-db15c13687c0

commit def51752d340f5f1b25f8541df4022ba9dd35b8e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 15 19:11:51 2006 +0000

    Making sure yum fails on unknown packages
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1195 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2e9f1c431a736c50c7ca980e3bd9cca129633f11
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 15 18:37:40 2006 +0000

    removing extraneous logging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1194 980ebf18-57e1-0310-9a29-db15c13687c0

commit d9fdd8ec2cb2db0c98e48d49cfde689aec51abf5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 15 18:02:16 2006 +0000

    I believe I have finalized export/collection support.  I still want to go through all of the code and s/collectable/exported/g (thanks to womble for that term).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1193 980ebf18-57e1-0310-9a29-db15c13687c0

commit ba57dff26b717113a4a7e0bb73bd099a684776e5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun May 14 02:42:21 2006 +0000

    I had to redo how the scopes handled collectable objects (which I will soon change to being called "exported objects").  All seems to work now, though.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1192 980ebf18-57e1-0310-9a29-db15c13687c0

commit 22e70f069cec86f94e17774c9c2b84b1bb9cda6c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat May 13 21:34:22 2006 +0000

    Made a *huge* performance difference in storing hosts -- down from about 25 seconds per host to about 5 seconds on my machine.  I will almost definitely still use forking or something to make this not affect the clients
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1191 980ebf18-57e1-0310-9a29-db15c13687c0

commit 637cc71296f96fd1d5f2ca83aa7e20c73757f8dd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat May 13 20:01:12 2006 +0000

    I appear to have object collection working, incredibly.  This commit does the collection from the database up to adding the objects to the current scope, which is what sends it to the client.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1190 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9e9ef1acc6231254e52b96257ed1e81475d2d1bc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat May 13 18:27:22 2006 +0000

    The "collectable" syntax now works end-to-end -- the parser correctly recognizes it, the AST objects retain the settings, the scopes do the right conversion, the interpreter stores them all in the database, and then it strips the collectable objects out before sending the object list to the client
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1189 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8ed666a7c202420d4bc59cea77f3bd0bec95cc11
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat May 13 16:15:35 2006 +0000

    adding a few more fields to the host table
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1188 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5863a0336e1f3bd5e1be85676bb0e7ac7337f2e6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat May 13 04:52:34 2006 +0000

    Adding initial rails support.  One can now store host configurations using ActiveRecord into a database (I have only tested sqlite3).  Tomorrow will be the grammars used to retrieve those records for object collection.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1187 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0819e35be74bc997c3a953f05bab874b8d76429d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat May 13 02:14:35 2006 +0000

    Adding some small changes towards fixing #140 and #83, but this work needs to take a back seat to object collection, so i will come back to it later.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1186 980ebf18-57e1-0310-9a29-db15c13687c0

commit 678e14286f441524955c76fcfca6abace7106774
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 12 22:22:45 2006 +0000

    Fixing #141.  It was a problem related to the recent parser changes I made.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1185 980ebf18-57e1-0310-9a29-db15c13687c0

commit 578cf7e575c4bb3a297506c75035aed2b2ef607b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 12 19:01:31 2006 +0000

    removing some extraneous logging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1184 980ebf18-57e1-0310-9a29-db15c13687c0

commit a2a4dd5459efc7cee5c373873ff6a7b2c5c5eff4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 10 16:10:48 2006 +0000

    Updating doc system to add the list of valid values to the doc string, and tweaking a few docs.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1183 980ebf18-57e1-0310-9a29-db15c13687c0

commit 710bf0dd8be6391c0cbb2885169677671ebfd351
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 9 16:39:16 2006 +0000

    Slight modifications to package parsing on *bsd.  It should be better about catching the version number, and unparseable lines are now just warnings, not errors.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1182 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9e77e7a95c1c59aca2e7599e0164aef8f3724bf2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 9 06:01:04 2006 +0000

    It is just a snippet test, and thus a functional test but not a coverage test, but definition overrides officially work.  This was important because it enables definitions to be collectable, which was not possible without the mechanism that enables this.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1181 980ebf18-57e1-0310-9a29-db15c13687c0

commit 513b87a86e9b77bb9f1b011aa55222ce9cfb3a8d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 9 05:50:34 2006 +0000

    Preliminary commit of the first phase of the parser redesign.  The biggest difference is that overrides should now work for definitions (although i do not yet have a test case -- i will add one on the next commit).  The way this is implemented is by having scopes translate themselves at eval time, but in two phases -- the first phase does the overrides, and the second phase does the evaluation of definitions and classes.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1180 980ebf18-57e1-0310-9a29-db15c13687c0

commit fe16f83a1b56f5d8644ee08585cc3086d4acc2a0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 5 19:47:15 2006 +0000

    making a test to verify that the functionality womble is looking for now works
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1179 980ebf18-57e1-0310-9a29-db15c13687c0

commit bb60cabda8d9cf4bdc7d138eadfd19ca6d8e7249
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 5 19:43:23 2006 +0000

    Making trigger logs much clearer -- you now get info logs indicating how many dependencies changed, and debug logs indicating what those dependencies are
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1178 980ebf18-57e1-0310-9a29-db15c13687c0

commit 88c3f7c4795da36c161ee340b535725b826aded2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri May 5 18:18:17 2006 +0000

    Changing how events work.  Events are now responded to inline, while an object is being applied.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1177 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7b7ac1846b729114d2e33cee9daa7f7a19739a3f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 4 17:05:59 2006 +0000

    Changing default for pattern to include the binary if it is included
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1176 980ebf18-57e1-0310-9a29-db15c13687c0

commit f0aeaec36a4ec5b3def9c7ca0e777b402c67faa1
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 4 16:46:04 2006 +0000

    require the very latest facter to avoid problems because facter changed iphostnumber to ipaddress
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1175 980ebf18-57e1-0310-9a29-db15c13687c0

commit e06c66191f9235d70349758b76fbf933a944d0d8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 4 05:12:09 2006 +0000

    Small bug fixes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1174 980ebf18-57e1-0310-9a29-db15c13687c0

commit 58cfd1ec8f17c820d4977d0c1cf61fad331e4c7a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu May 4 03:03:36 2006 +0000

    Fixing the problem that lutter ran into; the issue seems to be that Facter could not find the ipaddress on the server.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1173 980ebf18-57e1-0310-9a29-db15c13687c0

commit 18de80416934f05cfe7946d62f5ebad0e54ad34a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 3 22:23:17 2006 +0000

    fixing log messages
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1172 980ebf18-57e1-0310-9a29-db15c13687c0

commit a7fadbeda4cd0ec7d2eeeacff0ffa6a06e83302c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 3 22:21:17 2006 +0000

    fixing log messages
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1171 980ebf18-57e1-0310-9a29-db15c13687c0

commit 43fdd89196f6f670915d3569431b4184c73b58ab
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 3 06:08:49 2006 +0000

    Updated to version 0.16.5
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1169 980ebf18-57e1-0310-9a29-db15c13687c0

commit 64a58e423c2549e7aef40372100606da926bd917
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 3 06:06:53 2006 +0000

    updating changelog for 0.16.5
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1168 980ebf18-57e1-0310-9a29-db15c13687c0

commit 44f15795d5cc1d5c4cd43b585441212d75d25c81
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 3 05:57:52 2006 +0000

    Fixing a stupid bug i managed to introduce in 0.16.2 (probably) involving importing files with classes in them.  This is a better solution than what I had before the bug, anyway.  Also, some documentation fixes.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1167 980ebf18-57e1-0310-9a29-db15c13687c0

commit a9df49d3ee02ed11b82107ea035b9089ca7a2a56
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed May 3 04:36:02 2006 +0000

    Fixing some naming problems with crons, and adding appropriate tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1166 980ebf18-57e1-0310-9a29-db15c13687c0

commit e8c912d1cdd56a48370bd47dec83f3ef126c23ea
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 2 15:54:45 2006 +0000

    Allowing dashes in class names, although grammar rules restrict it from working anywhere except node names or in tag().  They are valid in host names, and many companies have them in the host names; in fact, this fix is for a company with this exact problem -- they cannot use puppet with their nodes because all their hosts have dashes in the host names.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1165 980ebf18-57e1-0310-9a29-db15c13687c0

commit 37d2850ade3c4e8e94f3abdbc01afc159ed7dbd0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 2 15:29:57 2006 +0000

    Switching to just using "preserve" for file copying in file#handlebackups
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1164 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8b0481c391cd9c31a76c33eb66d4fb91fa8b7259
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 2 05:11:12 2006 +0000

    Updated to version 0.16.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1162 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4b84ca9eb057537cc649cf086341650fb18c570c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 2 05:10:30 2006 +0000

    updating changelog for 0.16.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1161 980ebf18-57e1-0310-9a29-db15c13687c0

commit b67a19b6b0483d73178a928e9d1c2bb752b2f077
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue May 2 04:30:40 2006 +0000

    Fixing #132, which involved creating a separate CA client and using it to retrieve the certificates.  There was more work to do because of the weird client/daemon/server heirarchy.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1160 980ebf18-57e1-0310-9a29-db15c13687c0

commit a435d076d4d61e35fe4433a5c3e76ffb2203ac5d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 1 01:09:20 2006 +0000

    Updated to version 0.16.3
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1158 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3f08155b2debd29faf881db7a52cd65eb027482f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 1 01:08:53 2006 +0000

    updating changelog
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1157 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2faa4477bbb875813d82e4285a8bf957c22e6e90
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon May 1 01:07:47 2006 +0000

    Bug fixes from OS X for 0.16.3
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1156 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5e246abb9e77777944bf1c5645bfc8f716c04976
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Apr 30 23:22:47 2006 +0000

    Hopefully final bug fixes in preparation for 0.16.3
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1155 980ebf18-57e1-0310-9a29-db15c13687c0

commit cc5ce345742d6f6297ba5a79512dd6d977f9c9f1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Apr 30 20:20:23 2006 +0000

    Fixing tests looking for pmap
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1154 980ebf18-57e1-0310-9a29-db15c13687c0

commit a1574a544cd7fc0df16acc4102b75c414a8e80a2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Apr 30 20:19:55 2006 +0000

    Fixing TransObject#to_type so that it does not modify the object being converted
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1153 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7825f4944c3b29a994bc9be947f0463a68d2cc8e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Apr 30 19:31:59 2006 +0000

    Changing test for service paths; only testing if it is a directory if it is present.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1152 980ebf18-57e1-0310-9a29-db15c13687c0

commit 65f6656b58f35faa6566b27a0595c656a0e36765
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Apr 30 19:04:24 2006 +0000

    Added some code that could be used later to make sure the user and mode are also copied on backups.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1151 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0ad65e9863ccfd1624d183e08c574172abd2acb6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Apr 30 18:46:24 2006 +0000

    Adding a check to make sure the mode is copied over.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1150 980ebf18-57e1-0310-9a29-db15c13687c0

commit 84db91e7fcd2027431ad0a3d7177ac7c11a8d48e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Apr 30 18:11:07 2006 +0000

    Fixing the docs a bit for the executables, adding a --daemonize option to puppetd and puppetmasterd so they can still be daemonized with debugging or verbosity enabled, and causing puppetd to fail to start if a PID file exists (and not setting a pid file if running with --onetime enabled).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1149 980ebf18-57e1-0310-9a29-db15c13687c0

commit 12c122c882c6053f8b21714bb8c4c8bf8be699c9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 28 19:46:04 2006 +0000

    Puppetd now has an option for listening -- just run the --listen option, and it will start up with a pelement server.  It will fail to start if the authconfig file (defaulting to /etc/puppet/namespaceauth.conf) is missing, since it defaults to access at this point.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1148 980ebf18-57e1-0310-9a29-db15c13687c0

commit 047e63f8481a95c32ceccc22673d4a08659ec9c8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 28 17:19:45 2006 +0000

    Making file copying significantly faster -- i found an extra call to "describe" in file sources and an extra read/checksumming of the dest file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1147 980ebf18-57e1-0310-9a29-db15c13687c0

commit 94caa8a48f32ed1fd3aa38dc43e2add97026fcf2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 28 16:18:21 2006 +0000

    Fixing #128.  md5lite was being used instead of full md5.  At this point, md5lite cannot be used for source copies.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1146 980ebf18-57e1-0310-9a29-db15c13687c0

commit bcfc469e4aa36ab8b98af57b1314e26d5d7a0a18
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 28 04:08:38 2006 +0000

    Adding in all of the patches necessary to make a prototype rails interface to puppet nodes work.  The biggest change is that there is now a separate NetworkClient class for every Client subclass, because otherwise you get namespace collisions.  Most everything other change is a relatively minor patch.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1145 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9539dbb5c8b54805a6c26f84f15abd6fdb5532b2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 28 04:08:32 2006 +0000

    Adding in all of the patches necessary to make a prototype rails interface to puppet nodes work.  The biggest change is that there is now a separate NetworkClient class for every Client subclass, because otherwise you get namespace collisions.  Most everything other change is a relatively minor patch.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1144 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9b627cd0e061316feb73f332abb3c1e4e7aefe28
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 27 16:59:10 2006 +0000

    Trying to track down the bugs reported this morning, so I added some more test cases.  I did find a bug in the filebuckets, fixed it, and added a test case.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1143 980ebf18-57e1-0310-9a29-db15c13687c0

commit 003e897f6839b7f5e771c2b8f4c7feb9fadba4dc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 26 17:32:49 2006 +0000

    updating changelog for 0.16.1 and 0.16.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1141 980ebf18-57e1-0310-9a29-db15c13687c0

commit a78bf1ee71dd3a0930ad5f7277f7c50dc66fa55d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 26 17:32:36 2006 +0000

    adding "clean" mode to puppetca
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1140 980ebf18-57e1-0310-9a29-db15c13687c0

commit bda8e52a02d77c39cd96ea02352c0067a57135e7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 26 17:01:46 2006 +0000

    This should have been in 0.16.1.  Moving the "setclass" statements around so that classes are set before a given class's code is evaluated, so it can be tested within the code, within node defs, components, or classes.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1139 980ebf18-57e1-0310-9a29-db15c13687c0

commit bff94634075617339f65be15dc7eb3261db48f85
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 26 16:20:58 2006 +0000

    Adding sum type to the retrieved sum if it is not already there.  This provides backwards compatibility for existing cache files.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1137 980ebf18-57e1-0310-9a29-db15c13687c0

commit feff3179043a5decd227d8d261770a771c7849c2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 26 16:14:47 2006 +0000

    removing unnecessary debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1136 980ebf18-57e1-0310-9a29-db15c13687c0

commit baa412c6ed30d19ee43bf37b3bba60bf372fac5a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 26 16:02:41 2006 +0000

    Adding "defined" functino to puppet, so you can now test whether a given class or definition is defined.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1135 980ebf18-57e1-0310-9a29-db15c13687c0

commit 46ce36b175962ce89e06af4863d2c9dc50f2a02f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 26 05:39:58 2006 +0000

    Creating a simplistic, generic function framework in the parser, so it is now very easy to add new functions.  There is a pretty crappy, hardwired distinction between functions that return values and those that do not, but I do not see a good way around it right now.  Functions are also currently responsible for handling their own arity, although I have plans for fixing that.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1134 980ebf18-57e1-0310-9a29-db15c13687c0

commit ccc4d95dd28164f6f10763a758db85db0d48984c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Apr 22 19:22:33 2006 +0000

    Modifying non-existent-package test to make sure syncing fails, and modified ports package type to check the error output instead of the return code, because the portinstall command returns 0 even on failure.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1133 980ebf18-57e1-0310-9a29-db15c13687c0

commit e64bd22abed67399fd888964d6a18af60c1f3993
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Apr 22 02:14:03 2006 +0000

    Fix ownership on server files (trac #122) Change ownership on /var/puppet
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1132 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9fe0b375a31f16ed279e9f496d5b6a995586fcfa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 21 19:33:23 2006 +0000

    removing patch from red hat spec file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1131 980ebf18-57e1-0310-9a29-db15c13687c0

commit a0b4553d3ad64d45c393443d84f0b02298e582b5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 21 19:14:59 2006 +0000

    Final commit before 0.16.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1129 980ebf18-57e1-0310-9a29-db15c13687c0

commit 63cdc6cf6fa2c680173532cbbf989ee97c664e83
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 21 03:06:54 2006 +0000

    making corrections to pass tests on freebsd
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1128 980ebf18-57e1-0310-9a29-db15c13687c0

commit d9fd0026f04c6d7bd5cb28e20a3f40bd21c24467
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 21 02:36:30 2006 +0000

    Go some work started on developing authorization, but I have made little progress.  I might wait on this for the next point release.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1127 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4a029d98a6d4c01e09fa4a302731ca5ec7a12fee
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 20 20:55:02 2006 +0000

    pelement listing now works
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1126 980ebf18-57e1-0310-9a29-db15c13687c0

commit d91b7df7befbd9e7877c97c2266b94864d55440f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 20 19:38:48 2006 +0000

    Added a list class method to just about all types, and it seems to actually work for everyone.  Now just to add a list method to the pelement server.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1125 980ebf18-57e1-0310-9a29-db15c13687c0

commit a9b67cce5ad2a22e916d20b39363b6c2c182e923
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 20 07:00:10 2006 +0000

    Adding a "list" class method to most types, and using it in the tests for the pelement server to verify that objects can be copied using it.  I expect that most package types other than apt/dpkg are not yet working with these tests.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1124 980ebf18-57e1-0310-9a29-db15c13687c0

commit e24a299511f6a23019edfee16e2541c8078d3f5d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 20 05:14:13 2006 +0000

    A simple first version of an object (called "pelement") server is now in place.  There is not yet a client, and the tests are pretty simple so far -- only files have been tested yet.  I had to make a significant number of modifications to the file object in order to get this all to work, and one of the big changes I made is to the internals of the checksum state.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1123 980ebf18-57e1-0310-9a29-db15c13687c0

commit ac049810032ed655b0ea32650127d38df39e1089
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 20 05:11:42 2006 +0000

    Actually adding the ports file that provides freebsd port support
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1122 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3f9e918ee20ae9f7002dab983eab16a1461decfd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 20 01:02:29 2006 +0000

    Adding freebsd ports support
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1121 980ebf18-57e1-0310-9a29-db15c13687c0

commit c83bc9189ab8b5e9cb754d7228d8178cede0a37c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 19 23:38:25 2006 +0000

    fixing test to know that i skipped alerts
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1120 980ebf18-57e1-0310-9a29-db15c13687c0

commit 538bc0cd5bb0a241848595089037a36055d49716
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 19 17:23:16 2006 +0000

    Fixing service stopping; I had the %x{} command quoted
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1119 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6f660118b9c05e2413a9fa29574591c582f9458c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 19 15:43:19 2006 +0000

    Fixin #102.  The syslog name is now either the name if the process (if that name includes "puppet" in it) or "puppet-" and the name of the process.  Also removing the "alert" test messages, since they result in a wall.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1118 980ebf18-57e1-0310-9a29-db15c13687c0

commit d2634baa0ec8dc00170bd54bea25f526c8a7ed97
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 19 15:35:04 2006 +0000

    Fixing #118; the hash is now always 8 hex characters, 0-padded.  Also changed the CA cert name to the FQDN of the host serving the CA, rather than "CAcert".
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1117 980ebf18-57e1-0310-9a29-db15c13687c0

commit 449f6626904cbf4165a3e481e8b9c7433be997d8
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 17 23:00:49 2006 +0000

    Fix handling of run files so services can't be started twice (reported with patch by soul916 at gmail.com)
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1116 980ebf18-57e1-0310-9a29-db15c13687c0

commit 21584a988abd490f9b32949e6ff0f6a8a8b9c364
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 17 23:00:03 2006 +0000

    Don't create empty log files in %post (based on report by soul916 at gmail.com)
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1115 980ebf18-57e1-0310-9a29-db15c13687c0

commit a564e49e3c83de5be66c17a5bda6f5a618f7bd67
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 17 19:34:55 2006 +0000

    Changing the log level of the "defaulting to base service type" message
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1114 980ebf18-57e1-0310-9a29-db15c13687c0

commit d56870cff9fac4704de91dee9ef3138bf0a80ff4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 17 16:15:33 2006 +0000

    Fixing a bunch of small bugs, mostly found by testing on solaris, and added a check to the test system that points out memory growth
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1113 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0478f78b2291b9c54b4de9807fd0a0f216eaed53
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 13 16:58:23 2006 +0000

    changing set to tag in the tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1112 980ebf18-57e1-0310-9a29-db15c13687c0

commit 26f18a2ae5ca7e4447a80c5ae59df756e77ea6f9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 12 17:36:14 2006 +0000

    Fixing puppetca so it does not call chuser; instead, it is configured to create all of the files with the correct permissions and ownership (using Config#write and Config#writesub).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1111 980ebf18-57e1-0310-9a29-db15c13687c0

commit c3961ae175ee201df27a746d75ee9062050356f5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 11 23:44:36 2006 +0000

    Adding doc generation for exe arguments
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1110 980ebf18-57e1-0310-9a29-db15c13687c0

commit 133ad87aa64f3fa3ac9ba88f5eee60bd6cb7809b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 11 23:11:54 2006 +0000

    Oops, typo in client/master.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1109 980ebf18-57e1-0310-9a29-db15c13687c0

commit 689dbf45c5455e164d74730a8df9cb7be5f544fa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 11 23:08:48 2006 +0000

    Adding --test option to puppetd (it enables --onetime, --no-usecacheonfailure, and --verbose), and modifying the docs a bit.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1108 980ebf18-57e1-0310-9a29-db15c13687c0

commit cd9ea8056a71279aab384d204d90e24236e7ae57
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 11 23:00:29 2006 +0000

    Adding locking to the master client, so that only one copy of puppetd will be running.  This should make it safe to run puppetd manually while it is also running normally.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1107 980ebf18-57e1-0310-9a29-db15c13687c0

commit 71793fb3d096b74977b73fffe16bbeb8f45c94b9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 11 22:32:51 2006 +0000

    Changing "set" to "tag"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1106 980ebf18-57e1-0310-9a29-db15c13687c0

commit f522a7e4fe87de6214d1d8e5e6d587d1948117ab
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 11 22:23:23 2006 +0000

    Adding the host name as a tag (stripped of the domain name)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1105 980ebf18-57e1-0310-9a29-db15c13687c0

commit 373fb3b57c9edafc1935789d7b5cb99d45656f2e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 11 17:48:14 2006 +0000

    Modifying "setclass" on scope to check the validity of class names, now that "set" can be used to set them manually, and added a test for it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1104 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8df349c61314d5bf0acc0402f90bb5399014d442
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 11 17:33:36 2006 +0000

    Fixing the language side of #109.  Added a "set" keyword.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1103 980ebf18-57e1-0310-9a29-db15c13687c0

commit de0d1ddf13a8486ee6fe253e8c5a242aeca38c6a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 11 16:12:38 2006 +0000

    Adding a few informative facts on the server side: serverversion, servername, serverip. And only printing the parse time in the interpreter if it is not a local connection.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1102 980ebf18-57e1-0310-9a29-db15c13687c0

commit bca4f5ea9df7c7374686fdee0ee672ed470ef91c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 11 15:58:49 2006 +0000

    Adding the puppet client version to the fact list as "clientversion"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1101 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9f92a3d7b883082587461dbcb882d28ea7668df8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 11 15:57:40 2006 +0000

    Adding the puppet client version to the fact list as "clientversion"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1100 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4d750418d00bdd39118493003d60481a35212ed1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 11 15:30:19 2006 +0000

    Adding a "tag" metaparam
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1099 980ebf18-57e1-0310-9a29-db15c13687c0

commit 201aa023dd279d2d968a97732db11a1933665562
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 10 22:13:10 2006 +0000

    Adding simple benchmarking, and using it in a few of the more obvious places.  Also, fixed a bug in Scope#gennode.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1098 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0507486ad35189c557903d0c78bd1bbd7d43b967
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 10 21:37:29 2006 +0000

    Fixing #117. If only one value was provided, then it was not placed in an array, yet AST::Selector expected an array.  The grammar needs to have some abstraction added or something, because I seem to have encountered this bug for every ast type that supports arrays internally.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1097 980ebf18-57e1-0310-9a29-db15c13687c0

commit ae4b12e2cd337007f32c6bdb51924969a1bddc48
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Apr 7 00:06:03 2006 +0000

    Revamp the yumrepo type to deal with repositories defined anywhere in yum's
    config files. Adds a generic module Puppet::IniConfig for parsing ini-style
    files
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1096 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8df6e846490e014f0af5b7182077f3c85830b100
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 6 07:01:50 2006 +0000

    another small mount fix; this time, for stupid os x
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1095 980ebf18-57e1-0310-9a29-db15c13687c0

commit 88dd992574d22abd4732c5e52e80305fd631b80e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 6 06:51:26 2006 +0000

    committing version changes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1094 980ebf18-57e1-0310-9a29-db15c13687c0

commit d10a6385287bbd28ad746db7bc63548fb4ad5575
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 6 06:43:43 2006 +0000

    Committing an important fix to mounts; since i am sure no one has downloaded 0.15.3, i am just going to rerelease 0.15.3 with this fix in it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1093 980ebf18-57e1-0310-9a29-db15c13687c0

commit 83d5236e096530bc7d2c50ad36f525ebfc0f6327
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 6 04:04:14 2006 +0000

    updating changelog for 0.15.3; I need these exec fixes for my client
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1091 980ebf18-57e1-0310-9a29-db15c13687c0

commit e5be7d3ffe4fe11fba8f97c1c272dc600382dbd9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Apr 6 04:00:59 2006 +0000

    Adding autoloading for types and service types, also.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1090 980ebf18-57e1-0310-9a29-db15c13687c0

commit fcce8203fdb77c7135fd1fcae9a0e45c9b6073c3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 23:38:33 2006 +0000

    Okay, last one, hopefully.  Modifying checks to support arrays.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1089 980ebf18-57e1-0310-9a29-db15c13687c0

commit 37a4a555429e195079ee6d301948c75b85048996
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 21:04:12 2006 +0000

    And, one more time.  My test for the last bug did not actually retrieve, so it did not enounter the problem, and i had also forgotten to add the "check" boolean to the checks.  Hopefully this will be the end of exec bugs for the day.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1088 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4ab74ce60963eb543c5e2aa4bb3bd696bf2a5438
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 20:58:24 2006 +0000

    Fixing checks so that they can run even if the set cwd does not exist
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1087 980ebf18-57e1-0310-9a29-db15c13687c0

commit 50ffa7f6b0885e2fb2e1e468c04dfec81f21e011
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 20:31:05 2006 +0000

    adding a bit of debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1086 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1e4abaeccaef620f7e44b21479d5c9ea52c3360a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 20:27:27 2006 +0000

    moving cwd existence check into "sync" instead of "validate"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1085 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7dae24f481282539bb8b2ef544d4c7476fb7631b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 20:13:26 2006 +0000

    Fixing a small bug in type.rb that ignored false values (instead of nil values), another small bug in value setting that resulted in the file and line appearing twice in errors, and added validation to all of the checks in :exec (along with testing for all of it).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1084 980ebf18-57e1-0310-9a29-db15c13687c0

commit b0edb35634e0e68338ffea95a710853e18c35b95
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 08:28:33 2006 +0000

    removing patch from spec file
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1083 980ebf18-57e1-0310-9a29-db15c13687c0

commit 122cf58192bdb7535825cd0d4d36166f90719c6f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 08:11:02 2006 +0000

    updating changelog in preparation for 0.15.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1081 980ebf18-57e1-0310-9a29-db15c13687c0

commit 013cfd22f9148f9ba980455e81bad6c8373fea92
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 08:08:00 2006 +0000

    Adding darwinport type.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1080 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9697354e81d72027519119753598bd3c5271bbcf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 06:54:13 2006 +0000

    differentiating openbsd from freebsd, adding freebsd, and autoloading package types instead of manually loading them
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1079 980ebf18-57e1-0310-9a29-db15c13687c0

commit f540ec83791181e22c4c4db1b049f44a5970bcf6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 06:53:29 2006 +0000

    fixing a couple small bugs in doc generation
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1078 980ebf18-57e1-0310-9a29-db15c13687c0

commit 668342eec1cf4d78e779d2560545e7c2f82336c1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 06:53:12 2006 +0000

    fixing Config#mkdir test to not check gid on any BSD, since they appear to ignore egid when making directories or files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1077 980ebf18-57e1-0310-9a29-db15c13687c0

commit 572648e7c6b499e2666d3bda00cd1239b8fad0a0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 06:39:52 2006 +0000

    adding deprecation notice
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1076 980ebf18-57e1-0310-9a29-db15c13687c0

commit 84693d6ed006be0b82d999bba91c6bf1711ee893
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 06:39:40 2006 +0000

    adding some docs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1075 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2b27545ebaae828237fac967d58bcfe6b01b389d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 05:13:39 2006 +0000

    renaming; i hate bsd
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1074 980ebf18-57e1-0310-9a29-db15c13687c0

commit ee652796206b8d2eb52befa2e1fe3032b21c19b3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 03:40:03 2006 +0000

    Fixing #103.  There are now no such things as node scopes; the entire tree is evaluated on every node connection, and node facts are set at the top-level scope.  This includes,um, the code; the last commit was accidentally just test changes.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1073 980ebf18-57e1-0310-9a29-db15c13687c0

commit c3c413ea4549743a9a7718654d36054df72c16e6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Apr 5 03:39:30 2006 +0000

    Fixing #103.  There are now no such things as node scopes; the entire tree is evaluated on every node connection, and node facts are set at the top-level scope.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1072 980ebf18-57e1-0310-9a29-db15c13687c0

commit a0728c0edcfafabe136572b0518a4a7df54b241d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 4 23:31:24 2006 +0000

    removing the parser dir
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1071 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8db837ad7663c611f1fe92189e36158404a452cc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 4 23:30:56 2006 +0000

    getting rid of the parser tree, and moving everything into the language dir
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1070 980ebf18-57e1-0310-9a29-db15c13687c0

commit d4a5b480f2451041109d867052db2285990d01a6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 4 23:28:02 2006 +0000

    loading yumrepo in the test, since it is not being loaded in the main code
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1069 980ebf18-57e1-0310-9a29-db15c13687c0

commit e8c04716b2e3ef348848d85ed88c886bd43d95df
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 4 23:13:55 2006 +0000

    Fixing a couple of bugs in preparation for 0.15.2; mostly they were in the testing system and resulted from changing :File to :Manifest in server/master
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1068 980ebf18-57e1-0310-9a29-db15c13687c0

commit 92302895549800d9d8384b2cc77f9b5bb4dc1fd1
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 4 23:06:04 2006 +0000

    Disable yumrepo type since it won't work with the FC5 repo files
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1067 980ebf18-57e1-0310-9a29-db15c13687c0

commit b5c759b76d53c486f15643dfdce129ac4cc157fc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 4 22:33:39 2006 +0000

    Fixing #108
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1066 980ebf18-57e1-0310-9a29-db15c13687c0

commit d8b4b0dbf35b2b183cd62adf591ebf4650448a0d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 4 22:23:08 2006 +0000

    adding -e ability to puppet executable
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1065 980ebf18-57e1-0310-9a29-db15c13687c0

commit c0a9e5f2e9df8e6e1aed74653ae675029af8a9bb
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 4 19:57:54 2006 +0000

    Change how names for nodes are specified: the 'node' keyword can be followed by a NAME or by single quoted text, i.e. fully qualified names for nodes must be enclosed in single quotes
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1064 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5d42cd51a3502518a5d0a22928a133768dcaeb1a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 4 17:29:16 2006 +0000

    Fixing the class file to actually store class names, not object ids.  Also added tests to make sure it all stays that way.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1063 980ebf18-57e1-0310-9a29-db15c13687c0

commit c8be52b7a9d95c1efcdb8df4ee88ae3f65c6f2df
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Apr 4 05:53:13 2006 +0000

    Finally!  We now have mount support in OS X.  Ouch.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1062 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3327dc809cb645a2e0d81e892c21cf9872f38712
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 3 23:37:12 2006 +0000

    Adding netinfo type and some tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1061 980ebf18-57e1-0310-9a29-db15c13687c0

commit 97d5ab656d5d05678eb37800452fb8ac7b615da2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 3 20:37:37 2006 +0000

    eliminating some debugging, and removing a small redundancy bug in nameserver.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1060 980ebf18-57e1-0310-9a29-db15c13687c0

commit 35e65deca0b5b008590b4583eba355dea282f819
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 3 19:58:52 2006 +0000

    Fixing authstore to use an array for ordering, rather than a hash, duh.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1059 980ebf18-57e1-0310-9a29-db15c13687c0

commit c3b7d62cc5271d3cd263e7e2b5728fac0c3fe0f2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 3 19:46:01 2006 +0000

    Bugfixes for OS X.  I had to do some shenanigans on type/file/ensure.rb -- it was testing whether the parent dir was writeable on object creation, and if not it was not setting ownership and such, so i added some post-creation checks that will fix ownership if it was not set correctly at creation time.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1058 980ebf18-57e1-0310-9a29-db15c13687c0

commit caaa331906ca224bd356d2f90d68b06c5ec0828f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 3 18:06:23 2006 +0000

    changing ssldir perms to 771, so non-root users can write to subdirs if they have permissions
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1057 980ebf18-57e1-0310-9a29-db15c13687c0

commit a791d983a685015f4671bd6b28c206787a00a4ff
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 3 18:05:58 2006 +0000

    Fixing a logging bug that apparently resulted from logging changes a while ago.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1056 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4daf2c13ae5cdab4ee0de1fcb8ea7f0fc7b3573a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Apr 3 17:08:21 2006 +0000

    Adding apple package support, but it is very limited -- packages can only be installed, not upgraded or removed.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1055 980ebf18-57e1-0310-9a29-db15c13687c0

commit f37154e69e57049f2bf6870d2c524fa29c3c0e35
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Apr 2 23:46:10 2006 +0000

    making a small change to the test, so failures are more informative
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1054 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7c7c2237e23828a352dae5b7786a008ea6605676
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Apr 2 23:39:02 2006 +0000

    Added a test for Type#remove, and fixed the method so it actually works. I was missing every other object, because i was iterating over the array being modified.  This caused the Config stuff to often fail, because objects were not correctly being removed.  All fixed now, though.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1053 980ebf18-57e1-0310-9a29-db15c13687c0

commit 72774bbd4ade3d249970cf049d3824c6891ac66e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Apr 2 21:58:19 2006 +0000

    adding mkdir equivalent of Config#write
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1052 980ebf18-57e1-0310-9a29-db15c13687c0

commit e6f9163c543c19756887b7be04e01fb51789070e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Apr 2 20:42:46 2006 +0000

    Adding a "write" method to config objects, so that files can be easily written with the correct owner, group, and modes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1051 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0f15e8c8097aed6ed34aa65b247b9ede28146574
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Apr 1 20:31:47 2006 +0000

    fixing a bug that appeared somehow in port.rb, and adding mount and sshkey to the types being autoloaded
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1050 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0eae739fd34ff297b7468cfa8b729c213568c30f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Apr 1 20:16:22 2006 +0000

    renaming filesystem to mount
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1049 980ebf18-57e1-0310-9a29-db15c13687c0

commit 48d7fd66a28157c81cce756e93d97139c3cc061b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Apr 1 20:15:10 2006 +0000

    Adding filesystem support, and modifying parsedtypes a bit to fix a bug where non-instance lines were being duplicated
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1048 980ebf18-57e1-0310-9a29-db15c13687c0

commit c7ae8396c420f862cda8f6121e505473abfd3e64
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 31 23:33:17 2006 +0000

    Manifests can now specify node names with fully qualified domain names, too.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1047 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9b1e8d55363aa67e9e981b7977ed6eded8026b68
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 31 01:29:54 2006 +0000

    Accept a single file as a test to run in addition to a directory
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1046 980ebf18-57e1-0310-9a29-db15c13687c0

commit bdc819b48857b5994fb9e1dcaddf3ac5ee59fb21
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 31 01:29:13 2006 +0000

    Remove unused should method; add more yum parameters to the type
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1045 980ebf18-57e1-0310-9a29-db15c13687c0

commit a9fdf9d18d778c733b06140350dc6863cb136dac
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 31 00:51:14 2006 +0000

    Disbale running puppetmaster as puppet until we've sorted out which files
    need what ownership (there's trouble with /etc/puppet/ssl right now
    when puppetmaster runs as non-root)
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1044 980ebf18-57e1-0310-9a29-db15c13687c0

commit 13651031429120d3ad62fd526d6d02cc551e3074
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 31 00:49:50 2006 +0000

    New yumrepo type for basic management of the yum configuration of
    one repo.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1043 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6d4e46cfc6922edbb6cd429f5d4e4c68f4acdf1a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 22 21:56:49 2006 +0000

    Adding os x group management support
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1042 980ebf18-57e1-0310-9a29-db15c13687c0

commit 791e4da60c163752514deb34c50f1d1592958afd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 22 20:31:30 2006 +0000

    Committing support for group membership management.  Currently only works on Linuxes and other OSes that use "useradd" that support -G.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1041 980ebf18-57e1-0310-9a29-db15c13687c0

commit 932fd032e0b4cf399d54c1bf14e7fe072626af7b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 22 20:30:04 2006 +0000

    commiting package test fix that i thought i committed ages ago
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1040 980ebf18-57e1-0310-9a29-db15c13687c0

commit 28602a605cee749534d987e77c69dcea1247f3f0
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 16 17:55:59 2006 +0000

    Simplified as yum install can be used for both install and update
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1039 980ebf18-57e1-0310-9a29-db15c13687c0

commit 95b762b78a68e50a104273fd43b277bc9f2696fb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 15 20:08:58 2006 +0000

    updating changelog for 0.15.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1037 980ebf18-57e1-0310-9a29-db15c13687c0

commit fc98ab07f3a05cec529e75d53fbd5f234df2a519
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 15 16:48:39 2006 +0000

    Fixing #100.  I just added a bit of a hack to configuration parsing -- if a group is specified in a section that matches the name of the process, then it is assumed to be the group that the process should run as.  The problem is that we are reusing the term "group" here for both the run-group and the file-group.  Oh well.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1036 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5dcf3036b9e88084176a597f85e75c4a9e491c58
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 15 16:39:35 2006 +0000

    Using differents commands with yum depending on whether the package is currently installed or not.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1035 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7e908a57c88fdb1b1f842941f1bf0d720ff51a90
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Mar 14 21:17:45 2006 +0000

    Removing ruby as a dependency, since too many packaging systems will have installed it differently
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1034 980ebf18-57e1-0310-9a29-db15c13687c0

commit 73d051fa150534f32d1f8d32bea466b1aa24fab8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Mar 14 20:00:20 2006 +0000

    Fixing service enable/disable on solaris 10, and fixing some problems with the tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1033 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5e86634910a3a4636d3d9445bd340d2469848585
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Mar 14 05:38:52 2006 +0000

    Converted everything over for Puppet.  The Rakefile is, um, a *lot* shorter. :)
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1032 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8416f2109edd72462caf6e04c6b16a310906f022
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Mar 14 04:29:40 2006 +0000

    This version appears to work well with epm stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1031 980ebf18-57e1-0310-9a29-db15c13687c0

commit fc689105665ef336db2344a6cffa35bf9bc52c06
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Mar 14 04:29:26 2006 +0000

    removing dos EOL chars
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1030 980ebf18-57e1-0310-9a29-db15c13687c0

commit 086050d63a7153541e33d7cf15735778efbaa970
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Mar 14 03:35:37 2006 +0000

    Minor changes from Fedora Extras review
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1029 980ebf18-57e1-0310-9a29-db15c13687c0

commit 72f1e8a468ee612f5fb02f2b24e748a1f75b5385
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Mar 14 03:35:08 2006 +0000

    Don't mark puppetmaster for start by default; makes rpmlint happier
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1028 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6006a5ab258013782d2ad007aa80990d13a8887e
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Mar 14 03:29:06 2006 +0000

    Add little snippet on passing an additional option during system boot, but leave it commented out
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1027 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6af21e5f25aadc48a5c7a759588ea80bdbe4a808
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Mar 14 01:20:37 2006 +0000

    adding sbin directory
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1026 980ebf18-57e1-0310-9a29-db15c13687c0

commit c74fd81b0f8f8efe363389e2af2be9c07625dd16
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 13 21:09:29 2006 +0000

    Committing the EPM support.  I am in the process of moving this to a common library that all of my projects can use.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1025 980ebf18-57e1-0310-9a29-db15c13687c0

commit 271a8d2553c21c50d168b2cc7b69fd41f58bc330
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 13 20:05:18 2006 +0000

    Adding EPM package building.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1024 980ebf18-57e1-0310-9a29-db15c13687c0

commit 805b32bc29a3c8f19300c7829b43ee46944ef11e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 13 17:10:30 2006 +0000

    Updated to version 0.15.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1022 980ebf18-57e1-0310-9a29-db15c13687c0

commit 92e3c1e6eafc08b239974fbad1d3711c512384ba
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 13 17:10:10 2006 +0000

    Updating changelog for 0.15.0.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1021 980ebf18-57e1-0310-9a29-db15c13687c0

commit ec7d46ee00c4f86d92d618066b773dc14e0f5d17
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 13 17:07:08 2006 +0000

    fixing small bug in the test code when there are no packages to test
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1020 980ebf18-57e1-0310-9a29-db15c13687c0

commit f851be7c9d966d18e793b66a28d35a8e62dd04a0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 13 17:04:35 2006 +0000

    Adding upgrade ability to sun packages.  Currently it removes the old package and installs the new one.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1019 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4d1c221d063af33f1cb1745a43036c8a2a20e904
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 13 17:04:12 2006 +0000

    Changing the way the hosttest output is handled
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1018 980ebf18-57e1-0310-9a29-db15c13687c0

commit 29ec7069742c73f2687ec62e2ceb6f7093b525b2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 13 17:03:52 2006 +0000

    adding some extra info to the ldap test
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1017 980ebf18-57e1-0310-9a29-db15c13687c0

commit 76474ed2b84752a4b8adcc6ab2aa85d64c3b78ef
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 12 03:29:13 2006 +0000

    Fixing fileserver tests; apparently they were still broken from when i changed the fileserving interface to handle links.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1016 980ebf18-57e1-0310-9a29-db15c13687c0

commit d7a75c5289c257d2b6782976e494efe81f04478b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 12 03:19:53 2006 +0000

    Fixing small bug in symlink recursion
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1015 980ebf18-57e1-0310-9a29-db15c13687c0

commit f2c821803c7f6df2394990432c0a549ddb6ca73c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 12 03:07:31 2006 +0000

    Fixing #94.  When "ensure" is synced, it syncs the "enable" state at the same time.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1014 980ebf18-57e1-0310-9a29-db15c13687c0

commit aed1f1181577b550c19589ab3e4840427cf31869
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 12 02:57:25 2006 +0000

    Ooops, did not save the docs before committing.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1013 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5a47afdd4f8f51c9403a83712eaa700913fd93c4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 12 02:56:23 2006 +0000

    Fixing #98.  Filebuckets now work throughout the system, and the puppetmasterd creates one by default.  I have also updated the :backup docs, adding an example.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1012 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1b11697157c712bdfcee9058e0e64faf934a4ecc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 12 01:53:34 2006 +0000

    reducing the log level for checksum warning about symlinks, really this time
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1011 980ebf18-57e1-0310-9a29-db15c13687c0

commit 454247f30af9e7ac5c55fe6e4a12ddea0295943b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 12 01:53:12 2006 +0000

    reducing the log level for checksum warning about symlinks
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1010 980ebf18-57e1-0310-9a29-db15c13687c0

commit 08b36ccd05ac2e29e651ec3eb787fc6a6afb5bee
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 12 01:49:37 2006 +0000

    Adding enhancement #92.  Unfortunately, I was not able to write test code to consistently verify that this works, because there is too much caching internally.  I verified it personally using my own configurations, but that is as good as I could do.  This indicates that caching should probably be rethought, so that there is some kind of global "do not cache anything" mechanism.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1009 980ebf18-57e1-0310-9a29-db15c13687c0

commit 97913d4fb67d43e39c5317a4b4bc8d2a461df7e3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 12 01:48:18 2006 +0000

    Fixing bug related to recursion testing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1008 980ebf18-57e1-0310-9a29-db15c13687c0

commit c6230dd265ec2de32471e6b38c6234be65f71f69
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Mar 12 00:58:45 2006 +0000

    Fixing rpms so they will automatically upgrade when you point Puppet to a new package file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1007 980ebf18-57e1-0310-9a29-db15c13687c0

commit caa3d4350e7118ec4589cb23f6c918746431d010
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 11 22:25:27 2006 +0000

    fixing broken test from my previous change
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1006 980ebf18-57e1-0310-9a29-db15c13687c0

commit fa9aab6749bcb76004b567e228c5af8f7a4bfee8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 11 22:18:59 2006 +0000

    Fixing #82.  You can now specify comma-separated tags to get run in puppet or puppetd: puppetd --onetime --tags "enhost, facter" -v.  You cannot specify classes explicitly, but tags map well to classes and have the benefit of being more generic.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1005 980ebf18-57e1-0310-9a29-db15c13687c0

commit 414d364a6f337cc8e542dc107d8e51f625375db4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 11 21:48:15 2006 +0000

    Supporting rpm installs when a package source is specified
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1004 980ebf18-57e1-0310-9a29-db15c13687c0

commit 872892036ca8ca1b2ed503dbedd6b18f33f52abd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 11 21:15:18 2006 +0000

    Using undefined variables is no longer an exception, it just returns an empty string.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1003 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4ee395b28fa0e25372494e557ba0fc6d46fc6a1c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 10 21:58:16 2006 +0000

    Fixing small bug when autorequire returns an object instead of a string
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1002 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2cd67ad843409a49747748a1278e5ef788dd97bd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 10 21:46:00 2006 +0000

    There was a critical design flaw in the link recursion work I did previously, and fixing it required a decently large reorganization.  Everything is much, much cleaner now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1001 980ebf18-57e1-0310-9a29-db15c13687c0

commit 02f91fcd55aefe63a11a29c5608c0738867b8130
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 10 05:41:01 2006 +0000

    Merging symlinks back into files.  Symlinks still exist but with a warning about deprecation.  Fixes #93.  Also the first time I have run any tests on OS X, so there are some bug fixes related to that.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1000 980ebf18-57e1-0310-9a29-db15c13687c0

commit b336e7e59d3497b96dd42b6dbc1855176e6e830d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 9 23:17:34 2006 +0000

    Parameters and states can now register regexes as allowed values.  Also, there are (finally) tests associated with params and states, although they should be much more comprehensive.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@999 980ebf18-57e1-0310-9a29-db15c13687c0

commit b6d829b66bc83f943e929b3f6b036b3aff11187f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 9 20:46:55 2006 +0000

    Fixing #95.  I had to redesign how events were triggered; the transaction now individually triggers each subscription, so that it has control in how to respond to failures.  Eventually, this will lead the way to error handling within puppet, but for now, it just allows us to trigger every appropriate subscription, whether some have failed or not.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@998 980ebf18-57e1-0310-9a29-db15c13687c0

commit 782f85ac661ef93b5246071dc4ce62603ac45d71
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 9 20:08:11 2006 +0000

    Creating a single, constistent method for writing files, instead of having :ensure, :content, and :source each have a slightly different mechanism.  This method also makes sure that the owner, group, and mode are always set on file creation, so extra runs are not necessary to make it work.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@997 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2dbd7e19de0caa683f7e0b4da5654eb15bc419da
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 9 18:45:51 2006 +0000

    Fixing #96.  Defaults are now set when the object is passed out by the scope, rather than when the object is created.  This is nice because it also moves awareness of the scope internals out of the AST object and back into the scope.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@996 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7756f9a57fa83e811888298edd339978bb6a9c83
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 9 18:12:15 2006 +0000

    Fixing #97.  I was wrong about the object type I had, so I was calling "type" with no arguments, which was causing the bug.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@995 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2faff5d5861c100e0075fca5bd6acef4e4867598
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 8 22:57:21 2006 +0000

    lowering the log output for nonexistent files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@994 980ebf18-57e1-0310-9a29-db15c13687c0

commit eb68633539c1e7efb6a1f9769de212802bdafec2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 6 22:39:54 2006 +0000

    Updated to version 0.14.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@992 980ebf18-57e1-0310-9a29-db15c13687c0

commit cee0882d05118d836556c6ea35f78d2aaa5d52ae
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 6 22:32:35 2006 +0000

    updating changelog for 0.14.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@991 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2351cd728400a2293c8af8b4dda30d2176a8e3d0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 6 21:27:23 2006 +0000

    making case statements not create a new scope
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@990 980ebf18-57e1-0310-9a29-db15c13687c0

commit 54fcdbdbf7781153429fe55de6576b6bcf06a9a1
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 6 21:19:34 2006 +0000

    fixing some more logging issues
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@989 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0549d0393be2822359aa2392fabae1d7b23bca25
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 6 19:54:59 2006 +0000

    Making some logging changes, and fixing a small bug in group management on missing files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@988 980ebf18-57e1-0310-9a29-db15c13687c0

commit 72d747b47d4306bfccf37d45a619450ec6899317
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 6 19:31:11 2006 +0000

    Updated to version 0.14.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@986 980ebf18-57e1-0310-9a29-db15c13687c0

commit b76004a6feaf101fd0fe9b880f1eb19df850821c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 6 19:30:20 2006 +0000

    Fixing yum listing bug, and caching the "latest" value so it is not asked for so many times; this fixes #90.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@985 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3c07deb230072ac75c95a1f6806d7c5c1f6af655
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Mar 6 18:07:41 2006 +0000

    Committing the last changes, for now, to handling links.  You still cannot copy remote links, but you can either ignore or follow them.  I do not think we will be able to copy remote links until I have merged symlinks and files to be the same object type again.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@984 980ebf18-57e1-0310-9a29-db15c13687c0

commit e9e88b03c07fdcd1d689de4469a5f7b8702c3262
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 4 19:26:27 2006 +0000

    Adding "links" parameter to files, and adding support for following or ignoring links to all of the states it can matter to.  I still need to modify "source" so that it behaves correctly when managing links.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@983 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1099c4a5e093fc28216817edf3b6c28683de3105
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Mar 4 16:32:57 2006 +0000

    removing group ownership of the state file; I realized that the server does not ever actually write to it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@982 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5cca870eb73276e53f45975a99c21bee0244c0f3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 3 23:31:46 2006 +0000

    Switching from using "evaluate" to using "retrieve" when getting checksum values, since retrieval is sufficient, and evaluate keeps printing messages about changes.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@981 980ebf18-57e1-0310-9a29-db15c13687c0

commit 17d4b231ba75aed02d044548a3535a0df9f8d032
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 3 23:06:40 2006 +0000

    Fixing logging in the fileserver so it is always obvious where the logs are originating, and fixing a bit of debugging elsewhere.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@980 980ebf18-57e1-0310-9a29-db15c13687c0

commit df74b62ad473c72906ddb5e72a500fd1a97dfa50
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 3 22:34:38 2006 +0000

    fixing deprecation notice about services using "ensure" instead of "running"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@979 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8c0a07a1c4b8f0139fc1d9ce4bcad72e0e15342d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 3 22:29:15 2006 +0000

    removing extraneous debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@978 980ebf18-57e1-0310-9a29-db15c13687c0

commit be4d3fdb9ae4b3495e13e7928039e8bd7a608188
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 3 22:29:06 2006 +0000

    fixing the mode of the yaml file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@977 980ebf18-57e1-0310-9a29-db15c13687c0

commit f2ea9b7840adedcf3f99b222f6f8fa741ea64650
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 3 22:23:00 2006 +0000

    Supporting variables as the test value in both case statements and selectors.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@976 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1a3de8a45d71747978ce9cb1870b39a751352c02
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 3 22:21:11 2006 +0000

    renaming
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@975 980ebf18-57e1-0310-9a29-db15c13687c0

commit 549bc5fba44f36fcf5f9b4d67e29d568d01917b5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 3 19:58:58 2006 +0000

    Only setting group or owner on config files when running as root
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@974 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7ea739d6c14a1074aeb5a319f13a1412e9573c10
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 3 18:49:12 2006 +0000

    logging config changes at debug, instead of the normal log level
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@973 980ebf18-57e1-0310-9a29-db15c13687c0

commit aae9b2aa90c2f1e12baeebe530a0cd8a69fac9c2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Mar 3 18:23:53 2006 +0000

    Definitions now always create their own context, which means that they cannot override elements in the containing scopes.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@972 980ebf18-57e1-0310-9a29-db15c13687c0

commit 451ba6d069cb253f901541f420e51c0b184d8d8c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 2 23:12:49 2006 +0000

    upgrading to warning the message about using a cached copy
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@971 980ebf18-57e1-0310-9a29-db15c13687c0

commit faffd6991ed4bf5f45a21353b89f81930da504b6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 2 20:39:13 2006 +0000

    Updated to version 0.13.6
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@969 980ebf18-57e1-0310-9a29-db15c13687c0

commit caa7f4868e56f24552f81937e200b47d20cbfbdb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 2 20:39:00 2006 +0000

    updating changelog for 0.13.6
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@968 980ebf18-57e1-0310-9a29-db15c13687c0

commit 343dd08a4ab84bdc6947239e8c514752db219c2a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 2 20:28:45 2006 +0000

    Fixing tests so they do not chmod /dev/null to 640 (stupid tests).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@967 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1a93c822667e6990b45f843e56d8976c51517671
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 2 17:12:26 2006 +0000

    Fixing #68.  After tons and tons and tons of work, everything successfully configures itself, and the --genmanifest argument should actually work.  User and group creation will not necessarily work everywhere (in particular, Puppet uses dependencies to create the group first, but Fedora complains on user creation if the group already exists), but file and directory creation should.  The only downside is that there is a decent amount of extra information printed on daemon startup, as the daemon checks its config; this could maybe be seen as a bonus, though, I guess.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@966 980ebf18-57e1-0310-9a29-db15c13687c0

commit 95856eaaf02361ff597ca2c85e51cf141fe81280
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 2 07:30:14 2006 +0000

    Okay, Puppet is now almost entirely capable of configuring itself.  I have not yet added the extra tests to puppetmasterd to make sure it can start as a normal user, and the executables still fail some simple tests because they are producing output when they start (I will get rid of the output), but overall things look pretty good.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@965 980ebf18-57e1-0310-9a29-db15c13687c0

commit ff1df8e1aef99dbdc222c5d5d808494fd08e7f83
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Mar 2 02:13:49 2006 +0000

    Remove hte fedora-usermgmt stuff. As it turns out, it's not a Fedora Extras requirement to use it; so we'll just have useradd/groupadd allocate id's dynamically
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@964 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2db23173825311bc4a9d6f69e862ce0a9c43fd40
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 1 23:09:23 2006 +0000

    Adding metadata to defaults
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@963 980ebf18-57e1-0310-9a29-db15c13687c0

commit 179779dc5045259aa28f0a9cd052d2e41cf8aa96
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 1 22:28:27 2006 +0000

    Changing the setdefaults input format somewhat.  It is always a hash of some kind now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@962 980ebf18-57e1-0310-9a29-db15c13687c0

commit 457492836e092374895122e69fa067299bf112ff
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Mar 1 21:36:00 2006 +0000

    Intermediate commit; setdefaults now accepts both hashes and arrays
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@961 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6d8a1dc1af819950e5c8edf1b70acefd540d3695
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 28 20:11:51 2006 +0000

    Fixing user and group management in the config handling.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@960 980ebf18-57e1-0310-9a29-db15c13687c0

commit 65ed766a6118e1ceac7f9abbabfa44a7a46cf662
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 28 17:09:01 2006 +0000

    adding a connect log to the master server
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@959 980ebf18-57e1-0310-9a29-db15c13687c0

commit 32cbc596422de6fa82572b4cb2232c4aa417012b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 28 04:27:28 2006 +0000

    Fixing #70.  We now have user and group management on FreeBSD.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@958 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8b5f70911d7486a5cab69377c1988f1e35d88d2e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 28 03:32:51 2006 +0000

    Fixing bug #60.  Converting nodes to use types everywhere instead of names, and adding a localobjectable to keep track of what parameters have been defined locally.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@957 980ebf18-57e1-0310-9a29-db15c13687c0

commit eda9d955b3fb2bbe5d7ca2cc3f7802d5fb9395ef
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 27 23:22:09 2006 +0000

    Fixing #64; multiple class definitions in the same scope is now an error, although using the same class name in different scopes is not an error.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@956 980ebf18-57e1-0310-9a29-db15c13687c0

commit 56116c2aa64ccbbc6740d30b5901b2700bcae036
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 27 23:09:53 2006 +0000

    Fixing bug #73; node names now appear only once in the path
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@955 980ebf18-57e1-0310-9a29-db15c13687c0

commit c894eb20ddf812056e897217fd55d31182dbc52f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 27 22:49:48 2006 +0000

    Fixing bug #75, providing support for unnecessary end commas.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@954 980ebf18-57e1-0310-9a29-db15c13687c0

commit 020499c70a69786e24b0136427b87c8967d40690
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 27 22:25:59 2006 +0000

    Removing all of the autoname code
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@953 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8c821c09eebe117bd8b100b6dc416ded0588b979
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 27 22:21:44 2006 +0000

    Mostly, this is a refactoring commit.  There is one significant new feature,
    though: overrides now only work within a class heirarchy, which is to say that
    a subclass can override an element in a base class, but a child scope cannot
    otherwise override an element in a base scope.
    
    I've also done a good bit of refactoring, though; notably, AST#evaluate now
    takes named arguments, and I changed the 'name' parameter to 'type' in all of
    the Component classes (this was all internal, but was confusing as it was).
    
    I also removed the need for the autonaming stuff -- it's now acceptable for
    components not to have names, and everything behaves correctly.  I haven't yet
    removed the autoname code, though; I'll do that on the next commit.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@952 980ebf18-57e1-0310-9a29-db15c13687c0

commit 37c10d176d8d3b7bb1920bbda66c6f0429b66730
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 27 07:10:01 2006 +0000

    Switching setclass to use object_ids instead of class names, and adding some comments.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@951 980ebf18-57e1-0310-9a29-db15c13687c0

commit c5d8680ba55598491c5798c842e65e4a4df54484
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 27 06:09:07 2006 +0000

    Fixing scopes and AST so that definitions and classes are looked for in the scopes, instead of in a global list
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@950 980ebf18-57e1-0310-9a29-db15c13687c0

commit ee818a96233e62d9c37a117265c6d68f78095689
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Feb 25 00:31:34 2006 +0000

    Adding some debugging to list the states being changed when in debug mode
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@949 980ebf18-57e1-0310-9a29-db15c13687c0

commit 63afa37f6730a18a6d0fb8998f09e40ca9ff1e40
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Feb 25 00:28:19 2006 +0000

    Fixing nodes so that their paths are printed correctly
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@948 980ebf18-57e1-0310-9a29-db15c13687c0

commit 505605434d75617cb4c15694150990b9b3a3cc72
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Feb 25 00:26:14 2006 +0000

    Removing timestamp debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@947 980ebf18-57e1-0310-9a29-db15c13687c0

commit b119a7252face5ad093a6bd1856f8391cddcc4c4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Feb 25 00:25:28 2006 +0000

    Fixing output when user/group are not found
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@946 980ebf18-57e1-0310-9a29-db15c13687c0

commit 772c7c87ffab1b7a70413fa6bbd20df45490dbf2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 24 23:01:25 2006 +0000

    Adding TERM to the signals being trapped
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@945 980ebf18-57e1-0310-9a29-db15c13687c0

commit 503ad38194b0064de240a1ae0f043b8fb6d40903
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 24 22:50:23 2006 +0000

    Fixing bug #72, where trailing slashes break file sourcing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@944 980ebf18-57e1-0310-9a29-db15c13687c0

commit 043fc33c32e817092f1c44f6d9b9e9c3d35cadac
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 24 22:49:57 2006 +0000

    adding commas to each line
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@943 980ebf18-57e1-0310-9a29-db15c13687c0

commit d06cd3faeaaa5a006cad9f9e20b07ed9ce61fd6a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 24 22:01:47 2006 +0000

    removing the initial syslog dest setting
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@942 980ebf18-57e1-0310-9a29-db15c13687c0

commit f6ca82b7d9bbe9a722a23d11d2d60db25bdc0baa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 24 20:12:36 2006 +0000

    Updated to version 0.13.5
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@940 980ebf18-57e1-0310-9a29-db15c13687c0

commit 85e4d31238ffd9d08c6e27fabf0266df5fa7c4eb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 24 20:12:16 2006 +0000

    adding changelog for 0.13.5
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@939 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2dffbee3965c01979880ae3eb99162607236337b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 24 20:01:01 2006 +0000

    Adding redhat service type, to support enabling and disabling a service
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@938 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7e5cc76cf9afb4b18a412e6971ea5a4f4a44935e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 24 20:00:30 2006 +0000

    Fixing package types so you can specify the package type manually in a manifest
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@937 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7806618227c4a3df1fef446e2d1307afeec53db4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 23 22:34:11 2006 +0000

    removing extra error statement
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@936 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6e26a7349ee430f24e56360fd5bb7080a84917b7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 23 22:25:00 2006 +0000

    adding passwd converter
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@935 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3aff15e987b134d44582c5bf7cfe21762c6ea319
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 23 20:22:03 2006 +0000

    Updated to version 0.13.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@933 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1f05ad0edd45f7db1c4ef23bf7f4cff7a0678bd2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 23 20:21:50 2006 +0000

    updating changelog for 0.13.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@932 980ebf18-57e1-0310-9a29-db15c13687c0

commit cfb0e36e7e8219cbcf5fb017ceb25f32abe706ea
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 23 20:21:10 2006 +0000

    updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@931 980ebf18-57e1-0310-9a29-db15c13687c0

commit 89856ecc64fd3356a4aeb4ac965a7c75064a2a85
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 23 05:48:42 2006 +0000

    Adding a bit more logging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@930 980ebf18-57e1-0310-9a29-db15c13687c0

commit 82e02eb53f99fa59d6ea7ba2b3ac35b6ef1ee64a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 23 02:15:59 2006 +0000

    Fixing bug when creating containers with parents
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@929 980ebf18-57e1-0310-9a29-db15c13687c0

commit 31df227490178517d8c47ff640a15c0712f9acf9
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 23 01:14:20 2006 +0000

    Generate an error if the pattern for an import statement matches no file.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@928 980ebf18-57e1-0310-9a29-db15c13687c0

commit beef01cbae4f2c2d08752401043271dc5a867eb6
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 22 02:31:07 2006 +0000

    Properly figure out when updates are available. Previously, packages would neverbe updated because 'yum list foo' first prints the currently installed package. Now we use 'yum list updates foo'
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@927 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3ac5cd90f11ae8689fef4f804dfca40cd5ca92b2
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 22 01:51:15 2006 +0000

    Incorporate initial feedback from FE review
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@926 980ebf18-57e1-0310-9a29-db15c13687c0

commit 68aa302faedc6df51f6049b43a50d813d95ca4db
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 22 00:47:19 2006 +0000

    Fix failure of test_importglobbing in test/parser/parser.rb
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@925 980ebf18-57e1-0310-9a29-db15c13687c0

commit 70d23799504a2207e0886a60a8403fa2f16377e2
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 21 23:47:42 2006 +0000

    Enable passing --parseonly from the command line
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@924 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1ebb416c4574b28bf56764675714ec66ed199010
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 16 20:15:41 2006 +0000

    Adding single-quote syntactical element
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@923 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1fdb96266e2d1a083e1ecc76c5ae136ba73f2999
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 16 19:10:34 2006 +0000

    Changing transactions to be one-stage instead of two, and changing most of the type classes to use "obj[:name]" instead of "obj.name" where appropriate, because "obj.name" might be a symbolic name (e.g., File.unlink(file.name) will not do what you want if file.name == "sshdconfig" but file[:path] == "/etc/ssh/sshd_config")
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@922 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5f8d61553a9d83087604fe5b68146503cf55d1be
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 16 16:27:27 2006 +0000

    Removed some of the autorequire stuff from :exec because it created untenable require loops, and created a test case for some complicated exec + file recursion.  The test case fails, and I want to have a clean committed repository before i mess much more in trying to fix it, which might actually not be possible.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@921 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6cc8157fb0e36f2435b201abad81affe3b8e17ac
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 16 00:47:58 2006 +0000

    Duh, removing some debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@920 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5f4335fbf010eb3d0522909f171078c9910d5e91
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 16 00:47:10 2006 +0000

    Adding logoutput parameter to :exec
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@919 980ebf18-57e1-0310-9a29-db15c13687c0

commit 89702d8bac6ddbf1a1dde50a7fbcc2143d5afa5e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 16 00:46:59 2006 +0000

    Fixing symbolic naming bug where symbolic names were being ignored in some cases
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@918 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7d15fe1aed9a0cd57ecc6953da7f4e61f1dcc3ba
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 15 22:00:47 2006 +0000

    Updated to version 0.13.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@916 980ebf18-57e1-0310-9a29-db15c13687c0

commit 037b7acab071adc727fbed8cfc3cea1c0399c2e2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 15 21:56:54 2006 +0000

    Changed the parsedtype definition of exists(), and fixed a few smaller bugs.  Last code commit before 0.13.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@915 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6fe01cedeb2fe00df62bf63d7f7375d18d0663ca
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 15 21:04:14 2006 +0000

    Tracked down a few other bugs; everything now passes on debian in preparation for 0.13.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@914 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8602932432c62630ec47a672fb79d6aa90dcbfc7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 15 18:34:00 2006 +0000

    Changing "answerfile" to "adminfile", adding "responsefile", and autorequiring both.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@913 980ebf18-57e1-0310-9a29-db15c13687c0

commit d1cd443e9644f945f5c55b592a2414dbaef2de5f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 15 18:23:33 2006 +0000

    Fixing users so that they can use a group created by Puppet, and they also now autorequire that group.  To do so, I modified Puppet::Util.gid, which required that I fix Puppet::Type#merge to support merging managed and umanaged objects, which required fixing a bug in Puppet::Type#managed?, and I also changed the ensure state to only default to a value, when the object is managed, which required that I change the defaults system to support default procs that do not return a value.  In other words, lots of fixes for a smallish problem, but we are much better off now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@912 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4df3468e920126a3d7b0ac22ab095cc5dbb785bd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 15 18:19:51 2006 +0000

    Fixing the order of arguments when using admin files with sun packages
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@911 980ebf18-57e1-0310-9a29-db15c13687c0

commit 20b65e7845d55cac408fa0d9eddb5209a996076a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 15 07:20:36 2006 +0000

    Some important bug fixes in the parsedtypes types; this all started from the submitted bug today, but I added :absent support to most params.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@910 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6cfee76f94824157a28354c9d6838716cb2c5d47
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 14 06:21:04 2006 +0000

    Committing the initial ldap support -- puppet can now look up node configurations in ldap.  The test scripts currently only work on my home network.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@909 980ebf18-57e1-0310-9a29-db15c13687c0

commit 19942633b69f04c6789ef08a04d434024e1bc334
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 14 00:14:56 2006 +0000

    Adding --enable/--disable locking for puppetd.  You can now disable puppetd from running by creating a lock file, which is useful if you are testing a configuration and want puppetd not to run for a bit.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@908 980ebf18-57e1-0310-9a29-db15c13687c0

commit 798b3be4cf1d703cd8559414922b296600db9b47
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 13 21:58:40 2006 +0000

    Adding a general "check" mechanism to :exec, so it is now terribly easy to define a new check to perform, converted :creates and :refreshonly to use that mechanism, and then added :onlyif and :unless as new checks.  Also added any files they mention as autorequire files.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@907 980ebf18-57e1-0310-9a29-db15c13687c0

commit 376725eb585a6b51851f9f4cbaf1a94a6b64b9fd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 13 21:49:41 2006 +0000

    Adding --loadclasses option to puppet
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@906 980ebf18-57e1-0310-9a29-db15c13687c0

commit f098485f805d65dc7ce4001655e6226eabe8269d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 13 21:49:25 2006 +0000

    Correcting some path problems with symlink, and changing "target" state to "ensure"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@905 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3f15cb8307d49c0abf4c0a385c7a05d445f910ff
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 13 21:48:57 2006 +0000

    Fixing :target reference in pfile.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@904 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9508bd074c5ba82aba7d3c55c915a0108aec9fae
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 13 21:46:29 2006 +0000

    Correcting some path problems with symlink, and changing "target" state to "ensure"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@903 980ebf18-57e1-0310-9a29-db15c13687c0

commit 64eafa85a15f184fa45838c4f5a689392464364a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 13 18:00:46 2006 +0000

    Updated to version 0.13.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@901 980ebf18-57e1-0310-9a29-db15c13687c0

commit a456c4d08b90532d5f5c3c2ce0413c9864641eec
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 13 18:00:17 2006 +0000

    updating alias docs to pass ReST checks
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@900 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1a05ed211da39f53e69aa6526d4919b694ec7d1a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 13 17:48:33 2006 +0000

    updating changelog and docs for :alias
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@899 980ebf18-57e1-0310-9a29-db15c13687c0

commit 89d37f612bec255d9a966729680409cceb728e9c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 13 17:13:09 2006 +0000

    Fixing some problems with cron tab management, and creating Puppet::Util.{u,g}id methods.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@898 980ebf18-57e1-0310-9a29-db15c13687c0

commit 96388cbd3b1a88a978e176b30b52d7753b70236b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Feb 12 18:08:39 2006 +0000

    Fixing locking.  It apparently was not working on OS X, and I was not syncronizing access in threads -- i assumed locks themselves were a sufficient sync point.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@897 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2be25d51f38f53c92bcc6b9688344fdb1c06f48f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Feb 10 22:00:30 2006 +0000

    Making the language name a real alias.  Now all objects in Puppet support specifying both the name and the namevar, or just a name and having the namevar set.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@896 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7f7b5c679ff4957dcd94b4652033b9fad871cad2
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 9 21:15:38 2006 +0000

    Change in how logging is defaulted: by default logs go to :syslog, unless the user explicitly gives at least one --logdest argument, in which case logs only go to the destinations the user gave.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@895 980ebf18-57e1-0310-9a29-db15c13687c0

commit b13b5edba1f8e1834b15e5b7244869afe814da93
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 9 01:48:09 2006 +0000

    Set the Release tag in the spec file to 1 when the version is changed
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@894 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8c02ffde9c07b817597fd17f67047ed310cbdfcc
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Feb 9 01:40:58 2006 +0000

    Adapt specfile to the fact that puppetmaster now automatically runs as user puppet. Add default config files that send logs to /var/log/puppet.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@893 980ebf18-57e1-0310-9a29-db15c13687c0

commit d629a80e14129fb51c662d41920a5389113af0c9
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 23:34:31 2006 +0000

    Fix version in last changelog entry (makes rpmlint happy)
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@892 980ebf18-57e1-0310-9a29-db15c13687c0

commit 44071d016639855a41f5650e2d9813c769cf61a0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 23:05:41 2006 +0000

    Updated to version 0.13.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@890 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2cb5cb3afa9382cfd1cf4edfca52c4bf55bc4d0d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 23:04:23 2006 +0000

    Updating changelog for 0.13.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@889 980ebf18-57e1-0310-9a29-db15c13687c0

commit 387db24ca5047073876e630a51a73838ffc50d0c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 22:57:07 2006 +0000

    Adding answerfile support to sun pkgs.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@888 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2ce061a8215f6f23ee55af93a2c420800ade242c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 22:56:56 2006 +0000

    adding some documentation
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@887 980ebf18-57e1-0310-9a29-db15c13687c0

commit cd7a637eca3c914e85ef48d057e3207a5ff96b53
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 17:45:26 2006 +0000

    removing errant warning
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@886 980ebf18-57e1-0310-9a29-db15c13687c0

commit ccd0121db4e8e1f0bf162332241884b22ff724b4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 17:44:44 2006 +0000

    Fixing small problem where checksum retrieving did not look in the cache; this was only ever a problem in cases where checksums have no "should" value set, which is generally only the case on the fileserver, but it caused the fileserver to replace checksum values on every retrieval.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@885 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8eab733e2529434528d7ebda6a883151964dd7b9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 17:11:54 2006 +0000

    Fixing the conflict between ensure and source.  Ironically I had already made sure there was no conflict with "content", but I had forgotten "source".
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@884 980ebf18-57e1-0310-9a29-db15c13687c0

commit adda8f095d62ce7533f6c7315b8e22b057943c97
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 16:53:34 2006 +0000

    Checksums now get correctly updated for both the ensure and content state when those states are used
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@883 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8e4cf2289d7e29b044f3bad2d1e8011c3d0543b4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 16:38:45 2006 +0000

    first bug fixed, where sources were not updating the checksum
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@882 980ebf18-57e1-0310-9a29-db15c13687c0

commit 58db0ef2ba966334cd65a67a3dc0112af8f8dda2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 16:07:23 2006 +0000

    adding keyword
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@881 980ebf18-57e1-0310-9a29-db15c13687c0

commit b03635b2eb0615c261098b4b14320600fa84282d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 16:07:01 2006 +0000

    adding keyword
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@880 980ebf18-57e1-0310-9a29-db15c13687c0

commit 01072a8a1f9f429d29891b32461d54b6db927e1e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 16:00:41 2006 +0000

    replacing all occurences of "is_a?" in the parser with "instance_of?"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@879 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7ca3d3dfc54c32b2e431345b919f9eaafdf327ff
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 15:57:13 2006 +0000

    Fixing bug that occurs with only one argument
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@878 980ebf18-57e1-0310-9a29-db15c13687c0

commit 195f2e93b603ff873c4de36016b3543df62549e0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 15:56:26 2006 +0000

    wrapping all work in a single rescue clause
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@877 980ebf18-57e1-0310-9a29-db15c13687c0

commit 59992b5e32ef24b46b54772884e4189ac28ad323
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Feb 8 01:06:30 2006 +0000

    adding initial ldap schema
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@876 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0ba9d16e0d9aed269e125f607c83b0ccf2e62539
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 7 23:56:16 2006 +0000

    adding vim syntax stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@875 980ebf18-57e1-0310-9a29-db15c13687c0

commit a5d24049f7c53edfcbd88c940633c34514dad827
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 7 23:53:05 2006 +0000

    Simple emacs mode for editing manifests; only does pretty colors right now
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@874 980ebf18-57e1-0310-9a29-db15c13687c0

commit b98e65f1fd858a1d0af415554db49a121a76232c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 7 23:12:33 2006 +0000

    There is now full support for configuration files, and the entire system has been modified to expect their new behaviour.  I have not yet run the test across all test hosts, though.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@873 980ebf18-57e1-0310-9a29-db15c13687c0

commit f1ffc34c0927840beeb21e1e2d864ce14de5d15e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 7 17:07:15 2006 +0000

    Configuration parameters now require (and have) descriptions, and a set of configuration parameters can be converted to a configuration file, a manifest, or a component.  All I have to do now is integrate them into the executables.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@872 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6affe220db1248cee8489347dc7d7ac071a534e4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 7 05:58:00 2006 +0000

    Committing both the finalization of the config code, plus all of the code necessary to get basic isomorphism from code to transportables and back.  Mostly keyword and autoname stuff.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@871 980ebf18-57e1-0310-9a29-db15c13687c0

commit 59c7b02f8fb0c5f2820577f11c9c34935ac16a0a
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 7 03:26:08 2006 +0000

    Fix snippet_componentmetaparams test
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@870 980ebf18-57e1-0310-9a29-db15c13687c0

commit 39d33ca6987b2b98663edfa061cac7f4f69f9fb3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 7 03:15:25 2006 +0000

    Temporary commit; configs now can be converted to manifests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@869 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4ecfa7bf4a0f88334afdec359f317b3bf7b44c21
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 7 02:31:00 2006 +0000

    Config files now seem to work, so I am ready to start incorporating them.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@868 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9114cbe18b11d2a4f3f58c4799f615721f4c2d71
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Feb 7 01:38:53 2006 +0000

    committing test code for bug lutter found
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@867 980ebf18-57e1-0310-9a29-db15c13687c0

commit d0436f1e638c19d3b6fb05d0bf991a56128884bc
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 6 23:01:16 2006 +0000

    Changes in lie with Fedora Extras requirements
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@866 980ebf18-57e1-0310-9a29-db15c13687c0

commit 56bf12bbf1b57e51c152399c470191c7e46ef8f0
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 6 23:00:51 2006 +0000

    Fix processname tag
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@865 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7d711c0fa7d17806703195a804475341f2c6203b
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 6 23:00:28 2006 +0000

    Allow passing of options with 'once'; fix processname tag, add config tag.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@864 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5590e3e160af5cfe129e95824954b93ad0da5660
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Feb 6 19:12:58 2006 +0000

    a couple small changes; the most significant is the addition of a class-level "eachattr" method, to avoid all of the calls to attrclass and attrtype
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@863 980ebf18-57e1-0310-9a29-db15c13687c0

commit 30bf65f82bb1e2a1bc19ef0c576117427bf10b03
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 31 02:07:56 2006 +0000

    Fixing a significant performance bug in file recursion, and trying to help performance a bit in attribute handling on types
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@862 980ebf18-57e1-0310-9a29-db15c13687c0

commit d5af359e52559efecccdf807ea5dfef8230f7cd3
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 30 23:14:31 2006 +0000

    Rewrote client init script since puppetd is now a proper demon.
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@861 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6637bb60e591ff05e5b5acb3910715149be7d97c
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 30 22:18:50 2006 +0000

    Install bin/puppet into /usr/bin/puppet, not /usr/sbin/puppet, since normal users are supposed to be able to run it
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@860 980ebf18-57e1-0310-9a29-db15c13687c0

commit 931c159806caf75ad356324f32f7f3c5920d36d8
Author: lutter <lutter@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 30 22:11:26 2006 +0000

    Fix rpm packaging; include conf/ in tar ball, use conf files from tarball in spec file
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@859 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4ada6aff0bfe2d63f7b73f85140a37345638cba9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 30 19:22:25 2006 +0000

    Fixing class storage -- it was not working for nodescopes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@858 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8db35eccb090889cdf9ba0989140a91401d31c5a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 30 19:22:00 2006 +0000

    Caching Time objects instead of numbers, since Bignum does not seem to be YAMLable
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@857 980ebf18-57e1-0310-9a29-db15c13687c0

commit 96b761b53e1284392975672a23dac0be504367c4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 30 16:18:24 2006 +0000

    Fixing waitforcert so that the client can actually add the certs once it receives them
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@856 980ebf18-57e1-0310-9a29-db15c13687c0

commit c7f9942a0305c8a583e222a004f18d4a8ed41837
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 25 23:30:48 2006 +0000

    Adding release tag REL_0_12_0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@854 980ebf18-57e1-0310-9a29-db15c13687c0

commit cf82cfa2e36dda9bf1c87a583da6632872325ede
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 25 23:29:29 2006 +0000

    Updated to version 0.12.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@853 980ebf18-57e1-0310-9a29-db15c13687c0

commit 282cfcf6d76cda7a14e257cb6ba160fcdda835ae
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 25 23:27:40 2006 +0000

    Updated to version 0.12.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@852 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1186069184af3357439f908aa40de6119a44e7ca
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 25 23:24:43 2006 +0000

    Small mods to the packaging stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@851 980ebf18-57e1-0310-9a29-db15c13687c0

commit 87904d3728546ef5d32f80191bdc0c2814ee88ab
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 25 23:12:21 2006 +0000

    RPM release is almost entirely there, it just needs to be integrated into release management
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@850 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9b2afcb4c32ceeac6e008cd2ec171a2b7bdc37ec
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 24 06:37:00 2006 +0000

    Fixing some logging issues
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@849 980ebf18-57e1-0310-9a29-db15c13687c0

commit ae2575b45de1e8f4c0ec956cebe0eed2bafbcf57
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 24 06:01:58 2006 +0000

    Adding the event-loop stuff to the repository and switching to using it.  Also, breaking many classes out into their own class files.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@848 980ebf18-57e1-0310-9a29-db15c13687c0

commit 18e8e74a2e3b4c5d092fc0aae38bbc5455d4db48
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 23 22:38:39 2006 +0000

    Committing most of the scheduling stuff.  There is still a bit of work to do in terms of how puppetd interacts with scheduling, but the bulk of the work is done.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@847 980ebf18-57e1-0310-9a29-db15c13687c0

commit 258114d48b4853cbaa79b53776d5279f727451ab
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 20 20:38:01 2006 +0000

    Modifying docs, and adding scheduling hooks
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@846 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0cb51f3f7fb442b1b915523c93461b9a24febacb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 18 21:30:56 2006 +0000

    Fixing a small checksumming bug, reorganizing the client stuff a bit, and adding freshness checking for the configuration, so the config is recompiled every time nor is it downloaded unless it has been recompiled
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@845 980ebf18-57e1-0310-9a29-db15c13687c0

commit f49b1030fc6f81c1776e09d8ce5e9134c828a77a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 18 17:26:16 2006 +0000

    Updated to version 0.11.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@843 980ebf18-57e1-0310-9a29-db15c13687c0

commit c372a7d0c482d08a6fac4187da38ddcdf847fe47
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 18 17:25:54 2006 +0000

    modding changelog for 0.11.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@842 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6bab167dcbb274fd302a65d567d6af0ef6621b79
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 18 17:24:15 2006 +0000

    Made lots of small changes, mostly to help usability but also fixed a couple of key bugs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@841 980ebf18-57e1-0310-9a29-db15c13687c0

commit ed39be9dd2ecdbe9a8624ed2f6c03334e123e81d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 18 01:47:42 2006 +0000

    Fixing most types to allow no statements
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@840 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3d458eff62a90723db92d9fa26c6fbaf1433504f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 17 23:30:24 2006 +0000

    Updated to version 0.11.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@838 980ebf18-57e1-0310-9a29-db15c13687c0

commit c3df525773c3797b556433344926bf406dbe1f6e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 17 23:30:08 2006 +0000

    modifying changelog for 0.11.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@837 980ebf18-57e1-0310-9a29-db15c13687c0

commit 060b8bddbe64943c103ccc3af55672842dbb6ba4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 17 22:11:51 2006 +0000

    Adding openbsd packaging support
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@836 980ebf18-57e1-0310-9a29-db15c13687c0

commit ada3aee909c1d53ffd4dccaffe913c0ca3a3b397
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 17 21:34:12 2006 +0000

    Fixing problems where objects were passing @parameters[:param] objects, instead of specifically retrieving the value
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@835 980ebf18-57e1-0310-9a29-db15c13687c0

commit f36c7d1a450a89dd1883028c78c4166a9d413dbd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 17 07:13:17 2006 +0000

    Updated to version 0.11.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@833 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3700b37e2386e7dbaabd90b7ba13c3dce06203d2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 17 07:11:50 2006 +0000

    Adding an "ensure" state where appropriate, and significantly reworking the builtin docs.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@832 980ebf18-57e1-0310-9a29-db15c13687c0

commit 92a780a3106f863e442c12897184abbe39fe3310
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 16 20:01:20 2006 +0000

    Added "ensure" state to some classes, and added infrastructure for it to work elsewhere.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@831 980ebf18-57e1-0310-9a29-db15c13687c0

commit 83906a2b210efd002901897b0ea729ff435ffe51
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jan 14 04:01:46 2006 +0000

    Adding sshkey class plus tests, and adding "aggregatable" methods to type.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@829 980ebf18-57e1-0310-9a29-db15c13687c0

commit c67fb7b81d2fd69326b1518e0669164dcbf5773c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jan 14 01:32:37 2006 +0000

    Adding another host to the test lists, adding some test data, and modifying how hosts parse
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@828 980ebf18-57e1-0310-9a29-db15c13687c0

commit ad9d3658470c175c46b55e37a005b338078a1d4e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jan 14 00:20:14 2006 +0000

    Adding a bit better logging and checking to file access
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@826 980ebf18-57e1-0310-9a29-db15c13687c0

commit 87b3bb111f2ea68cbeb875f07e826e4f75ea9eea
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 13 23:16:26 2006 +0000

    Moving ast classes into separate files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@825 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1d4638a03df6821c16c00db3084f89889f19ac33
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 13 22:47:22 2006 +0000

    Added "finish" method, using it in Type.finalize, and moved autorequire and setdefaults to it.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@824 980ebf18-57e1-0310-9a29-db15c13687c0

commit a6e367e5989d0646c2f53c2de839893be76988cb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 13 20:55:13 2006 +0000

    Changing host and port aliases to also create Puppet aliases.  This involved futzing around with the attr* methods in Type.rb, to make sure states are always checked first.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@823 980ebf18-57e1-0310-9a29-db15c13687c0

commit c8b64014f1018dd437d1a0bd17db96b312e8af8a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 13 20:09:39 2006 +0000

    Fixing up the parsedtypes, fixing Type.eachtype to ignore structure types
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@822 980ebf18-57e1-0310-9a29-db15c13687c0

commit bbf2c547dc550c4423c94ceb53395d1146a46918
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 13 18:26:14 2006 +0000

    Adding /etc/services support
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@821 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0c1714945692330ca76a6c254303ff4fcd466efb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 13 17:07:15 2006 +0000

    finalizing cron and host management, hopefully
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@820 980ebf18-57e1-0310-9a29-db15c13687c0

commit df6ff9eea936c030218853c1ad8ac1b7d2666eaf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 13 16:21:28 2006 +0000

    Abstracting host support so it should easily support other types
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@819 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5309479fd6c5356fcd32a0954addce6613de23aa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Jan 13 16:20:53 2006 +0000

    Abstracting host support so it should easily support other types
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@818 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3f15e38cb9e6cf69805b5608bda015a17c46db49
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 12 22:33:29 2006 +0000

    Adding initial host support.  I can promise that this will soon (hopefully almost immediately) be abstracted to make it easy to add new file types.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@817 980ebf18-57e1-0310-9a29-db15c13687c0

commit f420135270ab66c7bad10ebc4b031ddac3b57659
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 12 21:04:06 2006 +0000

    Converting transport format to YAML instead of Marshal, and caching the file in a YAML format, also.  This required a significant rework of both Transportable classes.  Lastly, I am also now caching the list of classes in a class file in /etc/puppet.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@816 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8aa331d7b31033b1a7594a0020e8462f646241cf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 12 19:01:41 2006 +0000

    Adding further notes about openssl
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@815 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4092a7802aa05dcc456a31d51bf2d8e3a42cd503
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 12 17:53:45 2006 +0000

    Fixed a couple of warnings, fixed a critical bug having to do with case statements (where there is only one listed option), and did a couple of other cleanups.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@814 980ebf18-57e1-0310-9a29-db15c13687c0

commit c5782dfb9aa6ecfab045d348a7d07e38bcb4a8e2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 12 16:57:34 2006 +0000

    Adding "content" state to files, and string interpolation handles escaped whitespace characters.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@813 980ebf18-57e1-0310-9a29-db15c13687c0

commit b0ea70db255f36977593a6373a189f63dc9a268f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 12 16:20:03 2006 +0000

    Adding 0.10.2 stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@812 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6b6c49b59a5f33eded401359bc97d513646cdd78
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 12 07:12:34 2006 +0000

    Updated to version 0.10.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@810 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1cf05ff2872231bd9bdb9ae51bcc062671502484
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 12 07:08:19 2006 +0000

    Services now work at least somewhat on solaris 10, and service testing is pretty different.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@809 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4c4f530bb5f81ab793e93b5034bddd89f3ec677e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 12 05:02:51 2006 +0000

    Fixing dependencies to not depend on file order.  Added Puppet::Type.{finalize,mkdepends,builddepends}
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@808 980ebf18-57e1-0310-9a29-db15c13687c0

commit 21410a2152d03d8a7f52bebcdf52666e77a0dbfa
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 12 03:20:29 2006 +0000

    Fixing documentation generation, and fixing aliasing so that objects can safely be aliased to themselves
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@807 980ebf18-57e1-0310-9a29-db15c13687c0

commit 29b00fb744d2e27f835d0130b88ed4bda08c63f7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 12 02:19:14 2006 +0000

    Adding "alias" metaparam; you can now create as many aliases as you want for any of your objects.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@806 980ebf18-57e1-0310-9a29-db15c13687c0

commit 411ab22588da2cbe76d186fbd4b59f6194766c4d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 12 01:58:19 2006 +0000

    Adding autorequire to files, and added the cwd to the list of files to be required for exec. Also, exec catches inline files and autorequires them.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@805 980ebf18-57e1-0310-9a29-db15c13687c0

commit 97fb6c91d60cfe20f0521a7148d202ed25434b7d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 11 23:16:17 2006 +0000

    Adding generic autorequire mechanism, and thus removing it from exec
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@804 980ebf18-57e1-0310-9a29-db15c13687c0

commit 11b546385de28a2a51ad15accbd5d797031e6ed3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 11 20:45:06 2006 +0000

    Adding a requires? method to types, fixed the bug where exec fail when Puppet is downloading the script to execute, and modified "exec" to autorequire any managed scripts
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@803 980ebf18-57e1-0310-9a29-db15c13687c0

commit 932b783a1ea64711f3fc10f375e91c9ad8e4f593
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 11 00:53:24 2006 +0000

    Updated to version 0.10.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@801 980ebf18-57e1-0310-9a29-db15c13687c0

commit 854f16bec3931cf27fdbe059130d282ba57901d3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 11 00:52:09 2006 +0000

    modifying changelog for 0.10.1
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@800 980ebf18-57e1-0310-9a29-db15c13687c0

commit 89d00506efe28631921feea072cd5773e18b3a37
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 11 00:48:21 2006 +0000

    Adding Sun support and fixing the last remaining bugs related to the daemon changes i just made
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@799 980ebf18-57e1-0310-9a29-db15c13687c0

commit 45ac512054af7cb8104cfa785102b67164d2cca4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 10 17:46:07 2006 +0000

    Supporting puppetmasterd running as a non-root user, and doing some basic message cleanup
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@798 980ebf18-57e1-0310-9a29-db15c13687c0

commit 45c91e30c848011ff729505441fbf47a7f8df8fc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 10 16:01:12 2006 +0000

    Adding some extra feedback
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@797 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7616289784c7c04d765866b1786ca3a9c854147a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 10 14:38:39 2006 +0000

    Fixing init path default
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@796 980ebf18-57e1-0310-9a29-db15c13687c0

commit e5ac19668867a8adeb18066bdd1d3e201e38211c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 10 00:10:14 2006 +0000

    Adding some consistencies to the executable tests.  All exe tests now pass on OpenBSD, although the only real problem was that ruby was in /usr/local/bin.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@795 980ebf18-57e1-0310-9a29-db15c13687c0

commit dccafc7e950d9111a0a4c11afebd89e1ede5e414
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 9 23:23:05 2006 +0000

    Updating Puppet to work with the new Facter
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@794 980ebf18-57e1-0310-9a29-db15c13687c0

commit b7974b59ec046837d0fdf4d732ccbedddb8de146
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 9 17:18:18 2006 +0000

    Updated to version 0.10.0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@792 980ebf18-57e1-0310-9a29-db15c13687c0

commit 48031dd30d3724285911ddfab85277386b0e0ba9
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 9 17:18:02 2006 +0000

    Describing 0.10.0 changes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@791 980ebf18-57e1-0310-9a29-db15c13687c0

commit 48ba0305d876e61bb370322b0fd6ad94e0540337
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 9 17:16:36 2006 +0000

    Modifying hosttest
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@790 980ebf18-57e1-0310-9a29-db15c13687c0

commit f00a7db3072b98d6ec599dd271705c91f20ffcb6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 9 04:20:45 2006 +0000

    All tests pass now, although the lack of service support on os x means that i have now disabled services on it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@789 980ebf18-57e1-0310-9a29-db15c13687c0

commit 427522790c461d3a325475040ada71a5e186b282
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jan 8 00:03:32 2006 +0000

    updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@788 980ebf18-57e1-0310-9a29-db15c13687c0

commit cbf10c5e365fb7440c89321a2c329e40424d30b4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Jan 8 00:02:23 2006 +0000

    Merging changes from the head of the rework1 branch, r 784
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@787 980ebf18-57e1-0310-9a29-db15c13687c0

commit 23f982ecda3fd74867d404b5e784f072db9a1cde
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jan 7 23:33:38 2006 +0000

    Undoing the merge that happened in 785
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@786 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1d739731b20a5dd10a190d783556d5c5a0275137
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jan 7 23:23:31 2006 +0000

    Merging in refactoring from version 774 into version 784
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@785 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3ba696de8829399ba9ade3712d00a8c6adc4667e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Jan 7 23:10:43 2006 +0000

    updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@784 980ebf18-57e1-0310-9a29-db15c13687c0

commit cb5168865d1e88cf84c1394126dd8a5aab14598b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 5 20:58:22 2006 +0000

    converting waitforcert to an int
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@780 980ebf18-57e1-0310-9a29-db15c13687c0

commit cedefabba5169e16bc75b0777dd48754d77abe82
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Jan 5 20:36:01 2006 +0000

    adding ftools require statement to install.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@779 980ebf18-57e1-0310-9a29-db15c13687c0

commit 75944110b94988383aa3b9c2ceb879cb769c2a26
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 4 20:05:09 2006 +0000

    Adding a host test task
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@775 980ebf18-57e1-0310-9a29-db15c13687c0

commit 86cc467e9b2e82e613a19250a7aa8b5343a6d19f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 4 03:56:58 2006 +0000

    renaming the module, so it behaves better with people's svn clients
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@773 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2994cbc3bc06f89ca1b066f2789dd00973b26169
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 4 02:09:00 2006 +0000

    fixing rakefile
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@772 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3b9c9be6c6d10a002831364f5bf0b9d6669ca65b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 4 01:52:47 2006 +0000

    Updated to version 0.9.4
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@771 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6af79cc3e193b9ed054a3affed3e577eabca722d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 4 01:46:44 2006 +0000

    Removing tests from the list of tasks
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@769 980ebf18-57e1-0310-9a29-db15c13687c0

commit e611f2c039149cd0c3212010df2d02fba47165d2
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 4 01:45:37 2006 +0000

    adding some better readme stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@768 980ebf18-57e1-0310-9a29-db15c13687c0

commit b532a30b66ee888b90a8355da9e9ee8970fe0432
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 4 01:40:53 2006 +0000

    adding things to the change log, and modifying the order of the steps
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@767 980ebf18-57e1-0310-9a29-db15c13687c0

commit 584652c6b84fdbc910f7bde96639b772dde8fa23
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Jan 4 01:34:39 2006 +0000

    Disabling most documentation generation except for the API docs, and wrapping the StatusServer in the xmlrpc check
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@766 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0e0fdac1a743416191dd202cf8606d7a2ef042eb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 3 15:52:35 2006 +0000

    Updated to version 0.9.3
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@764 980ebf18-57e1-0310-9a29-db15c13687c0

commit e2e2fb3f2a771cca16e64cb027615e979fa8d586
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 3 15:41:39 2006 +0000

    some updates to the typegen stuff, even though i may still not use it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@763 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5302921b2e3698f864c2955a67dd9779c8aea18b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 3 05:15:27 2006 +0000

    Fixing two reported bugs in cron jobs.  Cron jobs correctly change when fields other than the command are updated, and they do not continually refresh when the command has trailing spaces
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@762 980ebf18-57e1-0310-9a29-db15c13687c0

commit 592c24d08efcb19f46835bf5c4410dc677ea1b4f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 3 03:08:48 2006 +0000

    adding some comments
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@761 980ebf18-57e1-0310-9a29-db15c13687c0

commit f9f84bf90d60eef0504d2237fd336ce3c52598ab
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 3 03:08:05 2006 +0000

    removing "host" as a keyword; it was an alias for "node"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@760 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4eaf13ad0bc3057fb439fbc0a7090caa6d8ebb0c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Jan 3 00:35:31 2006 +0000

    converting storage from Marshal to YAML
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@759 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3c14db187d68bcfebbd5cd017f1b38326645b07d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Jan 2 22:04:31 2006 +0000

    adding Util.lock, and switching storage to using it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@758 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5ce5b95af489685f64dbaa6189f7569e976e9dc5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 24 15:58:07 2005 +0000

    removing any direct references to /tmp in tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@757 980ebf18-57e1-0310-9a29-db15c13687c0

commit 84bf2896a80bc527f345e49ffb8fb1b5817fdfe6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 24 01:10:52 2005 +0000

    fixing files being put directly into tmp
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@756 980ebf18-57e1-0310-9a29-db15c13687c0

commit a03b03f08f304a5fe4598b95a55edd58a4ab2b17
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Nov 23 19:18:34 2005 +0000

    removing ruby shebang at the top of all of the files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@755 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2a5bbd0e9a2262bc27981e988d99a003dd3648ad
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Nov 22 16:06:11 2005 +0000

    final updates for 0.9.2
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@753 980ebf18-57e1-0310-9a29-db15c13687c0

commit 58ef35dba2f8c76185435b5466651247b3c4b671
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Nov 22 15:46:32 2005 +0000

    updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@752 980ebf18-57e1-0310-9a29-db15c13687c0

commit dd727eff0e09284f68603dd4ed450b2cf1358c53
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Nov 22 05:54:25 2005 +0000

    removing marks
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@751 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9f942b0369d639abb80254e019dff603d0433588
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Nov 22 05:34:43 2005 +0000

    fixing tests to work from any CWD
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@750 980ebf18-57e1-0310-9a29-db15c13687c0

commit 58c0df175ca94cd8bed38cbb76659bfa57e56fe5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Nov 22 05:33:42 2005 +0000

    fixing incredibly annoying bug where os x returns stupidly large uid when uid is below 0
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@749 980ebf18-57e1-0310-9a29-db15c13687c0

commit 42c077fe97c5fc8814cc74ad1dd4f71023e883ea
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Nov 22 04:00:50 2005 +0000

    updates from os x
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@748 980ebf18-57e1-0310-9a29-db15c13687c0

commit f815654363f5a9c8a6915637fd77e36fb47eb515
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Nov 22 03:54:30 2005 +0000

    updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@747 980ebf18-57e1-0310-9a29-db15c13687c0

commit 50821328ec637a4ec0feb822b86e208b04baae68
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Nov 17 21:03:19 2005 +0000

    adding cfengine module, which required passing the cfengine classes all the way through the stack to the scope
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@746 980ebf18-57e1-0310-9a29-db15c13687c0

commit c205bf6ba79a905c59eb99747ffe674bbaa11481
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Nov 16 22:17:29 2005 +0000

    fixing filesources so that the first found file is copied, and adding a test case
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@745 980ebf18-57e1-0310-9a29-db15c13687c0

commit 69600345c1f092cc55320d52e4e75dccc12b1dac
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Nov 16 22:03:22 2005 +0000

    fixing puppet to default to using the console for output
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@744 980ebf18-57e1-0310-9a29-db15c13687c0

commit d5bd1bc50730a42f16d3ed23a435d219c0bec3a6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Nov 16 21:39:31 2005 +0000

    Mostly fixing exec so it either captures stderr or runs as a user; Process.euid was not working correctly
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@743 980ebf18-57e1-0310-9a29-db15c13687c0

commit a4562bfba94d18da54ad9560245d0669cc151c76
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Nov 16 17:12:11 2005 +0000

    Lots of refactoring, and added the capture_stderr method
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@742 980ebf18-57e1-0310-9a29-db15c13687c0

commit 42a9d9a3f8ac698370c36c4ca631e82797e01ece
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Nov 2 04:14:38 2005 +0000

    Adding "isomorphic?" method to classes, and testing for isomorphism before throwing a conflict
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@741 980ebf18-57e1-0310-9a29-db15c13687c0

commit 300a1632432b5aa5e0221d28fe0a2ce90c422131
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Nov 1 20:22:19 2005 +0000

    Further progress towards the next release.  Lots of small bugs fixed, the paths look much better now, and Transportable is much cleaner.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@740 980ebf18-57e1-0310-9a29-db15c13687c0

commit 14d8186ebe8740eab1b320e6a1d6c98c255ad70f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Nov 1 00:06:14 2005 +0000

    Making paths work a little more intelligently
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@739 980ebf18-57e1-0310-9a29-db15c13687c0

commit 03357432210eecc5f370f812f473bc5d0a062d64
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 31 22:50:09 2005 +0000

    adding config file stuff, but not using it yet.  I have decided to release the next version without them.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@738 980ebf18-57e1-0310-9a29-db15c13687c0

commit ba76eb2da506aee52b5bbbce842fa5ac361540a0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Oct 30 04:07:52 2005 +0000

    Cleaning up tests resulting from the changes to the parser
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@737 980ebf18-57e1-0310-9a29-db15c13687c0

commit e605a5c181ef8cd2ec57384c7816bf1f7980aedb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Oct 30 01:12:03 2005 +0000

    The language now verifies some resemblance to closurehood.  I now only need to fix the library to expect this behaviour.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@736 980ebf18-57e1-0310-9a29-db15c13687c0

commit 526deef2c44ac66edce85e18257f5341bd4ecb9c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 29 20:16:28 2005 +0000

    Fixed merging of state values, but I have not yet solved merging of parameter or metaparam values, since they are quite different.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@735 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9e1c63a652f9b86af40c7de198f877bc09ad1c62
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 29 18:56:49 2005 +0000

    Protecting from bug in Syslog, and fixing some more log messages
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@734 980ebf18-57e1-0310-9a29-db15c13687c0

commit 76176a9906f56dfbf5771471453dbe7757f426f7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 28 21:28:59 2005 +0000

    central logging is fully functional now, but it is painfully slow, so it is disabled by default
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@733 980ebf18-57e1-0310-9a29-db15c13687c0

commit b6c63f6924250a14e998f4256e81c30e950fed99
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 28 05:39:59 2005 +0000

    Central logging now works, although there appear to be a few kinks to work out.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@732 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0ae5e3392597452acf6a2e9f0d4ac976b8ec9846
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 26 04:44:25 2005 +0000

    Adding logging methods to all Puppet::Element instances, and converting all instance log statements to use those methods.  Additionally modified logging to take advantage of this by including the path of the logging object in the output.  Logs will still need some cleanup to avoid duplicate information.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@731 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0d3db7984fd40769cbb29cde76e081cb06204710
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Oct 26 02:44:44 2005 +0000

    adding tags and path accessors
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@730 980ebf18-57e1-0310-9a29-db15c13687c0

commit a8645a4330b91932c5658eeffa01b446e2ee657a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 25 19:49:22 2005 +0000

    Further small bug fixes towards running puppet on my network
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@729 980ebf18-57e1-0310-9a29-db15c13687c0

commit df8dbbacb09b69c97aee0b76668fd3e56860eb38
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Oct 23 02:43:50 2005 +0000

    fixing sources so that they always have a corresponding checksum state
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@728 980ebf18-57e1-0310-9a29-db15c13687c0

commit e8912d51f1818bc59015ba687fbbb8a33fe91ecf
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Oct 23 02:22:28 2005 +0000

    files and directories are now created as the correct user and group if they are set
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@727 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1b74e8e493abe1951f1e535e752521326a63c6d3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Oct 23 01:38:03 2005 +0000

    The Puppet::Util.asuser function now works; had to slightly modify user.rb to make checking work.  In addition, exec.rb now takes advantage of it.  I also decided to make a small change to type.rb -- validstates now only returns state names, not names and states.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@726 980ebf18-57e1-0310-9a29-db15c13687c0

commit 32d89bac8b8c8d94aac17301b2bfb16e10d8564f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 22 22:36:25 2005 +0000

    fixing certmgr tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@725 980ebf18-57e1-0310-9a29-db15c13687c0

commit f7328804d00d8a82d7ab3a955ff579ff956ef3d0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 22 22:27:20 2005 +0000

    Getting rid of the tc_ prefix to test cases
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@724 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8fe558cca075ab85619a73f4a80408de58810ef7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 22 22:24:02 2005 +0000

    general cleanup, as i move towards running it locally
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@723 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5ab12f97eae989c03b0444cf51ad423fdc6e01f7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 21 22:51:26 2005 +0000

    fixing path to facter
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@722 980ebf18-57e1-0310-9a29-db15c13687c0

commit f036778df725e1b328ac6f11b784f8e72ee34261
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 21 06:39:00 2005 +0000

    Apt-cache was showing more information that I thought, so I had to redo how I was collecting the most recent package version
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@721 980ebf18-57e1-0310-9a29-db15c13687c0

commit a232e5c6ef359b600cdbc618a9791f8eda8eb081
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Oct 21 06:16:43 2005 +0000

    Made tweaks here and there to get it running better on my local network.  I am inches away from that happening.  All tests pass.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@720 980ebf18-57e1-0310-9a29-db15c13687c0

commit a6d02920d360ac06815dcf08f3350ba92088301d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 20 20:54:17 2005 +0000

    adding better docs to packages
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@719 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3cd8ee9186ee0f0cc2127e5598aeebde41e70e5d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 20 20:52:56 2005 +0000

    "latest" is now a valid value for packages, and yum support is also included
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@718 980ebf18-57e1-0310-9a29-db15c13687c0

commit 66db3d89153bea5ba35ce421416773d7585ae88e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Oct 13 22:08:34 2005 +0000

    making service changes; it is still basically non-functional except in the degenerate case of using "init"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@717 980ebf18-57e1-0310-9a29-db15c13687c0

commit 194dab3c7af4d8e993ec8549a30773d68508a9b6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 10 20:54:15 2005 +0000

    Adding some semantic tagging.  It is not exactly full-featured yet, and it is not used at all, but it was sufficient for some proof-of-concept stuff in preparation for the conference
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@716 980ebf18-57e1-0310-9a29-db15c13687c0

commit 55d7bbdcbefd550cee46a628da2292be540401ad
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Oct 4 00:15:04 2005 +0000

    adding tag support to scopes and the transportable class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@715 980ebf18-57e1-0310-9a29-db15c13687c0

commit e563189acd0755a8d32ab956e758405fd3a6f40a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Oct 3 23:14:53 2005 +0000

    switching test classes back to modules -- making them classes causes too many empty tests to run every time
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@714 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9d3aaad7085164e1cc3d665269f9c99c17a7c45a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Oct 2 01:56:38 2005 +0000

    removing the redundant pfile from the pfile state file names
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@713 980ebf18-57e1-0310-9a29-db15c13687c0

commit ed42371ca97af285ab326691c5d33f55c727f981
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Oct 2 01:55:09 2005 +0000

    Switched @should to an array, so all objects can now handle that.  I have not yet gone through and done the other cool things that can result, but that will have to wait until tomorrow.  Also, I moved all of the pfile states into separate files, since the file was getting unweildy.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@712 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6af0e0e5959e7b405191e0a916be097454a656e4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 1 21:03:42 2005 +0000

    added overrides ability
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@711 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0d6241ca97ded8e003338c6cf316e280530ea8ee
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Oct 1 19:57:07 2005 +0000

    switching all relationships to be centrally maintained and to use symbolic references, rather than literal ones; also going through and making all tests pass again after mucking with services
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@710 980ebf18-57e1-0310-9a29-db15c13687c0

commit a96bdac66ba703736afa7155f4d31cbe3e9fc0ef
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 28 17:44:47 2005 +0000

    Okay, services are now managed, um, entirely differently.  I have the beginnings of a system for supporting different service management frameworks, although I currently only support <nothing> and init scripts
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@709 980ebf18-57e1-0310-9a29-db15c13687c0

commit 47ba186922d5034274e871a5dfa307dd33ba9ee5
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 28 17:25:02 2005 +0000

    adding a test for includes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@708 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9464224df2045bee3dbcf27706c4262c964e4106
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 27 19:59:36 2005 +0000

    moving specific packaging support into separate files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@707 980ebf18-57e1-0310-9a29-db15c13687c0

commit f48f14ab4df7c2d3e327b3317503a181cbe13ecb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 26 19:08:48 2005 +0000

    fixing behaviour when files are missing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@706 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5bb8c4a0ae72d84693239c53e71306438a399588
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 26 19:07:17 2005 +0000

    fixing output in noop
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@705 980ebf18-57e1-0310-9a29-db15c13687c0

commit abcac81e8ab44a4befccf73799273cba14db2c27
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 24 22:32:26 2005 +0000

    Rearranging the packaging support a bit -- it is now more clear and significantly easier to understand, maintain, and enhance.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@704 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8211df036e1d2d24e1084616fc3fc4891b06cfdd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 23 20:42:08 2005 +0000

    Many, many changes toward a completely functional system.  The only current problems with my home config are that apache's stupid init script does not do status and that packages are not working as non-root users (which makes sense).
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@703 980ebf18-57e1-0310-9a29-db15c13687c0

commit d20ac8e0b564e5413d571f2059de559e0783b72d
Author: shafer <shafer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 23 05:51:48 2005 +0000

    Hoping this will get rid of the directory being printed
    
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@702 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4c13c1053a9dcf14d9783bef288a7e98cda6fd9e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 23 01:12:26 2005 +0000

    Nodes now support inheritance, for better or for worse.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@701 980ebf18-57e1-0310-9a29-db15c13687c0

commit 781c69b7d2c2a70b794d4fccb011c68e4d7a4950
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 22 23:24:20 2005 +0000

    The new "include" syntax works now.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@700 980ebf18-57e1-0310-9a29-db15c13687c0

commit 400b1034348b5218a0234bfdfd94d253f98f5b84
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 22 18:10:19 2005 +0000

    fixing "ignore" documentation to parse RST correctly.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@699 980ebf18-57e1-0310-9a29-db15c13687c0

commit 55901486d236f98ecfb2717509c5904687969f25
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 22 17:59:50 2005 +0000

    Okay, all tests pass again.  The work done on nodes will take a little while to clarify and such, but it should work pretty well.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@698 980ebf18-57e1-0310-9a29-db15c13687c0

commit f7d9b83a83bf43b13846c4b621794257f04832bb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 21 22:40:31 2005 +0000

    I am still somewhat in mid-change, but I have made the biggest changes to making nodes work correctly.  The core code works, but I still need to fix my various test cases
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@697 980ebf18-57e1-0310-9a29-db15c13687c0

commit 03f57330ef06d6afd6b5f011f1764c4420f7d3dd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 21 21:14:12 2005 +0000

    adding a ParsedFile class to handle figuring out whether a file has changed
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@696 980ebf18-57e1-0310-9a29-db15c13687c0

commit f7575561b52ad89b97bbf97b5487144339031099
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 21 21:04:17 2005 +0000

    converting tc_relationships.rb to the test base class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@695 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5dc3cb04bebc79517ae5f64d1d3c652b6dfba7ea
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 21 17:39:43 2005 +0000

    Okay, significant change -- classes no longer accept arguments (which makes things simpler but encourages the user of global variables, which is bad), and classes are finally singletons, meaning they will only ever be evaluated for each node a single time.  I still need to make nodes work correctly, but that is going to involve modifying the parsing system and a bit more
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@694 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0747b4c34ee0aa2ba4430021c1c0e676f71c20ac
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 20 05:19:24 2005 +0000

    adding stinkloads of comments to ast.rb (I am trying to go through and better comment my code over time), refactoring some of the AST classes, and working towards a more sensible class/definition/node distinction
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@693 980ebf18-57e1-0310-9a29-db15c13687c0

commit d6982d59fc6db60a837967722ecd30f6c093547a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 19 21:23:00 2005 +0000

    adding some new language tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@692 980ebf18-57e1-0310-9a29-db15c13687c0

commit 48155b8b8bdf2922982db2913e2f36a84b15ebec
Author: shafer <shafer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 19 17:50:17 2005 +0000

    added log, metaloglevel and @metaparams to support setting loglevels
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@691 980ebf18-57e1-0310-9a29-db15c13687c0

commit 041ca4b92a83a055640ee23020592741966ab85f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 19 17:49:08 2005 +0000

    switching log.rb to raise Puppet::DevError events
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@690 980ebf18-57e1-0310-9a29-db15c13687c0

commit 16c9f834424ebb16eb9e8ce246576f05df653451
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sun Sep 18 19:21:53 2005 +0000

    My cfengine2puppet config now entirely parses.  The biggest problem I ran into is that my glob-based parsing was only returning the results of the last parsed file, instead of collecting all of the results.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@689 980ebf18-57e1-0310-9a29-db15c13687c0

commit 23d3c93d31d242e1b3f22ac381d5defca088d312
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 17 21:46:05 2005 +0000

    adding --noop to puppet executable, and removing some extraneous comments
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@688 980ebf18-57e1-0310-9a29-db15c13687c0

commit a345931bccd2809aee35dcdaf6a3ef1d21db8c26
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 17 21:27:26 2005 +0000

    Successfully parsed my entire converted cfengine configuration; these are all fixes for bugs i found as a result.  I have not tried to execute the configuration yet.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@687 980ebf18-57e1-0310-9a29-db15c13687c0

commit a8bdada4acadd2d5c0a08dd1c9d1a4fe5232e061
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 17 16:55:05 2005 +0000

    Users and groups now work on OS X.  I had to make some key changes to how transactions and state changes work -- the most important is that it is no longer an error to try to sync a state that is already in sync.  I could not find another way to handle all user states being out of sync but the first state actually syncs everything.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@686 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6654c4cb44a0043314b2cb5cbefe3f6c1529aa23
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 17 15:06:48 2005 +0000

    fixing users on normal machines
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@685 980ebf18-57e1-0310-9a29-db15c13687c0

commit 106d397bc0de9512b24724c5b3ed95db501671ea
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 17 02:44:32 2005 +0000

    Users and groups now nearly work on normal machines and on os x, and I think I have a decent platform for expansion to some of the other important elements like hosts (probably most important after users and groups).  Some tests are still failing on os x, because netinfo sucks, but I will hopefully be able to figure out a solution soon.  Stupid OS X and NetInfo.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@684 980ebf18-57e1-0310-9a29-db15c13687c0

commit 42deabbe80de28ca7e086568cdb0fe670415893b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 16 23:20:19 2005 +0000

    all tests for users and groups pass again on fedora, debian, and solaris
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@683 980ebf18-57e1-0310-9a29-db15c13687c0

commit e0d1d311d9d8335b938bd0312f6a712ce2c5127f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 16 21:53:03 2005 +0000

    temporary commit so i can move to my workstation; groups and users are way b0rked
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@682 980ebf18-57e1-0310-9a29-db15c13687c0

commit 29c291a0e8bf55be0835fcf11df595b762686db6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 16 19:04:26 2005 +0000

    Creating a "change_to_s" method on State, so individual states can override and and determine how they get printed
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@681 980ebf18-57e1-0310-9a29-db15c13687c0

commit 80a2808faa434de7d984409de53227b476a9da1b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 16 18:13:42 2005 +0000

    Cron is now fully functional and tested on 3 platforms.  In order to make it work, I had to do some modifications to TransObject#to_type and Type.create, but all tests pass now.  Type.create is now handling errors on creating objects, so if you try to create an invalid object you will just get nil returned, rather than receiving an error.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@680 980ebf18-57e1-0310-9a29-db15c13687c0

commit e25e8c685f733310e6da0489634288b5e81d2c41
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 16 15:31:58 2005 +0000

    adding keywords
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@679 980ebf18-57e1-0310-9a29-db15c13687c0

commit aebfef0925d5f5745010e6b47bdeaf87ff289d22
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 16 15:31:47 2005 +0000

    adding keywords
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@678 980ebf18-57e1-0310-9a29-db15c13687c0

commit 11d3d24b758c5df43bec1761ceae70d8cb012953
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 16 07:07:34 2005 +0000

    cron is working, but i want to write quite a few more test cases
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@677 980ebf18-57e1-0310-9a29-db15c13687c0

commit 036ba7a439f13c5eb110ee0d2663583ef31ee723
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 16 06:21:06 2005 +0000

    small fixing to merge(), and changing output of statechange
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@676 980ebf18-57e1-0310-9a29-db15c13687c0

commit 093963e60313f28afc95f829bce94d6096fba868
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 16 04:35:56 2005 +0000

    finishing up merge method
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@675 980ebf18-57e1-0310-9a29-db15c13687c0

commit ac0454a4bfcf6e9ecd3f3eb6037f04caa3c3ce59
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 16 04:14:32 2005 +0000

    making "Type.new" private, and switching to "Type.create", so that i can merge new objects with existing objects and such; converted all files, and tested them
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@674 980ebf18-57e1-0310-9a29-db15c13687c0

commit f7116e58714d9c66409acfc836ba271957b1b2af
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 16 03:38:11 2005 +0000

    switching FileTesting to a class, and modifying test suites as appropriate
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@673 980ebf18-57e1-0310-9a29-db15c13687c0

commit 786126922f108aa30e39ff5884fe84fbfa107d5b
Author: shafer <shafer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 15 20:30:02 2005 +0000

    removed directory output
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@672 980ebf18-57e1-0310-9a29-db15c13687c0

commit bf701dcb819bf06449557b2ef6b2adf207a78586
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 15 20:16:21 2005 +0000

    adding extra checks to make sure networking is secure, and refactoring a heckuva lot of test
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@671 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0c97bb13d4b1aefda9768c000c542b3ddfc92b04
Author: shafer <shafer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 15 19:10:03 2005 +0000

    fixed problem using arrays
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@670 980ebf18-57e1-0310-9a29-db15c13687c0

commit 897de465b38965c821bcedd32193d9069a378ae0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 15 15:18:15 2005 +0000

    cleaning up tests a bit; mostly just making sure tests clean up after themselves, but also doing some rearrangement and fixing a list() call
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@669 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6767dd2afd1061721147a3fa60174f560724f054
Author: shafer <shafer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 15 07:16:52 2005 +0000

    debugged ignore in fileserver, added tests to ignore tc and fixed server.list in tc for filesources and fileserver
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@668 980ebf18-57e1-0310-9a29-db15c13687c0

commit 39aaa9910f8bc5a120f35233d6dda0b06150747b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 15 05:48:43 2005 +0000

    fixing some tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@667 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6c6ff03155101cebbd4ba76ce09cc23adf45f9f7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 15 05:11:23 2005 +0000

    moving some testing and debugging around
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@666 980ebf18-57e1-0310-9a29-db15c13687c0

commit 192c07b43452b07b8dde710d76ade915063f914c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 15 05:11:01 2005 +0000

    fixing non-netinfo group
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@665 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9ebb76760ab8e2f85ee503454d68fd1a31d36fe3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 15 05:10:50 2005 +0000

    fixing non-netinfo group
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@664 980ebf18-57e1-0310-9a29-db15c13687c0

commit 669ae388f2209b3be7af2671579773b2cc24cbfc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 15 04:48:52 2005 +0000

    modifications to eliminate code duplication in state creation, mostly to support cron
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@663 980ebf18-57e1-0310-9a29-db15c13687c0

commit ae00500eff131b4088850283b0e848a014f67d8e
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 15 04:48:32 2005 +0000

    preparations for supporting netinfo in users
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@662 980ebf18-57e1-0310-9a29-db15c13687c0

commit 610f95caa41c3bc641676b401887f361978a7dbb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 15 04:48:11 2005 +0000

    switching groups back to having namevar be a parameter instead of a state
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@661 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2a6710b22d8cfd1d5a64af320e8b7d2ff9a998cc
Author: shafer <shafer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 14 22:37:57 2005 +0000

    fileserver still has a bug
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@660 980ebf18-57e1-0310-9a29-db15c13687c0

commit ec6603468abad8e0fac3960d778b44019dd63644
Author: shafer <shafer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 14 22:30:32 2005 +0000

    added ignore to fileserver and pfile
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@659 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3d5f5a1c9777b2d0adbf74bdddaad83b7d633f54
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 14 22:04:13 2005 +0000

    adding cron stuff; it does not work at all yet
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@658 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0d3024f471c0895d582e8874eb6f0f13972cc920
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 14 22:03:54 2005 +0000

    adding globbing to import
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@657 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5438eff0f2d69dd4a8b91cd530a5e1bec0d744ef
Author: shafer <shafer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 14 04:23:43 2005 +0000

    removed comp.sync and replaced system mkdir -p
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@656 980ebf18-57e1-0310-9a29-db15c13687c0

commit 79961e1fb057abb76d92e8554465b7bf2a215762
Author: shafer <shafer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 13 20:59:57 2005 +0000

    added test case for ignore
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@655 980ebf18-57e1-0310-9a29-db15c13687c0

commit 157953a125f3ed74db58bd5ed66d7e99f7937074
Author: shafer <shafer@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 13 20:54:07 2005 +0000

    added ignore to pfile
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@654 980ebf18-57e1-0310-9a29-db15c13687c0

commit 51948bd716d7da4e17704140769f15b6723c97e8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 13 20:50:36 2005 +0000

    adding example configs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@653 980ebf18-57e1-0310-9a29-db15c13687c0

commit d43dc864e6fa3a972c363a857463b609e1f783a6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 13 15:36:44 2005 +0000

    tracked down some sticky bugs related to having false values and empty strings; all fixed now, and all tests pass again, including the new tests that cover the bugs i found
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@652 980ebf18-57e1-0310-9a29-db15c13687c0

commit aca4cf86247bc73c95d12b3ce3a536302c1bfd0c
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 13 02:21:55 2005 +0000

    fixing error handling so that failed objects are completely destroyed; they were receiving events even though they were supposed to be gone
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@651 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0a4e3925466a99af943ea257bad8b74993976cb8
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 13 02:21:48 2005 +0000

    fixing component flattening and sorting; it was not working for cases where objects inside of components had dependencies from other components
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@650 980ebf18-57e1-0310-9a29-db15c13687c0

commit 58ca9d1241eac3fb982aa673195d5e49ab0a1889
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 13 02:20:24 2005 +0000

    adding snippet test to verify correct behaviour with missing exec path; also, adding "creates" parameter to exec
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@649 980ebf18-57e1-0310-9a29-db15c13687c0

commit f9df5236aa75aa2978c7d9ce826aa6b9bf06a711
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 12 20:33:14 2005 +0000

    intermediate commit so cron is not loaded
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@648 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4dd1dd8cfb7842c463cac11f785b56739b09e93b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 12 06:12:44 2005 +0000

    adding more comments from talking to andy
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@647 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3306cc7e065ae82db6a0adf86100ce3d17c1ff79
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 12 04:35:46 2005 +0000

    incorporating comments from talking to andrew
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@646 980ebf18-57e1-0310-9a29-db15c13687c0

commit 29fa170590843016f6c7131a0a39ef3685ef5831
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 12 04:34:05 2005 +0000

    incorporating comments from talking to andrew
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@645 980ebf18-57e1-0310-9a29-db15c13687c0

commit d0eb56620a4e4f067b8f074393758b49d4ebccd6
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 10 19:01:47 2005 +0000

    some small fixes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@644 980ebf18-57e1-0310-9a29-db15c13687c0

commit ee1eba23029ecbc29e75dc9646519bda49fa46b0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 10 18:47:44 2005 +0000

    small updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@643 980ebf18-57e1-0310-9a29-db15c13687c0

commit f69abc9e69781f94ec37e8c879fb6b0f4bb465da
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Sat Sep 10 18:36:22 2005 +0000

    adding cfengine to puppet parser, but it is not even remotely close to functional yet
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@642 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f7b191b76ed3b8996c7fa4090b81b29ad33d394
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 9 04:25:39 2005 +0000

    fixing groups again after getting them to work with netinfo
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@641 980ebf18-57e1-0310-9a29-db15c13687c0

commit da6590d072cbff40525311b6d5debae0885e1054
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 8 20:03:52 2005 +0000

    group management now works on os x, although it is six shades of really nasty.  Netinfo is a nightmare.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@640 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3726cee8a648268054b240ffae8d7f5f6272c75a
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 8 20:03:26 2005 +0000

    adding debug setting to the top-level test class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@639 980ebf18-57e1-0310-9a29-db15c13687c0

commit 99db7bc2df7c086bb3c57c9e817b1403e225c5c4
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 8 20:02:53 2005 +0000

    reverting changes in the reverse order of what i executed them
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@638 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f0ef3f9bf7f8fd041215c3b6eac8364c4732009
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Thu Sep 8 20:02:26 2005 +0000

    removing debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@637 980ebf18-57e1-0310-9a29-db15c13687c0

commit 221343060856fa27ace550b1a76e6da59c2df536
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 7 21:29:16 2005 +0000

    making states capable of being the namevar
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@636 980ebf18-57e1-0310-9a29-db15c13687c0

commit 923226e7ac5d931dc6b01f5ae1cee3beb24b2fee
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 7 18:13:36 2005 +0000

    all tests now pass on solaris 10x86; i had to do some stupid hacking with base64 for it to work, and i am working getting a much better base class for all test classes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@635 980ebf18-57e1-0310-9a29-db15c13687c0

commit edc392d7f5b8fb59fff17091612da01a5a52891d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 7 05:40:52 2005 +0000

    adding a break if randomization takes too long
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@634 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4cc12a85baf2617ad9d60d521249e24ffdefcd53
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 7 05:28:58 2005 +0000

    finishing up user and group support for now
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@633 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9e4ed0ca8887c99cd5f29b6f7d0a9eaa950c0693
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 7 05:28:28 2005 +0000

    rearranging some documentation
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@632 980ebf18-57e1-0310-9a29-db15c13687c0

commit 24b1c673537a441e4dbc0f40b11e13290722d283
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 7 03:40:40 2005 +0000

    adding scopetest
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@631 980ebf18-57e1-0310-9a29-db15c13687c0

commit b77d29568e8adaa0104d8ee5b4c168ef6e3c4bdd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 7 02:53:19 2005 +0000

    adding user and group classes (although user class is not yet functional), and added "is(state)" and "should(state)" methods for retrieving the respective values on a specified state
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@630 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4f2812a2180894b645583c7a7c3aa8a012b2b0ac
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 7 02:52:16 2005 +0000

    changing rollback() to do event handling also
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@629 980ebf18-57e1-0310-9a29-db15c13687c0

commit 72638e6d17231fb6b24078c89f63b80b78065683
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Wed Sep 7 02:51:47 2005 +0000

    adding simple newcomp() method to base test class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@628 980ebf18-57e1-0310-9a29-db15c13687c0

commit 795a5a0551ba8c2fcf4dcbdb6a3e9ab3fb57bf86
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 6 04:21:55 2005 +0000

    adding all of the work necessary for tidying
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@627 980ebf18-57e1-0310-9a29-db15c13687c0

commit f7a5f87cbbbb2a0895e2174ad5d25e6f3f7aad46
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 6 04:21:26 2005 +0000

    removing DEFAULTPORT stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@626 980ebf18-57e1-0310-9a29-db15c13687c0

commit 21244f4f69c89f92b0ec451e5122774de3c548e3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Sep 6 04:20:53 2005 +0000

    fixing small bug in setting default port
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@625 980ebf18-57e1-0310-9a29-db15c13687c0

commit c0c958baa758665b2bbcb99c098e22e999b277dc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Sep 5 19:41:49 2005 +0000

    changing some documentation methods around
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@624 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3fb6f49dc8d1a501ed2f4fd52c247ae2a95d8460
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 2 20:12:15 2005 +0000

    rearranging puppetdoc to not separate states and parameters, and to allow undocumented states
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@623 980ebf18-57e1-0310-9a29-db15c13687c0

commit 75ec0543d27f3c552a778adae3255a3cb68f918b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 2 19:26:31 2005 +0000

    committing initial tidy stuff, so i can move to the laptop
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@622 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0d01770499d94c0d0140449569efe9126d97ea86
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 2 16:39:29 2005 +0000

    cleaning up obviated methods
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@621 980ebf18-57e1-0310-9a29-db15c13687c0

commit 747c3f6b75f86177132ee277dd619b42bbc53513
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 2 03:21:03 2005 +0000

    defining $name in each component scope, and adding test case
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@620 980ebf18-57e1-0310-9a29-db15c13687c0

commit f49ffa32515ef2b9b79a14e07b8e4c6cfaf73aeb
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 2 03:20:41 2005 +0000

    defining configstatted
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@619 980ebf18-57e1-0310-9a29-db15c13687c0

commit 750b880528f51721b895be764435dedfd5e4eb56
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 2 03:20:10 2005 +0000

    removing if-related keywords
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@618 980ebf18-57e1-0310-9a29-db15c13687c0

commit 008cea5e08d2a49e3ddba3547a62dc45964174a0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Fri Sep 2 03:19:44 2005 +0000

    fixing error calls
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@617 980ebf18-57e1-0310-9a29-db15c13687c0

commit e1bf0e15e97ed9a4cb49d813df65d04f8f06c501
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 30 14:29:39 2005 +0000

    fixing bug where remote server name is ignored
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@616 980ebf18-57e1-0310-9a29-db15c13687c0

commit e1de0028f73cb5eb5a8ccbc45d96940d1c7c470f
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 30 04:26:27 2005 +0000

    Fixed small bug that caused the config files to be parsed on every connection
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@615 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5c0fb024d1bf891b79ae120adc7435da8d0ec2c3
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 30 03:35:46 2005 +0000

    fixing documentation for file source state
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@614 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6a96fccf1bd87b148a2ea35e187c495cb2b61ec7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 30 01:46:43 2005 +0000

    adding file reread to master, although it is plenty hackish
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@611 980ebf18-57e1-0310-9a29-db15c13687c0

commit cff3a5b6cf3867287e1d1d76100f5f7744faa383
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 30 01:33:36 2005 +0000

    fileserver config file now reloads when it is more than 60 seconds out of date
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@610 980ebf18-57e1-0310-9a29-db15c13687c0

commit 998b4155dfc7a783b6dba5beafa272b579e98381
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Tue Aug 30 00:13:53 2005 +0000

    correcting documentation on autosign in puppetmasterd, and switching the autosign.conf file to use the same authstore as fileserver.conf
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@609 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7f274a4c53a676ab471a823b4d281d7708edf70d
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 29 23:24:23 2005 +0000

    catching a potential security problem -- requiring that "path" always be set for a fileserver mount
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@608 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8a99636cb9f048bfbbd8b956a15ec84ae68d34f0
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 29 22:53:44 2005 +0000

    adding a "--noop" option along with a test case for it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@607 980ebf18-57e1-0310-9a29-db15c13687c0

commit f65563d3d6eddeeac5f1b14e7b2635776be802a7
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 29 22:53:17 2005 +0000

    changing default hostname to "puppet", and adding --parseonly option along with a test case for it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@606 980ebf18-57e1-0310-9a29-db15c13687c0

commit 062906591bc21d761ed00d33f9fa95c425b16ccd
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 29 22:31:22 2005 +0000

    fixing puppet to use correct method and adding a real test case for it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@605 980ebf18-57e1-0310-9a29-db15c13687c0

commit 82ac86e1996e156eb98bb0b06a8926ec61c8fdcc
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 29 22:31:04 2005 +0000

    changing default manifest location to /etc/puppet/manifests/site.pp
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@604 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3087f850fe668492b243308f51fffad383c0e43b
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 29 21:32:15 2005 +0000

    changing version number for beta
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@602 980ebf18-57e1-0310-9a29-db15c13687c0

commit e28e11b08f45fb1d24aebc264bc59957637d4250
Author: luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>
Date:   Mon Aug 29 21:23:46 2005 +0000

    removing need for zip in rakefile
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@601 980ebf18-57e1-0310-9a29-db15c13687c0

commit fc20167320f25f7c513c20210eb7e9b34be103ec
Author: Jesse Koontz <jesselks@yahoo.com>
Date:   Mon Aug 29 21:08:59 2005 +0000

    UPdated rakefile
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@600 980ebf18-57e1-0310-9a29-db15c13687c0

commit 914764b9d5045fb9a1824577546ca0559d2a1e88
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 29 21:03:46 2005 +0000

    As Christian requested, I am no longer downcasing facts I receive from Facter.  Also, removing some outdated files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@599 980ebf18-57e1-0310-9a29-db15c13687c0

commit eab73144798bb66118501ba1d26cbac5a4e86bae
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 29 20:37:15 2005 +0000

    bumping up the default log level for changes from info to notice
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@598 980ebf18-57e1-0310-9a29-db15c13687c0

commit cc483678d3b89979286475745b325ae8f348afef
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 29 20:36:49 2005 +0000

    I did not have good puppetd tests, so I missed the fact that I was calling the wrong class in puppetd.  Fixed.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@597 980ebf18-57e1-0310-9a29-db15c13687c0

commit 65d13753127cac85a57274e89b0d5d616e63bcb4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 29 17:16:22 2005 +0000

    disabling print of library warnings, since webrick and openssl have far too many warnings for comfort
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@596 980ebf18-57e1-0310-9a29-db15c13687c0

commit cdfaa5ea36926caae58f30db86ed898cde82b874
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 29 17:12:57 2005 +0000

    adding RDoc::usage documentation to all executables
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@595 980ebf18-57e1-0310-9a29-db15c13687c0

commit f2795359521709b5d4a64900ebed5e7b0be84c6b
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 28 02:23:10 2005 +0000

    This should be the commit that brings us to Beta 1.  All tests pass, although I get some (gracefully handled) failures in tc_metrics.rb, and there is now a config file for the fileserver module, including authorization specification for it.  I have also reworked error handling in the xmlrpc client and server so errors should propagate more correctly.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@594 980ebf18-57e1-0310-9a29-db15c13687c0

commit 28be88cc6e13c1af193fe01d56a1a446a18e01bb
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Aug 28 00:28:04 2005 +0000

    Adding authorization store, initially just used for file serving but eventually for all authorization, most likely
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@593 980ebf18-57e1-0310-9a29-db15c13687c0

commit 814a9b0288b74407b3ec0aa58310c9972e0ca347
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 27 20:19:45 2005 +0000

    adding config file parsing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@592 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9ec321edd0883b1ddb53d1cd97bb0ad42352b5a3
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Aug 26 16:08:20 2005 +0000

    recompiling parser after removing extraneous debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@591 980ebf18-57e1-0310-9a29-db15c13687c0

commit 773be962b05d7d35c392eb9ae9b70822123693c3
Author: Jesse Koontz <jesselks@yahoo.com>
Date:   Thu Aug 25 20:58:05 2005 +0000

    Added GPL license
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@590 980ebf18-57e1-0310-9a29-db15c13687c0

commit 48a2e0f05735263a8cc4d16188a904c24385b9b1
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 25 20:54:16 2005 +0000

    making array-as-name work in the language, and adding some more test snippets
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@589 980ebf18-57e1-0310-9a29-db15c13687c0

commit 66b3355cc3e025f2659d038d4055b5df0dcbe253
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 24 21:26:52 2005 +0000

    Certificates now verify!
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@588 980ebf18-57e1-0310-9a29-db15c13687c0

commit 386ebee31dcc67ac5a7fb569ee58c2365e0666e1
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 24 02:53:17 2005 +0000

    replacing if statements with case statement, and adding defaults for both selectors and case statements
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@587 980ebf18-57e1-0310-9a29-db15c13687c0

commit 583a9c6e2a7469e4ae3b72264010a5d8d0dab867
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 23 23:08:41 2005 +0000

    remote filecopying now works
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@586 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5b20c92ff322ba1886209f788ce6a7df05315cf5
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 23 21:23:57 2005 +0000

    Have done a significant reorganization of how clients work, also, along with some interesting trouble shooting on components
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@585 980ebf18-57e1-0310-9a29-db15c13687c0

commit ba51e700ace1b34b2dbb06bc61287be184fe46ec
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 23 20:54:42 2005 +0000

    fixing checksum generation -- i was causing some weird bugs by using the same indicator in different cases, and i added a test for invalid checksum types
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@584 980ebf18-57e1-0310-9a29-db15c13687c0

commit fb3cff7297b29ff574c0a84349c5f7493016e351
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 23 19:46:54 2005 +0000

    small comment change
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@583 980ebf18-57e1-0310-9a29-db15c13687c0

commit dde841fa4653c11886bb80b8c402629e4f105ba0
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 23 17:57:08 2005 +0000

    Created a Handler base class for all of the server handlers, which allows a lot of the manual work to now be automatic
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@582 980ebf18-57e1-0310-9a29-db15c13687c0

commit 49e3e3771cdf2eabb71b406167bc975386392354
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 23 17:13:40 2005 +0000

    splitting normal file tests and source tests into different files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@581 980ebf18-57e1-0310-9a29-db15c13687c0

commit a8fff85769df71bf7ba79e2fd2d236475b6bd0fc
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 23 17:13:26 2005 +0000

    ignoring remote file owner when not running as root
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@580 980ebf18-57e1-0310-9a29-db15c13687c0

commit f68fe0045d3519d545d8e63b7ee470ece74fcc3f
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 23 16:55:24 2005 +0000

    moving all server handlers into a specific server subdirectory
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@579 980ebf18-57e1-0310-9a29-db15c13687c0

commit 129dad73edf2307a36f88c563a347417f75bcc12
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 23 16:16:38 2005 +0000

    removing obsolete file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@578 980ebf18-57e1-0310-9a29-db15c13687c0

commit 51294a08463ed4735d73a9d5836f52f92396dfb0
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 23 16:13:46 2005 +0000

    moving rake file to the trunk dir
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@577 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6029ef7812765775306ff8394005c326e359d886
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 23 16:09:14 2005 +0000

    Moving all files into a consolidated trunk.  All tests pass except the known-failing certificate test, but there appear to be some errors that are incorrectly not resulting in failurs.  I will track those down ASAP.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/trunk@576 980ebf18-57e1-0310-9a29-db15c13687c0

commit e87eb58ce8dc40ba8c66233bf17cea61094e7647
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 18 19:40:00 2005 +0000

    adding test to verify require does not kick off an event
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@566 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4741eeff6bae987c9dfa9e06e2908ae91daa4d16
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 18 19:36:47 2005 +0000

    Execution order is now based on dependency relationships, and those relationships correctly propagate up and descend into components.  There is also an event test suite now, along with a (currently simple) component test suite.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@565 980ebf18-57e1-0310-9a29-db15c13687c0

commit 63309c3b40b7e7f6f46692e0b4b2c780fc806737
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 17 19:24:38 2005 +0000

    fixing test base class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@560 980ebf18-57e1-0310-9a29-db15c13687c0

commit f02688442098f68016022289e7cf504732c872ba
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 17 19:04:37 2005 +0000

    just fixed an incredibly ugly bug where @parent meant both parent array and parent class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@559 980ebf18-57e1-0310-9a29-db15c13687c0

commit 78939cc0ae05e21887f3a297dc5cd718f9cb5502
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 17 15:57:33 2005 +0000

    passing file and line to all objects
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@557 980ebf18-57e1-0310-9a29-db15c13687c0

commit 51ffd6fa7fcdf2f407c6f7a1ae6218d2c5038ac1
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 17 15:57:22 2005 +0000

    trying to create a testing base class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@556 980ebf18-57e1-0310-9a29-db15c13687c0

commit 54e5eb41edea827a390b560a54e55653f789eb2e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 17 15:36:11 2005 +0000

    moving
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@555 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4f0750bb5e57fa625205574ddccb9fe3eef76b12
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 17 15:35:39 2005 +0000

    adding
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@554 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9f84742188e9ffab9bcbb08e54e8c0e29d20f5e1
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 16 16:11:25 2005 +0000

    all tests pass except a certificate test i do not know how to fix
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@553 980ebf18-57e1-0310-9a29-db15c13687c0

commit 163db7cc23823f4bf2bf2fb076b169af80211274
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 15 16:46:31 2005 +0000

    a basic first test of puppetmasterd now passes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@551 980ebf18-57e1-0310-9a29-db15c13687c0

commit a3e03e221707d31d1ef6b3da1c609559f452d4d8
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 13 21:45:23 2005 +0000

    all non-executable tests pass now
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@549 980ebf18-57e1-0310-9a29-db15c13687c0

commit d49a98e38cf94f3ca7295b87bf291a3b3f789b52
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 13 18:43:56 2005 +0000

    further progress towards passing tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@546 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2be10b5a19b7b0905dc5fd6d991757d52318304e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Aug 12 17:38:04 2005 +0000

    all tests pass except those related to puppetd; i am going to significantly reorganize how serving is done
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@540 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6eac358268dc1dc51584eb6e88a44f1721212ae6
Author: Jesse Koontz <jesselks@yahoo.com>
Date:   Thu Aug 11 21:04:43 2005 +0000

    updated version number to allow gem install
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@539 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8d71cd99c2af7f522f58a9fac9a5e2183685e74d
Author: Jesse Koontz <jesselks@yahoo.com>
Date:   Thu Aug 11 17:05:55 2005 +0000

    Added rake for Puppet, '--version' to puppet and test case for Puppet.version
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@537 980ebf18-57e1-0310-9a29-db15c13687c0

commit cfaee58f4db99544e531962717c35639085065ef
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 10 03:20:30 2005 +0000

    more progress towards a functional daemon
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@533 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3cb04cb1ad9f8682a705a38d2c9ff5633150646f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 10 03:19:20 2005 +0000

    setting up http to log to a separate file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@532 980ebf18-57e1-0310-9a29-db15c13687c0

commit adc10d8e82723615279ba3aa1eded52fdbcd0acd
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 10 03:19:11 2005 +0000

    setting up http to log to a separate file
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@531 980ebf18-57e1-0310-9a29-db15c13687c0

commit c7380c9d60fef68e2eb27c732d41eba7f6a54a27
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 10 02:14:27 2005 +0000

    renaming
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@529 980ebf18-57e1-0310-9a29-db15c13687c0

commit cb1956df8569b53a002d38c81e2dfe1010110cb7
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 10 02:14:13 2005 +0000

    adding daemon helper module
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@528 980ebf18-57e1-0310-9a29-db15c13687c0

commit bb4b5a544e85e5a56065ebb5dd175fbdea7280d2
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 9 22:47:32 2005 +0000

    done a lot of work on certificates; all tests except one puppetca test pass
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@523 980ebf18-57e1-0310-9a29-db15c13687c0

commit e2e247428faa15c299a5dc7bc802afa4a2dbc74a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 9 22:23:30 2005 +0000

    removing obsolete files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@522 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0f7d185fb1f05e6674ed12ad5f0dabc1ad3f34db
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 9 19:17:03 2005 +0000

    fact.rb is obsolete
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@520 980ebf18-57e1-0310-9a29-db15c13687c0

commit af1b97950fd1556b90883febb251405b4788c10f
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 9 19:16:30 2005 +0000

    function.rb is obsolete
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@519 980ebf18-57e1-0310-9a29-db15c13687c0

commit fc0ba4b983af736b66398d49f638b45be5e460e3
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 9 17:34:58 2005 +0000

    fixing directory mode creation
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@518 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5bcae966838dde80b8474d50123845cde133cd04
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 9 15:55:02 2005 +0000

    renaming again
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@516 980ebf18-57e1-0310-9a29-db15c13687c0

commit 26876528dd64d685c62ecb813974aa1c43e0bef2
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 9 15:53:16 2005 +0000

    renaming openssl to certauthority
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@515 980ebf18-57e1-0310-9a29-db15c13687c0

commit aacd7800d442e40a29aa7b3e2f8ca052a620189d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 9 15:52:47 2005 +0000

    removing comments and making @csr a class attribute
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@514 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4b5c5bfc1b42fc389d8ee5eaac5f1d66ca3ae35a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 9 01:24:32 2005 +0000

    fixing error output
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@513 980ebf18-57e1-0310-9a29-db15c13687c0

commit c0b0975797647ef5cdb19550652d61829a740be2
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 8 21:42:03 2005 +0000

    adding creation rollback
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@505 980ebf18-57e1-0310-9a29-db15c13687c0

commit f654f2d26d32bfec7236e360e91d672f190115dd
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 8 21:41:51 2005 +0000

    returning transaction from client.config()
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@504 980ebf18-57e1-0310-9a29-db15c13687c0

commit a6a11487bf731585f29e4d49b91d8c0d1fffb714
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Aug 6 04:58:14 2005 +0000

    all tests now pass on os x
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@502 980ebf18-57e1-0310-9a29-db15c13687c0

commit f3c1487c1183a97a45c8e63eef37251ca6360afb
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 4 18:56:46 2005 +0000

    adding better error handling for missing paths
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@500 980ebf18-57e1-0310-9a29-db15c13687c0

commit 77e1cf050e8a4cf82925d3d86cc4dc2cd8f4ea58
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 4 18:54:47 2005 +0000

    fixing verbose output to be better and easier to manage
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@499 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9c7c71ccd8631c0dce65e91380704338a9dab219
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 4 18:42:17 2005 +0000

    passing state, so more info can be extracted
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@498 980ebf18-57e1-0310-9a29-db15c13687c0

commit afcb2ee529503207c7979f1397a5066b06e98198
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 4 18:41:41 2005 +0000

    adding a bit more output
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@496 980ebf18-57e1-0310-9a29-db15c13687c0

commit bc3a433f0baf1ad7d5d7d7ee601a74e275e04fa8
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 4 15:39:54 2005 +0000

    committing recent changes for testing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@493 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7b14e393ef7322f2d6161cf10be6710b8a342019
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 4 07:11:03 2005 +0000

    a bit of refactoring, and a bit more functionality
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@492 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0fce775b26393dfcb913883cad3605961acd544c
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Aug 4 06:41:59 2005 +0000

    okay, switch all cert management to the library, instead of using the openssl binary
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@491 980ebf18-57e1-0310-9a29-db15c13687c0

commit a1d206a126e53434b2ba4ada68d05f5890cc1ce2
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 3 16:27:38 2005 +0000

    moving
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@490 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6ba0e105845fa9cf80739d0491093522d900d645
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Aug 3 16:27:24 2005 +0000

    certificate management; yay
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@489 980ebf18-57e1-0310-9a29-db15c13687c0

commit de4e5bfdf5e03d4ba93cc47e0c8a531fc781dcfe
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 2 05:22:49 2005 +0000

    oops; removing errant notice msg
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@487 980ebf18-57e1-0310-9a29-db15c13687c0

commit 223cc9f4186b46e6c5a6eb6d803951d39ac05fc7
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 2 05:21:42 2005 +0000

    cleaning up the defaults system even more
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@486 980ebf18-57e1-0310-9a29-db15c13687c0

commit 74dac8fd6f46c35cf79b15f1f7358bc32d4c7716
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 2 00:24:18 2005 +0000

    adding some consistency and tests to the whole puppet defaults system
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@485 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8bf85e2faeb8a4776b64cf6cebac4733ff3739d5
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Aug 2 00:08:18 2005 +0000

    adding tests for puppet defaults
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@484 980ebf18-57e1-0310-9a29-db15c13687c0

commit d14e1b4e9dae2603004226f8e921875e8f355d90
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 1 23:18:48 2005 +0000

    uh
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@483 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4af2559be61e951e445ae1059ce32521a0f256da
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Aug 1 15:34:51 2005 +0000

    renaming to avoid name conflicts
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@482 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5fa0c20e767852a6f97a0334ed3f6d443825faad
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 31 03:36:59 2005 +0000

    all tests pass again
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@481 980ebf18-57e1-0310-9a29-db15c13687c0

commit edc28424d658396af622ae31ab7e3d23471e229e
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 31 03:20:59 2005 +0000

    local filebuckets are now tested with files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@480 980ebf18-57e1-0310-9a29-db15c13687c0

commit e041c8a800f61db4ec87f375de77ac4784ff039c
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 31 02:59:25 2005 +0000

    basic filebucketing is now working
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@479 980ebf18-57e1-0310-9a29-db15c13687c0

commit cf37c06dbbde7ceb21691e6d90067eae8cfcfadd
Author: Jesse Koontz <jesselks@yahoo.com>
Date:   Fri Jul 29 18:53:09 2005 +0000

    Moved documentation to project website.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@477 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9f2aaac6b783e142a74e9c71f8d2cdd4cd2e0702
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 28 22:24:12 2005 +0000

    more changes to documentation
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@474 980ebf18-57e1-0310-9a29-db15c13687c0

commit 952a76c676ea6cc90fe9260e855c0276f0e391ed
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 28 19:28:26 2005 +0000

    working on documentation
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@471 980ebf18-57e1-0310-9a29-db15c13687c0

commit 54895daf480ae2f0e7d7e48c356feca9f2b0f691
Author: Jesse Koontz <jesselks@yahoo.com>
Date:   Thu Jul 28 17:37:18 2005 +0000

    Updated README, moved the old one to documentation/
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@470 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2d1e64373b2c9da2b89463c86fd95798c1c2e4ac
Author: Jesse Koontz <jesselks@yahoo.com>
Date:   Thu Jul 28 15:58:23 2005 +0000

    Updated doc/big-picture doc/structures, Added rst formating to puppetdoc, and added doc strings for types, states, params, and metaparams.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@467 980ebf18-57e1-0310-9a29-db15c13687c0

commit 700b9650b8188bc9bf36b66e9ee1f78324fd0c16
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 27 00:02:39 2005 +0000

    dpkg/apt package installation and removal now works
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@465 980ebf18-57e1-0310-9a29-db15c13687c0

commit e685ddb63aec1c6652e289125178ae43106f4041
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 26 21:27:14 2005 +0000

    fixing statefile creation
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@464 980ebf18-57e1-0310-9a29-db15c13687c0

commit 01666f6654e9afb3edbdf16cff30ceccb1beca30
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 26 19:05:07 2005 +0000

    fixing lib loading test
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@462 980ebf18-57e1-0310-9a29-db15c13687c0

commit 075ffd752de203823673d2a3846b7ff2d3dc16ec
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 24 04:15:45 2005 +0000

    making changes necessary to pass tests on all available platforms
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@458 980ebf18-57e1-0310-9a29-db15c13687c0

commit b5f6a548ebee48aee3f1bab067ea6451d1052089
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 24 03:13:23 2005 +0000

    fixing solaris packaging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@457 980ebf18-57e1-0310-9a29-db15c13687c0

commit ffe318c051378ab3832d711e5f59df8d0358a1e2
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 17:43:07 2005 +0000

    fixing packaging to work with rpm, too
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@449 980ebf18-57e1-0310-9a29-db15c13687c0

commit 64b55c1cc9b0c4ec0c47912bad2633ba581c67d0
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 17:34:42 2005 +0000

    creating FileTesting module in puppettest.rb, and getting recursion working with symlinks
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@448 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9d8f7548d69f60a7c3352d9e957d6faf85645c77
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 17:33:44 2005 +0000

    adding some attributes to errors
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@447 980ebf18-57e1-0310-9a29-db15c13687c0

commit dcbbef702211a3d3b3c8059c7308e596bb8c7f3f
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 15:34:40 2005 +0000

    adding symlink back as a separate object
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@445 980ebf18-57e1-0310-9a29-db15c13687c0

commit e078329e047d3308c0f8983316d07056d1189db7
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 15:34:02 2005 +0000

    adding symlink back as a separate object
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@444 980ebf18-57e1-0310-9a29-db15c13687c0

commit 60965c59c04b79ff6f1a3771506005d1a1381981
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 06:32:41 2005 +0000

    removing silly message
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@441 980ebf18-57e1-0310-9a29-db15c13687c0

commit f624cd5bfbb52fe21cc7a054a15e74259bc20be3
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 06:28:49 2005 +0000

    making the console output slightly less redundant
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@440 980ebf18-57e1-0310-9a29-db15c13687c0

commit 848df2776fc8aa0c1d8372771cab7011a16ab287
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 06:27:05 2005 +0000

    okay, last try on sources hopefully -- no failures, and basic functionality all seems to be working
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@439 980ebf18-57e1-0310-9a29-db15c13687c0

commit cc67845bebd79989a0cb0fe27124f244993d2233
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 05:51:36 2005 +0000

    fixing package listing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@438 980ebf18-57e1-0310-9a29-db15c13687c0

commit 326b4ade1a41f6c876ecc9d5a291c309776c6a10
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 04:39:11 2005 +0000

    fixing exec tests to work with new event stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@437 980ebf18-57e1-0310-9a29-db15c13687c0

commit fa6569dcf725b0c53cb76236d2700657e304395d
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 04:23:30 2005 +0000

    okay, sources seem to be much more understandable here -- only the recursion function is recursive
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@436 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5351eb9d8759fb33325cdfae71730d25890917d1
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 04:23:07 2005 +0000

    adding some error checking
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@435 980ebf18-57e1-0310-9a29-db15c13687c0

commit 60e02de01107ef403338558706f789580500996f
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 22 04:22:50 2005 +0000

    not dump/loading for local client/server
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@434 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8ec8c8d73c0a784c62a01767ac06e01f08742d10
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 20 22:08:51 2005 +0000

    sources now pass all tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@433 980ebf18-57e1-0310-9a29-db15c13687c0

commit a33d5d44d92894c12c485f7de49d324cd1a2eb23
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 20 20:50:11 2005 +0000

    everything seems to actually be working now, including getting the correct file list back
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@432 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2d34f8e9ddcfc03d57a71819810eef15fb7f965f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 20 20:23:19 2005 +0000

    Ha! finally got recursion and sourcing working together
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@431 980ebf18-57e1-0310-9a29-db15c13687c0

commit bc38169686aa294c191382796ab3f9d6c4e96316
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 20 18:04:54 2005 +0000

    redoing how arguments are handled in type.rb -- it is much cleaner now
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@430 980ebf18-57e1-0310-9a29-db15c13687c0

commit 973385f67a47b4dcc46da5022285025f3a7457ab
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 20 16:34:25 2005 +0000

    first versions
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@429 980ebf18-57e1-0310-9a29-db15c13687c0

commit c577e57871837b50d8b98c9031b23ab72c0ff119
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 20 16:33:58 2005 +0000

    reducing debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@428 980ebf18-57e1-0310-9a29-db15c13687c0

commit 99eedb3f15d55a32d4654ffea6c264b9e65c40c4
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 20 16:33:28 2005 +0000

    reducing debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@427 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f718da399cd3e87864d5ca1b2e0011786523a16
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 20 06:16:29 2005 +0000

    recursive file copying now works even with some limited number of errors
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@426 980ebf18-57e1-0310-9a29-db15c13687c0

commit aa594735c4924b49d5a2a47d1307f59d4206c23b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jul 20 05:27:00 2005 +0000

    okay, file sourcing actually seems to work now
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@425 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9a5477b8c46841c6cf313ee9769afdeda559fb4b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 19 21:49:09 2005 +0000

    checkpoint commit
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@424 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0e94644b6e2ccbd0a3d52cb210bcfced39321194
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 19 18:50:20 2005 +0000

    moving setpath to parampath=, as a param method
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@423 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3a67efa703f2e1db49d7a213e56a72cc5885fbba
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 19 18:49:57 2005 +0000

    adding "=" to metaparam methods, and allowing types to use methods for params
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@422 980ebf18-57e1-0310-9a29-db15c13687c0

commit de91dbdc5c554136437250daa512050f6d46fbc8
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 19 06:10:33 2005 +0000

    temp commit before i change the whole way that i am doing source + recursion
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@421 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9ba72f574aba66020913c7ac837634d5ca0fb13e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 19 00:29:25 2005 +0000

    removing, since pfile now has link functionality
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@420 980ebf18-57e1-0310-9a29-db15c13687c0

commit 311218be95ea0c217dd90003e541cc299ea841b8
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 19 00:29:09 2005 +0000

    removing, since pfile now has link functionality
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@419 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6f4f8212955853ef60332d02a62a6a2596dc71f5
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 18 19:58:09 2005 +0000

    downcasing the values of all facts
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@416 980ebf18-57e1-0310-9a29-db15c13687c0

commit b1f3fb8a9beb7a5c8407107b96d5c615f4504b7a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 18 19:51:51 2005 +0000

    switching facts to be auto-provided by the client
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@415 980ebf18-57e1-0310-9a29-db15c13687c0

commit 357afbbc6054dcdc7a1fd5ae468a2e86a44a9bde
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jul 16 16:44:04 2005 +0000

    removed type.method() syntax, and replaced it with Type { default => value} syntax -- i still need to add test cases
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@409 980ebf18-57e1-0310-9a29-db15c13687c0

commit f38bdef90367a0beb9074bbaa4d5fa384660f7a8
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jul 16 01:57:18 2005 +0000

    changing path stuff to be service-specific
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@408 980ebf18-57e1-0310-9a29-db15c13687c0

commit 84f721d93e8914b32daa6290004547352f0c9044
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Jul 16 01:57:07 2005 +0000

    modifying failer stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@407 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3d725d9fccb386a22a0a283fb8fc4ed336921f93
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Jul 15 15:17:10 2005 +0000

    adding more validation methods
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@403 980ebf18-57e1-0310-9a29-db15c13687c0

commit f2b6762c0694cdcab50ca89d791e5cd4843d16a0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 14 19:56:59 2005 +0000

    reducing to one statefile definition
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@396 980ebf18-57e1-0310-9a29-db15c13687c0

commit ad9913bf3a8b43bfce2d1203ce69b7daf75ebd7a
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 14 18:53:04 2005 +0000

    converting debug() back to Puppet.debug()
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@395 980ebf18-57e1-0310-9a29-db15c13687c0

commit 13945c5a2e19ee4f85777de5accce79114508bff
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 14 18:41:45 2005 +0000

    converting debug() back to Puppet.debug()
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@393 980ebf18-57e1-0310-9a29-db15c13687c0

commit 668b9de03584ab590c317c7658f15a1925befa53
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 14 18:41:37 2005 +0000

    converting debug() back to Puppet.debug()
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@392 980ebf18-57e1-0310-9a29-db15c13687c0

commit c04b337a94f35c2c0ac7b65b6e4a941d707a69a7
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 14 18:41:28 2005 +0000

    converting debug() back to Puppet.debug()
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@391 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3c4181cb811d7ad1c87cbb69a43c4e049bd98641
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 14 18:41:12 2005 +0000

    adding methods callable from language
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@390 980ebf18-57e1-0310-9a29-db15c13687c0

commit 88071eb02e6afd7f2c03a230d215cf88833df2f2
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 14 17:12:46 2005 +0000

    making rpm the default package manager for all linuxes, with exceptions allowed
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@387 980ebf18-57e1-0310-9a29-db15c13687c0

commit ca8701025b319eabf102e518220c95f8f18dcc84
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 14 16:05:40 2005 +0000

    defaulting to rpm for everyone i don't know anything about
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@386 980ebf18-57e1-0310-9a29-db15c13687c0

commit ebe779f88c08773d5dbc5ecb85465e07c24e206c
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 14 16:04:23 2005 +0000

    adding rpm as the default type for Fedora
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@385 980ebf18-57e1-0310-9a29-db15c13687c0

commit fbafa84f0714960c69b65890590e8f49c2929d12
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jul 14 15:59:12 2005 +0000

    updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@384 980ebf18-57e1-0310-9a29-db15c13687c0

commit b9c064e78971e3c7537fbdefbaf74aac67085e3f
Author: Jesse Koontz <jesselks@yahoo.com>
Date:   Wed Jul 13 00:54:26 2005 +0000

    Updated install script to include all bin files.
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@383 980ebf18-57e1-0310-9a29-db15c13687c0

commit 96c37e3bd2bf0c67fd75376ea63b15a73b1c372b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 12 15:05:34 2005 +0000

    using old name method, since it is required to make names unique given how classes currently work
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@382 980ebf18-57e1-0310-9a29-db15c13687c0

commit e97e2d9f7b26aa55b608342bd47efc7fd8ed09f9
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 12 15:05:11 2005 +0000

    fully qualifying warning method, because it is not being imported for some reason
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@381 980ebf18-57e1-0310-9a29-db15c13687c0

commit a984d6604cf2463183fc1f3eac0cb94fbd545f59
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 12 15:04:52 2005 +0000

    disabling metrics tests on machines missing RRD
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@380 980ebf18-57e1-0310-9a29-db15c13687c0

commit 78bcfdc1e21e7ad4d89b990fd0cf6d87db563d51
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 12 13:32:31 2005 +0000

    adding path stuff everywhere, although i had to keep component names kind of funky
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@378 980ebf18-57e1-0310-9a29-db15c13687c0

commit 99a9f4b0c16b42ea16e1df9e38714697215fc308
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 12 05:51:43 2005 +0000

    adding link functionality
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@376 980ebf18-57e1-0310-9a29-db15c13687c0

commit d6e2102643ea380c5e7b63a722dae31ed499571d
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 12 05:51:35 2005 +0000

    toying with some doc stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@375 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3f9bb25b4e44ad94239e8a5be53cb67ad9d765e5
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 12 05:51:04 2005 +0000

    removing an obsolete VERBOSE setting
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@374 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5ff4b02b62328336340c1d73eddc76fdafe0f492
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 12 05:50:45 2005 +0000

    removing some debugging
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@373 980ebf18-57e1-0310-9a29-db15c13687c0

commit bf091329c0472b58a82381cc4bada8a910074fed
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 12 04:16:25 2005 +0000

    lots of refactoring
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@372 980ebf18-57e1-0310-9a29-db15c13687c0

commit cc78949a3946ef976562eb3dec9ad31eefa7d4fe
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 12 03:50:52 2005 +0000

    in the middle of a bunch of refactoring; committing so that others can try to replicate the segfault i am seeing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@370 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1f2c866e7fa08c748d4bf75a6997330182d91cf1
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 12 02:53:08 2005 +0000

    doing some refactoring
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@369 980ebf18-57e1-0310-9a29-db15c13687c0

commit e19ca977aa201297a3c06eca15e434298321454b
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jul 12 02:06:15 2005 +0000

    converting to "include Puppet" and not qualifing output methods
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@368 980ebf18-57e1-0310-9a29-db15c13687c0

commit 81777002df44d361ec5ca2b05cab861bc2b726da
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 22:40:35 2005 +0000

    hopefully, finally resolving recursive file creation problems
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@363 980ebf18-57e1-0310-9a29-db15c13687c0

commit 01a9905c0c20320a27a646bd7414384be783fdcb
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 22:40:23 2005 +0000

    moving namevar translation to a method
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@362 980ebf18-57e1-0310-9a29-db15c13687c0

commit fffc09c0703e7903310ff6055ded5ae781d67ecc
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 22:39:32 2005 +0000

    swapping console colors
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@361 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2062aacbd96df3447255a61549b922c7d68c1c56
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 22:39:18 2005 +0000

    changing comments
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@360 980ebf18-57e1-0310-9a29-db15c13687c0

commit 75e27cf8f387816526860df3ad0d38ddce8eeb01
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 20:51:52 2005 +0000

    cleaning up bugs in the tests, and adding more error checking around the bugs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@359 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0417fb59f4493b98fea9b03a60cb21ffc0f8bed4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 20:21:41 2005 +0000

    adding refreshonly parameter
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@358 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6e9975ce229f889784f45d5b5c3434db3e0da30a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 20:21:30 2005 +0000

    found a bunch of bugs in Puppet::Storage, plus some bugs in how file recursion was being tested and thus some real bugs in the system
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@357 980ebf18-57e1-0310-9a29-db15c13687c0

commit 256b84e9fae36865ba9eae247ffceae91ce36aa3
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 20:20:32 2005 +0000

    adding a to_s method
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@356 980ebf18-57e1-0310-9a29-db15c13687c0

commit d14dc32d1800e61a4b509ab8410c848ae472bdd1
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 18:45:31 2005 +0000

    fixing storage class; it was not actually correctly retrieving state from disk
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@355 980ebf18-57e1-0310-9a29-db15c13687c0

commit 96f3980a57f8fd24aff801420a0813bad9bb20d7
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 18:14:20 2005 +0000

    adding Puppet#recmkdir utility function, and making sure Log and Storage create their own files and directories as necessary
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@354 980ebf18-57e1-0310-9a29-db15c13687c0

commit 649d59a24cf03387e58fa1d4a151fcf34e409777
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 17:37:40 2005 +0000

    adding some more tests for recursion plus checksumming, because they are somewhat incompatible for directories
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@353 980ebf18-57e1-0310-9a29-db15c13687c0

commit cb95dc753267205bd5b352434bc5518dcd07e70d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 17:19:37 2005 +0000

    ok, verbose => info
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@352 980ebf18-57e1-0310-9a29-db15c13687c0

commit 459287caf33ede89f37dbe8168de44c98377811f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 17:18:52 2005 +0000

    duh, somehow added Blink calls in there...
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@351 980ebf18-57e1-0310-9a29-db15c13687c0

commit 600f272c7f61bc645d6f0ab4920c692e8190b789
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jul 11 17:10:56 2005 +0000

    adding cwd parameter to exec
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@350 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4157fa01f499bdcdba19a0a6096f14cb1dc710ab
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 10 04:48:43 2005 +0000

    exec stuff all works now, end to end
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@349 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2c1f6373802c3d1431cce7e750764b286b62c41c
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 10 04:48:10 2005 +0000

    fixing some nasty bugs related to parameter checking
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@348 980ebf18-57e1-0310-9a29-db15c13687c0

commit 05d59fd02ff55e1f74dc7bb16a240ede74cebbc1
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 10 04:48:00 2005 +0000

    fixing a nasty bug related to recursion and nonexistent files
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@347 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5b7fd635d3829e037ffc4ef511ca34d752c3e6b4
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 10 04:47:37 2005 +0000

    fixing some nasty bugs related to parameter checking
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@346 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9e0ab28780521c68c0b40377f86f8cd113acfe5c
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 10 02:04:20 2005 +0000

    adding string vs. symbol testing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@344 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f1da62756c1648a18be5f7161419898f75b7983
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 10 01:40:07 2005 +0000

    adding logdest config
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@342 980ebf18-57e1-0310-9a29-db15c13687c0

commit cf817e75d90828f66744cc2ec6db1af6968b5031
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 10 01:39:48 2005 +0000

    changing Log.destination to Log.destination=()
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@341 980ebf18-57e1-0310-9a29-db15c13687c0

commit d36b4c0c5f4ed64740d9486e6462b1c3bd9b7c7a
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 10 01:39:26 2005 +0000

    disabling debug by default
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@340 980ebf18-57e1-0310-9a29-db15c13687c0

commit 420062d158bfd3d196fa33138f245409675c5963
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 10 01:39:05 2005 +0000

    changing Log.destination to Log.destination=()
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@339 980ebf18-57e1-0310-9a29-db15c13687c0

commit c718044c000f3f074fefbe356e9a71f530dfda1b
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Jul 10 01:36:20 2005 +0000

    adding the exec stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@338 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3441b82f84ff7dbc15e9a9d3c20da84a7eae8ce5
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 29 21:16:54 2005 +0000

    finishing rename of file class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@323 980ebf18-57e1-0310-9a29-db15c13687c0

commit f250d920627696bab766dffe6c8e6a8983298fc6
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 29 21:08:49 2005 +0000

    renaming to remove naming conflicts
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@322 980ebf18-57e1-0310-9a29-db15c13687c0

commit 26bc12ba3cb0caebd890d6551b2918cc2f74e106
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 29 21:00:03 2005 +0000

    further output cleanup, and fixed the problem with tc_server.rb leaving sleeper processes lying around
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@321 980ebf18-57e1-0310-9a29-db15c13687c0

commit bb7e2833f0ea9c97d55fcb76e5811c035161256f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 29 19:44:25 2005 +0000

    fixing debugging to severely reduce output but allow it when debugging a specific service
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@319 980ebf18-57e1-0310-9a29-db15c13687c0

commit c16ca53ea8d62ffb8e02afddb8ae93cfbae800b2
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 29 16:37:32 2005 +0000

    changing warnings to debug
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@318 980ebf18-57e1-0310-9a29-db15c13687c0

commit 00343e3ea7c5633c6580339b9bbe5ee1fa0bac59
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 29 16:34:47 2005 +0000

    basic rpm stuff now works
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@317 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2b2975f06f86058589d5aeff1a4d7f0a72cf5b92
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 29 15:36:28 2005 +0000

    fixing metrics tests to work with everything else
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@316 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0ac91efd23f25a729db0bf5b58631ae40a6b0ab2
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 29 15:17:52 2005 +0000

    correctly returning events
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@315 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0c4254a9c1bad795a8bcc895cff74b6dd961ba44
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 29 03:11:06 2005 +0000

    metric testing and graphing now works in the library, although nothing has been done in the language
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@314 980ebf18-57e1-0310-9a29-db15c13687c0

commit 573d3018a67521f37dbbd46e86c7d1d8b7bc2703
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 29 00:57:50 2005 +0000

    adding some more tests for loglevel stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@313 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0ba9d71b5578d4d0b390b63aa142955f7a2d4c8e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 28 23:43:03 2005 +0000

    adding rpm as RedHat package manager
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@312 980ebf18-57e1-0310-9a29-db15c13687c0

commit b6b1f5a8f08859d6c3975beb3ecbcd39ff5f250e
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 28 04:15:48 2005 +0000

    logging now exactly supports the list of levels that syslog supports, and multiple destinations (syslog, files, and console) are now supported
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@311 980ebf18-57e1-0310-9a29-db15c13687c0

commit e3c32834c4cc5f7e378d2929b99253982ca264d8
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 28 00:15:43 2005 +0000

    renaming message.rb to log.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@310 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2b3b15ed777574cca28f8c681053de0d0bd2a461
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 28 00:15:27 2005 +0000

    temporary changes to prepare for a rename
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@309 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8395639022bfc42e2c50d0298c2fd28c65d17275
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 27 21:49:26 2005 +0000

    puppetest.rb should probably be puppettest.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@307 980ebf18-57e1-0310-9a29-db15c13687c0

commit cd48af7eb031b839cf326305c224e2ff000cd3ab
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 27 21:48:39 2005 +0000

    renaming blink to puppet
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@306 980ebf18-57e1-0310-9a29-db15c13687c0

commit 60783f0777eb5dd89d44a8dfd2ced49f06a32d8f
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 27 21:47:06 2005 +0000

    renaming blink to puppet
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@305 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8f95084cd854aef4e3493854e58cefd352cdc68d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 27 21:44:46 2005 +0000

    renaming blink to puppet
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@302 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6f074138779e558fd7017880f606dcf3527233f9
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Jun 14 05:12:08 2005 +0000

    you can now at least test for whether a package is installed, although you still cannot do anything if it is not -- the barrier is knowing how to get the package
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@300 980ebf18-57e1-0310-9a29-db15c13687c0

commit 65c2a6980da355f678b4b579e1ad28e38d51872a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 13 22:14:48 2005 +0000

    adding validparam() to Blink::Type
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@299 980ebf18-57e1-0310-9a29-db15c13687c0

commit 500a1358c76e48dfab59fc983a1a6b03e82e14a6
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jun 9 17:01:17 2005 +0000

    fixing file.rb so it works on Darwin, also
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@297 980ebf18-57e1-0310-9a29-db15c13687c0

commit 90b9b2d9893ffad3b79bd5e0e0d15e7fc5f38698
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jun 9 16:43:02 2005 +0000

    updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@296 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3f0687b9dddb5bc52c538c64cc9226a0f0d84522
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Jun 9 16:36:20 2005 +0000

    updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@295 980ebf18-57e1-0310-9a29-db15c13687c0

commit 53240625be7d35dabe29a2e71d5ac99d6f996427
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Jun 6 15:13:14 2005 +0000

    adding new classes and tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@294 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0dad57a29e84d510a9d530c79b12aa4fba9f334f
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 1 22:20:10 2005 +0000

    md5 summing now works, all the way through!
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@293 980ebf18-57e1-0310-9a29-db15c13687c0

commit d1f2187c26358288c3a0986b752ffdf5e7b87388
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Jun 1 21:30:47 2005 +0000

    checksums now work, but not all the way through yet
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@292 980ebf18-57e1-0310-9a29-db15c13687c0

commit 18d755ac266e15f5c9fb284846df1c7d4c4a1457
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 30 23:24:51 2005 +0000

    Rahh! component dependencies now work!
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@291 980ebf18-57e1-0310-9a29-db15c13687c0

commit 922994edc1447e523ba0ddc4efa0c9b61fa55fc8
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 30 23:02:40 2005 +0000

    everything passes all of the tests, but i do not think the component-level metaparams are working
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@289 980ebf18-57e1-0310-9a29-db15c13687c0

commit cdfdfb9d1bbfb9c5a93acdfcb97e61d92a28e3b6
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 30 06:14:35 2005 +0000

    adding some more tests for Blink::Type
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@285 980ebf18-57e1-0310-9a29-db15c13687c0

commit d42efbeb2b2772d8286756a2aedb40604a1b7f11
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 30 03:08:16 2005 +0000

    done some more work on making components act like normal objects, but now i need to figure out how to spread events up the tree, rather than just point to point
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@284 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0ab9685383bc21d9903a06d62a01f6cb72d25610
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 30 02:29:23 2005 +0000

    dependencies now work, although you cannot yet specify them for components
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@283 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2b97b479688e987a8d9e663fd926108e7c02e7e4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 30 01:36:48 2005 +0000

    there are now explicit tests for transactions, including rollback, and more tests involving querying
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@282 980ebf18-57e1-0310-9a29-db15c13687c0

commit b46135f84cefbc28d41dc6c4da42b93e08da8648
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 30 01:16:19 2005 +0000

    adding simple query syntax stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@281 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7fecad310828d120769972ba6112737fbaa10fd5
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 29 23:59:33 2005 +0000

    i now have basic events: you can only specify simple object types as requirements, but hey, it works -- refresh() gets called
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@280 980ebf18-57e1-0310-9a29-db15c13687c0

commit 02f11855098e3ddbc4353dd7141a0f78d85d5f0a
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 29 21:17:16 2005 +0000

    renaming events to event
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@279 980ebf18-57e1-0310-9a29-db15c13687c0

commit d70229b41af53a507d6737cbf55944f798b7c2d5
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 29 21:17:02 2005 +0000

    update before rename
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@278 980ebf18-57e1-0310-9a29-db15c13687c0

commit c0d86a4ae6c00910a44f392f0076a5785ee85791
Author: Luke Kanies <luke@madstop.com>
Date:   Sun May 29 20:41:53 2005 +0000

    intermediate; no extra functionality yet, but moving away from discussing namevars outside of a given class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@277 980ebf18-57e1-0310-9a29-db15c13687c0

commit d86e4796432a61aa89330f5bf19c68609bda1e0b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 25 15:57:00 2005 +0000

    All tests pass again, and i have added Type.allclear to remove all existing type instances, thus making it much easier to run all of the parser and lexer and then server tests; i have also added remove server tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@273 980ebf18-57e1-0310-9a29-db15c13687c0

commit ebc02a881ce93e4b4f47a54f9066ab46442f71c1
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 25 15:27:30 2005 +0000

    okay, everything works again, although it still might be a touch fragile
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@270 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5477f36821dc2118bcb26f9833fa73cb058915c1
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 25 15:14:24 2005 +0000

    i am giving up on fileparsing for now; it does not work yet
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@268 980ebf18-57e1-0310-9a29-db15c13687c0

commit 576a0310021cbe4bd0efb2b4814f33c78895c026
Author: Luke Kanies <luke@madstop.com>
Date:   Sat May 21 23:31:49 2005 +0000

    okay, bin/blinker works again, and i have modified both client and server to be a bit easier to use non-networked
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@267 980ebf18-57e1-0310-9a29-db15c13687c0

commit 03741b41b3fba65d10c9adafd8969913876e28d2
Author: Luke Kanies <luke@madstop.com>
Date:   Sat May 21 23:07:57 2005 +0000

    we now have networking
    it is very basic right now:
    the server gets passed a file name, and the client gets passed the server to which to
    connect.  The client gets its config, evaluates it, and exits
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@266 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4a4438dbf226335ea3c885a4ced32174d4123542
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 16 18:38:06 2005 +0000

    okay, implicit iteration now occurs at least at object definition time
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@259 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4a9c1a256d12cf8c4af1f7e5754a9fcbb61078ca
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 16 18:08:04 2005 +0000

    enabling mucking with debug and noop
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@257 980ebf18-57e1-0310-9a29-db15c13687c0

commit f91451d90114ff31e69ea66a15932a0e9cba5f04
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 16 17:56:37 2005 +0000

    yep, arrays are always passed
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@256 980ebf18-57e1-0310-9a29-db15c13687c0

commit d0d8df94927e4da9e8539d3f038636c32ab2e87a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 16 17:54:09 2005 +0000

    final fixes on passing methods through to types
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@255 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3a07a4d2f5a66b3919958c6bc8269b09c333cc8d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 16 17:48:28 2005 +0000

    typesettings now correctly pass all the way through and can only run specified methods, using "allowedmethods"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@254 980ebf18-57e1-0310-9a29-db15c13687c0

commit 12418e1c29895d96a756b2febc73e34b615d58d1
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 16 17:33:23 2005 +0000

    the tree transformations work throughout the whole system now
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@252 980ebf18-57e1-0310-9a29-db15c13687c0

commit f9a223cdbebb43b4df527cae0c34a0ce938c02d6
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 16 17:09:08 2005 +0000

    transformations from the client through to the transactional execution now works!
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@251 980ebf18-57e1-0310-9a29-db15c13687c0

commit 00a620de88c593ffe841121c3a2e19504380b669
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 16 16:50:37 2005 +0000

    unmoving
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@250 980ebf18-57e1-0310-9a29-db15c13687c0

commit 135134cca7f16fbd14f2d7572c2b0a2e0432e1b1
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 16 16:50:22 2005 +0000

    updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@249 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4da3b51af5fc52caf5dcc1b9a98cb1a232252230
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 16 15:47:55 2005 +0000

    moving
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@248 980ebf18-57e1-0310-9a29-db15c13687c0

commit 259692cf20e7fa54094d995da2fd168036edbcca
Author: Luke Kanies <luke@madstop.com>
Date:   Mon May 16 15:22:32 2005 +0000

    moving
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@247 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3b3373830c7238e26a4454334296c5b49368b3a4
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 12 22:40:08 2005 +0000

    switched to just passing scopes around, instead of passing the interpreter object around
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@245 980ebf18-57e1-0310-9a29-db15c13687c0

commit 529b9a70d55fc720db1f601f832151e5a2f6b47e
Author: Luke Kanies <luke@madstop.com>
Date:   Thu May 12 21:54:23 2005 +0000

    file recursion now works
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@244 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4e03ed1822014cc7d062183f92b76e4d6debeb88
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 11 19:43:01 2005 +0000

    i can now execute simple scripts manually!
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@241 980ebf18-57e1-0310-9a29-db15c13687c0

commit ec88acf10421b4c2dba38f154d5adcf9ea9202d2
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 11 19:05:39 2005 +0000

    i can basically actually do work now
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@240 980ebf18-57e1-0310-9a29-db15c13687c0

commit 42dadad734a71dd10b059747b927394b4ef31ea6
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 11 14:16:02 2005 +0000

    moving
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@239 980ebf18-57e1-0310-9a29-db15c13687c0

commit 817f5711bf802d88d7b4fba6cdb3d7bd483faa41
Author: Luke Kanies <luke@madstop.com>
Date:   Wed May 11 00:19:33 2005 +0000

    adding lots of verbosity, and starting to actually make sure things execute -- tests are failing, tho
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@238 980ebf18-57e1-0310-9a29-db15c13687c0

commit 2cce619fae89f99a38ef0bfd6d271407e96d3430
Author: Luke Kanies <luke@madstop.com>
Date:   Fri May 6 21:16:26 2005 +0000

    basic components now work
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@229 980ebf18-57e1-0310-9a29-db15c13687c0

commit 49da910cf808a7f257ee91b2edb3b1d17ba9555c
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 25 18:14:33 2005 +0000

    we now have nested scopes, and we've got the beginnings of components, although many tests are currently failing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@225 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7689d19fdc975493513a586e3af69f243e5248a1
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 23 00:16:44 2005 +0000

    simplifying argument parsing in Blink#message
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@221 980ebf18-57e1-0310-9a29-db15c13687c0

commit 08d426055b327cfdfe60ade26fe0bde4265a3f70
Author: Luke Kanies <luke@madstop.com>
Date:   Sat Apr 23 00:16:27 2005 +0000

    initializing @noop in element.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@220 980ebf18-57e1-0310-9a29-db15c13687c0

commit 865dffe9bf0e5d53d727cf4f079ae6f2648a3364
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 22 23:38:49 2005 +0000

    dealing with having moved the examples to the language area
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@219 980ebf18-57e1-0310-9a29-db15c13687c0

commit a1a7ae4cf77b4161b6874e60ab06078bf4e6f081
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 22 18:43:50 2005 +0000

    moving to the language tree
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@212 980ebf18-57e1-0310-9a29-db15c13687c0

commit 85b9f915e96241eb8ccb44d7b963b44fc44baa08
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 21 19:59:33 2005 +0000

    everything works again, including components
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@211 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9ea0c307b8c8e91c411186be5d27110f9d3692fe
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 21 19:57:47 2005 +0000

    making components work
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@210 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1f95fe2328b721ae293d9acfca895a7603f134a5
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 21 19:34:46 2005 +0000

    moving component.rb to type/
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@209 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7df572bbdc533b352ff90a137bbfb57045c97c16
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 21 19:34:31 2005 +0000

    removing most functionality, since type.rb already has it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@208 980ebf18-57e1-0310-9a29-db15c13687c0

commit 565554f47dccca357560ba96336b8bd4e3d2afe1
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 21 19:26:03 2005 +0000

    finishing reorganization of base classes and such; there is now a clear tree heirarchy, with parents and children -- all tests pass on the types, but there are still some issues with client/server stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@207 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9843da69eb90ba5029e3726e7c886bbcfe410cc9
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 21 18:51:13 2005 +0000

    cleaning up object tree and adding a simple virtual base class for both types and states
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@206 980ebf18-57e1-0310-9a29-db15c13687c0

commit d0c6b0c23516fda12dd1a3d2f5a8e53b614100f0
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 21 18:50:54 2005 +0000

    adding transactions
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@205 980ebf18-57e1-0310-9a29-db15c13687c0

commit 89d23818abca673b0b7b29f0792afb8ec990ebb4
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 21 18:50:12 2005 +0000

    moving event info out of type.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@204 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3c6c0f7956baddbe0033a43b654915de06dcdaf6
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 21 18:49:41 2005 +0000

    removing elements.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@203 980ebf18-57e1-0310-9a29-db15c13687c0

commit e452f003d219cc6ee107757b3fa2be0086564460
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 21 18:49:25 2005 +0000

    preparing to remove elements.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@202 980ebf18-57e1-0310-9a29-db15c13687c0

commit cf08be12cc1418b02feb0ae52a54de265e440ea6
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 21 15:46:01 2005 +0000

    renaming statetree to elements
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@201 980ebf18-57e1-0310-9a29-db15c13687c0

commit b6d0f0cd4dacc1f8ef9fb22f98e191082fbcb6d5
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 21 15:45:40 2005 +0000

    first version of finalized base classes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@200 980ebf18-57e1-0310-9a29-db15c13687c0

commit f98419241ca2cf1ff89240e3a4d12abdb4800dcf
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 19 22:34:01 2005 +0000

    noop seems to basically be working, but i need to reorganize the whole type/state structure -- that is starting after this commit
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@199 980ebf18-57e1-0310-9a29-db15c13687c0

commit c01bc8108b913e62090096e3ef43c699ddc7af6a
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 19 20:42:57 2005 +0000

    using the example syslog.conf instead of the one in /etc
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@198 980ebf18-57e1-0310-9a29-db15c13687c0

commit 57194ebf9cd8b607e6eeed0671d9aa0065e3f0bd
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 19 20:40:40 2005 +0000

    adding some example debian configs
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@197 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6cd71f8ac2b7de261b6750e2f480e57f90c43346
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 19 20:38:04 2005 +0000

    filetypes now support multiple record types, and newlines can be escaped
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@196 980ebf18-57e1-0310-9a29-db15c13687c0

commit 737876563918bd7d3f48cc60e56efcbe79173368
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 19 15:44:39 2005 +0000

    completed the first step to enabling multiple record types in filetypes
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@195 980ebf18-57e1-0310-9a29-db15c13687c0

commit 490854a2edf381c34083f0049e4c7ea3f1a20ad0
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 19 15:24:31 2005 +0000

    the client now executes "evaluate", which might not be a good thing -- i am getting failures if files do not exist, for instance
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@194 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6127e4340fc231b7279bfeaade35b7df8d219c10
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 19 06:15:26 2005 +0000

    filerecord.rb: duh, fixing a small debug string printing bug
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@193 980ebf18-57e1-0310-9a29-db15c13687c0

commit 371235bc1d5d2f260106444d44dfbff14978b020
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 19 06:14:34 2005 +0000

    reorganizing the FileType/FileRecord into a base class (TypeGenerator) and basing them off it
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@192 980ebf18-57e1-0310-9a29-db15c13687c0

commit 7deba97509ec91885d76e0d909287a7553c995d8
Author: Luke Kanies <luke@madstop.com>
Date:   Tue Apr 19 00:09:19 2005 +0000

    adding typegenerator baseclass
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@191 980ebf18-57e1-0310-9a29-db15c13687c0

commit b18d071b60d3529466bd1c568c3b14b23054c7a9
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 23:48:59 2005 +0000

    fact.rb is no longer a subclass of Blink::Type
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@190 980ebf18-57e1-0310-9a29-db15c13687c0

commit 43a63db736ebb4a014250d36c8f6866f2aacced7
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 23:47:19 2005 +0000

    fixing filetype and component to take into account changes type interface.rb and type.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@189 980ebf18-57e1-0310-9a29-db15c13687c0

commit a16493db1308e3d6b9b2c4e60ed5b9e5eda7d048
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 22:54:43 2005 +0000

    type.rb: adding methods to simplify type initialization, and adding eachtype() to simplify testing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@188 980ebf18-57e1-0310-9a29-db15c13687c0

commit 69a127644d4ba32376bfefb886523ec04fe8eab4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 22:47:59 2005 +0000

    adding some tests on the interface methods in Blink::Type
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@187 980ebf18-57e1-0310-9a29-db15c13687c0

commit de360c97d90e7af5c44f57959ebeaa6f0c8cdbb4
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 22:33:09 2005 +0000

    renaming objects to types, since they are just subclasses of Blink::Type
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@186 980ebf18-57e1-0310-9a29-db15c13687c0

commit b872b726a901a348d4c0c42ba945c04d5990ca1d
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 22:28:06 2005 +0000

    renaming types to type everywhere; all tests now pass
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@185 980ebf18-57e1-0310-9a29-db15c13687c0

commit a50d461d8341996fcd9b5d6fb47a37343c67e6b2
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 22:12:36 2005 +0000

    changing types to type internally
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@184 980ebf18-57e1-0310-9a29-db15c13687c0

commit c0bc63fd0f2253568ee7c63881c6d6965eea6cca
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 22:10:21 2005 +0000

    moving types to type
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@183 980ebf18-57e1-0310-9a29-db15c13687c0

commit b85ac7be1ec1b54d8343fbaca2b0cfe2c3a31f74
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 22:10:04 2005 +0000

    renaming types.rb to type.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@182 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9d163d019b6fbd79f9abefdd108eb6b3d448348b
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 22:07:52 2005 +0000

    changing Types to Type
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@181 980ebf18-57e1-0310-9a29-db15c13687c0

commit 68409ef1d5edf1486a28ab88808a9fb4f994e91a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 22:07:49 2005 +0000

    adding
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@180 980ebf18-57e1-0310-9a29-db15c13687c0

commit cb5f54c9523331beb36839ee0e3147ab77e45e76
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 22:03:45 2005 +0000

    deprecating interface.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@179 980ebf18-57e1-0310-9a29-db15c13687c0

commit 974969dc765aa39559ba3513778c3211dcca43f7
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 22:03:32 2005 +0000

    final changes before deprecating
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@178 980ebf18-57e1-0310-9a29-db15c13687c0

commit f8b08b2bf327cab10677fcd601c65af84b0a89ac
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 19:49:20 2005 +0000

    adding an fqpath method to state.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@177 980ebf18-57e1-0310-9a29-db15c13687c0

commit ae13f000e0d6ec638d0e91255f6b552253f59e1e
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 19:48:58 2005 +0000

    adding name information and a FileRecordState class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@176 980ebf18-57e1-0310-9a29-db15c13687c0

commit a48963907943e403efda745573d4b553691a4854
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 19:48:27 2005 +0000

    moving some methods around
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@175 980ebf18-57e1-0310-9a29-db15c13687c0

commit 14c23083cc342c12b1bd6ffa437691884d2ac782
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 19:27:19 2005 +0000

    adding markers
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@174 980ebf18-57e1-0310-9a29-db15c13687c0

commit a1bd01d99aae424471aefdaf6bb98317f63f9e1b
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 19:19:37 2005 +0000

    changing type[param] to return the state instead of the value
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@173 980ebf18-57e1-0310-9a29-db15c13687c0

commit 41b7fbd3d5a3a69baff877fcba0edc677a30a05b
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 15:28:01 2005 +0000

    renaming oparse to filetype
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@172 980ebf18-57e1-0310-9a29-db15c13687c0

commit 98374bc979a6135d2becad0a3da581d411b72502
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 15:27:37 2005 +0000

    renaming oparse to filetype
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@171 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8ab03d0eb669873c90bcb83bd79325fd56863b4a
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 15:26:20 2005 +0000

    renaming oparse to filetype
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@170 980ebf18-57e1-0310-9a29-db15c13687c0

commit c2e83c51e7c4d122836b2adf7afa77fac3410cca
Author: Luke Kanies <luke@madstop.com>
Date:   Mon Apr 18 15:26:09 2005 +0000

    renaming oparse to filetype
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@169 980ebf18-57e1-0310-9a29-db15c13687c0

commit 236020100d2a13b9fad20c825a7a8e189ab09777
Author: Luke Kanies <luke@madstop.com>
Date:   Sun Apr 17 23:57:09 2005 +0000

    adding some comments
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@168 980ebf18-57e1-0310-9a29-db15c13687c0

commit 3904d2efd505fec08de3c4e8e7ab6d14586aed7e
Author: Luke Kanies <luke@madstop.com>
Date:   Fri Apr 15 20:09:07 2005 +0000

    fixing most of the function call stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@167 980ebf18-57e1-0310-9a29-db15c13687c0

commit 13f16b6690224758706e1c68d1da577a13df8be5
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 22:01:15 2005 +0000

    the client is now successfully creating objects from the hashes passed by the server
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@162 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6140bee579c92cb89fc91ff8514a7796202a28fb
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 22:00:47 2005 +0000

    making fact a real type
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@161 980ebf18-57e1-0310-9a29-db15c13687c0

commit d94d7a3223b896ab9d1502955e0cf6bb492e8773
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 20:32:56 2005 +0000

    moving state.rb to types/
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@159 980ebf18-57e1-0310-9a29-db15c13687c0

commit e86cf4c5cc016a1d71e4f3fc40db754b1e2c9ce9
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 17:20:11 2005 +0000

    renaming "value" to "is"
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@158 980ebf18-57e1-0310-9a29-db15c13687c0

commit d8e8b7bac463353728f703a73ae98deedc3fc146
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 16:18:12 2005 +0000

    renaming state, and adding modification class
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@157 980ebf18-57e1-0310-9a29-db15c13687c0

commit c0c1f1a2c4b93abfe410c308d6787eeef0276348
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 16:12:29 2005 +0000

    renaming attributes to states
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@156 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6dce8fc1bc5b6b78dd284273f1d10b123d56c01d
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 05:28:19 2005 +0000

    renaming objects to types
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@155 980ebf18-57e1-0310-9a29-db15c13687c0

commit a90af493baa99468c7c290db1e2156c386f82fbd
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 05:02:13 2005 +0000

    renaming objects to types
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@154 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5e19d7d7af63de224bffb9fac70083c8dbd45eac
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 04:59:46 2005 +0000

    renaming objects to types
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@153 980ebf18-57e1-0310-9a29-db15c13687c0

commit afd434921c9c71afd62b361970410644559e028f
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 04:58:12 2005 +0000

    updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@152 980ebf18-57e1-0310-9a29-db15c13687c0

commit 67fae6d13151bec7204a6b7da5ade609a869ee9b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 04:56:53 2005 +0000

    updates
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@151 980ebf18-57e1-0310-9a29-db15c13687c0

commit b4bb6807843187f35dd2313fa3dd5e7220dcaa01
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 04:52:08 2005 +0000

    removing link when done
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@150 980ebf18-57e1-0310-9a29-db15c13687c0

commit c6755f5f30be79ddb42c0afc4d89be42a2df47f9
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 04:49:28 2005 +0000

    adding class collection and naming stuff
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@149 980ebf18-57e1-0310-9a29-db15c13687c0

commit e5676ab347399a1f32e77bf4f64eaa73d54a895b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 04:18:25 2005 +0000

    testing keyword
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@148 980ebf18-57e1-0310-9a29-db15c13687c0

commit f3d11185d9d5f8c5d4cdb7945d41564ddd782c7e
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 04:17:16 2005 +0000

    removing some excess libs from blink.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@147 980ebf18-57e1-0310-9a29-db15c13687c0

commit 585c4fc91e62970b341826aa56e87d1f86b58847
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 04:16:58 2005 +0000

    cleaning up the start script
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@146 980ebf18-57e1-0310-9a29-db15c13687c0

commit 61f8434a7d3dd3142ac2443a6125397b996b5ade
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 04:15:00 2005 +0000

    cleaning up a bit
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@145 980ebf18-57e1-0310-9a29-db15c13687c0

commit 52fe9146754a885ed8831a1ae9df6dbe4aea2e3c
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 04:14:42 2005 +0000

    removing evaluate test
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@144 980ebf18-57e1-0310-9a29-db15c13687c0

commit 69651dd0488b41583b8776b261f432a2dedec20a
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 04:14:34 2005 +0000

    removing bogus output
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@143 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8fd8d626fac7f88f6be9fdf908b60cf2dfb2f46b
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 03:35:48 2005 +0000

    removing output, and fixing path so it is not hardcoded
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@142 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9da14852c2518baeb6ee4893735de44ebd83efa7
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 03:24:54 2005 +0000

    temporarily removing inclusion of time in output
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@141 980ebf18-57e1-0310-9a29-db15c13687c0

commit 4d7bbaa01769094924147d0aaa30dc88bd73e079
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 03:23:26 2005 +0000

    creating extra message methods
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@140 980ebf18-57e1-0310-9a29-db15c13687c0

commit 0187bf739f6f4d4e649fcb1b25b7c84ec4053cd2
Author: Luke Kanies <luke@madstop.com>
Date:   Thu Apr 14 02:29:03 2005 +0000

    removing execute bit
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@139 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6a82d07b2158a107a19b4b8606d3b13f8bfa80dd
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 21:58:38 2005 +0000

    adding readme
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@136 980ebf18-57e1-0310-9a29-db15c13687c0

commit 38248177be2bd1060cb1219804129b6def0a7df9
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 21:52:55 2005 +0000

    copy test script
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@135 980ebf18-57e1-0310-9a29-db15c13687c0

commit 67b7b3491f1e5a9cc8904ec1193a070dce641e76
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 21:42:15 2005 +0000

    okay, all tests pass again
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@133 980ebf18-57e1-0310-9a29-db15c13687c0

commit 35f742cd79a68778c7c9d9ebc4a31d4f98201d1c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 21:03:43 2005 +0000

    adding client stuff to the library tree
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@131 980ebf18-57e1-0310-9a29-db15c13687c0

commit 02ed7d3e670afff74a831b883964b9d0bdcf64e1
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 21:03:12 2005 +0000

    reorganizing tests
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@130 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8bc935e28f0e6ac2b932fc32e19d1cf4de0db8f9
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 21:01:32 2005 +0000

    adding comments
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@129 980ebf18-57e1-0310-9a29-db15c13687c0

commit a0d0fa8ca78f144638bf6f5413eebce9de7a3768
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 20:59:58 2005 +0000

    adding
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@127 980ebf18-57e1-0310-9a29-db15c13687c0

commit 11b037452e7cd2fd8681b17dbf68734c2f00eec6
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 20:48:12 2005 +0000

    moving client.rb to the library tree
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@124 980ebf18-57e1-0310-9a29-db15c13687c0

commit cb785bdfe66c873be5fc27b3ee2b56196d6725f5
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 20:45:50 2005 +0000

    moving client.rb to the library tree
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@123 980ebf18-57e1-0310-9a29-db15c13687c0

commit 8788552d5ec25c937bf2b609550fd024c31b1bc8
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 20:17:18 2005 +0000

    fixing [] method in function.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@120 980ebf18-57e1-0310-9a29-db15c13687c0

commit c86a770236d5c4ed397991226e401709d21f92f6
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 18:26:49 2005 +0000

    adding operatingsystemrelease
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@113 980ebf18-57e1-0310-9a29-db15c13687c0

commit 21ca565e88f1741c1d80ce1c4fe3d53c6578672b
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 18:22:58 2005 +0000

    renaming tc_functions.rb, and adding to ts_other.rb
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@112 980ebf18-57e1-0310-9a29-db15c13687c0

commit 1aab204c5bf720be65eb87663636f0e901bfb359
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 18:22:03 2005 +0000

    functions mostly work
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@111 980ebf18-57e1-0310-9a29-db15c13687c0

commit c45c5c4fff877c3d13af2ba9a5db94fa16a5473c
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 18:20:25 2005 +0000

    renaming
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@110 980ebf18-57e1-0310-9a29-db15c13687c0

commit 06734a90d321e792492b0ca85b169b91ab463a15
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 18:20:13 2005 +0000

    updates so i can rename
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@109 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9bf82b635712abb148a6ce12e0518ade3a6e6f0a
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 16:27:43 2005 +0000

    adding package source, initially including only files as a source
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@106 980ebf18-57e1-0310-9a29-db15c13687c0

commit e40d5f29ed0e84348e1fec5d461a8727e7e5a4e0
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 16:27:26 2005 +0000

    returning value instead of fact
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@105 980ebf18-57e1-0310-9a29-db15c13687c0

commit 9fa899da0a74c774c646cecf9e23f8e400a4f743
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 15:31:02 2005 +0000

    reorganizing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@102 980ebf18-57e1-0310-9a29-db15c13687c0

commit 464251503ee143ca56ee9b7a3341ca24c102433e
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 15:27:29 2005 +0000

    reorganizing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@99 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5807dced2619245be1da35d2df7505fea678a781
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 15:25:00 2005 +0000

    reorganizing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@97 980ebf18-57e1-0310-9a29-db15c13687c0

commit 6ee8b4e7a9731f969347e317456e8d9712fe2641
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 15:24:36 2005 +0000

    reorganizing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@96 980ebf18-57e1-0310-9a29-db15c13687c0

commit 5416017c05e44fc635ad14ffdf1ac1163a4cc6e5
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 15:23:57 2005 +0000

    reorganizing
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@95 980ebf18-57e1-0310-9a29-db15c13687c0

commit 54e9b5e3561977ea063417da12c46aad2a4c1332
Author: Luke Kanies <luke@madstop.com>
Date:   Wed Apr 13 15:18:05 2005 +0000

    adding structure
    
    git-svn-id: https://reductivelabs.com/svn/puppet/library/trunk@90 980ebf18-57e1-0310-9a29-db15c13687c0
